CN111913821B - 一种实现跨数据源实时数据流生产消费的方法 - Google Patents

一种实现跨数据源实时数据流生产消费的方法 Download PDF

Info

Publication number
CN111913821B
CN111913821B CN202010822880.6A CN202010822880A CN111913821B CN 111913821 B CN111913821 B CN 111913821B CN 202010822880 A CN202010822880 A CN 202010822880A CN 111913821 B CN111913821 B CN 111913821B
Authority
CN
China
Prior art keywords
data
message queue
database
message
name
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
Application number
CN202010822880.6A
Other languages
English (en)
Other versions
CN111913821A (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.)
Wuhan Zhongbang Bank Co Ltd
Original Assignee
Wuhan Zhongbang Bank 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 Wuhan Zhongbang Bank Co Ltd filed Critical Wuhan Zhongbang Bank Co Ltd
Priority to CN202010822880.6A priority Critical patent/CN111913821B/zh
Publication of CN111913821A publication Critical patent/CN111913821A/zh
Application granted granted Critical
Publication of CN111913821B publication Critical patent/CN111913821B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及信息技术领域,提供了一种实现跨数据源实时数据流生产消费的方法。目的在于解决现有的通常一个consumer并不需要同一消息队列中的所有数据,而是要消费多个消息队列中的部分数据,因为消息队列中的数据只能顺序消费,就会导致consumer会消费出不需要的数据,一方面造成了资源浪费,另一方面带来了数据安全的问题。主要方案包括步骤1:统一数据生产者producer的数据标准,增加数据类别标识符;步骤2:开发消息队列过滤板,对消息队列中的数据进行筛选分类,实现对消息对列中的数据标识,得到每一条数据所对应的数据源地址、库名、表名;步骤3:开发数据分发机制功能,并收集consumer的数据消费需求,根据需求进行数据配置化分发。

Description

