CN116303498A - 流批一体方法、装置、设备和介质 - Google Patents

流批一体方法、装置、设备和介质 Download PDF

Info

Publication number
CN116303498A
CN116303498A CN202310174780.0A CN202310174780A CN116303498A CN 116303498 A CN116303498 A CN 116303498A CN 202310174780 A CN202310174780 A CN 202310174780A CN 116303498 A CN116303498 A CN 116303498A
Authority
CN
China
Prior art keywords
data
event
time
batch
logic
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.)
Granted
Application number
CN202310174780.0A
Other languages
English (en)
Other versions
CN116303498B (zh
Inventor
杨涵冰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Shuhe Information Technology Co Ltd
Original Assignee
Shanghai Shuhe Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Shuhe Information Technology Co Ltd filed Critical Shanghai Shuhe Information Technology Co Ltd
Priority to CN202310174780.0A priority Critical patent/CN116303498B/zh
Publication of CN116303498A publication Critical patent/CN116303498A/zh
Application granted granted Critical
Publication of CN116303498B publication Critical patent/CN116303498B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2372Updates performed during offline database operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明涉及一种流批一体方法、装置、设备和介质。流批一体方法包括:数据源连接步骤;数据传输步骤;数据运算步骤;且数据存在根节点。通过以事件中心为核心存储,结合运算引擎,封装实时流特有的复杂概念,能够实现数据的离线修正,保证实时、离线数据一致,降低维护难度与开发门槛,且根节点使用户在获取相关数据时无需询问全量数据。

Description

流批一体方法、装置、设备和介质
技术领域
本发明涉及数据处理领域,特别是涉及一种流批一体方法、装置、设备和介质。
背景技术
在如今互联网公司中,特征、模型、决策的实时性变得越来越重要,各场景对于实时化的需求也越来越多。
在对各场景的实时化实践中,我们遇到了一些共有的问题:离线、实时数据口径不一致;离线、实时逻辑不一致;批量、点查等查询场景多样;实时流特有概念较难理解,开发门槛较高;实时流回溯测试困难等问题。
传统的实时流方案有Lambda和Kappa两种。
Lambda架构在2015年由Nathan Marz提出,在逻辑上将数据系统分为三个层面,即:批处理(batch)层、速度(speed)层和服务(serving)层。而作为一种大数据的范例,它可以让用户通过构建数据系统,以克服上述数据延迟与准确性等问题。Lambda提供了实时和离线的两套逻辑,最终在数据库中将两者合并起来。Lambda的优点是架构简单,很好地结合了离线批处理和实时流处理的优点,稳定且实时计算成本可控,并且离线数据易于订正;缺点是实时、离线数据很难保持一致结果,并且需要维护两套系统。
Kappa架构是由Jay Kreps提出的一种架构思想。Kappa架构的原理是:在Lambda的基础上进行了优化,删除了Batch Layer的架构,将数据通道以消息队列进行替代。Kappa全部都用实时的逻辑,将历史的数据存下来,每次得到一个切片数据,最后合并起来。Kappa的优点是只需要维护实时处理模块,可以通过消息重放,无需离线实时数据合并;缺点是强依赖消息中间件缓存能力,实时数据处理时存在丢失数据,这个缺点在金融信息处理领域是不能容忍的。
针对上述技术问题,现有技术中不存在有效的解决方案。
发明内容
基于此,有必要针对上述技术问题,提供一种流批一体方法、装置、设备和介质。以事件中心为核心存储,结合运算引擎,封装实时流特有的复杂概念,能够实现数据的离线修正,保证实时、离线数据一致,降低维护难度与开发门槛。
根据本发明的第一方面,提供了一种流批一体方法,包括:
数据源连接步骤,进行数据源的接入;
数据传输步骤,将数据源中以事件形式记录的对数据源执行更改的操作的数据输入分布式消息系统;分布式消息系统中的实时数据同步至事件中心,数据源的离线修正及切片同步至事件中心;
数据运算步骤,通过运算引擎对数据进行处理;其中实时触发通过分布式消息系统获取数据,离线跑批通过事件中心获取相关离线数据;
事件中心中的数据均为事件且具有事件触发主体和事件触发时间;
事件中心中的数据存在根节点,触发的事件的主体作为根节点,其他事件均由根节点关联得出,且能够获取的事件的事件时间小于根节点事件时间。
在一些实施例中,数据源为MYSQL,以事件形式记录的对数据源执行更改的操作的数据为binlog,分布式消息系统为Kafka,运算引擎为Flink。
在一些实施例中,数据传输步骤中,使用Lambda架构存储所有变化数据,进行实时写入、离线修正;事件中心中的数据以标准化处理后的时序形式存储。
在一些实施例中,分布式消息系统中数据经由运算引擎进行消费,并实时写入事件中心中分布式存储数据库的热存,且分布式存储数据库将其热存中数据同步至其冷存中,冷存中数据可以通过重新加热进入热存;分布式存储数据库为HBase。
在一些实施例中,事件中心中存在水印机制,水印机制用于在多流情况下获取完整数据。
在一些实施例中,事件中心提供消息转发机制,消息转发机制通过异步转同步支持触发——消息接收、触发——轮询式调用,并使得事件中心的接口具有消息回溯能力。
在一些实施例中,运算引擎中数据流包括触发逻辑、主逻辑、取数逻辑、输出逻辑,其中触发逻辑、取数逻辑、输出逻辑能够随流、批环境自动变化,主逻辑不需要考虑流、批环境变化。
在一些实施例中,事件中心中注册事件为对数据误差要求高的核心事件时,通过全切片作业将切片数据直接写入分布式存储数据库的热存,不进行数据是否存在的验证。
在一些实施例中,重新加热进入热存,包括:利用HBase Range Scan机制批量读取热存中索引表及主表数据;检查数据,筛出在热存主表中不存在的数据;利用HBaseMultiGet机制,批量从冷存数据表中获取热存中不存在的数据以及热存主表中存在但生存时间超过阈值的数据,将获取的数据异步的进行重加热;所述阈值的取值范围为热存TTL的30%-40%。
根据本发明的第二方面,提供了一种流批一体装置,包括:
数据源连接模块,用于进行数据源的接入;
数据传输模块,用于将数据源中以事件形式记录的对数据源执行更改的操作的数据输入分布式消息系统;分布式消息系统中的实时数据同步至事件中心,数据源的离线修正及切片同步至事件中心;
数据运算模块,用于通过运算引擎对数据进行处理;其中实时触发通过分布式消息系统获取数据,离线跑批通过事件中心获取相关离线数据;
事件中心中的数据均为事件且具有事件触发主体和事件触发时间;
事件中心中的数据存在根节点,触发的事件的主体作为根节点,其他事件均由根节点关联得出,且能够获取的事件的事件时间小于根节点事件时间。
在一些实施例中,数据源为MYSQL,以事件形式记录的对数据源执行更改的操作的数据为binlog,分布式消息系统为Kafka,运算引擎为Flink;
在一些实施例中,数据传输模块中,使用Lambda架构存储所有变化数据,进行实时写入、离线修正;事件中心中的数据以标准化处理后的时序形式存储;
在一些实施例中,分布式消息系统中数据经由运算引擎进行消费,并实时写入事件中心中分布式存储数据库的热存,且分布式存储数据库将其热存中数据同步至其冷存中,冷存中数据可以通过重新加热进入热存;分布式存储数据库为HBase;
在一些实施例中,事件中心中存在水印机制,水印机制用于在多流情况下获取完整数据;
在一些实施例中,事件中心提供消息转发机制,消息转发机制通过异步转同步支持触发——消息接收、触发——轮询式调用,并使得事件中心的接口具有消息回溯能力;
在一些实施例中,运算引擎中数据流包括触发逻辑、主逻辑、取数逻辑、输出逻辑,其中触发逻辑、取数逻辑、输出逻辑能够随流、批环境自动变化,主逻辑不需要考虑流、批环境变化;
在一些实施例中,事件中心中注册事件为对数据误差要求高的核心事件时,通过全切片作业将切片数据直接写入分布式存储数据库的热存,不进行数据是否存在的验证;
在一些实施例中,重新加热进入热存,包括:利用HBase Range Scan机制批量读取热存中索引表及主表数据;检查数据,筛出在热存主表中不存在的数据;利用HBaseMultiGet机制,批量从冷存数据表中获取热存中不存在的数据以及热存主表中存在但生存时间超过阈值的数据,将获取的数据异步的进行重加热;所述阈值的取值范围为热存TTL的30%-40%。
根据本发明的第三方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,处理器执行计算机程序时实现上述任一实施例方法的步骤。
根据本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例方法的步骤。
通过实施本发明的上述方案,可以得到以下有益效果:
1.能够接入RabbitMQ、Kafka、MySQL等数据源,实时数据以时序形式存入事件中心的HBase中,并自动进行初始化和离线修正。
2.事件中心的事件存储以冷热混存的方式进行,结合重加热,追求最佳性价比。
3.以取数概念代替流Join概念,降低实时流开发门槛。封装复杂的触发与取数逻辑,为用户提供流批一体的开发环境,流批作业自助上线无需修改代码。以事件中心为中转,结合事件中心消息转发机制,提供了流、批、调用一体化的方案,使模型策略开发人员无需关心最终使用的系统,专注于业务逻辑,无需修改代码。
4.通过触发事件作为根节点构建数据树,使用户在获取相关数据时无需询问全量数据。
5.对数据误差要求高的事件通过全切片机制直接写入分布式存储数据库的热存,以一定量的重复性换取切片数据的完整性并提高数据读取的速度。
6.通过对热存中生存时间超过阈值的数据进行重加热,防止经常使用的热数据因超时被删除。
附图说明
图1是本发明的流批一体方法的一些实施例的流程图;
图2是本发明的流批一体方法的一些实施例的示意图;
图3是本发明的流批一体方法的另一些实施例的示意图;
图4是本发明的流批一体方法的一些实施例的事件中心存储数据流示意图;
图5是本发明的流批一体方法的一些实施例的事件中心存储结构示意图;
图6是本发明的流批一体方法的一些实施例的事件中心读取数据流示意图;
图7是本发明的流批一体方法的一些实施例中事件中心消息转发的触发——消息接收的示意图;
图8是本发明的流批一体方法的一些实施例中事件中心消息转发的触发——轮询式的示意图;
图9是本发明的流批一体方法的一些实施例中Flink代码组织结构的示意图;
图10是本发明的特征存储服务方案数据流的示意图;
图11是本发明的接口触发——轮询方案数据流的示意图;
图12是本发明的接口触发——消息接收方案数据流的示意图;
图13是本发明的直接消息接收方案数据流的示意图;
图14示出了本发明一些实施例的数据结构示意图;
图15是本发明一些实施例的流批一体装置的结构示意图;
图16是用于实现本发明一些实施例的计算机设备的内部结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1示出了本发明的流批一体方法的一些实施例的流程图。
如图1所示,该方法包括:
数据源连接步骤S102,进行数据源的接入;
数据传输步骤S104,将数据源中以事件形式记录的对数据源执行更改的操作的数据输入分布式消息系统;分布式消息系统中的实时数据同步至事件中心,数据源的离线修正及切片同步至事件中心;
数据运算步骤S106,通过运算引擎对数据进行处理;其中实时触发通过分布式消息系统获取数据,离线跑批通过事件中心获取相关离线数据;
事件中心中的数据均为事件,具有事件触发主体和事件触发时间;
事件中心中的数据存在根节点,触发的事件的主体作为根节点,其他事件均由根节点关联得出,且能够获取的事件的事件时间小于根节点事件时间。
在其中一些实施例中,数据源为MYSQL,以事件形式记录的对数据源执行更改的操作的数据为binlog,分布式消息系统为Kafka,运算引擎为Flink。
在其中一些实施例中,数据传输步骤中,使用Lambda架构存储所有变化数据,进行实时写入、离线修正;事件中心中的数据以标准化处理后的时序形式存储。
在其中一些实施例中,分布式消息系统中数据经由运算引擎进行消费,并实时写入事件中心中分布式存储数据库的热存,且分布式存储数据库将其热存中数据同步至其冷存中,冷存中数据可以通过重新加热进入热存;分布式存储数据库为HBase。
在其中一些实施例中,事件中心中存在水印机制,水印机制用于在多流情况下获取完整数据。
在其中一些实施例中,事件中心提供消息转发机制,消息转发机制通过异步转同步支持触发——消息接收、触发——轮询式调用,并使得事件中心的接口具有消息回溯能力。
在其中一些实施例中,运算引擎中数据流包括触发逻辑、主逻辑、取数逻辑、输出逻辑,其中触发逻辑、取数逻辑、输出逻辑能够随流、批环境自动变化,主逻辑不需要考虑流、批环境变化。
在其中一些实施例中,事件中心中注册事件为对数据误差要求高的核心事件时,通过全切片作业将切片数据直接写入分布式存储数据库的热存,不进行数据是否存在的验证。
针对数据误差要求高的事件,需要使用定期全切片机制,全切片机制可以确保仅使用热存即可获取在热存缓存时间内的任意时刻全量数据切片,此时可以在读取时使用仅热存模式来极大的提升读取速度。
全切片机制需要对对应事件的所有数据进行一次性的载入,数据量较大,考虑到全切片的数据录入作业本身需要的时间,一般全切片时间取HBase热存TTL时间的三分之一。当满足要求时,开始全切片作业,全切片作业和普通的增量离线同步作业的不同之处除了数据为全量数据而不是增量数据外,在写入的过程中也不会对数据是否存在进行二次验证,而是直接将切片数据写入HBase中,以一定量的重复性(由于全量变化数据至少包含一次全量切片数据,因此在最差情况下,数据总量会翻一倍,但一般情况下,由于会产生增量变化数据,数据总量的增加量会少于一倍)换取切片数据的完整性,以及数据读取的速度。
在其中一些实施例中,重新加热进入热存,包括:利用HBase Range Scan机制批量读取热存中索引表及主表数据;检查数据,筛出在热存主表中不存在的数据;利用HBaseMultiGet机制,批量从冷存数据表中获取热存中不存在的数据,此时需要额外判断,获取热存主表中存在但超过热存TTL30%到40%(随机)的数据(为了防止经常使用的热数据在热存中超时被删除,同时也为了防止重加热的热数据过于集中,因此使用30%到40%的随机阈值),将这些数据异步的进行重加热;按照读取要求,返回获取的完整数据。
HBase Range Scan是指在HBase中通过范围查询来获取数据的过程。这个过程可以通过设置一个起始行键和结束行键来定义范围。HBase将会返回所有从起始行键到结束行键之间的数据。可以高效的获取这段区间内的数据。
HBase MultiGet是指在HBase中同时获取多行数据的过程。MultiGet操作允许开发人员通过单次请求来获取多个行的数据,而不是通过单独对每个行进行单独的请求来获取数据。这可以减少网络请求次数,并提高性能。
图2示出了本发明的流批一体方法的一些实施例的示意图。
如图2所示,采用Lambda+Kappa,左边为Lambda部分,右边为Kappa部分。
左边lambda部分,MYSQL的Binlog同步至Kafka,将Kafka的消息变化数据存入HBase;全量数据由MYSQL通过Sqoop抽取进入EMR,EMR进行修正将修正数据和切片数据存入HBase。
右边Kappa部分,Flink流处理与Flink批处理代码相同,实时流处理时Flink直接消费Kafka的实时流数据获得最低的延时,离线批处理时数据来源于HBase。
图3示出了本发明的流批一体方法的一些实施例的数据流示意图;
如图3所示,MYSQL的Binlog进入Kafka,实时数据通过数据同步同步进事件中心,离线修正以及切片把数据送到事件中心;Flink作业在实时的触发过程中通过Kafka获取相关数据,离线跑批过程中通过事件中心获取相关数据。由元数据中心统一管理数据,统一维护数据,以避免同步的问题。Flink提供整个逻辑服务。
图4示出了本发明的流批一体方法的一些实施例的事件中心存储数据流示意图;
如图4所示,MYSQL的Binlog进入Kafka,Kafka的数据直接使用,RABBITMQ转发进Kafka,消息转发服务的API请求转发进Kafka,Flink作业消费上述的Kafka数据并将这些数据存入HBase热存;MYSQL通过额外的离线链路通过Sqoop抽取进入EMR,进行修正与快照将数据存入HBase热存,HBase通过Replica机制将其数据同步至HBase冷存,HBase冷存的数据也会通过重新加热进入到HBase热存中。
图5示出了本发明的流批一体方法的一些实施例的事件中心存储结构示意图。
如图5所示,HBase热存中具有主数据表(第一张表)以及索引表(后三张表),主数据表中以时序结构进行存储,HBase中存储32天数据。
图6示出了本发明的流批一体方法的一些实施例的事件中心读取数据流示意图。
如图6所示,事件中心的读取数据流中,实时触发时获取Kafka,回溯和取数都是使用HBase热存,内部的重加热机制完成HBase冷存到HBase热存数据的更新,这部分逻辑对于开发人员是透明的,开发人员不需要关注数据来自Kafka或HBase。
本发明中事件中心利用水印机制确保用“取数”取代流Join后至少会有一次拥有完整数据的计算,其原理如下:
以两个流为例,对两个流进行Join,可以简单理解为有两张表,通过某外键进行关联。当任何一张表发生变更时都需要至少触发一次最终的完整的Join后的记录。
将两个流分别记录为A和B,并且假设A流先到。此时在打开事件中心水印机制的情况下,A流触发时,A流的当前事件已经被记录在事件中心中。此时分为两种情况,情况一:在事件中心中可以取到B流的相关数据,那么说明在A流当前事件记录进事件中心到运行至读取B流相关数据的时间段内,B流已经完成了事件中心的记录,此时的数据已经完整。情况二:在事件中心中无法取到B流的相关数据,那么由于事件中心水印机制,说明此时B流相关事件尚未触发。而由于A流当前事件已经被写入事件中心,那么当B流相关事件被触发时,一定能获得A流的当前事件数据,此时数据也是完整的。由此,通过事件中心水印机制,即可确保用“取数”取代流Join后至少会有一次拥有完整数据的计算。
图7示出了本发明的流批一体方法的一些实施例中事件中心消息转发的触发——消息接收的示意图。
如图7所示,当外部系统发起请求后,消息转发系统会将该请求转发为Kafka消息,然后Kafka的数据同时会进入事件中心,接下来触发相应的计算,最后去用消息队列发送计算结果,外部系统接收这个消息的结果。
图8示出了本发明的流批一体方法的一些实施例中事件中心消息转发的触发——轮询式的示意图。
如图8所示,前面与触发——消息接收相同,区别在于Flink作业会将数据写入Kafka,并由一个事件中心获取该Kafka的数据,重新存储计算结果,然后提供服务。
根据本发明所述的流批一体方法,其在实时运行时,可以获取当前时刻数据源流水数据及切片状态数据;离线分析和回溯时,获取回溯时刻各数据源流水数据及切片状态数据;实时和离线获取的数据结构及数据内容保持完全一致;标准化时序数据接入与获取,杜绝穿越问题。在事件中心,使用Lambda架构存储所有变化数据;实时写入,离线修正;使用水印机制,确保当前值同步完成,以“取数”代替流join;提供消息转发机制,异步转同步,支持触发——消息接收、触发——轮询式调用,并同时赋予该接口回溯能力。
图9示出了本发明的流批一体方法的一些实施例中Flink代码组织结构的示意图。
如图9所示,代码分为触发、主逻辑、输出三个部分,触发部分可以引用封装了的复杂的触发逻辑,主逻辑部分可以引用封装了的取数逻辑。Flink带来的流批一体逻辑一致,离线开发试运行、实时执行、离线回溯代码完全一致。封装触发逻辑、封装取数逻辑,实现自助式的开发上线。
本发明通过对不同调用方式进行封装,实现了在不修改代码的前提下,自适应各类不同场景的调用需求。
图10示出了本发明的特征存储服务方案数据流的示意图。
如图10所示,特征存储服务分为三种情况,分别是实时、离线修正和离线初始化。当有新的变量上线或者老的变量发生逻辑变化,需要对全量的数据进行一次刷新,这时候需要离线初始化。实时流是实时触发的,离线修正和离线初始化都是批量触发。如果有取数逻辑则从HBase里面取数,取数的过程中实时和离线的作业是不一样的,但由于已经封装完毕,开发人员对此无需关注。实时的Flink作业结果会发到Kafka,离线修正和离线初始化的结果都会进EMR,最后写进特征存储,也就是HBase和Clickhouse。
图11示出了本发明的接口触发——轮询方案数据流的示意图。
如图11所示,在接口触发——轮询方案中,触发调用会触发到消息转发,转发给Kafka,然后Flink将运算的结果输入Kafka。如果这个时候没有超过单次请求的时间,就会直接返回,这个时候触发轮询就退化成单次调用。反之,则会继续进入事件存储HBase,通过轮询调用获取结果。
图12示出了本发明的接口触发——消息接收方案数据流的示意图。
如图12所示,接口触发——消息接收方案是对轮询的简化。如果业务系统支持支持消息接收,只需要通过消息转发服务触发计算,然后监听结果消息即可。
图13示出了本发明的直接消息接收方案数据流的示意图。
如图13所示,直接消息接收方案是纯流式的,通过Kafka触发Flink计算,计算完数据传入消息队列,然后等对方订阅接收即可。
本发明上述方案中,特征存储服务方案:通过特征存储服务,提供持久化的特征存储,提供API点查与特征圈选服务。接口触发——轮询方案:通过事件中心的消息转发与消息查询服务,提供同步调用计算服务。接口触发——消息接收方案:通过事件中心的消息转发服务,提供事件消息服务。直接消息接收方案:支持复杂事件触发,提供事件消息服务。
本发明通过Flink作为核心引擎,事件中心作为中间层和存储,使调用、实时流和离线批数据一体化,能够通过相同的方式进行处理。
在一些实施例中,基于触发进行结构化数据构造。
数据特点:
数据即事件,所有流批一体方案中的数据均可视为事件,也即同时拥有事件触发主体和事件触发时间。
存在根节点,由于唯一触发事件的存在,该事件的主体即可作为根节点,所有的其他事件均可由根节点关联得出。
一阶关联有限,在限制关联关系为根节点的一阶关联的前提下,总事件量是有限的,且量级并不大。
所有事件时间小于根节点事件时间,根节点为触发事件,因此大于根节点事件时间的事件均未发生,不应获取到。
数据关系:
关联即知识,将业务知识通过关联的形式录入数据结构中,由此,模型策略人员取数后从数据结构中即可得到基础的业务知识。
行为时序,完成某一类行为的所有种类事件的集合,按时序顺序排列。
状态时序,状态变更类事件,一般仅关心最新的状态,取小于根节点事件时间的最大事件时间所对应的事件即可。
实体联系,体现实体间的关联关系。
由此,当选定触发事件后,我们可以以该事件为根节点,以JSON形式获取从该根节点生成的一整个数据树,从而使用户可以无需询问全量获取相关数据,并自由的进行探索开发。
图14示出了本发明一些实施例的数据结构示意图。
以用户为根节点,关联注册行为时序、用户状态时序、交易行为时序、资方状态时序。
基于相同的发明构思,本发明还提供了流批一体装置。
下面结合图15描述本发明流批一体装置的一些实施例。
图15示出了本发明一些实施例的流批一体装置的结构示意图。
如图15所示,实施例中的流批一体装置包括:
数据源连接模块1502,用于进行数据源的接入;
数据传输模块1504,用于将数据源中以事件形式记录的对数据源执行更改的操作的数据输入分布式消息系统;分布式消息系统中的实时数据同步至事件中心,数据源的离线修正及切片同步至事件中心;
数据运算模块1506,用于通过运算引擎对数据进行处理;其中实时触发通过分布式消息系统获取数据,离线跑批通过事件中心获取相关离线数据;
事件中心中的数据均为事件,具有事件触发主体和事件触发时间;
事件中心中的数据存在根节点,触发的事件的主体作为根节点,其他事件均由根节点关联得出,且能够获取的事件的事件时间小于根节点事件时间。
在其中一些实施例中,数据源为MYSQL,以事件形式记录的对数据源执行更改的操作的数据为binlog,分布式消息系统为Kafka,运算引擎为Flink;
在其中一些实施例中,数据传输模块中,使用Lambda架构存储所有变化数据,进行实时写入、离线修正;事件中心中的数据以标准化处理后的时序形式存储;
在其中一些实施例中,分布式消息系统中数据经由运算引擎进行消费,并实时写入事件中心中分布式存储数据库的热存,且分布式存储数据库将其热存中数据同步至其冷存中,冷存中数据可以通过重新加热进入热存;分布式存储数据库为HBase;
在其中一些实施例中,事件中心中存在水印机制,水印机制用于在多流情况下获取完整数据;
在其中一些实施例中,事件中心提供消息转发机制,消息转发机制通过异步转同步支持触发——消息接收、触发——轮询式调用,并使得事件中心的接口具有消息回溯能力;
在其中一些实施例中,运算引擎中数据流包括触发逻辑、主逻辑、取数逻辑、输出逻辑,其中触发逻辑、取数逻辑、输出逻辑能够随流、批环境自动变化,主逻辑不需要考虑流、批环境变化;
在其中一些实施例中,事件中心中注册事件为对数据误差要求高的核心事件时,通过全切片作业将切片数据直接写入分布式存储数据库的热存,不进行数据是否存在的验证;
在其中一些实施例中,重新加热进入热存,包括:利用HBase Range Scan机制批量读取热存中索引表及主表数据;检查数据,筛出在热存主表中不存在的数据;利用HBaseMultiGet机制,批量从冷存数据表中获取热存中不存在的数据以及热存主表中存在但生存时间超过阈值的数据,将获取的数据异步的进行重加热;所述阈值的取值范围为热存TTL的30%-40%。
关于一种流批一体装置的具体限定可以参见上文中对于一种流批一体方法的限定,在此不再赘述。上述一种流批一体装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本发明还提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图16所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述的流批一体方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。本领域技术人员可以理解,图16中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域技术人员可以理解,图16中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的流批一体方法。
本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)、直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
至此,已经详细描述了本发明的实施例。为了避免遮蔽本发明的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改或者对部分技术特征进行等同替换。本发明的范围由所附权利要求来限定。

