CN108156230A - 实时数据同步方法、系统及框架 - Google Patents
实时数据同步方法、系统及框架 Download PDFInfo
- Publication number
- CN108156230A CN108156230A CN201711377062.4A CN201711377062A CN108156230A CN 108156230 A CN108156230 A CN 108156230A CN 201711377062 A CN201711377062 A CN 201711377062A CN 108156230 A CN108156230 A CN 108156230A
- Authority
- CN
- China
- Prior art keywords
- message
- format
- real
- date
- target
- 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
- 238000000034 method Methods 0.000 title claims abstract description 16
- 238000003860 storage Methods 0.000 claims abstract description 93
- 230000005540 biological transmission Effects 0.000 claims abstract description 10
- 238000006243 chemical reaction Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 abstract description 4
- 230000000694 effects Effects 0.000 description 13
- 230000008859 change Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种实时数据同步方法、系统及框架,其中,方法包括以下步骤:连接若干不同种类的源端存储系统;获取源端存储系统的消息,赋予消息名称、分发字段以及消息顺序将原有消息格式进行转换,以系统设定格式进行保存;读取并解析消息格式转换后的消息,根据消息内的消息顺序判断是否过时;若没有过时,则将消息转换成统一的消息输出格式,同时根据消息内包含的信息和键值存储数据系统配置相应主键和目标存储地址;根据目标存储地址分配相应消息发送接口,将消息内容同步写入目标存储系统的相应表中。本发明通过赋予消息顺序并依据消息顺序判断消息是否过时,将未过时的消息传输至目标存储系统中,避免实时消息同步过程中的出现乱序。
Description
技术领域
本发明涉及实时数据同步技术领域,特别涉及一种实时数据同步方法、系统及框架。
背景技术
基于大数据技术各种分析的一个首要前提是需要有海量数据。海量数据的类型多种多样,如传感器收集的数据、服务端的日志以及关系数据库操作的binLog数据等等。在对这些数据进行分析或者挖掘前,需要进行ETL(Extract-Transform-Load,数据仓库技术)处理,其过程必然涉及到数据在各个不同存储系统之间进行移动。目前在离线统计分析中,对于海量数据在不同存储系统之间的导入导出已经存在像Sqoop(apache社区)或者dataX(阿里开源)这样比较成熟通用的同步引擎。但是在实时领域,目前只有flume在日志实时同步方面有着比较广的应用。但是由于在实时同步过程中,一个很重要的问题是处理消息乱序问题,即同一条记录连续两次更新,必须保证其顺序性,否则源端和目标端数据的一致性没法保证。目前,基于flume进行实时同步中,处理乱序问题是通过单通道来保证的。在要求消息有序的场景,并且消息量很大的时候,不能通过提高程序的并发度来提高吞吐量。所以其扩展性和并发性在这类场景中有着很大的局限性。
发明内容
本发明的目的是提供一种实时数据同步方法、系统及框架,解决现有上述的问题。
为解决上述问题,本发明实施例提供一种实时数据同步方法,包括以下步骤:
连接若干不同种类的源端存储系统;
获取源端存储系统的消息,赋予消息名称、分发字段以及消息顺序将原有消息格式进行转换,以系统设定格式进行保存;
读取并解析消息格式转换后的消息,根据消息内的消息顺序判断是否过时,若没有过时,则将消息转换成统一的消息输出格式,同时根据消息内包含的信息和键值存储数据系统配置相应主键和目标存储地址;
根据目标存储地址分配相应消息发送接口,将消息内容同步写入目标存储系统的相应表中。
作为一种实施方式,还包括以下步骤:
设置获取消息的最大条数。
本发明还提供一种实时数据同步系统,包括:
输入协议单元,连接若干不同种类的源端存储系统;
输入消息格式转化单元,获取源端存储系统的消息,赋予消息名称、分发字段以及消息顺序将原有消息格式进行转换,以系统设定格式进行保存;
消息过时判断单元,读取并解析消息格式转换后的消息,根据消息内的消息顺序判断是否过时;
输出消息格式转化单元,若没有过时,则将消息转换成统一的消息输出格式,同时根据消息内包含的信息和键值存储数据系统配置相应主键和目标存储地址;
输出协议单元,根据目标存储地址分配相应消息发送接口,将消息内容同步写入目标存储系统的相应表中。
作为一种实施方式,所述输入协议单元还包括消息条数模块,设置获取消息的最大条数。
本发明还提供一种实时数据同步框架,包括源端存储系统、核心处理引擎、键值存储数据系统以及目标存储系统,其中,核心处理引擎包括:
输入协议单元,连接若干不同种类的源端存储系统;
输入消息格式转化单元,获取源端存储系统的消息,赋予消息名称、分发字段以及消息顺序将原有消息格式进行转换,以系统设定格式进行保存;
消息过时判断单元,读取并解析消息格式转换后的消息,根据消息内的消息顺序判断是否过时;
输出消息格式转化单元,若没有过时,则将消息转换成统一的消息输出格式,同时根据消息内包含的信息和键值存储数据系统配置相应主键和目标存储地址;
输出协议单元,根据目标存储地址分配相应消息发送接口,将消息内容同步写入目标存储系统的相应表中。
作为一种实施方式,所述输入协议单元还包括消息条数模块,设置获取消息的最大条数。
作为一种实施方式,所述源端存储系统包括分布式实时消息系统、分布式发布订阅消息系统以及关系型数据库管理系统中的一个或多个。
作为一种实施方式,所述键值存储数据系统包括HBase系统和/或Redis系统。
本发明相比于现有技术的有益效果在于:通过赋予消息顺序并依据消息顺序判断消息是否过时,将未过时的消息传输至目标存储系统中,避免实时消息同步过程中的出现乱序。通过采用输入协议和输出协议的设计,能够对不同的输入源(即源端存储系统)以及目标存储系统接入;核心处理引擎结合状态存储,判断消息的有序性,能够提供可扩展,高吞吐的数据同步。
附图说明
图1为本发明实时数据同步方法的流程图;
图2为本发明实时数据同步系统的模块连接图;
图3为本发明实时数据同步框架的架构连接图。
附图标注:1、输入协议单元;11、消息条数模块;2、输入消息格式转化单元;3、消息过时判断单元;4、输出消息格式转化单元;5、输出协议单元;6、源端存储系统;7、核心处理引擎;8、键值存储数据系统;9、目标存储系统。
具体实施方式
以下结合附图,对本发明上述的和另外的技术特征和优点进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的部分实施例,而不是全部实施例。
如图1所示,一种实时数据同步方法,包括以下步骤:
S100:连接若干不同种类的源端存储系统;
S200:获取源端存储系统的消息,赋予消息名称、分发字段以及消息顺序将原有消息格式进行转换,以系统设定格式进行保存;
S300:读取并解析消息格式转换后的消息,根据消息内的消息顺序判断是否过时;
S400:若没有过时,则将消息转换成统一的消息输出格式,同时根据消息内包含的信息和键值存储数据系统配置相应主键和目标存储地址;
S500:根据目标存储地址分配相应消息发送接口,将消息内容同步写入目标存储系统的相应表中。
步骤S100中还包括:设置获取消息的最大条数。
如图2所示,一种实时数据同步系统,包括:
输入协议单元1,连接若干不同种类的源端存储系统6;
输入消息格式转化单元2,获取源端存储系统6的消息,赋予消息名称、分发字段以及消息顺序将原有消息格式进行转换,以系统设定格式进行保存;
消息过时判断单元3,读取并解析消息格式转换后的消息,根据消息内的消息顺序判断是否过时;
输出消息格式转化单元4,若没有过时,则将消息转换成统一的消息输出格式,同时根据消息内包含的信息和键值存储数据系统8配置相应主键和目标存储地址;
输出协议单元5,根据目标存储地址分配相应消息发送接口,将消息内容同步写入目标存储系统9的相应表中。
在本实施例中,输入协议单元1还包括消息条数模块11,设置获取消息的最大条数。
如图3所示,一种实时数据同步框架,包括源端存储系统6、核心处理引擎7、键值存储数据系统8以及目标存储系统9,其中,核心处理引擎7包括:
输入协议单元1,连接若干不同种类的源端存储系统6;
输入消息格式转化单元2,获取源端存储系统6的消息,赋予消息名称、分发字段以及消息顺序将原有消息格式进行转换,以系统设定格式进行保存;
消息过时判断单元3,读取并解析消息格式转换后的消息,根据消息内的消息顺序判断是否过时;
输出消息格式转化单元4,若没有过时,则将消息转换成统一的消息输出格式,同时根据消息内包含的信息和键值存储数据系统8配置相应主键和目标存储地址;
输出协议单元5,根据目标存储地址分配相应消息发送接口,将消息内容同步写入目标存储系统9的相应表中。
在本实施例中,源端存储系统6包括分布式实时消息系统(NSQ)、分布式发布订阅消息系统(kafka)、关系型数据库管理系统(MySQL)以及Redis系统等。键值存储数据系统8包括HBase系统或Redis系统。目标存储系统9包括HBase系统、分布式发布订阅消息系统(kafka)等。
通过设置输入协议实现不同输入源(源端存储系统6)无缝接入实时数据同步系统。此外为了抽象各种不同形式的消息,定义了输入消息格式。
输入协议如下:
输入协议中,init字段的作用是通过初始化函数,接收以Map参数的数据,通过定义统一的输入消息连接若干不同种类的源端存储系统6;getMessage字段的作用是读取输入源的消息并且转化为系统统一定义的InMessage消息(即转换为统一的输入消息格式);Ack字段的作用是一旦读取到消息被成功处理,将通过该接口向输入源报告;fail字段的作用是一旦消息处理失败,将进行重新获取消息并且进行消息重发。
输入消息格式如下
输入消息格式中,messageId字段的作用是唯一确定一条消息(即定义消息ID);groupValue字段的作用是在进行消息分发时,确保同一条消息的所有操作进入统一线程,从而避免多线程并发问题;RecordOrder字段的作用是用来确定消息的先后;content字段的作用是用来存储消息的实际内容,并以map格式进行保存。
核心处理引擎7根据InMessage的消息结合键值储存数据系统(hbase or redis)来确保同一条消息先后的连续更改能够在同步过程中的一致性,并且再此过程中,将InMessage转化为OutMessage消息,并且通过输出协议中writeMsgOut将消息发送给目标存储系统9的相应表中。
输出协议如下:
输出协议中的init字段类似于输入协议中的init字段,主要用来初始化目标存储系统9。而writeMsgOut字段的作用主要定义消息发送的接口。
输出信息格式如下:
其中,msgKey字段的作用主要为键值存储数据系统8服务,主要定义了存储到目标存储系统9以后的主键是怎么组成的;content字段的作用是存储消息具体的内容;TableName字段是用于将消息写入到目标存储系统9中对应表的地址;eventTypeSensitive字段的作用是主要用来决定对目标存储系统9地址的Insert,update和delete操作是否都需要关注。
本发明通过采用输入协议和输出协议的设计,能够对不同的输入源(即源端存储系统6)以及目标存储系统9接入;核心处理引擎7结合状态存储,判断消息的有序性,能够提供可扩展,高吞吐的数据同步。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围。特别指出,对于本领域技术人员来说,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种实时数据同步方法,其特征在于,包括以下步骤:
连接若干不同种类的源端存储系统;
获取源端存储系统的消息,赋予消息名称、分发字段以及消息顺序将原有消息格式进行转换,以系统设定格式进行保存;
读取并解析消息格式转换后的消息,根据消息内的消息顺序判断是否过时;
若没有过时,则将消息转换成统一的消息输出格式,同时根据消息内包含的信息和键值存储数据系统配置相应主键和目标存储地址;
根据目标存储地址分配相应消息发送接口,将消息内容同步写入目标存储系统的相应表中。
2.根据权利要求1所述的实时数据同步方法,其特征在于,还包括以下步骤:
设置获取消息的最大条数。
3.一种实时数据同步系统,其特征在于,包括:
输入协议单元,连接若干不同种类的源端存储系统;
输入消息格式转化单元,获取源端存储系统的消息,赋予消息名称、分发字段以及消息顺序将原有消息格式进行转换,以系统设定格式进行保存;
消息过时判断单元,读取并解析消息格式转换后的消息,根据消息内的消息顺序判断是否过时;
输出消息格式转化单元,若没有过时,则将消息转换成统一的消息输出格式,同时根据消息内包含的信息和键值存储数据系统配置相应主键和目标存储地址;
输出协议单元,根据目标存储地址分配相应消息发送接口,将消息内容同步写入目标存储系统的相应表中。
4.根据权利要求3所述的实时数据同步系统,其特征在于,所述输入协议单元还包括消息条数模块,设置获取消息的最大条数。
5.一种实时数据同步框架,其特征在于,包括源端存储系统、核心处理引擎、键值存储数据系统以及目标存储系统,其中,核心处理引擎包括:
输入协议单元,连接若干不同种类的源端存储系统;
输入消息格式转化单元,获取源端存储系统的消息,赋予消息名称、分发字段以及消息顺序将原有消息格式进行转换,以系统设定格式进行保存;
消息过时判断单元,读取并解析消息格式转换后的消息,根据消息内的消息顺序判断是否过时;
输出消息格式转化单元,若没有过时,则将消息转换成统一的消息输出格式,同时根据消息内包含的信息和键值存储数据系统配置相应主键和目标存储地址;
输出协议单元,根据目标存储地址分配相应消息发送接口,将消息内容同步写入目标存储系统的相应表中。
6.根据权利要求5所述的实时数据同步框架,其特征在于,所述输入协议单元还包括消息条数模块,设置获取消息的最大条数。
7.根据权利要求5所述的实时数据同步框架,其特征在于,所述源端存储系统包括分布式实时消息系统、分布式发布订阅消息系统以及关系型数据库管理系统中的一个或多个。
8.根据权利要求5所述的实时数据同步框架,其特征在于,所述键值存储数据系统包括HBase系统和/或Redis系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711377062.4A CN108156230B (zh) | 2017-12-19 | 2017-12-19 | 实时数据同步方法、系统及框架 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711377062.4A CN108156230B (zh) | 2017-12-19 | 2017-12-19 | 实时数据同步方法、系统及框架 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108156230A true CN108156230A (zh) | 2018-06-12 |
CN108156230B CN108156230B (zh) | 2020-09-04 |
Family
ID=62463942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711377062.4A Active CN108156230B (zh) | 2017-12-19 | 2017-12-19 | 实时数据同步方法、系统及框架 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108156230B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111327696A (zh) * | 2020-02-17 | 2020-06-23 | 北京奇艺世纪科技有限公司 | 一种数据处理方法及系统 |
CN111930385A (zh) * | 2020-07-28 | 2020-11-13 | 苏州亿歌网络科技有限公司 | 数据采集方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103118106A (zh) * | 2013-01-30 | 2013-05-22 | 福建三元达通讯股份有限公司 | 多台广告机同步播放的方法、装置以及系统 |
CN103139102A (zh) * | 2013-02-02 | 2013-06-05 | 中国人民解放军理工大学 | 多源多路径动态同步单宿信息匹配方法及其装置 |
CN103647669A (zh) * | 2013-12-16 | 2014-03-19 | 上海证券交易所 | 一种保证分布式数据处理一致性的系统及方法 |
CN104750870A (zh) * | 2015-04-20 | 2015-07-01 | 河海大学 | 一种基于HBase的日志存储系统及实现方法 |
US20160192301A1 (en) * | 2011-08-19 | 2016-06-30 | Qualcomm Incorporated | Beacons for wireless communication |
CN107169069A (zh) * | 2017-05-08 | 2017-09-15 | 山大地纬软件股份有限公司 | 分布式分级抽取多应用方法和数据抽取应用器 |
-
2017
- 2017-12-19 CN CN201711377062.4A patent/CN108156230B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160192301A1 (en) * | 2011-08-19 | 2016-06-30 | Qualcomm Incorporated | Beacons for wireless communication |
CN103118106A (zh) * | 2013-01-30 | 2013-05-22 | 福建三元达通讯股份有限公司 | 多台广告机同步播放的方法、装置以及系统 |
CN103139102A (zh) * | 2013-02-02 | 2013-06-05 | 中国人民解放军理工大学 | 多源多路径动态同步单宿信息匹配方法及其装置 |
CN103647669A (zh) * | 2013-12-16 | 2014-03-19 | 上海证券交易所 | 一种保证分布式数据处理一致性的系统及方法 |
CN104750870A (zh) * | 2015-04-20 | 2015-07-01 | 河海大学 | 一种基于HBase的日志存储系统及实现方法 |
CN107169069A (zh) * | 2017-05-08 | 2017-09-15 | 山大地纬软件股份有限公司 | 分布式分级抽取多应用方法和数据抽取应用器 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111327696A (zh) * | 2020-02-17 | 2020-06-23 | 北京奇艺世纪科技有限公司 | 一种数据处理方法及系统 |
CN111327696B (zh) * | 2020-02-17 | 2022-04-26 | 北京奇艺世纪科技有限公司 | 一种数据处理方法及系统 |
CN111930385A (zh) * | 2020-07-28 | 2020-11-13 | 苏州亿歌网络科技有限公司 | 数据采集方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108156230B (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107273506B (zh) | 一种数据库多表联合查询的方法 | |
CN109951463A (zh) | 一种基于流计算和新型列式存储的物联网大数据分析方法 | |
CN100531055C (zh) | 数据同步系统及其方法 | |
CN102129478B (zh) | 数据库同步方法及系统 | |
CN104252536B (zh) | 一种基于hbase的上网日志数据查询方法及装置 | |
CN103345521B (zh) | 一种在哈希表数据库中处理键值的方法和装置 | |
CN111046100B (zh) | 一种关系型数据库到非关系型数据库的同步方法和系统 | |
CN110109996A (zh) | 一种工业互联网设备实时数据采集与存储方法及系统 | |
CN102662988B (zh) | 一种用于rfid中间件的冗余数据过滤方法 | |
CN111125260A (zh) | 一种基于SQL Server的数据同步方法及系统 | |
CN106503158B (zh) | 数据同步方法及装置 | |
CN107818120A (zh) | 基于大数据的数据处理方法和装置 | |
CN106649828A (zh) | 一种数据查询方法及系统 | |
CN108121778B (zh) | 一种异构数据交换与清洗系统及方法 | |
CN104468274A (zh) | 一种集群监控管理方法及系统 | |
CN101997701B (zh) | 数据处理方法及装置 | |
CN111767327A (zh) | 数据流间具有依赖关系的数据仓库构件方法与系统 | |
CN108156230A (zh) | 实时数据同步方法、系统及框架 | |
CN115033646B (zh) | 一种基于Flink&Doris构建实时数仓系统的方法 | |
CN115994251A (zh) | 靶弹遥测数据解析装置及解析系统 | |
EP3832477A1 (en) | Efficient storage method for time series data | |
CN110245043A (zh) | 一种分布式系统间调用关系的跟踪系统 | |
CN108228734A (zh) | 一种数据可视化的系统和方法 | |
CN102946423A (zh) | 一种基于分布式系统架构的数据映射推送系统及方法 | |
CN109669982A (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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: Real time data synchronization methods, systems, and frameworks Effective date of registration: 20231229 Granted publication date: 20200904 Pledgee: Hangzhou United Rural Commercial Bank Co.,Ltd. Dongyue sub branch Pledgor: HANGZHOU YOUZAN TECHNOLOGY CO.,LTD. Registration number: Y2023980074694 |