CN114328750A - 一种将业务数据同步ods层的方法及装置 - Google Patents

一种将业务数据同步ods层的方法及装置 Download PDF

Info

Publication number
CN114328750A
CN114328750A CN202111682692.9A CN202111682692A CN114328750A CN 114328750 A CN114328750 A CN 114328750A CN 202111682692 A CN202111682692 A CN 202111682692A CN 114328750 A CN114328750 A CN 114328750A
Authority
CN
China
Prior art keywords
data
binlog
message queue
time
incremental data
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
Application number
CN202111682692.9A
Other languages
English (en)
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.)
Beijing Discovery Bay Technology Co ltd
Original Assignee
Beijing Discovery Bay Technology 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 Beijing Discovery Bay Technology Co ltd filed Critical Beijing Discovery Bay Technology Co ltd
Priority to CN202111682692.9A priority Critical patent/CN114328750A/zh
Publication of CN114328750A publication Critical patent/CN114328750A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本申请涉及一种将业务数据同步ODS层的方法及装置,所述方法包括实时获取MySQL自有的binlog的增量数据,并将所述增量数据存储至消息队列;每隔第一预设时间从所述消息队列中解析获取在所述第一预设时间内存储的增量数据,并生成中间文件;每隔第二预设时间将在所述第二预设时间内生成的所有所述中间文件加载到数据仓的ODS层,并与ODS层历史业务数据聚合;其中,所述第二预设时间为所述第一预设时间的整数倍数。本申请不仅有效提高业务数据同步到ODS层的速度,而且不会影响到在线业务正常工作。

Description