Claims (13)

1.一种流批一体方法,其特征在于,包括以下步骤:
数据源连接步骤,进行数据源的接入;
数据传输步骤,将数据源中以事件形式记录的对数据源执行更改的操作的数据输入分布式消息系统,所述分布式消息系统中的实时数据同步至事件中心,所述数据源的离线修正及切片同步至事件中心;
数据运算步骤,通过运算引擎对数据进行处理,其中实时触发通过分布式消息系统获取数据,离线跑批通过事件中心获取相关离线数据,
所述事件中心中的数据均为事件且具有事件触发主体和事件触发时间,
所述事件中心中的数据存在根节点,触发的事件的主体作为根节点,其他事件均由根节点关联得出,且能够获取的事件的事件时间小于根节点事件时间。
2.根据权利要求1所述的流批一体方法,其特征在于,
所述数据源为MYSQL,所述以事件形式记录的对数据源执行更改的操作的数据为binlog,所述分布式消息系统为Kafka,所述运算引擎为Flink。
3.根据权利要求1所述的流批一体方法,其特征在于,
所述数据传输步骤中,使用Lambda架构存储所有变化数据,进行实时写入、离线修正,所述事件中心中的数据以标准化处理后的时序形式存储。
4.根据权利要求1所述的流批一体方法,其特征在于,
所述分布式消息系统中数据经由运算引擎进行消费,并实时写入事件中心中分布式存储数据库的热存,且所述分布式存储数据库将其热存中数据同步至其冷存中,冷存中数据可以通过重新加热进入热存;所述分布式存储数据库为HBase。
5.根据权利要求1所述的流批一体方法,其特征在于,
所述事件中心中存在水印机制,所述水印机制用于在多流情况下获取完整数据。
6.根据权利要求1所述的流批一体方法,其特征在于,
所述事件中心提供消息转发机制,所述消息转发机制通过异步转同步支持触发——消息接收、触发——轮询式调用,并使得事件中心的接口具有消息回溯能力。
7.根据权利要求1所述的流批一体方法,其特征在于,
所述运算引擎中数据流包括触发逻辑、主逻辑、取数逻辑、输出逻辑,其中触发逻辑、取数逻辑、输出逻辑能够随流、批环境自动变化,主逻辑不需要考虑流、批环境变化。
8.根据权利要求4所述的流批一体方法,其特征在于,
所述事件中心中注册事件为对数据误差要求高的核心事件时,通过全切片作业将切片数据直接写入分布式存储数据库的热存,不进行数据是否存在的验证。
9.根据权利要求4所述的流批一体方法,其特征在于,
所述重新加热进入热存,包括:利用HBase Range Scan机制批量读取热存中索引表及主表数据;检查数据,筛出在热存主表中不存在的数据;利用HBase MultiGet机制,批量从冷存数据表中获取热存中不存在的数据以及热存主表中存在但生存时间超过阈值的数据,将获取的数据异步的进行重加热;所述阈值的取值范围为热存TTL的30%-40%。
10.一种流批一体装置,其特征在于,包括:
数据源连接模块,用于进行数据源的接入;
数据传输模块,用于将数据源中以事件形式记录的对数据源执行更改的操作的数据输入分布式消息系统;所述分布式消息系统中的实时数据同步至事件中心,所述数据源的离线修正及切片同步至事件中心;
数据运算模块,用于通过运算引擎对数据进行处理;其中实时触发通过分布式消息系统获取数据,离线跑批通过事件中心获取相关离线数据;
所述事件中心中的数据均为事件且具有事件触发主体和事件触发时间;
所述事件中心中的数据存在根节点,触发的事件的主体作为根节点,其他事件均由根节点关联得出,且能够获取的事件的事件时间小于根节点事件时间。
11.根据权利要求10所述的流批一体装置,其特征在于,
所述数据源为MYSQL,所述以事件形式记录的对数据源执行更改的操作的数据为binlog,所述分布式消息系统为Kafka,所述运算引擎为Flink;
所述数据传输模块中,使用Lambda架构存储所有变化数据,进行实时写入、离线修正;所述事件中心中的数据以标准化处理后的时序形式存储;
所述分布式消息系统中数据经由运算引擎进行消费,并实时写入事件中心中分布式存储数据库的热存,且所述分布式存储数据库将其热存中数据同步至其冷存中,冷存中数据可以通过重新加热进入热存;所述分布式存储数据库为HBase;
所述事件中心中存在水印机制,所述水印机制用于在多流情况下获取完整数据;
所述事件中心提供消息转发机制,所述消息转发机制通过异步转同步支持触发——消息接收、触发——轮询式调用,并使得事件中心的接口具有消息回溯能力;
所述运算引擎中数据流包括触发逻辑、主逻辑、取数逻辑、输出逻辑,其中触发逻辑、取数逻辑、输出逻辑能够随流、批环境自动变化,主逻辑不需要考虑流、批环境变化;
所述事件中心中注册事件为对数据误差要求高的核心事件时,通过全切片作业将切片数据直接写入分布式存储数据库的热存,不进行数据是否存在的验证;
所述重新加热进入热存,包括:利用HBase Range Scan机制批量读取热存中索引表及主表数据;检查数据,筛出在热存主表中不存在的数据;利用HBase MultiGet机制,批量从冷存数据表中获取热存中不存在的数据以及热存主表中存在但生存时间超过阈值的数据,将获取的数据异步的进行重加热;所述阈值的取值范围为热存TTL的30%-40%。
12.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9中任一项所述方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。
CN202310174780.0A 2023-02-28 2023-02-28 流批一体方法、装置、设备和介质 Active CN116303498B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310174780.0A CN116303498B (zh) 2023-02-28 2023-02-28 流批一体方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310174780.0A CN116303498B (zh) 2023-02-28 2023-02-28 流批一体方法、装置、设备和介质