一种实现跨数据源实时数据流生产消费的方法
技术领域
本发明涉及信息技术领域,提供了一种实现跨数据源实时数据流生产消费的方法。
背景技术
为了更好的理解本提案,需要了解一下基本技术:
消息队列是一种进程之间通讯方式,它有着一个显著的特点:异步处理,它允许用户把一个消息放入队列,但并不立即处理它,在需要的时候再去队列中消费出来,然后去处理它们。因此为了保证数据一致性,消息队列采用FIFO先进先出的特性,来保证消息的顺序性。
在日常运用中,通常一个consumer并不需要同一消息队列中的所有数据,而是要消费多个消息队列中的部分数据,因为消息队列中的数据只能顺序消费,就会导致consumer会消费出不需要的数据,一方面造成了资源浪费,另一方面带来了数据安全问题。
发明内容
本发明的目的在于解决现有的通常一个consumer并不需要同一消息队列中的所有数据,而是要消费多个消息队列中的部分数据,因为消息队列中的数据只能顺序消费,就会导致consumer会消费出不需要的数据,一方面造成了资源浪费,另一方面带来了数据安全的问题。
本发明为解决上述技术问题,采用以下技术方案:
一种实现跨数据源实时数据流生产消费的方法,其特征在于,包括以下步骤:
步骤1:统一数据生产者producer的数据标准,增加数据类别标识符;
步骤2:开发消息队列过滤板,对消息队列中的数据进行筛选分类,实现对消息对列中的数据标识,得到每一条数据所对应的数据源地址、库名、表名;
步骤3:开发数据分发机制功能,并收集consumer的数据消费需求,根据需求进行数据配置化分发。
上述技术方案中,步骤1,具体包含以下步骤:
步骤1.1:收集producer信息,主要是通过接入消息队列的数据库信息,确定需要接入的数据,所述的数据库信息至少包含数据库地址、端口、数据库名、数据库表名;
步骤1.2:将数据库接入消息队列,每一条送入消息队列中的数据,带上数据分类标识,即每个数据库对应一个kafka的topic,其中标识可以分辨出上述步骤1.1中的数据库信息。
作为具体的示例,数据库接入消息队列可以使用OGG实现,OGG可以解析关系型数据库的归档日志,归档日志是记录数据库表的更改记录,经过OGG解析后可将归档日志转换成可读的数据流;消息队列可以使用kafka实现,kafka接入OGG产生的数据流。这样配置后,每个数据库对应一个kafka的topic,实时数据流中的每一条数据都包含有数据库的表名。
上述技术方案中,上述步骤2,具体包含以下步骤:
步骤2.1:开发消息队列过滤板程序,具体示例可以用java实现,方式如下:
步骤2.1.1:在java程序中实现消息队列消费类,连接kafka服务器,从相应的消息队列中消费数据;
步骤2.1.2:分析消费出来的数据,获取每一条的数据的标识信息:表名,然后根据topic的名称,获取消息队列对应的数据源信息:数据库地址、端口、数据库名;
步骤2.1.3:根据消息队列的名称,即示例中kafka的topic名称,再根据ogg的配置信息,可以获取topic对应的数据源信息:数据库地址、端口、数据库名;
步骤2.2:过滤板程序接入kafka,实现消息队列数据分类。
上述技术方案中,上述步骤3,具体包含以下步骤:
步骤3.1:在上述步骤2程序中增加读取consumer消费配置信息功能,信息至少包含consumer需要消费的数据库名及表名;
步骤3.2:根据步骤3.1中的配置信息,对分类后的实时数据进行筛选,将筛选后的数据发送到新的消息队列中;
步骤3.3:将新的消息队列接入到对应的consumer,实现消息队列定制化消费。
上述技术方案中,步骤1.2中将数据库接入消息队列是指通过数据库归档日志解析工具,将数据库归档日志解析成可读字符,并转换成实时数据流,发送到消息队列中。
上述技术方案中,步骤2.2中对消息对列中的数据标识是指得到每一条数据所对应的数据源地址、库名、表名。
因为本发明采用上述技术方案,因此具备以下有益效果:
本提案通过在消息队列中增加一个应用程序去过滤实时数据流数据,统一消费原有的实时数据流,可以降低消息队列的连接并发数。第二步根据consumer的消费信息,对实时数据流进行分类筛选,将有效的数据重新发送到新的消息队列中,无效的数据直接过滤掉,一方面可以降低数据泄露风险,另一方面分担原有的消息队列压力。
附图说明
图1为本发明流程示意图;
图2为消息队列数据生产消费模式。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
一种实现跨数据源实时数据流生产消费的方法,其特征在于,包括以下步骤:
步骤1:统一数据生产者producer的数据标准,增加数据类别标识符;
步骤2:开发消息队列过滤板,对消息队列中的数据进行筛选分类,实现对消息对列中的数据标识,得到每一条数据所对应的数据源地址、库名、表名;
步骤3:开发数据分发机制功能,并收集consumer的数据消费需求,根据需求进行数据配置化分发。
上述技术方案中,步骤1,具体包含以下步骤:
步骤1.1:收集producer信息,主要是通过接入消息队列的数据库信息,确定需要接入的数据,所述的数据库信息至少包含数据库地址、端口、数据库名、数据库表名;
步骤1.2:将数据库接入消息队列,每一条送入消息队列中的数据,带上数据分类标识,其中标识可以分辨出上述步骤1.1中的数据库信息。
作为具体的示例,数据库接入消息队列可以使用OGG实现,OGG可以解析关系型数据库的归档日志,归档日志是记录数据库表的更改记录,经过OGG解析后可将归档日志转换成可读的数据流;消息队列可以使用kafka实现,kafka接入OGG产生的数据流。这样配置后,每个数据库对应一个kafka的topic,实时数据流中的每一条数据都包含有数据库的表名。
上述技术方案中,上述步骤2,具体包含以下步骤:
步骤2.1:开发消息队列过滤板程序,具体示例可以用java实现,方式如下:
步骤2.1.1:在java程序中实现消息队列消费类,连接kafka服务器,从相应的消息队列中消费数据;
步骤2.1.2:分析消费出来的数据,获取每一条的数据的标识信息:表名,然后根据topic的名称,获取消息队列对应的数据源信息:数据库地址、端口、数据库名;
步骤2.2:过滤板程序接入kafka,实现消息队列数据分类。
上述技术方案中,上述步骤3,具体包含以下步骤:
步骤3.1:在上述步骤2程序中增加读取consumer消费配置信息功能,信息至少包含consumer需要消费的数据库名及表名,配置信息包含consumer需要消费的数据所对应的数据库地址、端口、数据库名、表名;
步骤3.2:根据步骤3.1中的配置信息,对分类后的实时数据进行筛选,将筛选后的数据发送到新的消息队列中;
步骤3.3:将新的消息队列接入到对应的consumer,实现消息队列定制化消费。
上述技术方案中,步骤1.2中将数据库接入消息队列是指通过数据库归档日志解析工具,将数据库归档日志解析成可读字符,并转换成实时数据流,发送到消息队列中。
上述技术方案中,步骤2.2中对消息对列中的数据标识是指得到每一条数据所对应的数据源地址、库名、表名。

