一种数据自动化同步的配置方法与流程

文档序号:28054996发布日期:2021-12-17 22:02阅读:190来源:国知局
1.本发明涉及数据自动化处理
技术领域
:,是一种数据自动化同步的配置方法,具体为一种后台shell脚本文件和kettle结合实现海量数据实现自动化比对处理的配置方法。特别适用于格式为.vbs或.batshell的脚本数据文件。
背景技术
::2.现有技术数据同步技术,接口调用数据抽取数据量大抽取时耗时严重,文件对接数据传输不安全、工作量大等。3.目前采用数据比对方法,1、行业部门之间数据同步使用人工核查数据更新时间、核查数据量进行相对应比较、在次过程中人员协调困难、数据更新较慢;2、接口调用更新比对、解决了数据更新的时效性、但在此过程中数据只能单独验证单条传输、数据传输较慢、耗时严重。4.本发明采用的是kettle结合java、shell脚本以及sql文件比对判断;相比于人工核查比对,解决了数据更新不及时、以及工作量大的问题;相比于接口调用在数据传输安全的基础上解决了单体调用耗时严重的问题。技术实现要素:5.本发明取消人工参与、能安全及时有效的对接处理数据、实现两个及以上多个数据库之间的数据自动共享问题,实现源数据和目标数据之间数据互通、业务独立的特性问题。6.本发明通过如下技术方案实现:两个及以上数据库(oracle、mysql等)之间,源数据库及目标数据库之间数据安全、快速的同步共享,数据定时自动处理成目标业务所需数据源。7.一种数据自动化同步的配置方法,包括如下步骤:定时启动、实时监控、实时更新、实时比对更新数据、实现数据自动化同步配置;所述定时启动通过代码定时任务或ketlle定时任务、以2分钟时间为一个节点、定时调动shell脚本、同步查询目标数据库及源数据库数据表数据及最新时间判断目标数据是否是最新源数据,依据shell脚本判断结果返回数据更新状态;状态1结果为true,数据一致、不执行后续操作过程;状态2结果为false,数据不一致,则执行下一步操作过程;调用shell脚本进行数据同步,数据同步采用dmp格式文件传输或nb3文件传输同步操作、实现两数据库之间的数据同步操作;同步完成之后返回调用结果;a、通过kettle本身的文件比对进行判断,只判断文件大小;b、shell脚本调用sql语句比对数据目标表的数据总量以及查询数据库表结构字段语句进行数据有效性验证,将同步数据结果返回;上述步骤返回结果:验证成功、继续执行下一步操作数据自动比对处理;验证失败,数据结果有误,清除目标库中间表以及数据文件、返回继续执行数据抽取步骤;同时在上述每一步骤中加入短信提醒功能、调用kettle及代码组合方式、在整个过程每个流程执行过程中发现有报错执行不过以短信提醒的方式通知dba及时处理。8.自动化同步数据过程编写连接目标数据库以及源数据库的shell脚本、通过执行shell脚本导出源数据库数据以及表结构并导入将数据和表结构导入目标数据库;通过kettle定时任务定时调用上述数据抽取脚本,通过脚本执行交源数据库数据同步到目标数据库。9.通过shell脚本结合sql文件查询比对源数据库数据文件总数和目标数据库数据总数以及源数据库数据文件大小和目标数据库数据文件大小来判断数据量同步是否全量一致;通过kettle分别调用以上步骤进行数据比对以及数据有效新的验证操作实现数据自动化比对过程。10.通过shell脚本结合数据库存储过程将同步的数据按照业务目标要求进行分类处理,将原有数据处理成业务需要的基础数据进行业务层使用;实现目标数据库与源数据库数据自动同步自动比对、将数据同步到目标前置库、通过kettle调用数据sql处理脚本将前置库数据同步处理到目标业务库。11.进一步的,所述shell脚本实现两个及以上数据库之间数据同步共享任务,以shell(.bat)脚本能连接多个数据库的特性、将源数据库和目标数据库同时建立连接。12.通过采用上述技术方案,实现源数据库与目标数据库之间数据结构与数据的互通,将目标业务所需数据所有来源数据表全部通过此过程自动共享至业务目标数据库。13.进一步的,通过shell(.bat/.vbs)脚本调用sql文件,执行目标数据库及源数据库之间的比对sql,通过数据量判断业务所需数据表是否共享完全,目标数据库数据量及源数据库数据量完全一致时进而执行下一步操作,否则返回重新执行上一步操作。14.进一步的,通过kettle能比对文件大小的特性结合shell脚本对数据读取的源文件以及目标文件大小进行有效比对、通过文件大小比对结果判定是否读取写入的数据文件完全一致,一致则进行下一步操作、不一致则返回上一步操作。15.进一步的,完成以上数据互通及比对操作后、通过利用kettle调用数据存储过程及执行sql文件的特性,调用目标业务数据库存储过程实现业务数据数据源处理操作。16.本发明相对于现有技术,具有以下有益效果:1、自动化:实现数据同步的自动化、数据比对自动化、数据处理自动化,相较于传统的比对处理数据,主要在于解决人工成本、释放人力资源。17.2、时效性:相较于传传统的比对处理数据方式、实现了数据及时有效地更新同步最新数据,是两个一级多个业务数据之间实现及时同步对接。18.3、资源耗费小:相较于传统的数据同步处理方式、已最小的内存处理资源实现最大化疏忽巨量的及时更新同步能力。19.综上所述,将源数据库和目标数据库通过kettle建立有效连接,并将源数据库数据以及表结构通过执行已经编译好的bat、vbs文件脚本以最快的速度、最小的时间同步到目标数据库,实现源数据库和目标数据库数据以及结构的共享;通过kettle本身可以执行sql语言以及shell脚本的特性,将数据处理脚本编译进shell脚本以及sql执行语句脚本中进行数据处理;通过kettle定时作业执行的特性编辑数据同步及处理定时任务,定时调用shell脚本发明处理数据进入目标业务库,将数据处理为业务需要的数据结构及表名称;通过定时执行各类脚本极大程度的缩减了人工参与成本、将数据比对处理工作实现自动化同步、自动化比对处理。附图说明20.图1是为本发明原理图;图2是本发明工作流程图。具体实施方式21.一种数据自动化同步的配置方法,其特征在于包括如下步骤:定时启动、实时监控、实时更新、实时比对更新数据、实现数据自动化同步配置;所述定时启动通过代码定时任务或ketlle定时任务、以2分钟时间为一个节点、定时调动shell脚本、同步查询目标数据库及源数据库数据表数据及最新时间判断目标数据是否是最新源数据,依据shell脚本判断结果返回数据更新状态;状态1结果为true,数据一致、不执行后续操作过程;状态2结果为false,数据不一致,则执行下一步操作过程;调用shell脚本进行数据同步,数据同步采用dmp格式文件传输或nb3文件传输同步操作、实现两数据库之间的数据同步操作;同步完成之后返回调用结果;择一选用如下方案:a、通过kettle本身的文件比对进行判断,只判断文件大小;b、shell脚本调用sql语句比对数据目标表的数据总量以及查询数据库表结构字段语句进行数据有效性验证,将同步数据结果返回;上述步骤返回结果:验证成功、继续执行下一步操作数据自动比对处理;验证失败,数据结果有误,清除目标库中间表以及数据文件、返回继续执行数据抽取步骤;同时在上述每一步骤中加入短信提醒功能、调用kettle及代码组合方式、在整个过程每个流程执行过程中发现有报错执行不过以短信提醒的方式通知dba及时处理。22.自动化同步数据过程编写连接目标数据库以及源数据库的shell脚本、通过执行shell脚本导出源数据库数据以及表结构并导入将数据和表结构导入目标数据库;通过kettle定时任务定时调用上述数据抽取脚本,通过脚本执行交源数据库数据同步到目标数据库。23.通过shell脚本结合sql文件查询比对源数据库数据文件总数和目标数据库数据总数以及源数据库数据文件大小和目标数据库数据文件大小来判断数据量同步是否全量一致;通过kettle分别调用以上步骤进行数据比对以及数据有效新的验证操作实现数据自动化比对过程。24.通过shell脚本结合数据库存储过程将同步的数据按照业务目标要求进行分类处理,将原有数据处理成业务需要的基础数据进行业务层使用;实现目标数据库与源数据库数据自动同步自动比对、将数据同步到目标前置库、通过kettle调用数据sql处理脚本将前置库数据同步处理到目标业务库。25.如图1‑图2所示,基于kettle、shell脚本、sql文件的数据自动化同步处理的配置方法,包括有如下步骤:s1.基于业务数据需要,编写shell(.bat)脚本,同时连接源数据库与目标数据库,实现源数据库与目标数据库之间数据及结构互通,将目标业务所需数据所有来源数据表全file=d:/cpad/%date:~,4%%date:~5,2%%date:~8,2%/aa11.dmpignore=y"&&echoaa11>>ac01_log.txt通过kettle定时任务定时调用上述数据抽取脚本aa11.bak,通过脚本执行交源数据库数据同步到目标数据库。32.通过shell脚本结合sql文件查询比对源数据库数据文件总数和目标数据库数据总数以及源数据库数据文件大小和目标数据库数据文件大小来判断数据量同步是否全量一致。33.数据自动比对:@echooffd:cd\2015_bat‑new\:abcfor/f"delims=:"%%ain('findstr/n"a"ac01_log.txt')dosetlineno=%%aecho%lineno%echo数据尚未抽取完成请耐心等待if%lineno%==41(echo数据抽取完成calljzfptimestamp.batexit)goto:abc数据量核查sql:gfbtimestamp.sql源数据库:setlinesize1000setpagesize0setechooffsettermoutoffsetheadingoffsetfeedbackoffsettrimsonsettermoffsettrimspoolonsettrimoutoncolumntodaynew_valuetoday_fileselectto_char(sysdate,'yyyymmdd')astodayfromdual;spoold:\zddybat\gfb&&today_file..txtselect1,'aa11',count(1)fromaa11;spooloff;目标中间库:exitsetlinesize1000setpagesize0setechooffsettermoutoffsetheadingoffsetfeedbackoffsettrimsonsettermoffsettrimspoolonsettrimoutoncolumntodaynew_valuetoday_fileselectto_char(sysdate,'yyyymmdd')astodayfromdual;spoold:\zddybat\jzfp&&today_file..txtselect1,'aa11',count(1)fromaa11;spooloff;exit数据比对@echooffecho判断执行程序ping/n5127.1>nulfor/f"tokens=*"%%iin('moregfb%date:~,4%%date:~5,2%%date:~8,2%.txt')do(findstr/c:"%%i"jzfp%date:~,4%%date:~5,2%%date:~8,2%.txt||echo%%i>>c.txt)echo'============================'echo比较时间戳成功!echo'============================'ping/n3127.1>nulcalliscexists.bat通过kettle分别调用以上步骤进行数据比对以及数据有效新的验证操作实现数据自动化比对过程。34.通过shell脚本结合数据库存储过程将同步的数据按照业务目标要求进行分类处理,将原有数据处理成业务需要的基础数据进行业务层使用。35.通过上述步骤实现目标数据库与源数据库数据自动同步自动比对、将数据同步到目标前置库、通过kettle调用数据sql处理脚本将前置库数据同步处理到目标业务库。36.truncatetabletbl_sys_area_code_bak;insertintotbl_sys_area_code_bakꢀꢀ(area_code,area_name,parent_area_code,short_name,area_level)ꢀꢀselectaaa011,ꢀꢀꢀꢀꢀꢀꢀꢀꢀaar009,ꢀꢀꢀꢀꢀꢀꢀꢀꢀaaa113,ꢀꢀꢀꢀꢀꢀꢀꢀꢀaar009,ꢀꢀꢀꢀꢀꢀꢀꢀꢀcaseaar033ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀwhen'20'thenꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ1ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀwhen'40'thenꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀwhen'50'thenꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ3ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀwhen'60'thenꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ4ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀwhen'70'thenꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ5ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀelseꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ0ꢀꢀꢀꢀꢀꢀꢀꢀꢀendꢀꢀꢀꢀfromhenan_cpad.aa11_bakt;通过调用kettle任务执行上述sql语句处理数据完成。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1