CN113934797B - 一种银行业超大数据同步方法和系统 - Google Patents
一种银行业超大数据同步方法和系统 Download PDFInfo
- Publication number
- CN113934797B CN113934797B CN202111547539.5A CN202111547539A CN113934797B CN 113934797 B CN113934797 B CN 113934797B CN 202111547539 A CN202111547539 A CN 202111547539A CN 113934797 B CN113934797 B CN 113934797B
- Authority
- CN
- China
- Prior art keywords
- data
- pushed
- push
- message queue
- format
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000012545 processing Methods 0.000 claims abstract description 21
- 238000006243 chemical reaction Methods 0.000 claims abstract description 11
- 238000007405 data analysis Methods 0.000 claims abstract description 6
- 230000005012 migration Effects 0.000 claims description 37
- 238000013508 migration Methods 0.000 claims description 37
- 238000005192 partition Methods 0.000 claims description 27
- 230000008569 process Effects 0.000 claims description 21
- 239000013589 supplement Substances 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 claims description 2
- 238000011084 recovery Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000002354 daily effect Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 230000001960 triggered 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- 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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- 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/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
-
- 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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种银行业超大数据同步方法和系统,该方法包括如下步骤:应用系统登记待推送数据,生成数据推送表,触发定时同步任务;查询并设置推送参数表;查询数据推送表,判断数据推送表中是否存在待推送数据,若存在,则查询出待推送数据,并关联源表,若不存在,则结束任务;根据所述推送参数表,将所述待推送数据转化为对应推送格式后,发布至消息队列;通过clickhouse消息队列引擎解析消息队列数据,并转发至消息队列表中;通过clickhouse物化视图读取消息队列表中接收的数据,并根据数据转化规则,将数据写入目标数据表中存储。本发明适用于银行业务系统超大数据处理,为数据分析处理提供了有效的解决方案。
Description
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种银行业超大数据同步方法和系统。
背景技术
随着互联网银行业务的拓展、获客渠道的增加,银行客户规模逐步增加。同时存款、贷款产品不断推出,银行业务系统中的每日数据增量与日俱增,如存款中的交易明细数量、贷款中的放款环境数据明细,单日单表增量就已达几百万甚至千万。数据长期积累,单表数据量级已远超亿级。一方面,大数据量增加了银行成本,又无法作为历史数据清除,另一方面银行柜面系统或者其他系统进行历史查询时,数据库数据量限制了应用查询效率,导致客户体验下降。超大数据已成为银行系统的一大风险与挑战。因此,为解决超大数据的查询效率与存储,需要给出一套有效的方案。
目前,已知的超大数据处理方案,一般是通过创建临时表或者分表分库方法,但此类方法应对超大数据对性能有一定挑战;或者是通过银行大数据的一些系统汇总抽取数据,应用系统只保留近期数据,以此来减轻应用系统的查询压力和存储压力,但此类方法不足以满足业务人员的需求,需要查询历史数据时,流程复杂且时效性低。因此,银行内无论是存款业务还是贷款业务或是其他业务都面临着超大数据存储和查询的难题,如何保证数据的高可用,即面对亿级数据,保证高效的数据查询;如何在数据库宕机时,可以有数据副本可供查询;如何在数据不缺失的情况下,进一步降低数据存储空间等。
发明内容
鉴于上述问题,本发明提供了一种银行业超大数据同步方法和系统。
为解决上述技术问题,本发明采用的技术方案是:一种银行业超大数据同步方法,包括如下步骤:S101,应用系统登记待推送数据,生成数据推送表,触发定时同步任务;S102,查询并设置推送参数表,所述推送参数表包括单次推送笔数、推送数据格式、消息队列集群配置和主题配置;S103,查询数据推送表,判断所述数据推送表中是否存在待推送数据,若存在,则查询出待推送数据,并关联源表,若不存在,则结束任务;S104,根据所述推送参数表,将所述待推送数据转化为对应推送格式后,发布至消息队列;S105,通过clickhouse消息队列引擎解析消息队列数据,并转发至消息队列表中;S106,通过clickhouse物化视图读取所述消息队列表中接收的数据,并根据数据转化规则,将数据写入目标数据表中存储。
作为优选方案,还包括对所述目标数据表中的数据进行合并,具体为:S201,确定所述目标数据表的排序键和版本列;S202,根据所述版本列格式合并数据,当版本列格式为无符号int类型时,保留同一唯一索引的版本列最大的数据;当版本列格式为Date或DateTime类型时,保留版本列日期靠后的数据;S203,根据排序键检查是否存在多条相同数据的记录,若存在,则保留最后插入目标数据表中的数据,若不存在,则直接结束。
作为优选方案,还包括脏数据处理流程,所述脏数据为clickhouse消息队列引擎无法解析的消息队列数据,具体为:S301,确定消息队列数据解析失败的分区及消费者偏移量;S302,在clickhouse客户端上使用DETACH命令,卸载消费者队列表和物化视图;S303,在消费者队列集群上手动执行消息队列命令,重置消费者偏移量;S304,在clickhouse客户端上使用ATTACH命令,上线消费者队列表和物化视图;S305,执行数据补推送流程。
作为优选方案,所述数据补推送流程,包括:S401,根据推送状态字段确定待推送数据;S402,根据待推送数据主键或唯一索引,判断待推送数据是否在数据推送表中,若是,则执行步骤S403,若否,则执行步骤S404;S403,判断待推送数据状态是否为未推送,若是,则执行步骤S406,若否,则执行步骤S405;S404,查询源表中待推送数据,登记数据推送表;S405,更新数据推送表数据推送状态为待推送;S406,定时同步任务启动执行数据推送。
作为优选方案,还包括数据迁移流程,具体为:S501,查询推送参数表,判断是否为一次性迁移;S502,若为一次性迁移,则确定存量数据及存量数据所在分区;S503,建立存量数据导出临时目录,并给当前数据库用户授权;
S504,根据分区数和临时目录,创建UTLFILE文件导出存储过程;S505,执行存储过程,导出CSV数据,并将CSV数据导入至clickhouse客户端;S506,若为非一次性迁移,则建立存量数据推送的定时同步任务;S507,定时同步任务启动后,查询推送参数表,确定数据推送范围和起始日期;S508,将待推送存量数据插入数据同步表中,等待定时同步任务发起推送。
作为优选方案,在步骤S502中,每次导出存量数据在100个分区以内,根据准备导出存量数据所在分区总数,确定导出次数及范围。
作为优选方案,所述推送格式包括JSONEachRow格式、CSV格式、TabSeparated格式;当推送格式为JSONEachRow格式时,将数据按json格式转化;当推送格式为CSV格式时,将每一列数据按逗号分隔;当推送格式为TabSeparated格式时,将数据格式转化为每行包含由制表符分隔的值,每个值后跟一个制表符。
作为优选方案,所述数据推送表上登记源表主键或唯一索引,且数据推送表上的数据数量与源表一致。
作为优选方案,所述数据采用异步推送方式。
本发明还公开了一种银行业超大数据同步系统,包括:启动模块,用于在应用系统登记待推送数据后,生成数据推送表,触发定时同步任务;第一查询模块,用于查询并设置推送参数表,所述推送参数表包括单次推送笔数、推送数据格式、消息队列集群配置和主题配置;第二查询模块,用于查询数据推送表,判断所述数据推送表中是否存在待推送数据,若存在,则查询出待推送数据,并关联源表,若不存在,则结束任务;格式转化模块,用于根据所述推送参数表,将所述待推送数据转化为对应推送格式后,发布至消息队列;解析模块,用于通过clickhouse消息队列引擎解析消息队列数据,并转发至消息队列表中;存储模块,用于通过clickhouse物化视图读取所述消息队列表中接收的数据,并根据数据转化规则,将数据写入目标数据表中存储。
与现有技术相比,本发明的有益效果包括:本发明着眼于银行业务系统,基于消息中间件技术,通过消息中间件的可以实现超大数据的并发异步同步,降低了与业务系统的耦合性,并基于消息中间件进行数据修复补推送,在一定程度是上保证了数据的一致性;可以通过合并树表引擎实现数据的快速插入,不需要考虑数据更新,数据会在特定时间进行合并,极大的提高系统的数据同步速度;基于clickhouse列式数据库实现超大数据的存储,减轻了应用系统数据库负担;采用clickhouse集群和数据副本机制,基于zookeeper实现数据的备份,网络异常下的数据副本恢复,保证了数据的高可用性和安全性;此方案适用于银行业务系统超大数据处理,为数据分析处理提供了有效的解决方案。
附图说明
参照附图来说明本发明的公开内容。应当了解,附图仅仅用于说明目的,而并非意在对本发明的保护范围构成限制。在附图中,相同的附图标记用于指代相同的部件。其中:
图1为本发明实施例所涉及的一种实施环境的结构示意图;
图2为本发明实施例所涉及的另一种实施环境的结构示意图;
图3为本发明实施例的超大数据同步方法的流程示意图;
图4为本发明实施例的clickhouse数据合并流程示意图;
图5为本发明实施例的脏数据处理的流程示意图;
图6为本发明实施例的数据补推送的流程示意图;
图7为本发明实施例的数据迁移的流程示意图;
图8为本发明实施例的数据故障副本恢复的流程示意图;
图9为本发明实施例的超大数据同步系统的结构示意图。
具体实施方式
容易理解,根据本发明的技术方案,在不变更本发明实质精神下,本领域的一般技术人员可以提出可相互替换的多种结构方式以及实现方式。因此,以下具体实施方式以及附图仅是对本发明的技术方案的示例性说明,而不应当视为本发明的全部或者视为对本发明技术方案的限定或限制。
为了便于对本方案的理解,下面对本申请涉及到的专业术语进行说明。
列式数据库:以列相关存储架构进行数据存储的数据库,本发明使用clickhouse列式数据库;
源表:应用系统存储超大数据待同步到clickhouse的库表,此表有主键或唯一索引;
推送配置参数表:配置推送参数,指定消息队列集群信息、主题、数据格式,属于普通参数表;
数据推送表:定时任务扫描数据的表,包含源表中的主键或唯一索引、推送状态字段,用于推送和补推送;
消息队列表:clickhouse列式数据库接入消息队列,接收消息的数据表,表引擎为Kafka或者RabbitMq;
目标数据表:clickhouse列式数据库最终存储存储数据的表,表引擎为Replicated*MergeTree类引擎,采用分区表;
数据副本:clickhouse可以结合zookeeper提供副本机制,为数据提供的备份;
复制表:基于Replicated*MergeTree这一类的引擎的表,可依赖zookeeper提供数据副本;
分区表:oracle数据库分区表和clickhouse列式数据库分区表,数据按分区存储在数据块上;
分区字段:用于标识分区的字段,用于分割数据块。
物化视图:特指clickhouse列式数据库的MATERIALIZED VIEW,用于做查询转换;
消息队列:消息中间件,本发明中指Kafka消息中间键;
定时任务:由应用侧按定时表达式发起的批量任务;
排序键:可以是一组列的元组或任意的表达式,由clickhouse列式数据库建表时指定,本发明中的排序键为源表中的主键或唯一索引;
消费者组:消息消费方集群组成的一组消费者,消费同一个主题;
生产者偏移量:消息的生产者(应用系统)产生消息后将消息写入消息队列(像Kafka并发多分区,每一分区都有一个消息队列),在同一个消息队列中消息顺序写入,写入消息的位置作为生产者在这一分区的偏移量,也就是当前消息队列的消息数;
消费者偏移量:消息消费方(clickhouse端)读取消息队列消息,作为消费者读取消息所在的位置叫做消费方偏移量,也就是消费方在这一消息队列中处理到的消息的位置;
合并树:clickhouse列式数据库数据存储引擎MergeTree;
版本列:clickhouse ReplicatedReplacingMergeTree专有的用来标识数据更新变化的列,数据类型可使用数值或时间;
存量数据:本发明实施前,源表中原有数据;
增量数据:本发明实施后,源表中随新业务增加的数据;
推送格式:消息队列和clickhouse列式数据库支持的TabSeparated、CSV、Json等,本发明中使用JSON格式;
UTL_FILE脚本:oracle数据库支持的文件导出包,本发明中用于存量数据导出。
请参考图1,其示出了本发明实施例所涉及的一种实施环境的结构示意图。该实施环境包括由银行业务系统、查询系统、数据同步系统Jboss应用服务模块和oracle数据库组成的业务系统,本发明提供的数据同步系统、消息队列、银行业务系统进行消费服务的交互。该实施环境将数据同步系统放在单独的系统中,这样可以搭建统一的数据同步系统进行处理,通过微服务方式降低服务的耦合,实现模块化部署。
请参考图2,其示出了本发明实施例所涉及的另一种实施环境的结构示意图。该实施环境包括由银行业务主服务、查询服务、同步服务Jboss应用服务模块和oracle数据库组成的业务系统,本发明提供的同步系统整合在业务系统应用服务模块中,不需要新建额外的系统。
应理解,该数据同步系统基于oracle数据,但不限于该关系型数据库。数据同步系统的设计,采用kafka,但也可采用RabbitMq。数据同步逻辑存在于应用程序端,不局限于java语言,可适用其他语言。基于clickhouse列式数据库的表引擎使用ReplicatedReplacingMergeTree,但不限于此,可以基于实际数据需求使用Replicated*MergeTree这一类的表引擎。
根据本发明的一实施方式结合图3示出。一种银行业超大数据同步方法,本发明的数据同步方法主要包括两个方面,一方面是应用侧定时任务触发扫描数据推送表,另一方面是数据读取,根据参数配置表转化对应格式数据,应用侧推送数据到消息队列。具体包括如下步骤:
S101,应用系统登记待推送数据,生成数据推送表,触发定时同步任务。如:应用系统更新或者新增业务数据至源表,源表数据具有主键或者唯一索引。
以开销户登记簿表为例,该表存在唯一索引为系统账号,数据量达到三千万。每日新增数据十万级,增量数据需以准实时方式发送到消息队列。
S102,查询并设置推送参数表,推送参数表包括单次推送笔数、推送数据格式、消息队列集群配置和主题配置。数据格式采用Json,单次数据推送笔数默认为1000笔。
上述推送参数表中,主要参数配置含义,具体如下:
字段名称 | 字段类型 | 字段含义 |
PUSH_METHOD | VARchar2 | 不同数据可选择不同推送策略 |
BROKER | VARchar2 | 消息队列集群地址 |
topIC | VARchar2 | 主题 |
FORMAT | VARchar2 | 数据格式,指出JSONEachRow,CSV,TabSeparated |
PUSH_NUM | NUMBER | 推送笔数 |
ORIG_DATA_PUSH_TYPE | VARchar2 | 存量数据推送类型,可采用一次性或每次持续性推送。 |
START_DT | VARchar2 | 起始日期,标识存量数据推送开始日期 |
PUSH_SCOPE | VARchar2 | 1D 7D 30D、1M标识单次同步数据量 |
RECD_STAT | VARchar2 | 记录状态,用于存储数据可用行 |
S103,查询数据推送表,判断数据推送表中是否存在待推送数据,若存在,则查询出待推送数据,并关联源表,若不存在,则结束任务。
S104,根据推送参数表,将待推送数据转化为对应推送格式后,发布至消息队列。同一唯一索引或者标识统一类数据的消息有序发送至消息队列。数据采用异步推送方式,数据推送表上登记源表主键或唯一索引,且数据推送表上的数据数量与源表一致。
上述推送格式包括JSONEachRow格式、CSV格式、TabSeparated格式。当推送格式为JSONEachRow格式时,将数据按json格式转化;当推送格式为CSV格式时,将每一列数据按逗号分隔;当推送格式为TabSeparated格式时,将数据格式转化为每行包含由制表符分隔的值,每个值后跟一个制表符。
S105,通过clickhouse消息队列引擎解析消息队列数据,并转发至消息队列表中。
S106,通过clickhouse物化视图读取消息队列表中接收的数据,并根据数据转化规则,将数据写入目标数据表中存储。
参见图4,该同步方法还包括对目标数据表中的数据进行合并,具体为:
S201,确定目标数据表的排序键和版本列。
S202,根据版本列格式合并数据,当版本列格式为无符号int类型时,保留同一唯一索引的版本列最大的数据。当版本列格式为Date或DateTime类型时,保留版本列日期靠后的数据。
S203,根据排序键检查是否存在多条相同数据的记录,若存在,则保留最后插入目标数据表中的数据,若不存在,则直接结束。
参见图5,该同步方法还包括脏数据处理流程,该脏数据为clickhouse消息队列引擎无法解析的消息队列数据,具体为:
S301,确定消息队列数据解析失败的分区及消费者偏移量。
S302,在clickhouse客户端上使用DETACH命令,卸载消费者队列表和物化视图。
S303,在消费者队列集群上手动执行消息队列命令,重置消费者偏移量。即在kafka服务端执行命令,调整当前消费者组、当前消费主题的offset。其中,消费者组是clickhouse端消息消费者所在的组;消费主题是消息的载体,如账户信息(主题名可定为AcctInfo),每次新增账户信息,会把新的账户信息发送到这个主题,新消息会加入到队列中;offset即为消费者偏移量,记录消费方(clickhouse端)消息处理进度。消息队列命令如kafka命令:bin/kafka-consumer-groups.sh --reset-offsets --to-offset。
S304,在clickhouse客户端上使用ATTACH命令,上线消费者队列表和物化视图。
S305,确定失败的数据,执行数据补推送流程。
参见图6,上述数据补推送流程的步骤,包括:
S401,根据推送状态字段确定待推送数据。例如,字段“0”表示待推送。
S402,根据待推送数据主键或唯一索引,判断待推送数据是否在数据推送表中,若是,则执行步骤S403,若否,则执行步骤S404。
S403,判断待推送数据状态是否为未推送,若是,则执行步骤S406,若否,则执行步骤S405。
S404,查询源表中待推送数据,登记数据推送表。
S405,更新数据推送表数据推送状态为待推送。
S406,定时同步任务启动执行数据推送。同步骤S101-S106。
参见图7,上述同步方法还包括数据迁移流程,该数据迁移分为一次性迁移和每日持续性性迁移两种方案,具体为:
S501,查询推送参数表,判断是否为一次性迁移。
S502,若为一次性迁移,则确定存量数据及存量数据所在分区。每次导出存量数据在100个分区以内,根据准备导出存量数据所在分区总数,确定导出次数及范围。
S503,建立存量数据导出临时目录,并给当前数据库用户授权。
S504,根据分区数和临时目录,创建UTLFILE文件导出存储过程。该临时目录是为了给utlfile命令提供文件生成目录,utlfile导出文件时需要指定此临时目录。
S505,执行存储过程,导出CSV数据,并将CSV数据导入至clickhouse客户端。CSV数据是通过clickhouse-client客户端命令导入到clickhouse服务端数据库,例如:clickhouse-client -h 127.0.0.1 --password mypwd --database="mydatabase" --query="insert into FORMAT CSV" < target.csv。
S506,若为非一次性迁移,则建立存量数据推送的定时同步任务。
S507,定时同步任务启动后,查询推送参数表,确定数据推送范围和起始日期。
S508,将待推送存量数据插入数据同步表中,等待定时同步任务发起推送。
参见图8,上述同步方法还包括clickhouse数据异常、丢失后的恢复方案,通过人工数据恢复命令实现clickhouse数据的恢复,人工数据恢复命令如:clickhouse touch /var/lib/clickhouse/flags/force_restore_data。
本发明实施例中,clickhouse数据异常、丢失后的恢复方案包括如下步骤:
S601,故障发生,clickhouse准备重新启动;
S602,clickhouse自动重连zookeeper服务器,若未连接则定时尝试连接;
S603,在clickhouse连接到zookeeper服务器后,判断本地数据与zookeeper上保留的数据是否一致,若一致则数据正常;若存在不一致情况,则判断是否是轻微不一致,如只是少量字节不一致,则通过副本进行数据同步恢复;若数据差异较大,则会自动触发clickhouse的安全机制,数据恢复属于半自动状态,需要人工执行命令恢复。
S604,若是在当前节点(服务器)数据完全丢失,则需要人工处理重建clickhouse,查找副本服务器(/var/lib/clickhouse/metadata/)目录,找到表定义信息,重建表结构,再有人工执行命令恢复数据。
S605,完成上述步骤后重启clickhouse服务。
参加图9,本发明还公开了一种银行业超大数据同步系统,包括:
启动模块101,用于在应用系统登记待推送数据后,生成数据推送表,触发定时同步任务。
第一查询模块102,用于查询并设置推送参数表,推送参数表包括单次推送笔数、推送数据格式、消息队列集群配置和主题配置。
第二查询模块103,用于查询数据推送表,判断数据推送表中是否存在待推送数据,若存在,则查询出待推送数据,并关联源表,若不存在,则结束任务。
格式转化模块104,用于根据推送参数表,将待推送数据转化为对应推送格式后,发布至消息队列。
解析模块105,用于通过clickhouse消息队列引擎解析消息队列数据,并转发至消息队列表中。
存储模块106,用于通过clickhouse物化视图读取消息队列表中接收的数据,并根据数据转化规则,将数据写入目标数据表中存储。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
综上所述,本发明提供了一种银行业超大数据同步方法和系统,该方法适用于存贷等数据量大的银行业务系统,其具有如下优点:
1.由于本系统的数据同步服务、数据查询服务和应用程序为分开设计,因此本发明具有较强的适用性,对于应用程序端,不局限于java语言,可适用其他语言。在数据库端,本发明适用于基于mysql、oracle的业务系统。
2.本发明可以实现数据推送的多样化配置。首先数据推送格式支持JSON、CSV、TabSeparated等输入格式,通过参数化配置,应用端不需要修改数据逻辑,随时修改数据推送格式。其次,消息队列、主题信息配置在数据推送表中,可以根据需求不同切换数据推送地址和主题,灵活操作。
3.本发明可以提供了脏数据处理和数据补推送机制。在数据丢失时,启动补推送方案。可以看到数据补推送只需要应用系统技术人员确认需要补推送的数据,直接将数据主键或者唯一索引插入到待推送数据表中,数据推送服务中的定时推送任务自动刷新推送数据,完成数据补推送处理。另外,在数据推送格式切换过程中,消息队列中会存在旧格式数据,Clickhouse端消费消息时无法处理从而出现脏数据,只需要设置Clickhouse端停止消费,调整消息队列消费者消费消息的位置,跳过脏数据,按照新格式重新补推送数据,开启Clickhouse端消息消费,操作简单高效。
4.本发明适用于待上线的业务系统的已上线的业务系统。增量业务数据同步可以实现新上线业务系统和已上线业务系统新增数据同步到消息队;Clickhouse端接收消息队列消息可以实现新增数据的准实时同步;同时存量超大数据迁移方案可以支持已上线业务系统的存量数据迁移,通过方案中一次性迁移方式,或者逐步迁移方式完成存量数据迁移。
5.本方案适用于业务系统超大数据处理,基于Clickhouse存储数据,可通过独立的查询服务降低大数据查询同业务系统的耦合性,同时业务系统无需过多关注历史数据,本地保留近期数据,数据存储到Clichouse端,降低应用系统存储及查询压力。其中Clickhouse端接收消息队列消息,基于Clickhouse消息队列引擎只对数据进行插入操作,极大的提高数据处理数据;通过Clickhouse端数据合并规则对插入重复数据基于数据主键或者唯一索引进行合并,减少数据存储空间,降低银行成本。
6.本方案对超大数据的存储具有高可靠性,通过clickhouse和zookeeper提供的数据副本机制,单节点宕机不会导致数据丢失,通过数据故障恢复方案可以较为快速轻松的恢复数据。通过多节点多副本的方式极大的保障了数据的完整性。
应理解,所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括 :U 盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明的技术范围不仅仅局限于上述说明中的内容,本领域技术人员可以在不脱离本发明技术思想的前提下,对上述实施例进行多种变形和修改,而这些变形和修改均应当属于本发明的保护范围内。
Claims (6)
1.一种银行业超大数据同步方法,其特征在于,包括如下步骤:
S101,应用系统登记待推送数据,生成数据推送表,触发定时同步任务;
S102,查询并设置推送参数表,所述推送参数表包括单次推送笔数、推送数据格式、消息队列集群配置和主题配置;
S103,查询数据推送表,判断所述数据推送表中是否存在待推送数据,若存在,则查询出待推送数据,并关联源表,若不存在,则结束任务;
S104,根据所述推送参数表,将所述待推送数据转化为对应推送格式后,发布至消息队列;
S105,通过clickhouse消息队列引擎解析消息队列数据,并转发至消息队列表中;
S106,通过clickhouse物化视图读取所述消息队列表中接收的数据,并根据数据转化规则,将数据写入目标数据表中存储;
还包括对所述目标数据表中的数据进行合并,具体为:
S201,确定所述目标数据表的排序键和版本列;
S202,根据所述版本列格式合并数据,当版本列格式为无符号int类型时,保留同一唯一索引的版本列最大的数据;当版本列格式为Date或DateTime类型时,保留版本列日期靠后的数据;
S203,根据排序键检查是否存在多条相同数据的记录,若存在,则保留最后插入目标数据表中的数据,若不存在,则直接结束;
还包括脏数据处理流程,所述脏数据为clickhouse消息队列引擎无法解析的消息队列数据,具体为:
S301,确定消息队列数据解析失败的分区及消费者偏移量;
S302,在clickhouse客户端上使用DETACH命令,卸载消费者队列表和物化视图;
S303,在消费者队列集群上手动执行消息队列命令,重置消费者偏移量;
S304,在clickhouse客户端上使用ATTACH命令,上线消费者队列表和物化视图;
S305,执行数据补推送流程;
所述数据补推送流程,包括:
S401,根据推送状态字段确定待推送数据;
S402,根据待推送数据主键或唯一索引,判断待推送数据是否在数据推送表中,若是,则执行步骤S403,若否,则执行步骤S404;
S403,判断待推送数据状态是否为未推送,若是,则执行步骤S406,若否,则执行步骤S405;
S404,查询源表中待推送数据,登记数据推送表;
S405,更新数据推送表数据推送状态为待推送;
S406,定时同步任务启动执行数据推送;
还包括数据迁移流程,具体为:
S501,查询推送参数表,判断是否为一次性迁移;
S502,若为一次性迁移,则确定存量数据及存量数据所在分区;
S503,建立存量数据导出临时目录,并给当前数据库用户授权;
S504,根据分区数和临时目录,创建UTLFILE文件导出存储过程;
S505,执行存储过程,导出CSV数据,并将CSV数据导入至clickhouse客户端;
S506,若为非一次性迁移,则建立存量数据推送的定时同步任务;
S507,定时同步任务启动后,查询推送参数表,确定数据推送范围和起始日期;
S508,将待推送存量数据插入数据同步表中,等待定时同步任务发起推送。
2.根据权利要求1所述的银行业超大数据同步方法,其特征在于,在步骤S502中,每次导出存量数据在100个分区以内,根据准备导出存量数据所在分区总数,确定导出次数及范围。
3.根据权利要求1所述的银行业超大数据同步方法,其特征在于,所述推送格式包括JSONEachRow格式、CSV格式、TabSeparated格式;
当推送格式为JSONEachRow格式时,将数据按json格式转化;
当推送格式为CSV格式时,将每一列数据按逗号分隔;
当推送格式为TabSeparated格式时,将数据格式转化为每行包含由制表符分隔的值,每个值后跟一个制表符。
4.根据权利要求1所述的银行业超大数据同步方法,其特征在于,所述数据推送表上登记源表主键或唯一索引,且数据推送表上的数据数量与源表一致。
5.根据权利要求1所述的银行业超大数据同步方法,其特征在于,所述数据采用异步推送方式。
6.一种银行业超大数据同步系统,其特征在于,包括:
启动模块,用于在应用系统登记待推送数据后,生成数据推送表,触发定时同步任务;
第一查询模块,用于查询并设置推送参数表,所述推送参数表包括单次推送笔数、推送数据格式、消息队列集群配置和主题配置;
第二查询模块,用于查询数据推送表,判断所述数据推送表中是否存在待推送数据,若存在,则查询出待推送数据,并关联源表,若不存在,则结束任务;
格式转化模块,用于根据所述推送参数表,将所述待推送数据转化为对应推送格式后,发布至消息队列;
解析模块,用于通过clickhouse消息队列引擎解析消息队列数据,并转发至消息队列表中;
存储模块,用于通过clickhouse物化视图读取所述消息队列表中接收的数据,并根据数据转化规则,将数据写入目标数据表中存储;
还包括数据合并模块,用于对所述目标数据表中的数据进行合并,具体为:
S201,确定所述目标数据表的排序键和版本列;
S202,根据所述版本列格式合并数据,当版本列格式为无符号int类型时,保留同一唯一索引的版本列最大的数据;当版本列格式为Date或DateTime类型时,保留版本列日期靠后的数据;
S203,根据排序键检查是否存在多条相同数据的记录,若存在,则保留最后插入目标数据表中的数据,若不存在,则直接结束;
还包括脏数据处理模块,用于进行脏数据处理流程,所述脏数据为clickhouse消息队列引擎无法解析的消息队列数据,具体为:
S301,确定消息队列数据解析失败的分区及消费者偏移量;
S302,在clickhouse客户端上使用DETACH命令,卸载消费者队列表和物化视图;
S303,在消费者队列集群上手动执行消息队列命令,重置消费者偏移量;
S304,在clickhouse客户端上使用ATTACH命令,上线消费者队列表和物化视图;
S305,执行数据补推送流程;
其中,所述数据补推送流程,包括:
S401,根据推送状态字段确定待推送数据;
S402,根据待推送数据主键或唯一索引,判断待推送数据是否在数据推送表中,若是,则执行步骤S403,若否,则执行步骤S404;
S403,判断待推送数据状态是否为未推送,若是,则执行步骤S406,若否,则执行步骤S405;
S404,查询源表中待推送数据,登记数据推送表;
S405,更新数据推送表数据推送状态为待推送;
S406,定时同步任务启动执行数据推送;
还包括数据迁移模块,用于进行数据迁移流程,具体为:
S501,查询推送参数表,判断是否为一次性迁移;
S502,若为一次性迁移,则确定存量数据及存量数据所在分区;
S503,建立存量数据导出临时目录,并给当前数据库用户授权;
S504,根据分区数和临时目录,创建UTLFILE文件导出存储过程;
S505,执行存储过程,导出CSV数据,并将CSV数据导入至clickhouse客户端;
S506,若为非一次性迁移,则建立存量数据推送的定时同步任务;
S507,定时同步任务启动后,查询推送参数表,确定数据推送范围和起始日期;
S508,将待推送存量数据插入数据同步表中,等待定时同步任务发起推送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111547539.5A CN113934797B (zh) | 2021-12-17 | 2021-12-17 | 一种银行业超大数据同步方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111547539.5A CN113934797B (zh) | 2021-12-17 | 2021-12-17 | 一种银行业超大数据同步方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113934797A CN113934797A (zh) | 2022-01-14 |
CN113934797B true CN113934797B (zh) | 2022-03-25 |
Family
ID=79289282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111547539.5A Active CN113934797B (zh) | 2021-12-17 | 2021-12-17 | 一种银行业超大数据同步方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113934797B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114979039B (zh) * | 2022-06-21 | 2024-07-23 | 国网电商科技有限公司 | 一种数据处理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988916A (zh) * | 2021-03-05 | 2021-06-18 | 杭州天阙科技有限公司 | 针对Clickhouse的全量和增量同步方法、设备和存储介质 |
CN113342806A (zh) * | 2021-05-18 | 2021-09-03 | 湖北卓铸网络科技有限公司 | 大数据处理方法、装置、存储介质及处理器 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6058389A (en) * | 1997-10-31 | 2000-05-02 | Oracle Corporation | Apparatus and method for message queuing in a database system |
JP4406310B2 (ja) * | 2004-03-30 | 2010-01-27 | 株式会社野村総合研究所 | Mqデータ同期システム及びmqデータ同期プログラム |
CN105989123A (zh) * | 2015-02-13 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、装置和系统 |
CN112380229A (zh) * | 2020-11-16 | 2021-02-19 | 中消云(北京)物联网科技研究院有限公司 | 业务数据同步方法及装置、非易失性存储介质、处理器 |
CN112948397A (zh) * | 2021-03-31 | 2021-06-11 | 中国建设银行股份有限公司 | 一种数据处理系统、方法、装置及存储介质 |
CN113282608A (zh) * | 2021-06-10 | 2021-08-20 | 湖南力唯中天科技发展有限公司 | 一种基于列数据库的智能交通数据分析和存储方法 |
-
2021
- 2021-12-17 CN CN202111547539.5A patent/CN113934797B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988916A (zh) * | 2021-03-05 | 2021-06-18 | 杭州天阙科技有限公司 | 针对Clickhouse的全量和增量同步方法、设备和存储介质 |
CN113342806A (zh) * | 2021-05-18 | 2021-09-03 | 湖北卓铸网络科技有限公司 | 大数据处理方法、装置、存储介质及处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN113934797A (zh) | 2022-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107818115B (zh) | 一种处理数据表的方法及装置 | |
CN107544984B (zh) | 一种数据处理的方法和装置 | |
CN110175213A (zh) | 一种基于SCN方式的Oracle数据库同步系统及方法 | |
CN101719149A (zh) | 数据同步方法及装置 | |
CN105447156A (zh) | 资源描述框架分布式引擎及增量式更新方法 | |
CN101405728A (zh) | 具有动态加载能力的关系数据库架构 | |
CN111651519B (zh) | 数据同步方法、数据同步装置、电子设备及存储介质 | |
CN105787058B (zh) | 一种用户标签系统及基于用户标签系统的数据推送系统 | |
CN105426419B (zh) | 异构系统间数据升迁系统和方法 | |
CN113934797B (zh) | 一种银行业超大数据同步方法和系统 | |
CN111753015B (zh) | 支付清算系统的数据查询方法及装置 | |
CN113177090A (zh) | 数据处理方法及装置 | |
CN110489490B (zh) | 基于分布式数据库的数据存储和查询方法 | |
CN110895547B (zh) | 基于db2联邦特性的多源异构数据库数据同步系统及方法 | |
CN111666144A (zh) | 批处理任务执行方法、系统以及机房部署系统 | |
CN107885824A (zh) | 一种数据读写方法及系统 | |
CN111581227A (zh) | 事件推送方法、装置、计算机设备及存储介质 | |
CN108228592A (zh) | 基于二进制日志的数据归档方法及数据归档装置 | |
CN114090686A (zh) | 一种出账加速方法及装置 | |
CN113505178B (zh) | 一种基于数据双写的票据同步方法及终端 | |
CN115544096B (zh) | 数据查询方法、装置、计算机设备及存储介质 | |
CN113297326A (zh) | 数据的处理方法及装置、计算机可读存储介质、处理器 | |
CN116756247B (zh) | 数据修复方法、装置、计算机设备和存储介质 | |
CN114070845B (zh) | 协同报送交易信息的方法及装置 | |
WO2024082693A1 (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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: No.4 building, Hexi Financial City, Jianye District, Nanjing City, Jiangsu Province, 210000 Patentee after: Jiangsu Sushang Bank Co.,Ltd. Country or region after: China Address before: No.4 building, Hexi Financial City, Jianye District, Nanjing City, Jiangsu Province, 210000 Patentee before: JIANGSU SUNING BANK Co.,Ltd. Country or region before: China |