Claims (1)

1.一种实现跨数据源实时数据流生产消费的方法,其特征在于,包括以下步骤:
步骤1:统一数据生产者producer的数据标准,增加数据类别标识符;
步骤2:开发消息队列过滤板,对消息队列中的数据进行筛选分类,实现对消息对列中的数据标识,得到每一条数据所对应的数据源地址、库名、表名;
步骤3:开发数据分发机制功能,并收集consumer的数据消费需求,根据需求进行数据配置化分发;
步骤1,具体包含以下步骤:
步骤1.1:收集producer信息,通过接入消息队列的数据库信息,确定需要接入的数据,所述的数据库信息至少包含数据库地址、端口、数据库名、数据库表名;
步骤1.2:将数据库接入消息队列,每一条送入消息队列中的数据,带上数据分类标识,得到每个数据库对应的消息队列的名称,其中标识可以分辨出上述步骤1.1中的数据库信息;
上述步骤2,具体包含以下步骤:
步骤2.1:开发消息队列过滤板程序:
步骤2.1.1:在java程序中实现消息队列消费类,连接kafka服务器,从相应的消息队列中消费数据;
步骤2.1.2:解析消费出来的数据,消费的数据格式为json格式字符串,获取json串中键tablename对应的值,即该条数据对应的数据库表名;
步骤2.1.3:根据消息队列的名称,再根据ogg的配置信息,可以获取消息队列的名称对应的数据源信息:数据库地址、端口、数据库名;
步骤2.2:过滤板程序接入kafka,实现消息队列数据分类;
上述步骤3,具体包含以下步骤:
步骤3.1:在上述步骤2程序中增加读取consumer消费配置信息功能,信息至少包含consumer需要消费的数据库名及表名;
步骤3.2:根据步骤3.1中的配置信息,对分类后的实时数据进行筛选,将筛选后的数据发送到新的消息队列中;
步骤3.3:将新的消息队列接入到对应的consumer,实现消息队列定制化消费;
步骤1.2中将数据库接入消息队列是指通过数据库归档日志解析工具,将数据库归档日志解析成可读字符,并转换成实时数据流,发送到消息队列中;
步骤2.2中实现消息队列数据分类,是指实现对消息对列中的数据标识,指得到每一条数据所对应的数据源地址、库名、表名。
CN202010822880.6A 2020-08-17 2020-08-17 一种实现跨数据源实时数据流生产消费的方法 Active CN111913821B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010822880.6A CN111913821B (zh) 2020-08-17 2020-08-17 一种实现跨数据源实时数据流生产消费的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010822880.6A CN111913821B (zh) 2020-08-17 2020-08-17 一种实现跨数据源实时数据流生产消费的方法

Publications (2)

Publication Number Publication Date
CN111913821A CN111913821A (zh) 2020-11-10
CN111913821B true CN111913821B (zh) 2021-07-16

Family

ID=73278136

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010822880.6A Active CN111913821B (zh) 2020-08-17 2020-08-17 一种实现跨数据源实时数据流生产消费的方法

Country Status (1)