一种将业务数据同步ODS层的方法及装置
技术领域
本申请涉及ODS层数据抽取技术的领域,尤其是涉及一种将业务数据同步ODS层的方法及装置。
背景技术
在传统的离线数据仓库设计中,会从规定时间开始,使用Sqoop工具从业务数据库将一天、甚至更久的业务数据抽取到ODS,当这个过程的数据量变大且分表较多时,会极大的拖延时间,一度达到数个小时,不仅致使后续的分层计算、指标抽取、指标展示的无法准时执行,影响需要利用整体数据的决策,而且集中从线上业务抽取业务数据还可能对业务造成不良影响。
发明内容
为了提高业务数据同步ODS层的速度,减少业务数据抽取对业务的不良影响,本申请提供了一种将业务数据同步ODS层的方法及装置。
第一方面,本申请提供的一种将业务数据同步ODS层的方法采用如下的技术方案:
一种将业务数据同步ODS层的方法,包括:
实时获取MySQL自有的binlog的增量数据,并将所述增量数据存储至消息队列;
每隔第一预设时间从所述消息队列中解析获取在所述第一预设时间内存储的增量数据,并生成中间文件;
每隔第二预设时间将在所述第二预设时间内生成的所有所述中间文件加载到数据仓的ODS层,并与ODS层历史业务数据聚合;其中,所述第二预设时间为所述第一预设时间的整数倍数。
可选的,所述实时获取MySQL自有的binlog的增量数据,并将所述增量数据存储至消息队列,包括:
MySQL服务器开启binlog缓存设置;
利用canal工具进行binlog所述增量数据的实时抓取以及将发送至所述消息队列。
可选的,所述消息队列为kafka队列。
可选的,所述利用canal工具进行binlog所述增量数据的实时抓取以及将发送至所述消息队列,包括:
canal通过模拟数据库的从节点获取MySQL服务器向其同步发送binlog的所述增量数据;
通过kafka生产者方法,将获取的所述增量数据实时存储到所述kafka队列中。
可选的,在所述利用canal工具进行binlog所述增量数据的实时抓取的同时,还包括:
利用prometheus获取canal服务的metric日志信息;
根据预设指标阈值和从metric日志信息中获取的所述指标数据进行指标状态的判定,并将所述指标数据和判定结果按照时序进行可视化展示;
如果所述指标数据大于或小于所述预设指标阈值,判定所述指标数据正常;如果所述指标数据小于或大于所述预设指标阈值,判定该指标数据异常,同时进行报警处理。
可选的,所述消息队列至少能够存储在N个第二预设时间内生成的增量数据;
所述消息队列根据所述增量数据的时间戳将过期的所述增量数据删除;其中,过期的增量数据为在消息队列中存储时长达到N个第二预设时间的增量数据。
第二方面,本申请提供的一种将业务数据同步ODS层的装置采用如下的技术方案:
一种将业务数据同步ODS层的装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述一种将业务数据同步ODS层的方法。
综上所述,本申请包括以下至少一种有益技术效果:
1.本申请先将第二预设时间内的所有业务数据存储在中间文件中,在第二预设时间到来时,直接从中间文件中加载业务数据到ODS层中,只需要将中间文件中业务数据格式化为能够存储在ODS层的业务数据,相较于直接从业务数据库抽取业务数据,业务数据从中间文件到ODS层复杂度明显降低,不仅有效提高业务数据同步到ODS层的速度,而且中间文件的添加还方便对中文件中存储的原始业务数据进行其他操作;
2.本申请通过MySQL自有的binlog获取不同业务的业务数据,而且将第二预设时间内的所有业务数据分成多个时间段获取,将第二预设时间生成内的全量业务数据均匀分配在多个时段抽取,不仅进一步提高业务数据同步到ODS层的速度,而且不会影响到在线业务正常工作。
附图说明
图1是本申请实施例提供的一种将业务数据同步ODS层的方法的流程图;
图2是本申请实施例提供的步骤S100的流程图;
图3是本申请实施例提供一种将业务数据同步ODS层的装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图1、图2及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本申请实施例公开一种将业务数据同步ODS层的方法。参照图1,该方法包括:
步骤S100、实时获取MySQL自有的binlog(二进制日志)的增量数据,并将增量数据存储至消息队列;本实施例的消息队列可以采用低延迟、高吞吐量的kafka队列,而且kafka队列会对存储的数据进行备份,可靠性更高。
步骤S200、每隔第一预设时间从消息队列中解析获取在第一预设时间内存储的增量数据,并生成中间文件,中间文件中的数据就是业务数据的增量数据;本实施例每隔第一预设时间利用将spark streaming程序从消息队列解析获取在第一预设时间内存储的增量数据,实现增量数据的快速落地,生成的中间文件存储在HDFS中。
步骤S300、每隔第二预设时间将在第二预设时间内生成的所有中间文件加载到数据仓的ODS层,并与ODS层历史业务数据聚合,完成在第二预设时内产生的增量数据的传输。
在本实施例中,第二预设时间为第一预设时间的整数倍数,一般第二预设时间不低于24小时;本实施例消息队列至少能够存储在N个第二预设时间内生成的增量数据,消息队列根据增量数据的时间戳(毫秒级)将存储的过期的增量数据删除,并不断循环此过程,保证消息队列中存在以往加载到ODS层的数据,一旦在N个第二预设时间内,中间文件中或ODS层中的业务数据出现问题,能够重新从消息队列中获取,提高业务数据的安全性和系统的可靠性;其中,过期的增量数据为在消息队列中存储时长达到N个第二预设时间的增量数据。在本实施中,消息队列根据增量数据的时间戳将存储的过期的增量数据删除,包括:
实时轮询(每毫秒轮询一次,实现按毫秒删除过期增量数据)增量数据的时间戳;
根据每个增量数据时间戳和当前时间判断增量数据是否过期;
如果过期删除该增量数据,如果没有过期判断下一个增量数据是否过期,直到本次轮询结束。
本申请通过MySQL自有的binlog获取不同业务的业务数据,将第二预设时间内的所有业务数据分成多个时间段获取并存储在中间文件中,在第二预设时间到来时,直接从多个中间文件中加载业务数据到ODS层中,不再集中在一次从业务数据库中抽取全量业务数据,并且在第二预设时间到来时只需要将中间文件中业务数据格式化为能够存储在ODS层的业务数据,相较于直接从业务数据库抽取业务数据,业务数据从中间文件到ODS层复杂度明显降低,而且将第二预设时间生成内的全量业务数据均匀分配在多个时段抽取,不仅有效提高业务数据同步到ODS层的速度,而且不会影响到在线业务正常工作;另外,中间文件的添加还方便对中文件中存储的原始业务数据进行其他操作。
在本实施例中,如图2所示,步骤S100包括以下步骤:
步骤S101、MySQL服务器开启binlog缓存设置,用于记录MySQL的数据更新或者潜在更新,这个binlog上的数据是实时产生的,每次有增删改操作,就会生成对应的binlog日志。
步骤S102、利用开源canal工具进行binlog增量数据的实时抓取以及将发送至消息队列;具体为:
canal通过模拟数据库的从节点“骗取”MySQL服务器向其同步发送binlog;
然后,通过kafka生产者方法,将获取的增量数据(每一次增删改,对应生成的binlog增量数据)实时发送到kafka队列中。
本申请实施例还会对canal工具进行binlog增量数据的抓取过程进行监控,包括:
利用开源框架prometheus以及配置监控规则获取canal服务的metric日志信息;
根据预设指标阈值和从metric日志信息中获取的指标数据进行指标状态判定,并将指标数据和判定结果按照时序进行可视化展示;如果指标数据大于或小于预设指标阈值,判定该指标数据正常,不进行任何处理,进行下一指标状态的判定流程;相对应的,如果指标数据小于或大于预设指标阈值,判定该指标数据异常,同时进行报警处理;如canal工具在抓取binlog增量数据时的延迟指标大于预设延迟阈值,由于每次抓取延迟较大,将导致整个业务数据抽取的速度,所以判定延迟指标为异常,并进行报警。本实施例根据预设指标从metric日志信息中获取指标数据。
在本实施例中,在前端展示框架grafana中进行指标状态的判定流程以及可视化展示。
另外,本申请实施例还公开了一种将业务数据同步ODS层的装置,具体地,该装置包括:一个或多个处理器和存储器,如图3所示,以一个处理器200及存储器100为例。处理器200和存储器100可以通过总线或者其他方式连接,如以通过总线连接为例。
存储器100作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序,如本申请实施例中的一种将业务数据同步ODS层的方法。处理器200通过运行存储在存储器100中的非暂态软件程序以及指令,从而实现上述本申请实施例中的一种将业务数据同步ODS层的方法。
存储器100可以包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需要的应用程序;存储数据区可存储执行上述实施例中的一种将业务数据同步ODS层的方法所需的数据等。此外,存储器100可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现上述实施例中的一种将业务数据同步ODS层的方法所需的非暂态软件程序以及指令存储在存储器中,当被一个或者多个处理器执行时,执行上述实施例中的一种将业务数据同步ODS层的方法,例如,执行以上描述的图1中的方法步骤S100至步骤S300、图2中的方法步骤S101至步骤S102。
以上均为本申请的较佳实施例,并非依此限制本申请的保护范围,本说明书(包括摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。

Claims (7)

1.一种将业务数据同步ODS层的方法,其特征在于,包括:
实时获取MySQL自有的binlog的增量数据,并将所述增量数据存储至消息队列;
每隔第一预设时间从所述消息队列中解析获取在所述第一预设时间内存储的增量数据,并生成中间文件;
每隔第二预设时间将在所述第二预设时间内生成的所有所述中间文件加载到数据仓的ODS层,并与ODS层历史业务数据聚合;其中,所述第二预设时间为所述第一预设时间的整数倍数。
2.根据权利要求1所述的方法,其特征在于,所述实时获取MySQL自有的binlog的增量数据,并将所述增量数据存储至消息队列,包括:
MySQL服务器开启binlog缓存设置;
利用canal工具进行binlog所述增量数据的实时抓取以及将发送至所述消息队列。
3.根据权利要求2所述的方法,其特征在于,所述消息队列为kafka队列。
4.根据权利要求3所述的方法,其特征在于,所述利用canal工具进行binlog所述增量数据的实时抓取以及将发送至所述消息队列,包括:
canal通过模拟数据库的从节点获取MySQL服务器向其同步发送binlog的所述增量数据;
通过kafka生产者方法,将获取的所述增量数据实时存储到所述kafka队列中。
5.根据权利要求2所述的方法,其特征在于,在所述利用canal工具进行binlog所述增量数据的实时抓取的同时,还包括:
利用prometheus获取canal服务的metric日志信息;
根据预设指标阈值和从metric日志信息中获取的所述指标数据进行指标状态的判定,并将所述指标数据和判定结果按照时序进行可视化展示;
如果所述指标数据大于或小于所述预设指标阈值,判定所述指标数据正常;如果所述指标数据小于或大于所述预设指标阈值,判定该指标数据异常,同时进行报警处理。
6.根据权利要求1所述的方法,其特征在于,所述消息队列至少能够存储在N个第二预设时间内生成的增量数据;
所述消息队列根据所述增量数据的时间戳将过期的所述增量数据删除;其中,过期的增量数据为在消息队列中存储时长达到N个第二预设时间的增量数据。
7.一种将业务数据同步ODS层的装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6中任意一项所述一种将业务数据同步ODS层的方法。
CN202111682692.9A 2021-12-31 2021-12-31 一种将业务数据同步ods层的方法及装置 Pending CN114328750A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111682692.9A CN114328750A (zh) 2021-12-31 2021-12-31 一种将业务数据同步ods层的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111682692.9A CN114328750A (zh) 2021-12-31 2021-12-31 一种将业务数据同步ods层的方法及装置

Publications (1)

Publication Number Publication Date
CN114328750A true CN114328750A (zh) 2022-04-12

Family

ID=81023360

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111682692.9A Pending CN114328750A (zh) 2021-12-31 2021-12-31 一种将业务数据同步ods层的方法及装置

Country Status (1)

Country Link
CN (1) CN114328750A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255621A (zh) * 2018-01-10 2018-07-06 深圳友门鹿网络科技有限公司 一种基于binlog的MySQL增量消息解析方法
CN110597914A (zh) * 2019-09-18 2019-12-20 北京思维造物信息科技股份有限公司 数据传输系统、方法、装置及设备
CN111008246A (zh) * 2019-11-26 2020-04-14 中盈优创资讯科技有限公司 数据库日志同步方法、装置、计算机设备及可读存储介质
CN111400327A (zh) * 2020-03-11 2020-07-10 北京奇艺世纪科技有限公司 一种数据同步方法、装置、电子设备及存储介质
CN112000737A (zh) * 2020-08-14 2020-11-27 苏州浪潮智能科技有限公司 基于多云管理的数据同步方法、系统、终端及存储介质
CN112307037A (zh) * 2019-07-26 2021-02-02 北京京东振世信息技术有限公司 一种数据同步方法和装置
CN112507027A (zh) * 2020-12-16 2021-03-16 平安科技(深圳)有限公司 基于Kafka的增量数据同步方法、装置、设备及介质
CN113596117A (zh) * 2021-07-14 2021-11-02 北京淇瑀信息科技有限公司 实时数据处理方法、系统、设备及介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255621A (zh) * 2018-01-10 2018-07-06 深圳友门鹿网络科技有限公司 一种基于binlog的MySQL增量消息解析方法
CN112307037A (zh) * 2019-07-26 2021-02-02 北京京东振世信息技术有限公司 一种数据同步方法和装置
CN110597914A (zh) * 2019-09-18 2019-12-20 北京思维造物信息科技股份有限公司 数据传输系统、方法、装置及设备
CN111008246A (zh) * 2019-11-26 2020-04-14 中盈优创资讯科技有限公司 数据库日志同步方法、装置、计算机设备及可读存储介质
CN111400327A (zh) * 2020-03-11 2020-07-10 北京奇艺世纪科技有限公司 一种数据同步方法、装置、电子设备及存储介质
CN112000737A (zh) * 2020-08-14 2020-11-27 苏州浪潮智能科技有限公司 基于多云管理的数据同步方法、系统、终端及存储介质
CN112507027A (zh) * 2020-12-16 2021-03-16 平安科技(深圳)有限公司 基于Kafka的增量数据同步方法、装置、设备及介质
CN113596117A (zh) * 2021-07-14 2021-11-02 北京淇瑀信息科技有限公司 实时数据处理方法、系统、设备及介质

Similar Documents

Publication Publication Date Title
CN109034993B (zh) 对账方法、设备、系统及计算机可读存储介质
CN110362632B (zh) 一种数据同步方法、装置、设备及计算机可读存储介质
US20150278706A1 (en) Method, Predictive Analytics System, and Computer Program Product for Performing Online and Offline Learning
CN106815254B (zh) 一种数据处理方法和装置
CN107992392B (zh) 一种用于云渲染系统的自动监控修复系统和方法
CN107896170B (zh) 保险应用系统的监控方法及装置
CN112559475B (zh) 数据实时捕获和传输方法及系统
CN114091704B (zh) 一种告警压制方法和装置
CN114328132A (zh) 外部数据源的状态监控方法、装置、设备和介质
CN114416703A (zh) 数据完整性自动监控方法、装置、设备及介质
CN114385378A (zh) 物联网设备的活跃数据处理方法、装置及存储介质
CN109409948B (zh) 交易异常检测方法、装置、设备及计算机可读存储介质
CN112214517A (zh) 流数据处理方法及装置、电子设备、存储介质
CN116303320A (zh) 基于日志文件的实时任务管理方法、装置、设备及介质
CN114328750A (zh) 一种将业务数据同步ods层的方法及装置
US11216352B2 (en) Method for automatically analyzing bottleneck in real time and an apparatus for performing the method
CN115309735A (zh) 大数据清洗方法、装置、计算机设备及存储介质
CN113485864B (zh) 异常检测、异常分析方法、装置、电子设备和存储介质
CN114297211A (zh) 一种数据在线分析系统、方法、设备及存储介质
CN114510708A (zh) 实时数据仓库构建、异常检测方法、装置、设备及产品
CN113094272A (zh) 应用测试方法、装置、电子设备和计算机可读介质
CN112764988A (zh) 一种数据分段采集方法及装置
CN115599634A (zh) 一种数据处理方法、装置、设备及存储介质
CN108184141B (zh) 一种监控视频任务的处理方法及服务器
CN115049418A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20220412

RJ01 Rejection of invention patent application after publication