CN113296960A - 数据准实时分发方法、装置、设备及存储介质 - Google Patents
数据准实时分发方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113296960A CN113296960A CN202110726593.XA CN202110726593A CN113296960A CN 113296960 A CN113296960 A CN 113296960A CN 202110726593 A CN202110726593 A CN 202110726593A CN 113296960 A CN113296960 A CN 113296960A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- database
- pushed
- label
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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
- G06F16/273—Asynchronous replication or reconciliation
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及数据同步技术领域,揭示了一种数据准实时分发方法、装置、设备及存储介质,其中方法包括:通过后端系统,将待落库的数据存储到目标数据库,生成落库成功信号;通过后端系统的异步线程管理模块,根据落库成功信号生成异步线程得到目标异步线程;通过目标异步线程,根据目标数据库中的待落库的数据分别进行标签生成和数据包封装得到待推送的标签和待推送的数据包,将待推送的标签和待推送的数据包作为关联数据推送给目标Kafka;通过消费服务系统,根据目标Kafka中的待推送的标签和目标数据分发配置数据,对目标Kafka中的待推送的数据包进行分发。实现了数据的准实时分发,使数据输出实现了最小化原则。
Description
技术领域
本申请涉及到数据同步技术领域,特别是涉及到一种数据准实时分发方法、装置、设备及存储介质。
背景技术
随着数字化应用推广,内容数据及埋点数据需要被其他应用系统准实时使用到。目标采用Sqoop(用来将Hadoop和关系型数据库中的数据相互转移的工具)根据关系型数据实时同步的方案,该方案存在以下问题:(1)Sqoop无法做到准实时,而且一旦授权,第三方应用将获取整张数据表的数据的读权限,无法做到数据输出最小化原则,影响了数据安全;(2)关系型数据在实时同步,将浪费数据库链接数资源,因埋点数据的数据表的数据量巨大,同步时查询很容易引起数据库CPU或内存使用过高,影响了应用服务业务,同时也存在数据表一旦授权同步用户,无法做到数据输出最小化原则,影响了数据安全。
发明内容
本申请的主要目的为提供一种数据准实时分发方法、装置、设备及存储介质,旨在解决现有技术采用Sqoop根据关系型数据实时同步的方案,无法做到准实时,无法做到数据输出最小化原则的技术问题。
为了实现上述发明目的,本申请提出一种数据准实时分发方法,所述方法包括:
通过后端系统,获取目标应用发送的数据推送请求,所述数据推送请求携带有待落库的数据;
通过所述后端系统,响应所述数据推送请求,将所述待落库的数据存储到目标数据库,生成落库成功信号;
通过所述后端系统的异步线程管理模块,根据所述落库成功信号生成异步线程,得到目标异步线程;
通过所述目标异步线程,根据所述目标数据库中的所述待落库的数据分别进行标签生成和数据包封装,得到待推送的标签和待推送的数据包;
通过所述目标异步线程,将所述待推送的标签和所述待推送的数据包作为关联数据推送给目标Kafka;
通过消费服务系统,获取目标数据分发配置数据,根据所述目标Kafka中的所述待推送的标签和所述目标数据分发配置数据,对所述目标Kafka中的所述待推送的数据包进行分发。
进一步的,所述根据所述目标数据库中的所述待落库的数据分别进行标签生成和数据包封装,得到待推送的标签和待推送的数据包的步骤,包括:
根据所述目标数据库中的所述待落库的数据获取目标标签生成规则;
采用所述目标标签生成规则的目标字段名称集合,根据所述目标数据库中的所述待落库的数据进行标签拼接,得到所述待推送的标签;
根据所述目标数据库中的所述待落库的数据获取目标数据包封装规则;
根据所述目标数据包封装规则,根据所述目标数据库中的所述待落库的数据进行数据包封装,得到所述待推送的数据包。
进一步的,所述采用所述目标标签生成规则的目标字段名称集合,根据所述目标数据库中的所述待落库的数据进行标签拼接,得到所述待推送的标签的步骤,包括:
根据所述目标字段名称集合,从所述目标数据库中的所述待落库的数据中获取标签值数据,得到待拼接的数据集合;
采用所述目标标签生成规则的拼接顺序规则,根据所述待拼接的数据集合进行标签拼接,得到所述待推送的标签。
进一步的,所述根据所述目标数据包封装规则,根据所述目标数据库中的所述待落库的数据进行数据包封装,得到所述待推送的数据包的步骤,包括:
根据所述目标数据包封装规则的字段名称集合,从所述目标数据库中的所述待落库的数据中获取需要分发的数据,得到待封装的数据集合;
根据所述目标数据包封装规则的数据封装规则,对所述待封装的数据集合进行数据包封装,得到所述待推送的数据包。
进一步的,所述根据所述目标Kafka中的所述待推送的标签和所述目标数据分发配置数据,对所述目标Kafka中的所述待推送的数据包进行分发的步骤,包括:
分别采用所述目标数据分发配置数据的每个标签匹配规则,对所述目标Kafka中的所述待推送的标签进行正则匹配,得的各个所述标签匹配规则各自对应的标签匹配结果;
当存在所述标签匹配结果为成功时,将所述标签匹配结果为成功的所述标签匹配规则在所述目标数据分发配置数据中对应的数据包分发规则作为目标数据包分发规则;
采用所述目标数据包分发规则,对所述目标Kafka中的所述待推送的数据包进行分发。
进一步的,所述获取目标数据分发配置数据的步骤之前,还包括:
通过所述消费服务系统的消费管理模块,获取配置请求;
通过所述消费管理模块,响应所述配置请求,获取待处理的数据分发配置数据;
通过所述消费管理模块,将所述待处理的数据分发配置数据存储在所述消费服务系统对应的数据库中。
进一步的,所述通过所述后端系统,响应所述数据推送请求,将所述待落库的数据存储到目标数据库,生成落库成功信号的步骤,包括:
通过所述后端系统,响应所述数据推送请求,将所述待落库的数据存储到所述目标数据库,完成存储时生成所述落库成功信号,并且将所述落库成功信号发送给所述异步线程管理模块;
所述通过所述后端系统的异步线程管理模块,根据所述落库成功信号生成异步线程,得到目标异步线程的步骤,包括:
通过所述异步线程管理模块,根据所述落库成功信号携带的参数生成异步线程,将生成的异步线程作为所述目标异步线程。
本申请还提出了一种数据准实时分发装置,所述装置包括:
请求获取模块,用于通过后端系统,获取目标应用发送的数据推送请求,所述数据推送请求携带有待落库的数据;
数据落库模块,用于通过所述后端系统,响应所述数据推送请求,将所述待落库的数据存储到目标数据库,生成落库成功信号;
目标异步线程确定模块,用于通过所述后端系统的异步线程管理模块,根据所述落库成功信号生成异步线程,得到目标异步线程;
标签生成和数据包封装模块,用于通过所述目标异步线程,根据所述目标数据库中的所述待落库的数据分别进行标签生成和数据包封装,得到待推送的标签和待推送的数据包;
数据推送模块,用于通过所述目标异步线程,将所述待推送的标签和所述待推送的数据包作为关联数据推送给目标Kafka;
分发模块,用于通过消费服务系统,获取目标数据分发配置数据,根据所述目标Kafka中的所述待推送的标签和所述目标数据分发配置数据,对所述目标Kafka中的所述待推送的数据包进行分发。
本申请还提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请的数据准实时分发方法、装置、设备及存储介质,其中方法首先通过后端系统,获取目标应用发送的数据推送请求,数据推送请求携带有待落库的数据,响应数据推送请求,将待落库的数据存储到目标数据库,生成落库成功信号,然后通过后端系统的异步线程管理模块,根据落库成功信号生成异步线程,得到目标异步线程,通过目标异步线程,根据目标数据库中的待落库的数据分别进行标签生成和数据包封装,得到待推送的标签和待推送的数据包,通过目标异步线程,将待推送的标签和待推送的数据包作为关联数据推送给目标Kafka,最后通过消费服务系统,获取目标数据分发配置数据,根据目标Kafka中的待推送的标签和目标数据分发配置数据,对目标Kafka中的待推送的数据包进行分发,从而实现了将后端系统和下游应用系统解耦合,而且采用异步线程根据数据库中的待落库的数据进行标签生成和数据包封装,实现了数据的准实时分发,而且可以只封装需要输出的数据到数据包,使数据输出实现了最小化原则。
附图说明
图1为本申请一实施例的数据准实时分发方法的流程示意图;
图2为本申请一实施例的数据准实时分发装置的结构示意框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请实施例中提供一种数据准实时分发方法,所述方法包括:
S1:通过后端系统,获取目标应用发送的数据推送请求,所述数据推送请求携带有待落库的数据;
S2:通过所述后端系统,响应所述数据推送请求,将所述待落库的数据存储到目标数据库,生成落库成功信号;
S3:通过所述后端系统的异步线程管理模块,根据所述落库成功信号生成异步线程,得到目标异步线程;
S4:通过所述目标异步线程,根据所述目标数据库中的所述待落库的数据分别进行标签生成和数据包封装,得到待推送的标签和待推送的数据包;
S5:通过所述目标异步线程,将所述待推送的标签和所述待推送的数据包作为关联数据推送给目标Kafka;
S6:通过消费服务系统,获取目标数据分发配置数据,根据所述目标Kafka中的所述待推送的标签和所述目标数据分发配置数据,对所述目标Kafka中的所述待推送的数据包进行分发。
本实施例方法首先通过后端系统,获取目标应用发送的数据推送请求,数据推送请求携带有待落库的数据,响应数据推送请求,将待落库的数据存储到目标数据库,生成落库成功信号,然后通过后端系统的异步线程管理模块,根据落库成功信号生成异步线程,得到目标异步线程,通过目标异步线程,根据目标数据库中的待落库的数据分别进行标签生成和数据包封装,得到待推送的标签和待推送的数据包,通过目标异步线程,将待推送的标签和待推送的数据包作为关联数据推送给目标Kafka,最后通过消费服务系统,获取目标数据分发配置数据,根据目标Kafka中的待推送的标签和目标数据分发配置数据,对目标Kafka中的待推送的数据包进行分发,从而实现了将后端系统和下游应用系统解耦合,而且采用异步线程根据数据库中的待落库的数据进行标签生成和数据包封装,实现了数据的准实时分发,而且可以只封装需要输出的数据到数据包,使数据输出实现了最小化原则。
对于S1,后端系统,是向目标应用提供后端软件服务的系统。
目标应用包括但不限于:移动设备的客户端、移动设备的网页、电脑的客户端、电脑的网页、应用模块、应用系统。
数据推送请求,是进行数据推送的请求。
下游应用系统,也就是接收后端系统推送的数据的应用系统。
其中,待落库的数据可以是埋点数据,也可以是内容发布系统发布的内容数据。埋点数据,是描述用户阅读行为和/或分享行为的数据。埋点数据包括但不限于:用户标识、内容类型、内容标识、分享方式、行为发生时间、接收分享的对象标识。内容数据包括但不限于:资讯信息、活动内容。
对于S2,通过所述后端系统,响应所述数据推送请求,将所述待落库的数据存储到目标数据库,完成存储时生成所述落库成功信号,并且将所述落库成功信号发送给所述后端系统的异步线程管理模块。
目标数据库,可以采用静态资源库。
对于S3,所述后端系统的异步线程管理模块在接收到所述落库成功信号时,根据所述落库成功信号携带的参数生成异步线程,将生成的异步线程作为所述目标异步线程。
所述落库成功信号携带的参数包括但不限于:所述待落库的数据的存储位置。
对于S4,通过执行所述目标异步线程,将根据所述目标数据库中的所述待落库的数据的业务场景常用到的数据进行标签生成,得到所述待推送的标签,将所述目标数据库中的所述待落库的数据中的需要推送给下游应用系统的明细数据封装成一个数据包,将封装得到的数据包作为所述待推送的数据包。
所述待推送的标签,用于消费服务系统进行规则匹配。
所述待推送的数据包,也就是需要推送给下游应用系统的数据。
对于S5,通过执行所述目标异步线程,将所述待推送的标签和所述待推送的数据包作为关联的两个字段推送给目标Kafka的队列中。通过目标异步线程实现了数据的准实时分发;通过目标Kafka实现了将后端系统和下游应用系统解耦合。
目标Kafka,也就是用于接收后端系统推送的数据的Kafka。Kafka,是高吞吐量的分布式发布订阅消息系统。
对于S6,通过消费服务系统,从消费服务系统对应的数据库中获取目标数据分发配置数据,采用目标数据分发配置数据对所述目标Kafka中的所述待推送的标签进行匹配,根据标签匹配结果将所述目标Kafka中的所述待推送的数据包分发给下游应用系统。
目标数据分发配置数据,也就是数据分发配置数据。数据分发配置数据包括:标签匹配规则、数据包分发规则,每个标签匹配规则对应一个数据包分发规则。标签匹配规则采用正则表达式。数据包分发规则包括:下游应用系统的系统标识、下游应用系统的链接地址、下游应用系统的分发方式,每个下游应用系统的系统标识对应一个下游应用系统的链接地址和一个下游应用系统的分发方式。比如,下游应用系统的分发方式为接口回调,消费服务系统通过调用下游应用系统的接口推送所述目标Kafka中的所述待推送的数据包。又比如,下游应用系统的分发方式为发送到大数据统计系统(比如,spark、flink),消费服务系统根据下游应用系统的分发方式中的Kafka集群信息及Topic,将所述目标Kafka中的所述待推送的数据包写入下游应用系统的Kafka队列中。又比如,下游应用系统的分发方式是需要走MQ(消息队列)队列模式,消费服务系统根据下游应用系统的分发方式中的MQ集群信息及Topic(主题),将所述目标Kafka中的所述待推送的数据包写入下游应用系统的MQ队列中。
可选的,每个数据包分发规则包括至少一条关联数据,每条关联数据包括:下游应用系统的系统标识、下游应用系统的链接地址、下游应用系统的分发方式。从而实现了将同一个待推送的数据包推送到多个下游应用系统。
在一个实施例中,上述根据所述目标数据库中的所述待落库的数据分别进行标签生成和数据包封装,得到待推送的标签和待推送的数据包的步骤,包括:
S41:根据所述目标数据库中的所述待落库的数据获取目标标签生成规则;
S42:采用所述目标标签生成规则的目标字段名称集合,根据所述目标数据库中的所述待落库的数据进行标签拼接,得到所述待推送的标签;
S43:根据所述目标数据库中的所述待落库的数据获取目标数据包封装规则;
S44:根据所述目标数据包封装规则,根据所述目标数据库中的所述待落库的数据进行数据包封装,得到所述待推送的数据包。
本实施例实现了采用所述目标标签生成规则的目标字段名称集合,根据所述目标数据库中的所述待落库的数据进行标签拼接,从而为后续消费服务系统进行规则匹配提供了基础;根据所述目标数据包封装规则,根据所述目标数据库中的所述待落库的数据进行数据包封装,实现了可以只封装需要输出的数据到数据包,为数据输出实现最小化原则提供了基础。
对于S41,根据所述目标数据库中的所述待落库的数据的数据来源,从标签生成规则库中获取标签生成规则,将获取的所述标签生成规则作为目标标签生成规则。
标签生成规则库包括:数据来源和标签生成规则,每个数据来源对应一个标签生成规则。数据来源包括但不限于:埋点、内容。
可以理解的是,标签生成规则包括:字段名称集合和拼接顺序规则。字段名称集合中的字段名称是业务场景常用的字段名称。拼接顺序规则可以是采用预设拼接字符按字段名称集合中字段名称的排列顺序进行拼接。可以理解的是,拼接顺序规则还可以是其他拼接规则,在此不做具体限定。
对于S42,分别采用所述目标标签生成规则的目标字段名称集合中的每个字段名称,从所述目标数据库中的所述待落库的数据中提取出数据,然后将提取的所有数据进行拼接,将拼接得到的数据作为所述待推送的标签。
目标字段名称集合,也就是所述目标标签生成规则对应的字段名称集合。
对于S43,根据所述目标数据库中的所述待落库的数据的数据来源,从数据包封装规则库中获取数据包封装规则,将获取的数据包封装规则作为目标数据包封装规则。
数据包封装规则库包括:数据来源和数据包封装规则,每个数据来源对应一个数据包封装规则。
数据包封装规则包括:字段名称集合和数据封装规则。数据包封装规则的字段名称集合是后端系统需要推送给下游应用系统的明细数据对应的字段名称的集合。数据封装规则,是将数据封装规则的字段名称集合中各个字段名称在所述目标数据库中的所述待落库的数据中对应的值封装成一个数据包的规则。
对于S44,分别根据所述目标数据包封装规则的字段名称集合中的每个字段名称,从所述目标数据库中的所述待落库的数据中提取出字段值,然后将提取的所有字段值进行进行数据包封装,将封装得到的数据包作为所述待推送的数据包。
在一个实施例中,上述采用所述目标标签生成规则的目标字段名称集合,根据所述目标数据库中的所述待落库的数据进行标签拼接,得到所述待推送的标签的步骤,包括:
S421:根据所述目标字段名称集合,从所述目标数据库中的所述待落库的数据中获取标签值数据,得到待拼接的数据集合;
S422:采用所述目标标签生成规则的拼接顺序规则,根据所述待拼接的数据集合进行标签拼接,得到所述待推送的标签。
本实施例实现了先根据所述目标字段名称集合,从所述目标数据库中的所述待落库的数据中获取标签值数据,然后采用所述目标标签生成规则的拼接顺序规则,根据所述待拼接的数据集合进行标签拼接,从而为后续消费服务系统进行规则匹配提供了基础。
对于S421,分别根据所述目标字段名称集合中的每个字段名称,从所述目标数据库中的所述待落库的数据中获取标签值数据,将获取的所有标签值数据作为所述待拼接的数据集合。
对于S422,采用所述目标标签生成规则的拼接顺序规则,根据所述待拼接的数据集合中的所有标签值数据进行字符串拼接,将拼接得到的字符串作为所述待推送的标签。
比如,所述目标标签生成规则的目标字段名称集合包括的字段名称为:代理类型、行为、内容编号,渠道来源,所述待拼接的数据集合中的标签值数据为:代理类型的标签值数据为l(l表述的是资讯)、行为的标签值数据为R(R表述的是阅读)、内容编号的标签值数据为30021,渠道来源的标签值数据为hdl,采用预设拼接字符“&”按字段名称集合中字段名称的排列顺序进行字符串拼接,得到字符串I&R&30021&hdl,将I&R&30021&hdl作为所述待推送的标签,在此举例不做具体限定。
在一个实施例中,上述根据所述目标数据包封装规则,根据所述目标数据库中的所述待落库的数据进行数据包封装,得到所述待推送的数据包的步骤,包括:
S441:根据所述目标数据包封装规则的字段名称集合,从所述目标数据库中的所述待落库的数据中获取需要分发的数据,得到待封装的数据集合;
S442:根据所述目标数据包封装规则的数据封装规则,对所述待封装的数据集合进行数据包封装,得到所述待推送的数据包。
本实施例设置了先根据所述目标数据包封装规则,从所述目标数据库中的所述待落库的数据中获取需要分发的数据,然后根据所述目标数据包封装规则,对所述待封装的数据集合进行数据包封装,实现了可以只封装需要输出的数据到数据包,为数据输出实现最小化原则提供了基础。
对于S441,分别根据所述目标数据包封装规则的字段名称集合中的每个字段名称,从所述目标数据库中的所述待落库的数据中提取出需要分发的字段值,将提取的所有字段值作为待封装的数据集合。
对于S442,根据所述目标数据包封装规则的数据封装规则,根据所述待封装的数据集合中的所有数据进行数据包封装,将封装得到的数据包作为所述待推送的数据包。
在一个实施例中,上述根据所述目标Kafka中的所述待推送的标签和所述目标数据分发配置数据,对所述目标Kafka中的所述待推送的数据包进行分发的步骤,包括:
S61:分别采用所述目标数据分发配置数据的每个标签匹配规则,对所述目标Kafka中的所述待推送的标签进行正则匹配,得的各个所述标签匹配规则各自对应的标签匹配结果;
S62:当存在所述标签匹配结果为成功时,将所述标签匹配结果为成功的所述标签匹配规则在所述目标数据分发配置数据中对应的数据包分发规则作为目标数据包分发规则;
S63:采用所述目标数据包分发规则,对所述目标Kafka中的所述待推送的数据包进行分发。
本实施例分别采用所述目标数据分发配置数据的每个标签匹配规则,对所述目标Kafka中的所述待推送的标签进行正则匹配,根据正则匹配对所述目标Kafka中的所述待推送的数据包进行分发,从而实现了将后端系统和下游应用系统解耦合。
对于S61,分别采用所述目标数据分发配置数据的每个标签匹配规则,对所述目标Kafka中的所述待推送的标签进行正则匹配,当存在标签匹配规则与所述目标Kafka中的所述待推送的标签成功匹配时,将与所述目标Kafka中的所述待推送的标签成功匹配的标签匹配规则对应的标签匹配结果确定为成功。
对于S62,当存在所述标签匹配结果为成功时,意味着所述标签匹配结果为成功的标签匹配规则对应的数据包分发规则是符合分发所述目标Kafka中的所述待推送的数据包的规则,因此可以将所述标签匹配结果为成功的所述标签匹配规则在所述目标数据分发配置数据中对应的数据包分发规则作为目标数据包分发规则。
对于S63,采用所述目标数据包分发规则,将所述目标Kafka中的所述待推送的数据包分发到所述目标数据包分发规则对应的下游应用系统。
在一个实施例中,上述获取目标数据分发配置数据的步骤之前,还包括:
S061:通过所述消费服务系统的消费管理模块,获取配置请求;
S062:通过所述消费管理模块,响应所述配置请求,获取待处理的数据分发配置数据;
S063:通过所述消费管理模块,将所述待处理的数据分发配置数据存储在所述消费服务系统对应的数据库中。
本实施例实现了通过在消费服务系统进行数据分发配置数据的配置,为实现将后端系统和下游应用系统解耦合提供了基础。
对于S061,通过所述消费服务系统的消费管理模块,可以获取用户输入的配置请求,也可以获取第三方应用系统发送的配置请求。
配置请求,是进行数据分发配置数据配置的请求。
对于S062,通过所述消费管理模块,响应所述配置请求,可以获取用户输入的待处理的数据分发配置数据,也可以获取第三方应用系统发送的待处理的数据分发配置数据。
待处理的数据分发配置数据,是需要更新到所述消费服务系统对应的数据库的数据分发配置数据。
对于S063,通过所述消费管理模块,将所述待处理的数据分发配置数据存储在所述消费服务系统对应的数据库中,从而为消费服务系统对目标Kafka中的数据进行分发提供了基础。
在一个实施例中,上述通过所述后端系统,响应所述数据推送请求,将所述待落库的数据存储到目标数据库,生成落库成功信号的步骤,包括:
S21:通过所述后端系统,响应所述数据推送请求,将所述待落库的数据存储到所述目标数据库,完成存储时生成所述落库成功信号,并且将所述落库成功信号发送给所述异步线程管理模块;
所述通过所述后端系统的异步线程管理模块,根据所述落库成功信号生成异步线程,得到目标异步线程的步骤,包括:
S31:通过所述异步线程管理模块,根据所述落库成功信号携带的参数生成异步线程,将生成的异步线程作为所述目标异步线程。
本实施例先将所述待落库的数据存储到所述目标数据库,然后根据所述落库成功信号携带的参数生成异步线程,为采用异步线程根据数据库中的待落库的数据进行标签生成和数据包封装提供了基础。
对于S21,通过所述后端系统,在收到所述数据推送请求,所述数据推送请求携带的待落库的数据存储到所述目标数据库,完成待落库的数据的存储时生成所述落库成功信号,并且将待落库的数据在所述目标数据库中的存储位置作为所述落库成功信号携带的参数,将所述落库成功信号发送给所述异步线程管理模块。
对于S31,通过所述异步线程管理模块,在收到所述落库成功信号时,根据所述落库成功信号携带的参数生成异步线程,将生成的异步线程作为所述目标异步线程,从而实现采用所述目标异步线程对所述目标数据库中的所述待落库的数据异步依次进行标签拼接、数据包封装和推送给目标Kafka。
参照图2,本申请还提出了一种数据准实时分发装置,所述装置包括:
请求获取模块100,用于通过后端系统,获取目标应用发送的数据推送请求,所述数据推送请求携带有待落库的数据;
数据落库模块200,用于通过所述后端系统,响应所述数据推送请求,将所述待落库的数据存储到目标数据库,生成落库成功信号;
目标异步线程确定模块300,用于通过所述后端系统的异步线程管理模块,根据所述落库成功信号生成异步线程,得到目标异步线程;
标签生成和数据包封装模块400,用于通过所述目标异步线程,根据所述目标数据库中的所述待落库的数据分别进行标签生成和数据包封装,得到待推送的标签和待推送的数据包;
数据推送模块500,用于通过所述目标异步线程,将所述待推送的标签和所述待推送的数据包作为关联数据推送给目标Kafka;
分发模块600,用于通过消费服务系统,获取目标数据分发配置数据,根据所述目标Kafka中的所述待推送的标签和所述目标数据分发配置数据,对所述目标Kafka中的所述待推送的数据包进行分发。
本实施例方法首先通过后端系统,获取目标应用发送的数据推送请求,数据推送请求携带有待落库的数据,响应数据推送请求,将待落库的数据存储到目标数据库,生成落库成功信号,然后通过后端系统的异步线程管理模块,根据落库成功信号生成异步线程,得到目标异步线程,通过目标异步线程,根据目标数据库中的待落库的数据分别进行标签生成和数据包封装,得到待推送的标签和待推送的数据包,通过目标异步线程,将待推送的标签和待推送的数据包作为关联数据推送给目标Kafka,最后通过消费服务系统,获取目标数据分发配置数据,根据目标Kafka中的待推送的标签和目标数据分发配置数据,对目标Kafka中的待推送的数据包进行分发,从而实现了将后端系统和下游应用系统解耦合,而且采用异步线程根据数据库中的待落库的数据进行标签生成和数据包封装,实现了数据的准实时分发,而且可以只封装需要输出的数据到数据包,使数据输出实现了最小化原则。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于储存数据准实时分发方法等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据准实时分发方法。所述数据准实时分发方法,包括:通过后端系统,获取目标应用发送的数据推送请求,所述数据推送请求携带有待落库的数据;通过所述后端系统,响应所述数据推送请求,将所述待落库的数据存储到目标数据库,生成落库成功信号;通过所述后端系统的异步线程管理模块,根据所述落库成功信号生成异步线程,得到目标异步线程;通过所述目标异步线程,根据所述目标数据库中的所述待落库的数据分别进行标签生成和数据包封装,得到待推送的标签和待推送的数据包;通过所述目标异步线程,将所述待推送的标签和所述待推送的数据包作为关联数据推送给目标Kafka;通过消费服务系统,获取目标数据分发配置数据,根据所述目标Kafka中的所述待推送的标签和所述目标数据分发配置数据,对所述目标Kafka中的所述待推送的数据包进行分发。
本实施例方法首先通过后端系统,获取目标应用发送的数据推送请求,数据推送请求携带有待落库的数据,响应数据推送请求,将待落库的数据存储到目标数据库,生成落库成功信号,然后通过后端系统的异步线程管理模块,根据落库成功信号生成异步线程,得到目标异步线程,通过目标异步线程,根据目标数据库中的待落库的数据分别进行标签生成和数据包封装,得到待推送的标签和待推送的数据包,通过目标异步线程,将待推送的标签和待推送的数据包作为关联数据推送给目标Kafka,最后通过消费服务系统,获取目标数据分发配置数据,根据目标Kafka中的待推送的标签和目标数据分发配置数据,对目标Kafka中的待推送的数据包进行分发,从而实现了将后端系统和下游应用系统解耦合,而且采用异步线程根据数据库中的待落库的数据进行标签生成和数据包封装,实现了数据的准实时分发,而且可以只封装需要输出的数据到数据包,使数据输出实现了最小化原则。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种数据准实时分发方法,包括步骤:通过后端系统,获取目标应用发送的数据推送请求,所述数据推送请求携带有待落库的数据;通过所述后端系统,响应所述数据推送请求,将所述待落库的数据存储到目标数据库,生成落库成功信号;通过所述后端系统的异步线程管理模块,根据所述落库成功信号生成异步线程,得到目标异步线程;通过所述目标异步线程,根据所述目标数据库中的所述待落库的数据分别进行标签生成和数据包封装,得到待推送的标签和待推送的数据包;通过所述目标异步线程,将所述待推送的标签和所述待推送的数据包作为关联数据推送给目标Kafka;通过消费服务系统,获取目标数据分发配置数据,根据所述目标Kafka中的所述待推送的标签和所述目标数据分发配置数据,对所述目标Kafka中的所述待推送的数据包进行分发。
上述执行的数据准实时分发方法,本实施例方法首先通过后端系统,获取目标应用发送的数据推送请求,数据推送请求携带有待落库的数据,响应数据推送请求,将待落库的数据存储到目标数据库,生成落库成功信号,然后通过后端系统的异步线程管理模块,根据落库成功信号生成异步线程,得到目标异步线程,通过目标异步线程,根据目标数据库中的待落库的数据分别进行标签生成和数据包封装,得到待推送的标签和待推送的数据包,通过目标异步线程,将待推送的标签和待推送的数据包作为关联数据推送给目标Kafka,最后通过消费服务系统,获取目标数据分发配置数据,根据目标Kafka中的待推送的标签和目标数据分发配置数据,对目标Kafka中的待推送的数据包进行分发,从而实现了将后端系统和下游应用系统解耦合,而且采用异步线程根据数据库中的待落库的数据进行标签生成和数据包封装,实现了数据的准实时分发,而且可以只封装需要输出的数据到数据包,使数据输出实现了最小化原则。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种数据准实时分发方法,其特征在于,所述方法包括:
通过后端系统,获取目标应用发送的数据推送请求,所述数据推送请求携带有待落库的数据;
通过所述后端系统,响应所述数据推送请求,将所述待落库的数据存储到目标数据库,生成落库成功信号;
通过所述后端系统的异步线程管理模块,根据所述落库成功信号生成异步线程,得到目标异步线程;
通过所述目标异步线程,根据所述目标数据库中的所述待落库的数据分别进行标签生成和数据包封装,得到待推送的标签和待推送的数据包;
通过所述目标异步线程,将所述待推送的标签和所述待推送的数据包作为关联数据推送给目标Kafka;
通过消费服务系统,获取目标数据分发配置数据,根据所述目标Kafka中的所述待推送的标签和所述目标数据分发配置数据,对所述目标Kafka中的所述待推送的数据包进行分发。
2.根据权利要求1所述的数据准实时分发方法,其特征在于,所述根据所述目标数据库中的所述待落库的数据分别进行标签生成和数据包封装,得到待推送的标签和待推送的数据包的步骤,包括:
根据所述目标数据库中的所述待落库的数据获取目标标签生成规则;
采用所述目标标签生成规则的目标字段名称集合,根据所述目标数据库中的所述待落库的数据进行标签拼接,得到所述待推送的标签;
根据所述目标数据库中的所述待落库的数据获取目标数据包封装规则;
根据所述目标数据包封装规则,根据所述目标数据库中的所述待落库的数据进行数据包封装,得到所述待推送的数据包。
3.根据权利要求2所述的数据准实时分发方法,其特征在于,所述采用所述目标标签生成规则的目标字段名称集合,根据所述目标数据库中的所述待落库的数据进行标签拼接,得到所述待推送的标签的步骤,包括:
根据所述目标字段名称集合,从所述目标数据库中的所述待落库的数据中获取标签值数据,得到待拼接的数据集合;
采用所述目标标签生成规则的拼接顺序规则,根据所述待拼接的数据集合进行标签拼接,得到所述待推送的标签。
4.根据权利要求2所述的数据准实时分发方法,其特征在于,所述根据所述目标数据包封装规则,根据所述目标数据库中的所述待落库的数据进行数据包封装,得到所述待推送的数据包的步骤,包括:
根据所述目标数据包封装规则的字段名称集合,从所述目标数据库中的所述待落库的数据中获取需要分发的数据,得到待封装的数据集合;
根据所述目标数据包封装规则的数据封装规则,对所述待封装的数据集合进行数据包封装,得到所述待推送的数据包。
5.根据权利要求1所述的数据准实时分发方法,其特征在于,所述根据所述目标Kafka中的所述待推送的标签和所述目标数据分发配置数据,对所述目标Kafka中的所述待推送的数据包进行分发的步骤,包括:
分别采用所述目标数据分发配置数据的每个标签匹配规则,对所述目标Kafka中的所述待推送的标签进行正则匹配,得的各个所述标签匹配规则各自对应的标签匹配结果;
当存在所述标签匹配结果为成功时,将所述标签匹配结果为成功的所述标签匹配规则在所述目标数据分发配置数据中对应的数据包分发规则作为目标数据包分发规则;
采用所述目标数据包分发规则,对所述目标Kafka中的所述待推送的数据包进行分发。
6.根据权利要求5所述的数据准实时分发方法,其特征在于,所述获取目标数据分发配置数据的步骤之前,还包括:
通过所述消费服务系统的消费管理模块,获取配置请求;
通过所述消费管理模块,响应所述配置请求,获取待处理的数据分发配置数据;
通过所述消费管理模块,将所述待处理的数据分发配置数据存储在所述消费服务系统对应的数据库中。
7.根据权利要求1所述的数据准实时分发方法,其特征在于,所述通过所述后端系统,响应所述数据推送请求,将所述待落库的数据存储到目标数据库,生成落库成功信号的步骤,包括:
通过所述后端系统,响应所述数据推送请求,将所述待落库的数据存储到所述目标数据库,完成存储时生成所述落库成功信号,并且将所述落库成功信号发送给所述异步线程管理模块;
所述通过所述后端系统的异步线程管理模块,根据所述落库成功信号生成异步线程,得到目标异步线程的步骤,包括:
通过所述异步线程管理模块,根据所述落库成功信号携带的参数生成异步线程,将生成的异步线程作为所述目标异步线程。
8.一种数据准实时分发装置,其特征在于,所述装置包括:
请求获取模块,用于通过后端系统,获取目标应用发送的数据推送请求,所述数据推送请求携带有待落库的数据;
数据落库模块,用于通过所述后端系统,响应所述数据推送请求,将所述待落库的数据存储到目标数据库,生成落库成功信号;
目标异步线程确定模块,用于通过所述后端系统的异步线程管理模块,根据所述落库成功信号生成异步线程,得到目标异步线程;
标签生成和数据包封装模块,用于通过所述目标异步线程,根据所述目标数据库中的所述待落库的数据分别进行标签生成和数据包封装,得到待推送的标签和待推送的数据包;
数据推送模块,用于通过所述目标异步线程,将所述待推送的标签和所述待推送的数据包作为关联数据推送给目标Kafka;
分发模块,用于通过消费服务系统,获取目标数据分发配置数据,根据所述目标Kafka中的所述待推送的标签和所述目标数据分发配置数据,对所述目标Kafka中的所述待推送的数据包进行分发。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110726593.XA CN113296960B (zh) | 2021-06-29 | 2021-06-29 | 数据准实时分发方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110726593.XA CN113296960B (zh) | 2021-06-29 | 2021-06-29 | 数据准实时分发方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113296960A true CN113296960A (zh) | 2021-08-24 |
CN113296960B CN113296960B (zh) | 2023-02-03 |
Family
ID=77329926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110726593.XA Active CN113296960B (zh) | 2021-06-29 | 2021-06-29 | 数据准实时分发方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113296960B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113946362A (zh) * | 2021-09-02 | 2022-01-18 | 北京房江湖科技有限公司 | 消费数据处理方法及存储介质 |
CN115174667A (zh) * | 2022-06-24 | 2022-10-11 | 平安银行股份有限公司 | 大数据的推送方法、系统和电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060235970A1 (en) * | 2005-04-18 | 2006-10-19 | Cameron Bateman | System and method for exposing synchronous web services as notification style web services |
US20090204571A1 (en) * | 2008-02-13 | 2009-08-13 | Nec Corporation | Distributed directory server, distributed directory system, distributed directory managing method, and program of same |
CN111464598A (zh) * | 2020-03-19 | 2020-07-28 | 中国人民财产保险股份有限公司 | 一种数据推送方法及装置 |
CN112445614A (zh) * | 2020-11-03 | 2021-03-05 | 华帝股份有限公司 | 一种线程数据的存储管理方法、计算机设备及存储介质 |
CN112527528A (zh) * | 2020-12-18 | 2021-03-19 | 平安科技(深圳)有限公司 | 基于消息队列的数据传输方法、装置及存储介质 |
CN112818064A (zh) * | 2021-02-25 | 2021-05-18 | 平安普惠企业管理有限公司 | 多系统数据同步方法、装置、设备及存储介质 |
-
2021
- 2021-06-29 CN CN202110726593.XA patent/CN113296960B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060235970A1 (en) * | 2005-04-18 | 2006-10-19 | Cameron Bateman | System and method for exposing synchronous web services as notification style web services |
US20090204571A1 (en) * | 2008-02-13 | 2009-08-13 | Nec Corporation | Distributed directory server, distributed directory system, distributed directory managing method, and program of same |
CN111464598A (zh) * | 2020-03-19 | 2020-07-28 | 中国人民财产保险股份有限公司 | 一种数据推送方法及装置 |
CN112445614A (zh) * | 2020-11-03 | 2021-03-05 | 华帝股份有限公司 | 一种线程数据的存储管理方法、计算机设备及存储介质 |
CN112527528A (zh) * | 2020-12-18 | 2021-03-19 | 平安科技(深圳)有限公司 | 基于消息队列的数据传输方法、装置及存储介质 |
CN112818064A (zh) * | 2021-02-25 | 2021-05-18 | 平安普惠企业管理有限公司 | 多系统数据同步方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
纪贵等: "电信计费/结算业务处理流程实时监控探讨", 《中国新通信》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113946362A (zh) * | 2021-09-02 | 2022-01-18 | 北京房江湖科技有限公司 | 消费数据处理方法及存储介质 |
CN115174667A (zh) * | 2022-06-24 | 2022-10-11 | 平安银行股份有限公司 | 大数据的推送方法、系统和电子设备 |
CN115174667B (zh) * | 2022-06-24 | 2023-08-08 | 平安银行股份有限公司 | 大数据的推送方法、系统和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113296960B (zh) | 2023-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108829727B (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
EP3726411A1 (en) | Data desensitising method, server, terminal, and computer-readable storage medium | |
CN109474578B (zh) | 报文消息校验方法、装置、计算机设备和存储介质 | |
CN113296960B (zh) | 数据准实时分发方法、装置、设备及存储介质 | |
CN111143462B (zh) | 数据导出的方法、装置、计算机设备和存储介质 | |
CN110764700B (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN110908778B (zh) | 任务部署方法、系统和存储介质 | |
EP3975474B1 (en) | Methods and apparatuses for chaining service data | |
CN111399756A (zh) | 一种数据存储方法、数据下载方法及装置 | |
CN110708247B (zh) | 消息路由方法、装置、计算机设备和存储介质 | |
CN110213392B (zh) | 数据分发方法、装置、计算机设备和存储介质 | |
US10776179B2 (en) | Multi-application-oriented user data management method and system | |
CN108966159B (zh) | 短信撤回方法、系统、计算机设备和存储介质 | |
CN110795171A (zh) | 业务数据处理方法、装置、计算机设备及存储介质 | |
CN114153626A (zh) | 一种服务集成过程抽象的方法、装置和计算机设备 | |
CN114238811A (zh) | 页面加载方法、页面请求响应方法、装置、设备及介质 | |
CN108376154B (zh) | 系统基表同步方法、装置、计算机设备和存储介质 | |
CN108196831B (zh) | 业务系统的构建方法和装置 | |
CN113467855A (zh) | 网页请求处理方法、装置、电子设备及存储介质 | |
CN108389124B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN113127929A (zh) | 数据脱敏方法、脱敏规则处理方法、装置、设备及存储介质 | |
CN109614188B (zh) | 一种页面在线帮助方法、装置、计算机设备及存储介质 | |
CN110390008A (zh) | 报表推送方法、装置、计算机设备和存储介质 | |
CN111651425A (zh) | 数据集市的数据提取方法、装置、终端及存储介质 | |
CN110851446B (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 |