Country Link
CN (1) CN111913821B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112953757B (zh) * 2021-01-26 2023-12-29 北京明略软件系统有限公司 数据分发方法、系统和计算机设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107391271A (zh) * 2017-05-17 2017-11-24 阿里巴巴集团控股有限公司 一种基于消息队列系统的延时任务触发方法和装置
CN107766538A (zh) * 2017-10-28 2018-03-06 杭州安恒信息技术有限公司 基于java的数据过滤处理模块及同步、异步过滤方法
US10057329B2 (en) * 2014-01-14 2018-08-21 International Business Machines Corporation Message switch file sharing
CN109684370A (zh) * 2018-09-07 2019-04-26 平安普惠企业管理有限公司 日志数据处理方法、系统、设备及存储介质
CN109960629A (zh) * 2019-03-14 2019-07-02 银清科技(北京)有限公司 对支付系统业务量实时监控的方法和装置
CN110401636A (zh) * 2019-06-28 2019-11-01 苏州浪潮智能科技有限公司 一种监管异常访问的大数据风控方法和装置
CN111026774A (zh) * 2019-12-03 2020-04-17 深圳前海环融联易信息科技服务有限公司 数据顺序同步方法、装置、计算机设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111538600B (zh) * 2020-02-25 2023-09-12 远景智能国际私人投资有限公司 消息处理方法、装置、计算机设备及存储介质
CN111371621A (zh) * 2020-03-12 2020-07-03 浪潮通用软件有限公司 基于混合云的数据交换方法、装置及计算机可读介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10057329B2 (en) * 2014-01-14 2018-08-21 International Business Machines Corporation Message switch file sharing
CN107391271A (zh) * 2017-05-17 2017-11-24 阿里巴巴集团控股有限公司 一种基于消息队列系统的延时任务触发方法和装置
CN107766538A (zh) * 2017-10-28 2018-03-06 杭州安恒信息技术有限公司 基于java的数据过滤处理模块及同步、异步过滤方法
CN109684370A (zh) * 2018-09-07 2019-04-26 平安普惠企业管理有限公司 日志数据处理方法、系统、设备及存储介质
CN109960629A (zh) * 2019-03-14 2019-07-02 银清科技(北京)有限公司 对支付系统业务量实时监控的方法和装置
CN110401636A (zh) * 2019-06-28 2019-11-01 苏州浪潮智能科技有限公司 一种监管异常访问的大数据风控方法和装置
CN111026774A (zh) * 2019-12-03 2020-04-17 深圳前海环融联易信息科技服务有限公司 数据顺序同步方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN111913821A (zh) 2020-11-10

Similar Documents

Publication Publication Date Title
CN109254982B (zh) 一种流数据处理方法、系统、装置及计算机可读存储介质
CN107577805B (zh) 一种面向日志大数据分析的业务服务系统
US10318555B2 (en) Identifying relationships between network traffic data and log data
CN109151078B (zh) 一种分布式智能邮件分析过滤方法、系统及存储介质
CN110457178A (zh) 一种基于日志采集分析的全链路监控告警方法
CN110162544B (zh) 异构数据源数据获取方法及装置
CN105227367A (zh) 一种低延迟的告警解析处理方法
US6754654B1 (en) System and method for extracting knowledge from documents
CN111400288A (zh) 数据质量检查方法及系统
CN108228664B (zh) 非结构化数据处理方法及装置
CN111913821B (zh) 一种实现跨数据源实时数据流生产消费的方法
CN114880405A (zh) 一种基于数据湖的数据处理方法及系统
CN110784377A (zh) 一种多云环境下的云监控数据统一管理的方法
CN113282611A (zh) 一种流数据同步的方法、装置、计算机设备及存储介质
CN115509797A (zh) 一种故障类别的确定方法、装置、设备及介质
CN113934733A (zh) 问题定位方法、装置、系统、存储介质及电子设备
CN114090529A (zh) 一种日志管理方法、装置、系统和存储介质
CN113779949A (zh) 一种报告生成方法、装置、电子设备、存储介质及系统
CN111125226A (zh) 一种配置数据采集方法及装置
CN115935231A (zh) 一种数据分类方法、装置、设备及存储介质
CN115237989A (zh) 一种矿山数据采集系统
CN114185878A (zh) 一种基于字段定义生成数据校验的方法及装置
CN112346938B (zh) 操作审计方法、装置及服务器和计算机可读存储介质
CN112347066B (zh) 日志处理方法、装置及服务器和计算机可读存储介质
CN111143329A (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