CN110442647A - 数据一致性同步方法、装置及计算机可读存储介质 - Google Patents
数据一致性同步方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110442647A CN110442647A CN201910699373.5A CN201910699373A CN110442647A CN 110442647 A CN110442647 A CN 110442647A CN 201910699373 A CN201910699373 A CN 201910699373A CN 110442647 A CN110442647 A CN 110442647A
- Authority
- CN
- China
- Prior art keywords
- data collection
- data
- real time
- line
- initial
- 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
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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- 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/273—Asynchronous replication or reconciliation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种大数据技术,揭露了一种数据一致性同步方法,包括:获取用户的实时数据集和离线数据集,分别对所述实时数据集和离线数据集进行数据清洗,得到初始实时数据集和初始离线数据集;通过调度器对所述初始实时数据集进行实时更新,得到目标实时数据集,并将所述目标实时数据集存入数据库中;利用预先构建的调度系统对所述初始离线数据集进行分析汇总处理后得到目标离线数据集,并将所述目标离线数据集存入云存储数据库中;将所述目标离线数据集从所述云存储数据库中导入至所述数据库中,完成所述实时数据集和离线数据集的一致性同步。本发明还提出一种数据一致性同步装置以及一种计算机可读存储介质。本发明实现了数据一致性同步。
Description
技术领域
本发明涉及大数据技术领域,尤其涉及一种数据一致性同步方法、装置及计算机可读存储介质。
背景技术
随着科技的快速发展,企业对数据信息的更新速度要求越来越高。每时每刻产生的海量数据,可以分为实时数据和离线数据。目前行业内在对实时数据和离线数据处理上,采用的计算逻辑是相同的,但对其计算处理的时间却是不同的,其中,在对实时数据处理中会实时进行更新历史数据,而对于离线数据会预设某个时间节点进行更新历史数据。由于在后台开发过程中,面对实时数据更新时开发人员会出现误入统计数据的情况,这样会造成后续在面对实时数据和离线数据校验时带来数据的差异性,导致数据不一致性,同时也会造成审核成本过高。比如,昨天发生的交易量为离线数据,今天发生的交易量为实时数据,其中,预设昨天离线发生的交易量为100。当天统计截止昨天结束的交易量,离线计算为100,实时也为100,两边相等。此时如果昨日离线数据发生变更,变更为50,实时计算结果也会即刻更新为50,但是离线数据因为更新频率的原因,需要等到第二天凌晨才能统计变更,所以离线计算结果目前仍是100。此时,昨日的交易量统计结果实时50不等于离线100,这样就会导致数据出现不一致的情况。
发明内容
本发明提供一种数据一致性同步方法、装置及计算机可读存储介质,其主要目的在于当用户检验数据一致性的问题时,给用户呈现出精准的数据校验结果。
为实现上述目的,本发明提供的一种数据一致性同步方法,包括:
获取用户的实时数据集和离线数据集,分别对所述实时数据集和离线数据集进行数据清洗,得到初始实时数据集和初始离线数据集;
通过调度器对所述初始实时数据集进行实时更新,得到目标实时数据集,并将所述目标实时数据集存入数据库中;
利用预先构建的调度系统对所述初始离线数据集进行分析汇总处理后得到目标离线数据集,并将所述目标离线数据集存入云存储数据库中;
将所述目标离线数据集从所述云存储数据库中导入至所述数据库中,完成所述实时数据集和离线数据集的一致性同步。
可选地,所述分别对所述实时数据集和离线数据集进行数据清洗,包括:
选取所述实时数据集的关键列,根据所述关键列对所述实时数据集中的数据进行排序,预设不同大小的滑动窗口对排序后的所述实时数据集进行重复值的数据清洗,生成实时数据折线图,根据所述实时数据折线图完成所述实时数据集的清洗;
选取所述离线数据集的关键列,根据所述关键列对所述离线数据集中的数据进行排序,预设不同大小的滑动窗口对排序后的所述离线数据集进行重复值的数据清洗,生成离线数据折线图,根据所述离线数据折线图完成所述离线数据集的清洗。
可选地,所述对所述初始实时数据集进行实时更新,得到目标实时数据集,包括:
创建测试用表job_test以及创建一个任务更新模块,其中,所述任务更新模块每隔一秒将所述初始实时数据集的一条记录输入至所述job_test表中;
创建一个调度计划,将所述任务更新模块和所述调度计划进行组合,形成一个调度作业,其中,所述调度计划记录用户进行更新数据的时间和方式;;
根据用户的需求将需要进行更新的所述初始实时数据集输入至所述调度作业中,通过所述调度作业完成所述初始数据集的实时更新,得到所述目标实时数据集。
可选地,所述利用预先构建的调度系统对所述初始离线数据集进行分析汇总处理后得到目标离线数据集,包括:
将所述初始离线数据集转换成分区表形式的初始离线数据集后存储到多张数据表中;
将所述多张数据表中的初始离线数据集进行连接,得到一个明细数据表,并对所述明细数据表中的初始离线数据集进行统计,得到所述目标离线数据集,将所述目标离线数据集同步到所述云存储数据库中。
可选地,所述将所述目标离线数据集从所述云存储数据库中导入至所述数据库中,包括:
获取所述数据库所在服务器的IP地址以及SID号;
根据所述IP地址以及SID号输出所述目标离线数据集在所述云存储数据库中的绝对路径,利用所述绝对路径将所述目标离线数据集导入到所述数据库中。
此外,为实现上述目的,本发明还提供一种数据一致性同步装置,该装置包括存储器和处理器,所述存储器中存储有可在所述处理器上运行的数据一致性同步程序,所述数据一致性同步程序被所述处理器执行时实现如下步骤:
获取用户的实时数据集和离线数据集,分别对所述实时数据集和离线数据集进行数据清洗,得到初始实时数据集和初始离线数据集;
通过调度器对所述初始实时数据集进行实时更新,得到目标实时数据集,并将所述目标实时数据集存入数据库中;
利用预先构建的调度系统对所述初始离线数据集进行分析汇总处理后得到目标离线数据集,并将所述目标离线数据集存入云存储数据库中;
将所述目标离线数据集从所述云存储数据库中导入至所述数据库中,完成所述实时数据集和离线数据集的一致性同步。
可选地,所述分别对所述实时数据集和离线数据集进行数据清洗,包括:
选取所述实时数据集的关键列,根据所述关键列对所述实时数据集中的数据进行排序,预设不同大小的滑动窗口对排序后的所述实时数据集进行重复值的数据清洗,生成实时数据折线图,根据所述实时数据折线图完成所述实时数据集的清洗;
选取所述离线数据集的关键列,根据所述关键列对所述离线数据集中的数据进行排序,预设不同大小的滑动窗口对排序后的所述离线数据集进行重复值的数据清洗,生成离线数据折线图,根据所述离线数据折线图完成所述离线数据集的清洗。
可选地,所述对所述初始实时数据集进行实时更新,得到目标实时数据集,包括:
创建测试用表job_test以及创建一个任务更新模块,其中,所述任务更新模块每隔一秒将所述初始实时数据集的一条记录输入至所述job_test表中;
创建一个调度计划,将所述任务更新模块和所述调度计划进行组合,形成一个调度作业其中,所述调度计划记录用户进行更新数据的时间和方式;
根据用户的需求将需要进行更新的所述初始实时数据集输入至所述调度作业中,通过所述调度作业完成所述初始数据集的实时更新,得到所述目标实时数据集。
可选地,所述利用预先构建的调度系统对所述初始离线数据集进行分析汇总处理后得到目标离线数据集,包括:
将所述初始离线数据集转换成分区表形式的初始离线数据集后存储到多张数据表中;
将所述多张数据表中的初始离线数据集进行连接,得到一个明细数据表,并对所述明细数据表中的初始离线数据集进行统计,得到所述目标离线数据集,将所述目标离线数据集同步到所述云存储数据库中。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据一致性同步程序,所述数据一致性同步程序可被一个或者多个处理器执行,以实现如上所述的数据一致性同步方法的步骤。
本发明提出的数据一致性同步方法、装置及计算机可读存储介质,在用户进行检验数据一致性的问题时,结合获取所述用户的实时数据集和离线数据集,通过对所述实时数据集和所述离线数据集进行预处理操作后,将预处理后后的离线数据集导入至预处理后后的实数数据集的数据库中,保证了所述实时数据集和离线数据集同步性,从而可以给用户呈现出精准的数据检验结果。
附图说明
图1为本发明一实施例提供的数据一致性同步方法的流程示意图;
图2为本发明一实施例提供的数据一致性同步装置的内部结构示意图;
图3为本发明一实施例提供的数据一致性同步装置中数据一致性同步程序的模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种数据一致性同步方法。参照图1所示,为本发明一实施例提供的数据一致性同步方法的流程示意图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。
在本实施例中,数据一致性同步方法包括:
S1、获取用户的实时数据集和离线数据集,分别对所述实时数据集和离线数据集进行数据清洗,得到初始实时数据集和初始离线数据集。
本发明较佳实施例中,所述用户可以为某银行或某证券公司等,例如,招商银行。所述实时数据集中包括实时数据。所述实时数据指的是带有时态性的数据的集合。与普通的静止数据最大的区别在于实时数据带有严格的时间限制,一旦处于有效时间之外,数据将变得无效。随着时间的推移,实时数据会变成历史数据并存储下来以备以后使用。
较佳地,本发明较佳实施例通过下述的一种或者几种方法获取所述实时数据集:通过用户的客户群体正在进行业务办理或业务咨询时产生的实时数据集。进一步地,本发明较佳实施例通过下述的一种或者几种方法获取所述离线数据集:通过从用户的客户群体历史上进行业务办理或业务咨询时产生的数据获取得到。
优选地,本发明较佳实施例预设所述离线数据集获取的时间段为所述实时数据集获取前的一个星期内产生的数据集。例如,预设2019/06/19所述招商银行产生的数据集为实时数据集,则在2019/06/12~2019/06/18日内所述用户产生的数据集作为离线数据集。
进一步地,本发明中所述数据清洗是指发现并纠正数据文件中可识别的错误。优选地,本发明对获取的所述实时数据集和离线数据集中的重复性数据进行清洗,保证后续在数据计算和存储中更加的高效和快速。较佳地,本发明中对所述实时数据集中的数据清洗包括:
a、选取所述实时数据集的关键列,依照所述关键列中的关键字对所述实时数据集中的数据进行排序,得到排序后的实时数据集D′;
b、预设大小为w的滑动窗口,在所述滑动窗口内,以第w-1滑动窗口为基础,依次对比从w-2到0的实时数据集D′,其中,本发明在对比过程中采用编辑距离算法;
c、对所述滑动窗口大小进行缩放后,重复以上a和b的步骤,得到在窗口大小不同的情况下所述实时数据集中重复值数据清洗的差异,生成得到在不同数据集下相似度随着w大小变化而产生的实时数据折线图,根据所述实时数据折线图完成所述实时数据集的清洗,得到所述初始实时数据集。
较佳地,本发明中对所述离线数据集中的数据清洗包括:
A、选取所述离线数据集的关键列,依照所述关键列中的关键字对所述离线数据集中的数据进行排序,得到排序后的离线数据集D′;
B、预设大小为w的滑动窗口,在所述滑动窗口内,以第w-1滑动窗口为基础,依次对比从w-2到0的离线数据集D′,其中,本发明在对比过程中采用编辑距离算法;
C、对所述滑动窗口大小进行缩放后,重复以上a和b的步骤,得到在窗口大小不同的情况下所述离线数据集中重复值数据清洗的差异,生成得到在不同数据集下相似度随着w大小变化而产生的离线数据折线图,根据所述;离线数据折线图完成所述离线数据集的清洗,得到所述初始离线数据集。
进一步地,本发明还通过正确率来衡量数据的清洗精度。将经过算法清洗的数据集与原始数据集进行比较,通过计算正确率来体现清洗算法的匹配程度。其中,所述正确率计算方法如下:
其中,m是正确清洗出重复值的属性个数,n为原始数据集中重复的属性值个数,P为清洗算法的正确率。当P值为0时,表示所有清洗结果都错误;当P值为1时,所有清洗结果都正确。
S2、通过调度器对所述初始实时数据集进行实时更新,得到目标实时数据集,并将所述目标实时数据集存入数据库中。
本发明较佳实施例通过调度器对所述初始实时数据集进行实时更新,所述调度器为Oracle调度器,所述数据库为Oracle数据库。其中,所述Oracle调度器利用调度作业(Scheduler Job)的方法完成对所述初始实时数据集的实时更新。其中,在所述SchedulerJob中提供三种调度方式:方式一:基于时间的调度来更新数据,即指定一段时间,来重复的在指定的时间完成某项特定的任务;方式二:基于事件的调度来更新数据,即在发生系统事件或者业务事件的时,对所述系统事件或者业务事件进行回应来触发相关的计划任务;方式三:基于独立日程来更新数据,即通过上一件日程的完成来触发的,上一次的Job完成之后,则会触发下一个Job,于是,形成了一条“作业链”。
较佳地,根据实时数据的特性,即具有一定的时效性,本发明通过所述方式一完成对所述初始实时数据集进行实时更新。详细地,所述方式一具体实施步骤为:创建测试用表job_test以及创建一个任务更新模块,其中,所述任务更新模块用于存放调度所需要做的事情,即执行每隔一秒将所述初始实时数据集的一条记录输入至所述job_test表中;创建一个调度计划,将所述任务更新模块和所述调度计划进行组合,形成一个调度作业,其中,所述调度计划记录用户进行更新数据的时间和方式;根据用户的需求将需要进行更新的所述初始实时数据集输入至所述调度作业中,通过所述调度作业完成所述初始数据集的实时更新,得到所述目标实时数据集。
S3、利用预先构建的调度系统对所述初始离线数据集进行分析汇总处理后得到目标离线数据集,并将所述目标离线数据集存入云存储数据库中。
本发明较佳实施例中,所述更新时间的可以设置为每天的0点,由于所述初始离线数据集包含的数据信息庞大,若更新频率过快,很容易造成数据库迸发,导致数据的丢失。所述云存储数据库包括hive数据库,所述hive数据库是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表。
进一步地,本发明将所述初始离线数据集先分析计算后再进行更新。其中,对于所述初始离线数据集来说,通常含有大量任务单元,各任务单元之间存在时间先后及前后依赖关系,为了更好地组织起其复杂执行计划,需要一个调度系统来调度执行分析计算并更新,较佳地,本发明中所述预先构建的调度系统为自研调度系统。详细地,本发明预设所述初始离线数据集中的数据数量为140G,对所述140G数据进行分析计算并更新包括:通过Hadoop将所述初始离线数据集同步到HDFS集群上;利用MapReduce计算框架对所述初始离线数据集转换成分区表形式的初始离线数据集后存储到多张hive表中,并对所述hive中多个表的初始离线数据集进行连接(JOIN)处理,得到一个明细数据hive表,将所述hive表的初始离线数据集进行统计,得到所述目标离线数据集,将所述目标离线数据集同步到所述hive数据库中。
S4、将所述目标离线数据集从所述云存储数据库中导入至所述数据库中,完成所述实时数据集和离线数据集的一致性同步。
本发明较佳实施例通过Sqoop传输工具将所述目标离线数据集从所述云存储中导入至所述数据库中,所述Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库间进行数据的传递,可以将一个关系型数据库中的数据导进到Hadoop中,也可以将Hadoop的数据导进到关系型数据库中。较佳地,本发明中具体的导入步骤为:获取所述数据库所在服务器的IP地址以及SID号;根据所述IP地址以及SID号输出所述目标离线数据集在所述云存储数据库中的绝对路径,利用所述绝对路径将所述目标离线数据集导入到所述数据库中。此时,Oracle数据库的目标实时数据集包括:从hive中导入的目标离线数据集以及Oracle数据库中自身的目标实时数据集,从而可以保证所述Oracle数据库中目标离线数据集与所述hive中目标离线数据集的同步性,进而保障所述用户的实时数据集与离线数据集的一致性。
发明还提供一种数据一致性同步装置。参照图2所示,为本发明一实施例提供的数据一致性同步装置的内部结构示意图。
在本实施例中,所述数据一致性同步装置1可以是PC(Personal Computer,个人电脑),或者是智能手机、平板电脑、便携计算机等终端设备,也可以是一种服务器等。该数据一致性同步装置1至少包括存储器11、处理器12,通信总线13,以及网络接口14。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是数据一致性同步装置1的内部存储单元,例如该数据一致性同步装置1的硬盘。存储器11在另一些实施例中也可以是数据一致性同步装置1的外部存储设备,例如数据一致性同步装置1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括数据一致性同步装置1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于数据一致性同步装置1的应用软件及各类数据,例如数据一致性同步程序01的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行数据一致性同步程序01等。
通信总线13用于实现这些组件之间的连接通信。
网络接口14可选的可以包括标准的有线接口、无线接口(如WI-FI接口),通常用于在该装置1与其他电子设备之间建立通信连接。
可选地,该装置1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在数据一致性同步装置1中处理的信息以及用于显示可视化的用户界面。
图2仅示出了具有组件11-14以及数据一致性同步程序01的数据一致性同步装置1,本领域技术人员可以理解的是,图1示出的结构并不构成对数据一致性同步装置1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
在图2所示的装置1实施例中,存储器11中存储有数据一致性同步程序01;处理器12执行存储器11中存储的数据一致性同步程序01时实现如下步骤:
步骤一、获取用户的实时数据集和离线数据集,分别对所述实时数据集和离线数据集进行数据清洗,得到初始实时数据集和初始离线数据集。
本发明较佳实施例中,所述用户可以为某银行或某证券公司等,例如,招商银行。所述实时数据集中包括实时数据。所述实时数据指的是带有时态性的数据的集合。与普通的静止数据最大的区别在于实时数据带有严格的时间限制,一旦处于有效时间之外,数据将变得无效。随着时间的推移,实时数据会变成历史数据并存储下来以备以后使用。
较佳地,本发明较佳实施例通过下述的一种或者几种方法获取所述实时数据集:通过用户的客户群体正在进行业务办理或业务咨询时产生的实时数据集。进一步地,本发明较佳实施例通过下述的一种或者几种方法获取所述离线数据集:通过从用户的客户群体历史上进行业务办理或业务咨询时产生的数据获取得到。
优选地,本发明较佳实施例预设所述离线数据集获取的时间段为所述实时数据集获取前的一个星期内产生的数据集。例如,预设2019/06/19所述招商银行产生的数据集为实时数据集,则在2019/06/12~2019/06/18日内所述用户产生的数据集作为离线数据集。
进一步地,本发明中所述数据清洗是指发现并纠正数据文件中可识别的错误。优选地,本发明对获取的所述实时数据集和离线数据集中的重复性数据进行清洗,保证后续在数据计算和存储中更加的高效和快速。较佳地,本发明中对所述实时数据集中的数据清洗包括:
a、选取所述实时数据集的关键列,依照所述关键列中的关键字对所述实时数据集中的数据进行排序,得到排序后的实时数据集D′;
b、预设大小为w的滑动窗口,在所述滑动窗口内,以第w-1滑动窗口为基础,依次对比从w-2到0的实时数据集D′,其中,本发明在对比过程中采用编辑距离算法;
c、对所述滑动窗口大小进行缩放后,重复以上a和b的步骤,得到在窗口大小不同的情况下所述实时数据集中重复值数据清洗的差异,生成得到在不同数据集下相似度随着w大小变化而产生的实时数据折线图,根据所述实时数据折线图完成所述实时数据集的清洗,得到所述初始实时数据集。
较佳地,本发明中对所述离线数据集中的数据清洗包括:
A、选取所述离线数据集的关键列,依照所述关键列中的关键字对所述离线数据集中的数据进行排序,得到排序后的离线数据集D′;
B、预设大小为w的滑动窗口,在所述滑动窗口内,以第w-1滑动窗口为基础,依次对比从w-2到0的离线数据集D′,其中,本发明在对比过程中采用编辑距离算法;
C、对所述滑动窗口大小进行缩放后,重复以上a和b的步骤,得到在窗口大小不同的情况下所述离线数据集中重复值数据清洗的差异,生成得到在不同数据集下相似度随着w大小变化而产生的离线数据折线图,根据所述;离线数据折线图完成所述离线数据集的清洗,得到所述初始离线数据集。
进一步地,本发明还通过正确率来衡量数据的清洗精度。将经过算法清洗的数据集与原始数据集进行比较,通过计算正确率来体现清洗算法的匹配程度。其中,所述正确率计算方法如下:
其中,m是正确清洗出重复值的属性个数,n为原始数据集中重复的属性值个数,P为清洗算法的正确率。当P值为0时,表示所有清洗结果都错误;当P值为1时,所有清洗结果都正确。
步骤二、通过调度器对所述初始实时数据集进行实时更新,得到目标实时数据集,并将所述目标实时数据集存入数据库中。
本发明较佳实施例通过调度器对所述初始实时数据集进行实时更新,所述调度器为Oracle调度器,所述数据库为Oracle数据库。其中,所述Oracle调度器利用调度作业(Scheduler Job)的方法完成对所述初始实时数据集的实时更新。其中,在所述SchedulerJob中提供三种调度方式:方式一:基于时间的调度来更新数据,即指定一段时间,来重复的在指定的时间完成某项特定的任务;方式二:基于事件的调度来更新数据,即在发生系统事件或者业务事件的时,对所述系统事件或者业务事件进行回应来触发相关的计划任务;方式三:基于独立日程来更新数据,即通过上一件日程的完成来触发的,上一次的Job完成之后,则会触发下一个Job,于是,形成了一条“作业链”。
较佳地,根据实时数据的特性,即具有一定的时效性,本发明通过所述方式一完成对所述初始实时数据集进行实时更新。详细地,所述方式一具体实施步骤为:创建测试用表job_test以及创建一个任务更新模块,其中,所述任务更新模块用于存放调度所需要做的事情,即执行每隔一秒将所述初始实时数据集的一条记录输入至所述job_test表中;创建一个调度计划,将所述任务更新模块和所述调度计划进行组合,形成一个调度作业,其中,所述调度计划记录用户进行更新数据的时间和方式;根据用户的需求将需要进行更新的所述初始实时数据集输入至所述调度作业中,通过所述调度作业完成所述初始数据集的实时更新,得到所述目标实时数据集。
步骤三、利用预先构建的调度系统对所述初始离线数据集进行分析汇总处理后得到目标离线数据集,并将所述目标离线数据集存入云存储数据库中。
本发明较佳实施例中,所述更新时间的可以设置为每天的0点,由于所述初始离线数据集包含的数据信息庞大,若更新频率过快,很容易造成数据库迸发,导致数据的丢失。所述云存储数据库包括hive数据库,所述hive数据库是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表。
进一步地,本发明将所述初始离线数据集先分析计算后再进行更新。其中,对于所述初始离线数据集来说,通常含有大量任务单元,各任务单元之间存在时间先后及前后依赖关系,为了更好地组织起其复杂执行计划,需要一个调度系统来调度执行分析计算并更新,较佳地,本发明中所述预先构建的调度系统为自研调度系统。详细地,本发明预设所述初始离线数据集中的数据数量为140G,对所述140G数据进行分析计算并更新包括:通过Hadoop将所述初始离线数据集同步到HDFS集群上;利用MapReduce计算框架对所述初始离线数据集转换成分区表形式的初始离线数据集后存储到多张hive表中,并对所述hive中多个表的初始离线数据集进行连接(JOIN)处理,得到一个明细数据hive表,将所述hive表的初始离线数据集进行统计,得到所述目标离线数据集,将所述目标离线数据集同步到所述hive数据库中。
步骤四、将所述目标离线数据集从所述云存储数据库中导入至所述数据库中,完成所述实时数据集和离线数据集的一致性同步。
本发明较佳实施例通过Sqoop传输工具将所述目标离线数据集从所述云存储中导入至所述数据库中,所述Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库间进行数据的传递,可以将一个关系型数据库中的数据导进到Hadoop中,也可以将Hadoop的数据导进到关系型数据库中。较佳地,本发明中具体的导入步骤为:获取所述数据库所在服务器的IP地址以及SID号;根据所述IP地址以及SID号输出所述目标离线数据集在所述云存储数据库中的绝对路径,利用所述绝对路径将所述目标离线数据集导入到所述数据库中。此时,Oracle数据库的目标实时数据集包括:从hive中导入的目标离线数据集以及Oracle数据库中自身的目标实时数据集,从而可以保证所述Oracle数据库中目标离线数据集与所述hive中目标离线数据集的同步性,进而保障所述用户的实时数据集与离线数据集的一致性。
可选地,在其他实施例中,数据一致性同步程序还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行以完成本发明,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,用于描述数据一致性同步程序在数据一致性同步装置中的执行过程。
例如,参照图3所示,为本发明数据一致性同步装置一实施例中的数据一致性同步程序的程序模块示意图,该实施例中,所述数据一致性同步程序可以被分割为数据清洗模块10、数据更新模块20、数据导入模块30,示例性地:
所述数据清洗模块10用于:获取用户的实时数据集和离线数据集,分别对所述实时数据集和离线数据集进行数据清洗,得到初始实时数据集和初始离线数据集。
所述数据更新模块20用于:通过调度器对所述初始实时数据集进行实时更新,得到目标实时数据集,并将所述目标实时数据集存入数据库中;利用预先构建的调度系统对所述初始离线数据集进行分析汇总处理后得到目标离线数据集,并将所述目标离线数据集存入云存储数据库中。
所述数据导入模块30用于:将所述目标离线数据集从所述云存储数据库中导入至所述数据库中,完成所述实时数据集和离线数据集的一致性同步。
上述数据清洗模块10、数据更新模块20、数据导入模块30等程序模块被执行时所实现的功能或操作步骤与上述实施例大体相同,在此不再赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有数据一致性同步程序,所述数据一致性同步程序可被一个或多个处理器执行,以实现如下操作:
获取用户的实时数据集和离线数据集,分别对所述实时数据集和离线数据集进行数据清洗,得到初始实时数据集和初始离线数据集;
通过调度器对所述初始实时数据集进行实时更新,得到目标实时数据集,并将所述目标实时数据集存入数据库中;
利用预先构建的调度系统对所述初始离线数据集进行分析汇总处理后得到目标离线数据集,并将所述目标离线数据集存入云存储数据库中;
将所述目标离线数据集从所述云存储数据库中导入至所述数据库中,完成所述实时数据集和离线数据集的一致性同步。
本发明计算机可读存储介质具体实施方式与上述数据一致性同步装置和方法各实施例基本相同,在此不作累述。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据一致性同步方法,其特征在于,所述方法包括:
获取用户的实时数据集和离线数据集,分别对所述实时数据集和离线数据集进行数据清洗,得到初始实时数据集和初始离线数据集;
通过调度器对所述初始实时数据集进行实时更新,得到目标实时数据集,并将所述目标实时数据集存入数据库中;
利用预先构建的调度系统对所述初始离线数据集进行分析汇总处理后得到目标离线数据集,并将所述目标离线数据集存入云存储数据库中;
将所述目标离线数据集从所述云存储数据库中导入至所述数据库中,完成所述实时数据集和离线数据集的一致性同步。
2.如权利要求1所述的数据一致性同步方法,其特征在于,所述分别对所述实时数据集和离线数据集进行数据清洗,包括:
选取所述实时数据集的关键列,根据所述关键列对所述实时数据集中的数据进行排序,预设不同大小的滑动窗口对排序后的所述实时数据集进行重复值的数据清洗,生成实时数据折线图,根据所述实时数据折线图完成所述实时数据集的清洗;
选取所述离线数据集的关键列,根据所述关键列对所述离线数据集中的数据进行排序,预设不同大小的滑动窗口对排序后的所述离线数据集进行重复值的数据清洗,生成离线数据折线图,根据所述离线数据折线图完成所述离线数据集的清洗。
3.如权利要求1所述的数据一致性同步方法,其特征在于,所述对所述初始实时数据集进行实时更新,得到目标实时数据集,包括:
创建测试用表job_test以及创建一个任务更新模块,其中,所述任务更新模块每隔一秒将所述初始实时数据集的一条记录输入至所述job_test表中;
创建一个调度计划,将所述任务更新模块和所述调度计划进行组合,形成一个调度作业,其中,所述调度计划记录用户进行更新数据的时间和方式;
根据用户的需求将需要进行更新的所述初始实时数据集输入至所述调度作业中,通过所述调度作业完成所述初始数据集的实时更新,得到所述目标实时数据集。
4.如权利要求1所述的数据一致性同步方法,其特征在于,所述利用预先构建的调度系统对所述初始离线数据集进行分析汇总处理后得到目标离线数据集,包括:
将所述初始离线数据集转换成分区表形式的初始离线数据集后存储到多张数据表中;
将所述多张数据表中的初始离线数据集进行连接,得到一个明细数据表,并对所述明细数据表中的初始离线数据集进行统计,得到所述目标离线数据集,将所述目标离线数据集同步到所述云存储数据库中。
5.如权利要求1至4中任意一项所述的数据一致性同步方法,其特征在于,所述将所述目标离线数据集从所述云存储数据库中导入至所述数据库中,包括:
获取所述数据库所在服务器的IP地址以及SID号;
根据所述IP地址以及SID号输出所述目标离线数据集在所述云存储数据库中的绝对路径,利用所述绝对路径将所述目标离线数据集导入到所述数据库中。
6.一种数据一致性同步装置,其特征在于,所述装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的数据一致性同步程序,所述数据一致性同步程序被所述处理器执行时实现如下步骤:
获取用户的实时数据集和离线数据集,分别对所述实时数据集和离线数据集进行数据清洗,得到初始实时数据集和初始离线数据集;
通过调度器对所述初始实时数据集进行实时更新,得到目标实时数据集,并将所述目标实时数据集存入数据库中;
利用预先构建的调度系统对所述初始离线数据集进行分析汇总处理后得到目标离线数据集,并将所述目标离线数据集存入云存储数据库中;
将所述目标离线数据集从所述云存储数据库中导入至所述数据库中,完成所述实时数据集和离线数据集的一致性同步。
7.如权利要求6所述的数据一致性同步装置,其特征在于,所述分别对所述实时数据集和离线数据集进行数据清洗,包括:
选取所述实时数据集的关键列,根据所述关键列对所述实时数据集中的数据进行排序,预设不同大小的滑动窗口对排序后的所述实时数据集进行重复值的数据清洗,生成实时数据折线图,根据所述实时数据折线图完成所述实时数据集的清洗;
选取所述离线数据集的关键列,根据所述关键列对所述离线数据集中的数据进行排序,预设不同大小的滑动窗口对排序后的所述离线数据集进行重复值的数据清洗,生成离线数据折线图,根据所述离线数据折线图完成所述离线数据集的清洗。
8.如权利要求6所述的数据一致性同步装置,其特征在于,所述对所述初始实时数据集进行实时更新,得到目标实时数据集,包括:
创建测试用表job_test以及创建一个任务更新模块,其中,所述任务更新模块每隔一秒将所述初始实时数据集的一条记录输入至所述job_test表中;
创建一个调度计划,将所述任务更新模块和所述调度计划进行组合,形成一个调度作业,其中,所述调度计划记录用户进行更新数据的时间和方式;
根据用户的需求将需要进行更新的所述初始实时数据集输入至所述调度作业中,通过所述调度作业完成所述初始数据集的实时更新,得到所述目标实时数据集。
9.如权利要求6所述的数据一致性同步装置,其特征在于,所述利用预先构建的调度系统对所述初始离线数据集进行分析汇总处理后得到目标离线数据集,包括:
将所述初始离线数据集转换成分区表形式的初始离线数据集后存储到多张数据表中;
将所述多张数据表中的初始离线数据集进行连接,得到一个明细数据表,并对所述明细数据表中的初始离线数据集进行统计,得到所述目标离线数据集,将所述目标离线数据集同步到所述云存储数据库中。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据一致性同步程序,所述数据一致性同步程序可被一个或者多个处理器执行,以实现如权利要求1至5中任一项所述的数据一致性同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910699373.5A CN110442647B (zh) | 2019-07-29 | 2019-07-29 | 数据一致性同步方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910699373.5A CN110442647B (zh) | 2019-07-29 | 2019-07-29 | 数据一致性同步方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110442647A true CN110442647A (zh) | 2019-11-12 |
CN110442647B CN110442647B (zh) | 2022-01-28 |
Family
ID=68432434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910699373.5A Active CN110442647B (zh) | 2019-07-29 | 2019-07-29 | 数据一致性同步方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110442647B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111177220A (zh) * | 2019-12-26 | 2020-05-19 | 中国平安财产保险股份有限公司 | 基于大数据的数据分析方法、装置、设备及可读存储介质 |
CN111427913A (zh) * | 2020-03-19 | 2020-07-17 | 嘉兴太美医疗科技有限公司 | 数据处理方法、设备、服务器、系统和计算机可读介质 |
CN112199346A (zh) * | 2020-12-08 | 2021-01-08 | 北京每日优鲜电子商务有限公司 | 物品信息存储方法、装置、电子设备和计算机可读介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103442029A (zh) * | 2013-07-29 | 2013-12-11 | 广东电网公司电力科学研究院 | 异构实时历史数据库同步方法和系统 |
CN104679888A (zh) * | 2015-03-17 | 2015-06-03 | 浪潮集团有限公司 | 一种数据同步的装置及方法 |
CN106529261A (zh) * | 2016-10-25 | 2017-03-22 | 公安部第三研究所 | 离线业务数据同步用UKey以及方法 |
CN106651633A (zh) * | 2016-10-09 | 2017-05-10 | 国网浙江省电力公司信息通信分公司 | 一种基于大数据技术的用电信息采集系统及其采集方法 |
CN106909598A (zh) * | 2016-07-01 | 2017-06-30 | 阿里巴巴集团控股有限公司 | 一种保障计算数据一致性的处理方法、装置及系统 |
US9804818B2 (en) * | 2015-09-30 | 2017-10-31 | Apple Inc. | Musical analysis platform |
CN109729144A (zh) * | 2018-11-27 | 2019-05-07 | 广州市科传计算机科技股份有限公司 | 离线传输系统和方法 |
CN109829009A (zh) * | 2018-12-28 | 2019-05-31 | 北京邮电大学 | 可配置的异构数据实时同步并可视化的系统及方法 |
-
2019
- 2019-07-29 CN CN201910699373.5A patent/CN110442647B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103442029A (zh) * | 2013-07-29 | 2013-12-11 | 广东电网公司电力科学研究院 | 异构实时历史数据库同步方法和系统 |
CN104679888A (zh) * | 2015-03-17 | 2015-06-03 | 浪潮集团有限公司 | 一种数据同步的装置及方法 |
US9804818B2 (en) * | 2015-09-30 | 2017-10-31 | Apple Inc. | Musical analysis platform |
CN106909598A (zh) * | 2016-07-01 | 2017-06-30 | 阿里巴巴集团控股有限公司 | 一种保障计算数据一致性的处理方法、装置及系统 |
CN106651633A (zh) * | 2016-10-09 | 2017-05-10 | 国网浙江省电力公司信息通信分公司 | 一种基于大数据技术的用电信息采集系统及其采集方法 |
CN106529261A (zh) * | 2016-10-25 | 2017-03-22 | 公安部第三研究所 | 离线业务数据同步用UKey以及方法 |
CN109729144A (zh) * | 2018-11-27 | 2019-05-07 | 广州市科传计算机科技股份有限公司 | 离线传输系统和方法 |
CN109829009A (zh) * | 2018-12-28 | 2019-05-31 | 北京邮电大学 | 可配置的异构数据实时同步并可视化的系统及方法 |
Non-Patent Citations (2)
Title |
---|
FRANKDENG: "《https://www.cnblogs.com/frankdeng/p/9067092.html》", 2 June 2018 * |
李子乾 等: "电网大规模数据仓库的数据接入研究与设计", 《计算机应用与软件》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111177220A (zh) * | 2019-12-26 | 2020-05-19 | 中国平安财产保险股份有限公司 | 基于大数据的数据分析方法、装置、设备及可读存储介质 |
CN111427913A (zh) * | 2020-03-19 | 2020-07-17 | 嘉兴太美医疗科技有限公司 | 数据处理方法、设备、服务器、系统和计算机可读介质 |
CN112199346A (zh) * | 2020-12-08 | 2021-01-08 | 北京每日优鲜电子商务有限公司 | 物品信息存储方法、装置、电子设备和计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110442647B (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109690524A (zh) | 分布式事件处理系统中的数据序列化 | |
CN110442647A (zh) | 数据一致性同步方法、装置及计算机可读存储介质 | |
CN109144997A (zh) | 数据关联方法、装置及存储介质 | |
CN109683953A (zh) | 一种基于可视化界面进行配置文件处理的方法及装置 | |
CN107644286A (zh) | 工作流处理方法及装置 | |
CN109472568A (zh) | 一种区块链交易方法、装置、管理系统、设备及存储介质 | |
CN106649488B (zh) | 多数据源交互接口的调用方法及装置 | |
CN112395177A (zh) | 业务数据的交互处理方法、装置、设备及存储介质 | |
CN109471718A (zh) | 基于人脸识别的计算资源配置方法、装置、设备及介质 | |
CN108345658A (zh) | 算法计算轨迹的分解处理方法、服务器及存储介质 | |
CN108460068A (zh) | 报表导入导出的方法、装置、存储介质及终端 | |
CN111784318A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN110764747A (zh) | 基于Airflow的数据计算调度方法 | |
CN110766520A (zh) | 多系统多店铺订单融合方法、装置、计算机设备和存储介质 | |
CN106156198A (zh) | 基于分布式数据库的任务执行方法及装置 | |
CN110443044A (zh) | 区块链客户端漏洞挖掘方法、装置、设备及存储介质 | |
CN111159300A (zh) | 基于区块链的数据处理方法及装置 | |
CN106062738A (zh) | 管理作业状态 | |
CN109241511A (zh) | 一种电子报告的生成方法及设备 | |
CN108985805A (zh) | 一种选择性执行推送任务的方法和装置 | |
CN112905227A (zh) | 开源软件版本登记方法及装置 | |
CN112016256A (zh) | 一种集成电路开发平台、方法、存储介质及设备 | |
CN110874365A (zh) | 一种信息查询方法及其相关设备 | |
CN110209572A (zh) | 用户界面测试方法、用户界面测试系统及终端 | |
CN109271431A (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 |