Publications (2)

Publication Number Publication Date
CN116303498A true CN116303498A (zh) 2023-06-23
CN116303498B CN116303498B (zh) 2023-11-03

Family

ID=86837212

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310174780.0A Active CN116303498B (zh) 2023-02-28 2023-02-28 流批一体方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN116303498B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140101248A1 (en) * 2012-10-09 2014-04-10 Cvent Inc. Method, system and apparatus for providing activity feed for events to facilitate gathering and communicating of event information
CN110535909A (zh) * 2019-07-29 2019-12-03 广东电网有限责任公司信息中心 面向能源互联网应用的大数据与云计算一体化平台系统
CN110856038A (zh) * 2019-11-25 2020-02-28 新华智云科技有限公司 视频生成方法及系统、存储介质
CN111127196A (zh) * 2019-12-31 2020-05-08 中信百信银行股份有限公司 信贷风控特征变量管理的方法及系统
CN112632371A (zh) * 2020-12-11 2021-04-09 信雅达科技股份有限公司 银行业务反欺诈方法与系统
CN113672401A (zh) * 2021-07-07 2021-11-19 浙江大华技术股份有限公司 一种批处理任务的触发方法、系统及计算机可读存储介质
US20210373914A1 (en) * 2020-05-29 2021-12-02 Intuit Inc. Batch to stream processing in a feature management platform
CN113806110A (zh) * 2021-09-18 2021-12-17 平安银行股份有限公司 基于事件驱动的消息处理方法、装置、设备及存储介质
CN114064678A (zh) * 2021-11-29 2022-02-18 深圳市优必选科技股份有限公司 事件数据处理方法、装置及终端设备
CN115114266A (zh) * 2022-06-29 2022-09-27 徐工汉云技术股份有限公司 一种流批一体的数仓集成方法及系统
CN115567370A (zh) * 2022-11-10 2023-01-03 广州信安数据有限公司 基于实时事件数据的自动化告警方法、存储介质及系统

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140101248A1 (en) * 2012-10-09 2014-04-10 Cvent Inc. Method, system and apparatus for providing activity feed for events to facilitate gathering and communicating of event information
CN110535909A (zh) * 2019-07-29 2019-12-03 广东电网有限责任公司信息中心 面向能源互联网应用的大数据与云计算一体化平台系统
CN110856038A (zh) * 2019-11-25 2020-02-28 新华智云科技有限公司 视频生成方法及系统、存储介质
CN111127196A (zh) * 2019-12-31 2020-05-08 中信百信银行股份有限公司 信贷风控特征变量管理的方法及系统
US20210373914A1 (en) * 2020-05-29 2021-12-02 Intuit Inc. Batch to stream processing in a feature management platform
CN112632371A (zh) * 2020-12-11 2021-04-09 信雅达科技股份有限公司 银行业务反欺诈方法与系统
CN113672401A (zh) * 2021-07-07 2021-11-19 浙江大华技术股份有限公司 一种批处理任务的触发方法、系统及计算机可读存储介质
CN113806110A (zh) * 2021-09-18 2021-12-17 平安银行股份有限公司 基于事件驱动的消息处理方法、装置、设备及存储介质
CN114064678A (zh) * 2021-11-29 2022-02-18 深圳市优必选科技股份有限公司 事件数据处理方法、装置及终端设备
CN115114266A (zh) * 2022-06-29 2022-09-27 徐工汉云技术股份有限公司 一种流批一体的数仓集成方法及系统
CN115567370A (zh) * 2022-11-10 2023-01-03 广州信安数据有限公司 基于实时事件数据的自动化告警方法、存储介质及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
NITIN DUTT CHATURVEDI 等: "Batch process integration for resource conservation toward cleaner production – A state-of-the-art review", 《JOURNAL OF CLEANER PRODUCTION》, pages 1 - 17 *
刘广轩 等: "面向Flink流处理框架的主动备份容错优化", 《浙江大学学报(工学版)》, pages 297 - 305 *

Also Published As

Publication number Publication date
CN116303498B (zh) 2023-11-03

Similar Documents

Publication Publication Date Title
CN107958010B (zh) 用于在线数据迁移的方法及系统
US20180332366A1 (en) Organizing present and future reads from a tiered streaming data storage layer
US8645319B2 (en) Information processing system, data update method and data update program
CN111212100B (zh) 消息队列发布与订阅的同步方法及其系统
US20160004734A1 (en) Secure data isolation in a multi-tenant historization system
CN111177161A (zh) 数据处理方法、装置、计算设备和存储介质
WO2012015673A2 (en) Application instance and query stores
CN111078659B (zh) 模型更新方法、装置、计算机可读存储介质和计算机设备
US20140229435A1 (en) In-memory real-time synchronized database system and method
CN113094434A (zh) 数据库同步方法、系统、装置、电子设备及介质
CN112069384A (zh) 一种埋点数据处理方法、服务器及可读存储介质
CN110866011B (zh) 数据表同步方法、装置、计算机设备和存储介质
CN112667733A (zh) 数据仓库数据导入方法与系统
US20220391368A1 (en) Cryptography system for using associated values stored in different locations to encode and decode data
CN116303498B (zh) 流批一体方法、装置、设备和介质
CN111159300A (zh) 基于区块链的数据处理方法及装置
CN113010607A (zh) 系统间数据同步方法、装置、计算机系统、存储介质
CN113419872A (zh) 一种应用系统接口集成系统、集成方法、设备及存储介质
CN110196680A (zh) 数据处理方法、装置及存储介质
CN110928911A (zh) 审校请求处理系统、方法、装置、计算机可读存储介质
CN116821533A (zh) 页面渲染方法、计算机设备和计算机可读存储介质
CN114116676A (zh) 数据迁移方法、装置、电子设备及计算机可读存储介质
CN113760983A (zh) 数据处理方法、系统及非瞬时性计算机可读存储介质
CN111078736A (zh) 一种数据聚合处理方法、装置、终端及存储介质
CN109684391A (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