CN116126872B - 一种针对实时维表的关联方法、装置及计算机可读介质 - Google Patents
一种针对实时维表的关联方法、装置及计算机可读介质 Download PDFInfo
- Publication number
- CN116126872B CN116126872B CN202310410695.XA CN202310410695A CN116126872B CN 116126872 B CN116126872 B CN 116126872B CN 202310410695 A CN202310410695 A CN 202310410695A CN 116126872 B CN116126872 B CN 116126872B
- Authority
- CN
- China
- Prior art keywords
- real
- data
- time
- hbase
- cache database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明实施例公开了一种针对实时维表的关联方法、装置及计算机可读介质,该方法应用于第一设备;一具体实施方式至少包括:首先读取目标业务的实时数据流;并对实时数据流进行处理,得到若干处理窗口;其次针对处理窗口中任一ID号:获取与ID号的ID属性所对应的实时维表;确定与实时维表对应的缓存数据库以及HBase备库;判断缓存数据库中是否存在ID号;若存在,则从缓存数据库中读取与ID号对应的关联值;若不存在,则从HBase备库中读取与ID号对应的关联值。由此通过设置缓存数据库,能够将百万级/s的实时数据流关联维表的时间从分钟级优化为秒级,从而减少了数据延迟,提高了实时数据流关联维表的时效性。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种针对实时维表的关联方法、装置及计算机可读介质。
背景技术
各企业在构建自己的实时数仓以及实时指标的过程中,需要进行多维度指标的整合,指标对应的数据往往存在于关系型业务库的多个表里或者消息队列中。全量实时场景往往只能作为统计,而不能提供实时的服务。流跟流进行数据关联,因关联实时维表的实时数据流流量太大导致实时维表数据关联延迟,从而无法满足业务要求的时效性问题。
例如:在实际应用中,实时维表的数据一般是放在HBase主库中,实时数据关联实时维表通常是直接关联HBase数据库里的数据。若将百万级/s的实时数据流直接关联HBase主库,那么对1min的实时数据流执行完关联操作通常要消耗小时级的时间;由此导致数据关联延迟严重,从而影响业务要求的时效性。
为此,针对流量比较大的实时数据流进行实时维表关联时,急需要提供一种有效且快速的关联方法以解决现有技术中数据关联延迟的问题。
发明内容
针对现有技术存在的上述问题,本发明实施例提供了一种针对实时维表的关联方法、装置及计算机可读介质,能够实现快速且准确地将百万级/s的实时数据流关联到实时维表,提高了百万级/s的实时数据流关联维表的时效性。
根据本发明实施例第一方面,提供一种针对实时维表的关联方法,应用于第一设备;所述方法包括:读取目标业务的实时数据流;对所述实时数据流进行处理,得到若干处理窗口;其中,每个所述处理窗口具有对应的ID属性;所述处理窗口包括相同ID属性的若干个ID号;针对所述处理窗口中任一ID号:获取与所述ID号的ID属性所对应的实时维表;确定与所述实时维表对应的缓存数据库以及HBase备库;判断所述缓存数据库中是否存在所述ID号;若存在,则从所述缓存数据库中读取与所述ID号对应的关联值;若不存在,则从所述HBase备库中读取与所述ID号对应的关联值。
可选的,所述对所述实时数据流进行处理,得到若干处理窗口;包括:针对所述实时数据流中任一实时数据:对所述实时数据进行行转列,得到若干ID号;每个所述ID号具有对应的ID属性;基于预设时间窗口,将实时数据流中的所有ID按照ID属性进行窗口聚合,生成若干个处理窗口。
可选的,所述确定与所述实时维表对应的缓存数据库以及HBase备库,包括:从所述实时维表中读取数据,并基于预设条件对所读取数据进行过滤,得到目标数据;将所述目标数据写入本地对应的缓存区域,生成第一触发指令;基于所述第一触发指令,生成与所述实时维表对应的缓存数据库;基于所述缓存数据库更新HBase备库,得到与所述实时维表对应的HBase备库。
可选的,所述基于所述缓存数据库更新HBase备库,得到与所述实时维表对应的HBase备库,包括:基于HBase主库,对所述缓存数据库进行监听;若监听结果表征所述缓存数据库中存在与所述HBase主库不同的数据;则将所述缓存数据库中更新数据写入所述HBase主库;基于所述HBase主库的数据更新结果,同步更新HBase备库,得到与所述实时维表对应的HBase备库。
可选的,所述的方法还包括:基于所述第一触发指令,对所述缓存数据库中更新数据进行监控;若监控结果表征所述缓存数据库中更新数据的存储时间大于预设时间,则从所述缓存数据库中清除所述更新数据。
可选的,所述的方法还包括:基于所述缓存数据库中更新数据的清除操作,生成第二触发指令;基于所述第二触发指令,从当前实时维表读取数据,并基于读取结果对所述缓存数据库进行数据更新。
可选的,所述缓存数据库包括预设时间存储的更新数据以及常用数据表。
可选的,所述的方法还包括:将所述关联值写入分布式数据库中。
根据本发明实施例第二方面,还提供一种针对实时维表的关联装置;所述装置包括:读取模块,用于读取目标业务的实时数据流;处理模块,用于对所述实时数据流进行处理,得到若干处理窗口;其中,每个所述处理窗口具有对应的ID属性;所述处理窗口包括相同ID属性的若干个ID号;关联模块,用于针对所述处理窗口中任一ID号:获取与所述ID号的ID属性所对应的实时维表;确定与所述实时维表对应的缓存数据库以及HBase备库;判断所述缓存数据库中是否存在所述ID号;若存在,则从所述缓存数据库中读取与所述ID号对应的关联值;若不存在,则从所述HBase备库中读取与所述ID号对应的关联值。
根据本发明实施例第三方面,还提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面所述的方法。
本发明实施例提供一种针对实时维表的关联方法,应用于第一设备;所述方法包括:首先,读取目标业务的实时数据流;并对所述实时数据流进行处理,得到若干处理窗口;其中,每个所述处理窗口具有对应的ID属性;所述处理窗口包括相同ID属性的若干个ID号;其次,针对所述处理窗口中任一ID号:获取与所述ID号的ID属性所对应的实时维表;确定与所述实时维表对应的缓存数据库以及HBase备库;判断所述缓存数据库中是否存在所述ID号;若存在,则从所述缓存数据库中读取与所述ID号对应的关联值;若不存在,则从所述HBase备库中读取与所述ID号对应的关联值。由此,通过设置缓存数据库,能够将百万级/s的实时数据流关联维表的时间从分钟级优化为秒级,从而减少了数据延迟,提高了百万级/s的实时数据流关联维表的时效性。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
图1为本发明一实施例提供的针对实时维表的关联方法的流程示意图;
图2为本发明一实施例中对实时数据流进行处理的流程示意图;
图3为本发明一实施例中确定与实时维表对应的缓存数据库以及HBase备库的流程示意图;
图4为本发明一应用例提供的针对实时维表的关联方法的流程示意图;
图5为本发明一实施例提供的针对实时维表的关联装置的结构示意图。
具体实施方式
为使本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明一实施例提供的针对实时维表的关联方法的流程示意图。
一种针对实时维表的关联方法,应用于第一设备;所述方法至少包括如下步骤:
S101,读取目标业务的实时数据流;
S102,对实时数据流进行处理,得到若干处理窗口;其中,每个处理窗口具有对应的ID属性;处理窗口包括相同ID属性的若干个ID号;
S103,针对处理窗口中任一ID号:获取与ID号的ID属性所对应的实时维表;确定与实时维表对应的缓存数据库以及HBase备库;判断缓存数据库中是否存在ID号;若存在,则从缓存数据库中读取与ID号对应的关联值;若不存在,则从HBase备库中读取与ID号对应的关联值。
在S101至S102中,首先通过Flink(Apache Flink,开源流处理框架)读取目标业务的实时数据流;其中,实时数据流包括若干实时数据;例如:这里的“若干”用于指示百万级以上的数据量。之后针对实时数据流中的任一实时数据:对实时数据流进行语义解析,并基于语义解析结果提取与用户请求对应的若干ID号;获取每个ID号对应的ID属;由此,每一实时数据包括若干个ID属性;最后,基于ID属性,按照预设时间窗口将实时数据流划分为若干处理窗口。
例如:针对百万级/s的实时数据流,对实时数据流进行语义解析,得两个ID号,分别为“姓名ID号”和“订单ID号”;之后分别获取两个ID号对应的ID属性,其中,姓名ID号对应ID属性为用户ID,订单ID号对应的ID属性是内容ID;最后,基于用户ID和内容ID,将实时数据流中ID号按照ID属性窗口聚合;并将窗口聚合后的若干ID号按照1min的时间窗口划分处理窗口。由于每个ID属性具有对应的处理窗口,因此对实时数据流按时间窗口划分后能获得两个不同ID属性的处理窗口。
在S103中,Flink从实时维表读取的数据不是存储在缓存数据库就是存储在HBase主库中;其中,HBase备库是对HBase主库的备份。
需要说明的是,缓存数据库存储的数据基于预设时间的触发更新至HBase主库中。
例如:获取用户ID对应的第一实时维表,以及与内容ID对应的第二实时维表;其中,第一实时维表存储用户ID与身份证的对应关系,第二实时维表存储内容ID与购买清单的对应关系。Flink从第一实时维表读取的数据和从第二实时维表读取的数据分别存储于缓存的不同区域,从而得到第一缓存数据库和第二缓存数据库;基于第一缓存数据库的更新数据对HBase主库进行数据更新,同时基于第二缓存数据库的更新数据对HBase主库进行更新;由此,第一缓存数据库的更新数据和第二缓存数据库的更新数据最终都存储于HBase主库中。
针对第一处理窗口中任一姓名ID号:Flink首先判断缓存数据库中是否存在该姓名ID号;若存在,则此时从第一缓存数据库中读取与该姓名ID号对应的身份证号;若不存在,则说明存储于第一缓存数据库中实时维表数据已经更新至HBase主库中,此时从HBase备库中读取与该姓名ID号对应的身份证号。
针对第二处理窗口中任一订单ID号:Flink首先判断缓存数据库中是否存在该订单ID号;若存在,则此时从第二缓存数据库中读取与该订单ID号对应的购买清单;若不存在,则说明存储于第二缓存数据库中实时维表数据已经更新至HBase主库中,此时从HBase备库中读取与该订单ID号对应的购买清单。
在这里,实时数据流用于指示实时更新的百万级/s的数据流。对实时数据流的处理过程不做任何限定,可以基于上述方法进行处理,还可以利用Flink进行处理。
本实施例在对实时数据流进行时关联时先从缓存数据库中关联,若缓存数据库不存在则从HBase备库中关联;由此通过在HBase主库前设置缓存数据库,不仅分担了实时数据流的关联量,而且提高了数据关联的速度;由此能够将百万级/s的实时数据流关联维表的时间从分钟级优化为秒级,从而减少了数据延迟,提高了实时数据流关联维表的时效性。
如图2所示,为本发明一实施例中对实时数据流进行处理的流程示意图。
在优选的实施方式中,对实时数据流进行处理,得到若干处理窗口;至少包括如下步骤:
S201,针对实时数据流中任一实时数据:对实时数据进行行转列,得到若干ID号;每个ID号具有对应的ID属性;
S202,基于预设时间窗口,将实时数据流中的所有ID按照ID属性进行窗口聚合,生成若干个处理窗口。
具体地,利用Flink对实时数据进行行转列,得到若干ID号;针对若干ID属性中任一种ID属性:按照预设时间窗口将实时数据流中该ID属性对应的所有ID号进行窗口聚合,生成处理窗口;基于若干ID属性,生成若干处理窗口。
例如:利用Flink对实时数据进行行转列,得到“姓名ID号”和“订单ID号”;其中,“姓名ID号”对应用户ID,“订单ID号”对应内容ID;按照预设时间窗口将实时数据流中所有ID号基于ID属性进行窗口聚合分类,生成用户ID对应的第一处理窗口,以及内容ID对应的第二处理窗口;其中,第一处理窗口都是用户ID对应的所有ID号,第二处理窗口都是内容ID对应的所有ID。
本实施例通过Flink将读取的实时数据先进行行专列,得到若干ID号;之后基于预设时间窗口,将实时数据流中所有ID按照ID属性进行窗口聚合,生成ID属性对应的处理窗口;由此,将实时数据流中所有ID号按照ID属性以及时间窗口划分成不同ID属性的处理窗口;从而能够基于ID属性将ID号关联对应的实时维表,提高了实时数据流关联维表的时效性。
如图3所示,为本发明一实施例中确定与实时维表对应的缓存数据库以及HBase备库的流程示意图。
在优选的实施方式中,确定与实时维表对应的缓存数据库以及HBase备库,至少包括如下步骤:
S301,从实时维表中读取数据,并基于预设条件对所读取数据进行过滤,得到目标数据;
S302,将目标数据写入本地对应的缓存区域,生成第一触发指令;
S303,基于第一触发指令,生成与实时维表对应的缓存数据库;
S304,基于缓存数据库更新HBase备库,得到与实时维表对应的HBase备库。
具体地,基于缓存数据库更新HBase备库,得到与实时维表对应的HBase备库,包括:基于HBase主库,对缓存数据库进行监听;若监听结果表征缓存数据库中存在与HBase主库不同的数据;则将缓存数据库中更新数据写入HBase主库;基于HBase主库的数据更新结果,同步更新HBase备库,得到与实时维表对应的HBase备库。
例如:首先Flink从实时维表中读取数据,并根据预设条件对读取数据进行过滤,从而将读取数据中不合规数据删除,得到第一目标数据和第二目标数据;其次,Flink将第一目标数据和第二目标数据分别存储于本地对应的第一缓存区域和对应的第二缓存区域,从而得到与第一目标数据对应的第一缓存数据库以及与第二目标数据对应的第二缓存数据库;之后,基于HBase主库,HBase Proxy对第一缓存数据库的更新数据进行监听;若监听结果表征第一缓存数据库中存在与HBase主库不同的数据,则将第一缓存数据库中更新数据写入HBase主库;若监听结果表征第一缓存数据库中不存在与HBase主库不同的数据,则说明第一缓存数据库中更新数据已经写入HBase主库中。同时,HBase Proxy对第二缓存数据库的更新数据进行监听;若监听结果表征第二缓存数据库中存在与HBase主库不同的数据,则将第二缓存数据库中更新数据写入HBase主库;若监听结果表征第二缓存数据库中不存在与HBase主库不同的数据,则说明第二缓存数据库中更新数据已经写入HBase主库中;最后,通过BingLog日志保证HBase主库与HBase备库的数据一致性。
本实施例通过HBase Proxy对缓存数据库与HBase主库的数据一致性进行监控,从而使得缓存数据库中更新数据能够及时更新至HBase主库中,进而保证了缓存数据库与HBase主库的数据一致性。本实施例通过设置HBase备库不仅能够保证实时维表数据存储的安全性,而且能够使得HBase主库与HBase备库的数据保持一致,从而有利于实时数据流的关联。
另外,本实施例将更新数据写入HBase主库中,而在进行数据关联时是从HBase备库中读取数据;由此将读数据和写数据两个过程分开,减少服务器处理数据的压力,提高了实时数据流关联维表的效率。
在优选的实施方式中,所述的方法还包括:基于所述第一触发指令,对所述缓存数据库中更新数据进行监控;若监控结果表征所述缓存数据库中更新数据的存储时间大于预设时间,则从所述缓存数据库中清除所述更新数据。
例如:Flink将目标数据写入本地对应的缓存区域时,Flink就开始记录目标数据在缓存区域的存储时间;当存储时间大于预设时间时,则清除缓存数据库中的更新数据。
在这里,预设时间是根据实际业务场景确定的;例如:预设时间为24h。
由此,本实施例通过对缓存数据库中更新数据的存储时间进行设置,并在更新数据的存储时间大于预设时间时删除缓存数据库中更新数据,由此防止过期的更新数据浪费缓存区域,提高了缓存数据库的利用率,从而提高了实时数据流关联维表的时效性。
在优选的实施方式中,所述的方法还包括:基于所述缓存数据库中更新数据的清除操作,生成第二触发指令;基于所述第二触发指令,从当前实时维表中读取数据,并基于读取结果对所述缓存数据库进行数据更新。
具体地,当第一设备接收到缓存数据库中更新数据已经清除完的指令时,第一设备控制Flink从当前实时维表中读取数据,并在对读取数据进行过滤处理后写入缓存数据库中。例如:若缓存数据库中存储的更新数据24h清除一次,那么Flink 24h对实时数据进行一次读取操作。由此,缓存数据库能够按照预设时间对所存储的实时维表的数据进行更新,提高了实时数据关联的时效性。
在优选的实施方式中,所述缓存数据库包括预设时间存储的更新数据以及常用数据表。
具体地,若常用数据表中包含更新数据时,则基于更新数据对常用数据表中数据进行更新;若常用数据表中不包含更新数据时,则不需要对常用数据表进行更新。在对缓存数据库中更新数据进行删除时,是基于预设时间进行删除,而对于常用数据表中更新数据则是基于常用数据表的更新操作进行删除,而不是基于预设时间进行删除。也就是说,常用数据表中更新数据的删除是基于其对应的更新数据触发,而非预设时间触发。
在优选的实施方式中,所述的方法还包括:将所述关联值写入分布式数据库中。
Flink将所述关联值写入分布式数据库中。在这里,分布式数据库用于指示存储实时维表的分布式数据库之外的其他分布式数据库。
下面结合具体应用对本实施例上述方法进行详细说明。
读取目标业务的实时数据流;针对实时数据流中任一实时数据:对实时数据进行行转列,得到若干ID号;其中,每个ID号具有对应的ID属性;基于预设时间窗口,将实时数据流中的所有ID按照ID属性进行窗口聚合,生成若干个处理窗口。
针对所述处理窗口中任一ID号:获取与该ID号的ID属性所对应的实时维表;确定与该实时维表对应的缓存数据库以及HBase备库;判断所述缓存数据库中是否存在所述ID号;若存在,则从所述缓存数据库中读取与所述ID号对应的关联值;若不存在,则从所述HBase备库中读取与所述ID号对应的关联值;其中,所述缓存数据库包括预设时间存储的更新数据以及常用数据表;当常用数据表中包含更新数据时,常用数据表是基于对应更新数据的更新而更新。
将所述关联值写入分布式数据库中。
确定与所述实时维表对应的缓存数据库以及HBase备库,包括:从所述实时维表中读取数据,并基于预设条件对所读取数据进行过滤,得到目标数据;将所述目标数据写入本地对应的缓存区域,生成第一触发指令;基于所述第一触发指令,生成与所述实时维表对应的缓存数据库;基于HBase主库,对所述缓存数据库进行监听;若监听结果表征所述缓存数据库中存在与所述HBase主库不同的数据,则将所述缓存数据库中更新数据写入所述HBase主库;基于所述HBase主库的数据更新结果,同步更新HBase备库,得到与所述实时维表对应的HBase备库。
基于第一触发指令,对所述缓存数据库中更新数据进行监控;若监控结果表征所述缓存数据库中更新数据的存储时间大于预设时间,则从所述缓存数据库中清除所述更新数据。基于所述缓存数据库中更新数据的清除操作,生成第二触发指令;基于所述第二触发指令,从当前实时维表读取数据,并基于读取结果对所述缓存数据库进行数据更新。
如图4所示,为本发明一应用例提供的针对实时维表的关联方法的流程示意图。
Flink读取实时数据,并对实时数据进行行专列,得到两个ID号,分别为“姓名ID号”和“订单ID号”;然后Flink获取“姓名ID号”的ID属性为用户ID,并获取“订单ID号”的ID属性为内容ID;之后Flink基于用户ID,按照1分钟时间窗口对实时数据流进行窗口聚合,得到用户ID对应的第一处理窗口;同时Flink基于内容ID,按照1分钟时间窗口对实时数据流进行窗口聚合,得到内容ID对应的第二处理窗口。
获取与用户ID对应的第一实时维表,以及与内容ID对应的第二实时维表;其中,第一实时维表存储姓名ID号与身份证的对应关系,第二实时维表存储订单ID号与购买清单的对应关系。Flink读取第一实时维表的数据,并在对读取数据进行数据处理后写入用户Redis缓存;同时Flink读取第二实时维表的数据,并在对读取数据进行数据处理后写入内容Redis缓存中。同时Flink分别对用户Redis缓存和/或内容Redis缓存中更新数据的存储时间进行监控,若监控结果表征存储时间达到预设时间,则清除用户Redis缓存和/或内容Redis缓存的更新数据。
HBase Proxy分别对用户Redis缓存以及内容Redis缓存进行监控;若监控结果表征用户Redis缓存存在HBase主库不同的数据,则基于用户Redis缓存的更新数据对HBase主库进行更新,同步更新HBase备库;若监控结果表征内容Redis缓存存在HBase主库不同的数据,则基于内容Redis缓存的更新数据对HBase主库进行更新,同步更新HBase备库。
针对第一处理窗口中任一姓名ID号:判断用户Redis缓存中是否存在该姓名ID号;若存在,则从用户Redis缓存中读取与该姓名ID号对应的身份证号;若不存在,则从HBase备库中读取与姓名ID号对应的身份证号;针对第二处理窗口中任一订单ID号:判断内容Redis缓存中是否存在订单ID号;若存在,则从内容Redis缓存中读取与该订单ID号对应的购买清单;若不存在,则从HBase备库中读取与该订单ID号对应的购买清单。最后,将若干身份证号和/或购买清单通过Sink输出,并写入分布式数据库中。
本实施例在实时计算中进行了削峰填谷的操作,例如:基于实时数据流从缓存数据库读数据或者从HBase备库中读数据的操作,以及 Flink向缓存数据库写数据的操作;将上述两操作时间错开。由此,能够防止第一设备发生雪崩,提高了实时数据流关联维表的时效性。
如图5所示,为本发明一实施例提供的针对实时维表的关联装置的结构示意图。
一种针对实时维表的关联装置,应用于第一设备;所述装置500包括:读取模块501,用于读取目标业务的实时数据流;处理模块502,用于对所述实时数据流进行处理,得到若干处理窗口;其中,每个所述处理窗口具有对应的ID属性;所述处理窗口包括相同ID属性的若干个ID号;关联模块503,用于针对所述处理窗口中任一ID号:获取与所述ID号的ID属性所对应的实时维表;确定与所述实时维表对应的缓存数据库以及HBase备库;判断所述缓存数据库中是否存在所述ID号;若存在,则从所述缓存数据库中读取与所述ID号对应的关联值;若不存在,则从所述HBase备库中读取与所述ID号对应的关联值。
在优选的实施方式中,处理模块包括:行专列单元,用于针对所述实时数据流中任一实时数据:对所述实时数据进行行转列,得到若干ID号;每个所述ID号具有对应的ID属性;窗口聚合单元,用于基于预设时间窗口,将实时数据流中的所有ID按照ID属性进行窗口聚合,生成若干个处理窗口。
在优选的实施方式中,关联模块包括:过滤单元,用于从所述实时维表中读取数据,并基于预设条件对所读取数据进行过滤,得到目标数据;第一生成单元,用于将所述目标数据写入本地对应的缓存区域,生成第一触发指令;第二生成单元,用于基于所述第一触发指令,生成与所述实时维表对应的缓存数据库;获得单元,用于基于所述缓存数据库更新HBase备库,得到与所述实时维表对应的HBase备库。
在优选的实施方式中,获得单元包括:监听子单元,用于基于HBase主库,对所述缓存数据库进行监听;写入子单元,用于若监听结果表征所述缓存数据库中存在与所述HBase主库不同的数据;则将所述缓存数据库中更新数据写入所述HBase主库;更新子单元,用于基于所述HBase主库的数据更新结果,同步更新HBase备库,得到与所述实时维表对应的HBase备库。
在优选的实施方式中,所述装置还包括:监控模块,用于基于所述第一触发指令,对所述缓存数据库中更新数据进行监控;清除模块,用于若监控结果表征所述缓存数据库中更新数据的存储时间大于预设时间,则从所述缓存数据库中清除所述更新数据。
在优选的实施方式中,所述装置还包括:生成模块,用于基于所述缓存数据库中更新数据的清除操作,生成第二触发指令;更新模块,用于基于所述第二触发指令,从当前实时维表读取数据,并基于读取结果对所述缓存数据库进行数据更新。
在优选的实施方式中,所述缓存数据库包括预设时间存储的更新数据以及常用数据表;当常用数据表中包含更新数据时,常用数据表是基于对应更新数据的更新而更新。
在优选的实施方式中,所述装置还包括:写入模块,用于将所述关联值写入分布式数据库中。
上述装置可执行本发明一实施例所提供的针对实时维表的关联方法,具备执行针对实时维表的关联方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明一实施例所提供的针对实时维表的关联方法。
本发明还提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现本发明所述的针对实时维表的关联方法。
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请如下各实施例的方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、***的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、***。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种针对实时维表的关联方法,其特征在于,应用于第一设备;所述方法包括:
读取目标业务的实时数据流;
对所述实时数据流进行处理,得到若干处理窗口;其中,每个所述处理窗口具有对应的ID属性;所述处理窗口包括相同ID属性的若干个ID号;
针对所述处理窗口中任一ID号:获取与所述ID号的ID属性所对应的实时维表;确定与所述实时维表对应的缓存数据库以及HBase备库;判断所述缓存数据库中是否存在所述ID号;若存在,则从所述缓存数据库中读取与所述ID号对应的关联值;若不存在,则从所述HBase备库中读取与所述ID号对应的关联值。
2.根据权利要求1所述的方法,其特征在于,所述对所述实时数据流进行处理,得到若干处理窗口;包括:
针对所述实时数据流中任一实时数据:对所述实时数据进行行转列,得到若干ID号;每个所述ID号具有对应的ID属性;
基于预设时间窗口,将实时数据流中的所有ID按照ID属性进行窗口聚合,生成若干个处理窗口。
3.根据权利要求1所述的方法,其特征在于,所述确定与所述实时维表对应的缓存数据库以及HBase备库,包括:
从所述实时维表中读取数据,并基于预设条件对所读取数据进行过滤,得到目标数据;
将所述目标数据写入本地对应的缓存区域,生成第一触发指令;
基于所述第一触发指令,生成与所述实时维表对应的缓存数据库;
基于所述缓存数据库更新HBase备库,得到与所述实时维表对应的HBase备库。
4.根据权利要求3所述的方法,其特征在于,所述基于所述缓存数据库更新HBase备库,得到与所述实时维表对应的HBase备库,包括:
基于HBase主库,对所述缓存数据库进行监听;
若监听结果表征所述缓存数据库中存在与所述HBase主库不同的数据;则将所述缓存数据库中更新数据写入所述HBase主库;
基于所述HBase主库的数据更新结果,同步更新HBase备库,得到与所述实时维表对应的HBase备库。
5.根据权利要求3所述的方法,其特征在于,还包括:
基于所述第一触发指令,对所述缓存数据库中更新数据进行监控;
若监控结果表征所述缓存数据库中更新数据的存储时间大于预设时间,则从所述缓存数据库中清除所述更新数据。
6.根据权利要求5所述的方法,其特征在于,还包括:
基于所述缓存数据库中更新数据的清除操作,生成第二触发指令;
基于所述第二触发指令,从当前实时维表读取数据,并基于读取结果对所述缓存数据库进行数据更新。
7.根据权利要求1所述的方法,其特征在于,所述缓存数据库包括预设时间存储的更新数据以及常用数据表;
当常用数据表中包含更新数据时,常用数据表是基于对应更新数据的更新而更新。
8.根据权利要求1所述的方法,其特征在于,还包括:
将所述关联值写入分布式数据库中。
9.一种针对实时维表的关联装置,其特征在于,应用于第一设备;所述装置包括:
读取模块,用于读取目标业务的实时数据流;
处理模块,用于对所述实时数据流进行处理,得到若干处理窗口;其中,每个所述处理窗口具有对应的ID属性;所述处理窗口包括相同ID属性的若干个ID号;
关联模块,用于针对所述处理窗口中任一ID号:获取与所述ID号的ID属性所对应的实时维表;确定与所述实时维表对应的缓存数据库以及HBase备库;判断所述缓存数据库中是否存在所述ID号;若存在,则从所述缓存数据库中读取与所述ID号对应的关联值;若不存在,则从所述HBase备库中读取与所述ID号对应的关联值。
10.一种计算机可读介质,其特征在于,其上存储有计算机程序,所述程序被处理器执行时实现如权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310410695.XA CN116126872B (zh) | 2023-04-18 | 2023-04-18 | 一种针对实时维表的关联方法、装置及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310410695.XA CN116126872B (zh) | 2023-04-18 | 2023-04-18 | 一种针对实时维表的关联方法、装置及计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116126872A CN116126872A (zh) | 2023-05-16 |
CN116126872B true CN116126872B (zh) | 2023-06-23 |
Family
ID=86304922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310410695.XA Active CN116126872B (zh) | 2023-04-18 | 2023-04-18 | 一种针对实时维表的关联方法、装置及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116126872B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009004231A2 (fr) * | 2007-06-13 | 2009-01-08 | Compario | Procede de tri d'informations |
CN112306700A (zh) * | 2019-07-23 | 2021-02-02 | 北京京东尚科信息技术有限公司 | 一种异常rpc请求的诊断方法和装置 |
CN112765166A (zh) * | 2021-01-06 | 2021-05-07 | 深圳市欢太科技有限公司 | 数据处理方法、装置及计算机可读存储介质 |
CN113609374A (zh) * | 2021-02-05 | 2021-11-05 | 腾讯科技(深圳)有限公司 | 基于内容推送的数据处理方法、装置、设备及存储介质 |
CN113760988A (zh) * | 2021-02-04 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种无界流数据关联处理方法、装置、设备及存储介质 |
CN113761018A (zh) * | 2021-02-24 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 数据处理方法、装置、设备及存储介质 |
CN114510486A (zh) * | 2022-02-22 | 2022-05-17 | 北京达佳互联信息技术有限公司 | 维度表数据处理方法、装置、电子设备及存储介质 |
CN115048372A (zh) * | 2022-04-12 | 2022-09-13 | 北京贝壳时代网络科技有限公司 | 多流数据的关联方法和关联装置 |
CN115185967A (zh) * | 2022-07-06 | 2022-10-14 | 北京字跳网络技术有限公司 | 数据处理方法、装置、电子设备和存储介质 |
CN115328958A (zh) * | 2022-08-25 | 2022-11-11 | 中国电信股份有限公司 | 数据关联方法及装置、计算机存储介质、电子设备 |
CN115587118A (zh) * | 2022-09-26 | 2023-01-10 | 新华三技术有限公司 | 任务数据的维表关联处理方法及装置、电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9558225B2 (en) * | 2013-12-16 | 2017-01-31 | Sybase, Inc. | Event stream processor |
-
2023
- 2023-04-18 CN CN202310410695.XA patent/CN116126872B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009004231A2 (fr) * | 2007-06-13 | 2009-01-08 | Compario | Procede de tri d'informations |
CN112306700A (zh) * | 2019-07-23 | 2021-02-02 | 北京京东尚科信息技术有限公司 | 一种异常rpc请求的诊断方法和装置 |
CN112765166A (zh) * | 2021-01-06 | 2021-05-07 | 深圳市欢太科技有限公司 | 数据处理方法、装置及计算机可读存储介质 |
CN113760988A (zh) * | 2021-02-04 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种无界流数据关联处理方法、装置、设备及存储介质 |
CN113609374A (zh) * | 2021-02-05 | 2021-11-05 | 腾讯科技(深圳)有限公司 | 基于内容推送的数据处理方法、装置、设备及存储介质 |
CN113761018A (zh) * | 2021-02-24 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 数据处理方法、装置、设备及存储介质 |
CN114510486A (zh) * | 2022-02-22 | 2022-05-17 | 北京达佳互联信息技术有限公司 | 维度表数据处理方法、装置、电子设备及存储介质 |
CN115048372A (zh) * | 2022-04-12 | 2022-09-13 | 北京贝壳时代网络科技有限公司 | 多流数据的关联方法和关联装置 |
CN115185967A (zh) * | 2022-07-06 | 2022-10-14 | 北京字跳网络技术有限公司 | 数据处理方法、装置、电子设备和存储介质 |
CN115328958A (zh) * | 2022-08-25 | 2022-11-11 | 中国电信股份有限公司 | 数据关联方法及装置、计算机存储介质、电子设备 |
CN115587118A (zh) * | 2022-09-26 | 2023-01-10 | 新华三技术有限公司 | 任务数据的维表关联处理方法及装置、电子设备 |
Non-Patent Citations (2)
Title |
---|
云海大数据一体机体系结构和关键技术;张东;亓开元;吴楠;辛国茂;刘正伟;颜秉珩;郭锋;;计算机研究与发展(第02期);第148-163页 * |
大数据文件存储策略探索;屈美娟;付良廷;;科技创新与应用(第12期);第146-147页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116126872A (zh) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105827706B (zh) | 消息推送装置及方法 | |
CN107526631B (zh) | 一种任务监控方法、装置、设备和介质 | |
US9009850B2 (en) | Database management by analyzing usage of database fields | |
CN103019879A (zh) | 浏览器崩溃信息的处理方法及*** | |
WO2019041707A1 (zh) | 大批量业务数据导出方法及*** | |
CN110990420A (zh) | 数据查询方法、装置 | |
CN110795756A (zh) | 一种数据脱敏方法、装置、计算机设备及计算机可读存储介质 | |
CN108228875B (zh) | 基于完美哈希的日志解析方法及装置 | |
CN108337100B (zh) | 一种云平台监测的方法和装置 | |
CN110599229A (zh) | 亿级流量广告实时处理方法、存储介质、电子设备和*** | |
CN115934414A (zh) | 数据备份方法、数据恢复方法、装置、设备及存储介质 | |
CN116126872B (zh) | 一种针对实时维表的关联方法、装置及计算机可读介质 | |
WO2014055438A1 (en) | Reference data segmentation from single to multiple tables | |
CN104317820B (zh) | 报表的统计方法和装置 | |
CN110597830B (zh) | 实时指标生成方法和***、电子设备及存储介质 | |
CN110677271A (zh) | 基于elk的大数据告警方法、装置、设备及存储介质 | |
CN114238823A (zh) | 访问网站的方法、装置、计算机设备和存储介质 | |
CN113760568A (zh) | 数据处理的方法和装置 | |
CN113590447A (zh) | 埋点处理方法和装置 | |
US20210173729A1 (en) | Systems and methods of application program interface (api) parameter monitoring | |
CN111274316A (zh) | 多级数据流转任务的执行方法及装置、电子设备、存储介质 | |
CN111858480A (zh) | 一种数据处理方法、装置及计算机存储介质 | |
KR102186918B1 (ko) | 분산 환경 기반 실시간 고속 스트림 데이터 처리 방법 | |
CN108268342A (zh) | 大规模it监控数据的存储运算***及方法 | |
CN112131027A (zh) | 分布式应用集群及数据脱敏方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |