CN112905594A - 一种数据实时同步方法 - Google Patents
一种数据实时同步方法 Download PDFInfo
- Publication number
- CN112905594A CN112905594A CN202110245191.8A CN202110245191A CN112905594A CN 112905594 A CN112905594 A CN 112905594A CN 202110245191 A CN202110245191 A CN 202110245191A CN 112905594 A CN112905594 A CN 112905594A
- Authority
- CN
- China
- Prior art keywords
- data
- application program
- clickhouse
- real
- time
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000007781 pre-processing Methods 0.000 claims abstract description 8
- 230000008569 process Effects 0.000 claims abstract description 7
- 238000004422 calculation algorithm Methods 0.000 claims description 6
- 238000007405 data analysis Methods 0.000 abstract description 4
- 238000012163 sequencing technique Methods 0.000 abstract description 2
- 230000006872 improvement Effects 0.000 description 8
- 239000012634 fragment Substances 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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/2453—Query optimisation
-
- 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
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)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据实时同步方法,涉及大数据分析技术领域,该方法包括在业务***做预处理过程,获取数据信息并最终存入C l i ckhouse节点中,预处理过程包括应用程序拉取数据,获取外部配置参数,同步mongodb集群条件、分页信息以及主键,该方法还包括应用程序依据mongodb集群条件查询拉取的数据,再根据分页信息去mongodb集群查询数据,拉取到最后一条数据时更新查询条件,更新后的数据作为下一个查询的条件,应用程序根据主键的排序,将查询获取的数据写入多个C l i ckhouse‑bu l ck proxy中,最终由C l i ckhouse‑bu l ck proxy将应用程序查询获取的数据写入C l i ckhouse节点中,本发明可以自行定义写入时间,实时性可调控,而且在分页查询下,可以避免数据拥堵查询不出的情况发生。
Description
技术领域
本发明涉及大数据分析技术领域,具体来说,涉及一种数据实时同步方法。
背景技术
随着物联网IOT时代的来临,IOT设备感知和报警存储的数据越来越多,这些需要数据分析师去分析以提取有价值的信息。大数据分析成了非常重要的环节。近两年开启的开源大潮,为大数据分析工程师提供了十分富余的工具。但这同时也增加了开发者选择合适的工具的难度,尤其对于新入行的开发者来说,学***台人工整合到一起工作非常复杂。
Clickhouse的出现使得平台简单化和统一化变为现实,Clickhouse是Yandex.Metrica世界第二大Web分析平台而开发的。它是一款用于大数据实时分析的列式数据库管理***,而非数据库。通过向量化执行以及对CPU底层指令集(SIMD)的使用,它可以对海量数据进行并行处理,从而加快数据的处理速度。很多商业机构纷纷转向Clickhouse,其中有不少是由mongodb转移到Clickhouse。但是,目前而言mongodb转移到Clickhouse并没有很好的同步工具或者方案,传统的都是通过脚本导出json文件然后再导入Clickhouse有很多缺点:
1、效率底下,数据质量得不到保障,耗时长;
2、clichouse不支持高并发,多个脚本同时运行导入可能会导致写入失败。
发明内容
为了克服现有技术的不足,本发明的一种数据实时同步方法,能够自行定义写入时间,实时性可调控,可以避免数据拥堵查询不出的情况发生。
本发明解决其技术问题所采用的技术方案是:一种数据实时同步方法,其改进之处在于,该方法包括在业务***做预处理过程,获取数据信息并最终存入Clickhouse节点中,预处理过程包括下列步骤:
步骤1,应用程序拉取数据,获取外部配置参数,同步mongodb集群条件、分页信息以及主键;
步骤2,应用程序依据mongodb集群条件查询拉取的数据,再根据分页信息去mongodb集群查询数据,拉取到最后一条数据时更新查询条件,更新后的数据作为下一个查询的条件;
步骤3,根据主键的排序,应用程序将查询获取的数据写入多个Clickhouse-bulckproxy中;
步骤4,Clickhouse-bulck proxy将应用程序查询获取的数据写入Clickhouse节点中。
作为上述技术方案的改进,步骤1中,应用程序依据程序设置定时拉取数据。
作为上述技术方案的进一步改进,步骤2中,根据查询条件,应用程序会初始化mongodb客户端和mongodb集群的交互信息,获取mongodb集群返回的数据。
作为上述技术方案的进一步改进,步骤3中,主键包括联合主键和自定义的主键,应用程序根据联合主键或者自定义的主键排序,进行哈希算法,将数据运算到Clickhouse-bulck proxy上。
作为上述技术方案的进一步改进,每个Clickhouse-bulck proxy中只能写入一个数据。
作为上述技术方案的进一步改进,步骤4中,Clickhouse-bulck proxy将应用程序查询获取的数据写入Clickhouse节点前,满足获取数据的等待时长t,应用程序查询获取的数据才能写入Clickhouse节点中。
作为上述技术方案的进一步改进,步骤4中,Clickhouse-bulck proxy将应用程序查询获取的数据写入Clickhouse节点前,满足获取数据条数n,应用程序查询获取的数据才能写入Clickhouse节点中。
作为上述技术方案的进一步改进,应用程序为Angle Sync。
本发明的有益效果是:
1、本发明可以自行定义写入时间,实时性可调控;
2、基于分页查询,可以避免数据拥堵查询不出的情况发生;
3、自动根据主键进行哈希算法将数据写入到目标节点,可以有效避免数据重复。
附图说明
图1为本发明的结构框架图。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整地描述,以充分地理解本发明的目的、特征和效果。显然,所描述的实施例只是本发明的一部分实施例,而不是全部实施例,基于本发明的实施例,本领域的技术人员在不付出创造性劳动的前提下所获得的其他实施例,均属于本发明保护的范围。另外,专利中涉及到的所有联接/连接关系,并非单指构件直接相接,而是指可根据具体实施情况,通过添加或减少联接辅件,来组成更优的联接结构。本发明创造中的各个技术特征,在不互相矛盾冲突的前提下可以交互组合。
本发明揭示了一种数据实时同步方法,该方法包括在业务***做预处理过程,获取数据信息并最终存入Clickhouse节点中,预处理过程包括下列步骤:
步骤1,应用程序(Angle Sync)拉取数据,获取外部配置参数,同步mongodb集群条件、分页信息以及主键;
步骤2,应用程序依据mongodb集群条件查询拉取的数据,再根据分页信息去mongodb集群查询数据,拉取到最后一条数据时更新查询条件,更新后的数据作为下一个查询的条件;
步骤3,根据主键的排序,应用程序将查询获取的数据写入多个Clickhouse-bulckproxy中;
步骤4,Clickhouse-bulck proxy将应用程序查询获取的数据写入Clickhouse节点中。
在上述实施例中,Angle Sync先拉取外部配置信息,获取需要同步的mongodb数据条件、分页信息以及主键,这里的主键可以是业务设定的唯一主键,也可以是联合主键,主要用途是方便数据分发到对应的Clickhouse节点上,根据查询条件,应用程序会初始化mongodb客户端和mongodb集群的交互信息,获取mongodb集群返回的数据,等拉取到最后一条数据时更新查询条件,更新后的数据作为下一个查询的条件,应用程序根据主键的排序,将查询获取的数据写入多个Clickhouse-bulck proxy中,参考图1,最终Clickhouse-bulckproxy将应用程序查询获取的数据写入Clickhouse节点中。
通过该来回循环的方式获取mongodb集群返回的数据,可以避免数据返回出现错误,提高数据写入的质量,而且针对写入失败的数据,会载入内存,然后根据配置信息定期把失败的数据写入到dumps目录下的文件,只需要对这个文件内容解析然后***clickhouse对应表即可。
本发明的Clickhouse-bulck proxy和Clickhouse是相互绑定的,其中,Clickhouse-bulck proxy用于向Clickhouse写入数据,在多个Clickhouse-bulck proxy和多个Clickhouse情况下,编号为XX的Clickhouse-bulck proxy只能向编号同为XX的Clickhouse写入数据,例如1号Clickhouse-bulck proxy只能向1号Clickhouse写入数据。
每个Clickhouse-bulck proxym包含有2个节点,当其中一个节点损坏后,应用程序(Angle Sync)会将数据写入到另外一个节点,数据写入一个分片,仅写入一个副本,然后再写入ZK(ZK是一套以AJAX/XUL/Java为基础的网页应用程序开发框架,用于丰富网页应用程序的使用界面),通过ZK告诉同一个分片的其他副本,其他副本再过来拉取数据。ZK更加轻量级,写的时候,任意写一个副本,其它副本都能够通过ZK获得一致的数据。此外,即便其它节点第一次来获取数据失败了,只要发现它与ZK上记录的数据不一致,就会再次尝试获取数据,保证数据一致性。
本发明支持联合主键和自定义主键,应用程序根据联合主键或者自定义的主键排序,进行哈希算法,将数据运算到Clickhouse-bulck proxy上。每个Clickhouse-bulckproxy中只能写入一个数据。本发明的应用程序(Angle Sync)会根据自定义的主键(也可以是联合主键),进行哈希算法到唯一的分片上去,确保同样的主键落入同一个分片,那么就可以利用自身的主键合并功能,从而避免了同一主键数据落入不同分片导致数据不能合并重复产生数据的情况发生。
进一步的,步骤1中,应用程序依据程序设置定时拉取数据。本发明的程序可以自由调节时间,通过每隔固定时间去拉取增量数据,实现实时性可调控的目标。
最后,步骤4中,Clickhouse-bulckproxy将应用程序查询获取的数据写入Clickhouse节点前,满足获取数据的等待时长t,应用程序查询获取的数据才能写入Clickhouse节点中。或者,在步骤4中,Clickhouse-bulck proxy将应用程序查询获取的数据写入Clickhouse节点前,满足获取数据条数n,应用程序查询获取的数据才能写入Clickhouse节点中。
在上述实施例中,满足获取数据的等待时长t(其中,t>0)可以自定义设置,优选10秒钟;满足获取数据条数n(其中,n>0)可以自定义设置,获取条数n优选范围在1000条以上,只要满足其中的任意一个条件就可以触发写入操作,Clickhouse-bulck proxy就会将数据写入Clickhouse,本发明限制写入的时间和写入的数据量,数据分批量写入可以避免大量数据同时写入Clickhouse造成数据拥堵的情况发生,提高***有效使用时长。
本发明的有益效果是:
1、本发明可以自行定义写入时间,实时性可调控;
2、基于分页查询,可以避免数据拥堵查询不出的情况发生;
3、自动根据主键进行哈希算法将数据写入到目标节点,可以有效避免数据重复。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围。
Claims (8)
1.一种数据实时同步方法,其特征在于,该方法包括在业务***做预处理过程,获取数据信息并最终存入Clickhouse节点中,预处理过程包括下列步骤:
步骤1,应用程序拉取数据,获取外部配置参数,同步mongodb集群条件、分页信息以及主键;
步骤2,应用程序依据mongodb集群条件查询拉取的数据,再根据分页信息去mongodb集群查询数据,拉取到最后一条数据时更新查询条件,更新后的数据作为下一个查询的条件;
步骤3,根据主键的排序,应用程序将查询获取的数据写入多个Clickhouse-bulckproxy中;
步骤4,Clickhouse-bulck proxy将应用程序查询获取的数据写入Clickhouse节点中。
2.根据权利要求1所述的一种数据实时同步方法,其特征在于,步骤1中,应用程序依据程序设置定时拉取数据。
3.根据权利要求1所述的一种数据实时同步方法,其特征在于,步骤2中,根据查询条件,应用程序会初始化mongodb客户端和mongodb集群的交互信息,获取mongodb集群返回的数据。
4.根据权利要求1所述的一种数据实时同步方法,其特征在于,步骤3中,主键包括联合主键和自定义的主键,应用程序根据联合主键或者自定义的主键排序,进行哈希算法,将数据运算到Clickhouse-bulck proxy上。
5.根据权利要求4所述的一种数据实时同步方法,其特征在于,每个Clickhouse-bulckproxy中只能写入一个数据。
6.根据权利要求1所述的一种数据实时同步方法,其特征在于,步骤4中,满足获取数据的等待时长t,应用程序查询获取的数据才能写入Clickhouse节点中。
7.根据权利要求1所述的一种数据实时同步方法,其特征在于,步骤4中,满足获取数据条数n,应用程序查询获取的数据才能写入Clickhouse节点中。
8.根据权利要求1至7所述的任意一种数据实时同步方法,其特征在于,应用程序为Angle Sync。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110245191.8A CN112905594A (zh) | 2021-03-05 | 2021-03-05 | 一种数据实时同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110245191.8A CN112905594A (zh) | 2021-03-05 | 2021-03-05 | 一种数据实时同步方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112905594A true CN112905594A (zh) | 2021-06-04 |
Family
ID=76107760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110245191.8A Pending CN112905594A (zh) | 2021-03-05 | 2021-03-05 | 一种数据实时同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112905594A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699638A (zh) * | 2013-12-23 | 2014-04-02 | 国云科技股份有限公司 | 一种基于配置参数实现跨数据库类型同步数据的方法 |
CN106649435A (zh) * | 2016-09-07 | 2017-05-10 | 努比亚技术有限公司 | 数据查询装置及方法 |
CN109344197A (zh) * | 2018-09-13 | 2019-02-15 | 广州帷策智能科技有限公司 | 基于大数据的分页下载方法和装置 |
CN110222122A (zh) * | 2019-07-26 | 2019-09-10 | 深圳市元征科技股份有限公司 | 一种MongoDB的数据同步方法及相关设备 |
CN111552701A (zh) * | 2020-04-30 | 2020-08-18 | 中国建设银行股份有限公司 | 确定分布式集群中数据一致性的方法及分布式数据*** |
CN111897878A (zh) * | 2020-08-25 | 2020-11-06 | 中国工商银行股份有限公司 | 主辅数据同步方法及*** |
CN112269802A (zh) * | 2020-10-16 | 2021-01-26 | 银盛支付服务股份有限公司 | 一种基于Clickhouse频繁删改查优化的方法及*** |
-
2021
- 2021-03-05 CN CN202110245191.8A patent/CN112905594A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699638A (zh) * | 2013-12-23 | 2014-04-02 | 国云科技股份有限公司 | 一种基于配置参数实现跨数据库类型同步数据的方法 |
CN106649435A (zh) * | 2016-09-07 | 2017-05-10 | 努比亚技术有限公司 | 数据查询装置及方法 |
CN109344197A (zh) * | 2018-09-13 | 2019-02-15 | 广州帷策智能科技有限公司 | 基于大数据的分页下载方法和装置 |
CN110222122A (zh) * | 2019-07-26 | 2019-09-10 | 深圳市元征科技股份有限公司 | 一种MongoDB的数据同步方法及相关设备 |
CN111552701A (zh) * | 2020-04-30 | 2020-08-18 | 中国建设银行股份有限公司 | 确定分布式集群中数据一致性的方法及分布式数据*** |
CN111897878A (zh) * | 2020-08-25 | 2020-11-06 | 中国工商银行股份有限公司 | 主辅数据同步方法及*** |
CN112269802A (zh) * | 2020-10-16 | 2021-01-26 | 银盛支付服务股份有限公司 | 一种基于Clickhouse频繁删改查优化的方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109101627B (zh) | 异构数据库同步方法及装置 | |
Elser et al. | An evaluation study of bigdata frameworks for graph processing | |
US9697253B2 (en) | Consistent client-side cache | |
CN105550293B (zh) | 一种基于Spark‑SQL大数据处理平台的后台刷新方法 | |
US9348641B2 (en) | System and method for performing a transaction in a massively parallel processing database | |
Steer et al. | Raphtory: Streaming analysis of distributed temporal graphs | |
JP2023546249A (ja) | トランザクション処理方法、装置、コンピュータ機器及びコンピュータプログラム | |
US20080098041A1 (en) | Server supporting a consistent client-side cache | |
US10089705B2 (en) | System and method for processing large-scale graphs using GPUs | |
EP3120261A1 (en) | Dependency-aware transaction batching for data replication | |
CN112286941B (zh) | 一种基于Binlog+HBase+Hive的大数据同步方法和装置 | |
US20120158723A1 (en) | Data Grid Advisor | |
WO2018153033A1 (zh) | 一种信息处理方法及装置 | |
WO2023124543A1 (zh) | 用于大数据的数据处理方法和数据处理装置 | |
US10025346B2 (en) | Timestamp alignment across a plurality of computing devices | |
CN112000649A (zh) | 一种基于map reduce的增量数据同步的方法和装置 | |
Yan et al. | Systems for Big Graph Analytics | |
CN111125248A (zh) | 一种大数据存储解析查询*** | |
CN108090056A (zh) | 数据查询方法、装置及*** | |
CN100440803C (zh) | 模型化处理网格信息的方法 | |
CN111930862B (zh) | 一种基于大数据平台的sql交互式分析方法及*** | |
CN112905594A (zh) | 一种数据实时同步方法 | |
CN112416944A (zh) | 一种同步业务数据的方法和设备 | |
Abughofa et al. | Towards online graph processing with spark streaming | |
Chunduri et al. | Concept generation in formal concept analysis using MapReduce framework |
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 |