CN115878643A - 基于Kettle对多个数据库进行自动校验的方法、装置及应用 - Google Patents
基于Kettle对多个数据库进行自动校验的方法、装置及应用 Download PDFInfo
- Publication number
- CN115878643A CN115878643A CN202211581491.4A CN202211581491A CN115878643A CN 115878643 A CN115878643 A CN 115878643A CN 202211581491 A CN202211581491 A CN 202211581491A CN 115878643 A CN115878643 A CN 115878643A
- Authority
- CN
- China
- Prior art keywords
- database
- service
- checking
- connection
- button
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提出了一种基于Kettle对多个数据库进行自动校验的方法、装置及应用,包括以下步骤:在工作终端上部署安装Kettle,为所述Kettle设定具有访问权限的工作数据库,且在所述工作数据库中创建连接参数清单表、待检查数据表清单以及检查结果存储表;在所述Kettle具有访问权限的数据库中构建至少一基准数据库,通过Kettle获得基准检查结果;Kettle根据所述连接参数清单表与至少一所述业务数据库进行连接得到业务检查结果;基于所述基准检查结果左连接对应的业务检查结果得到左连接校验表,Kettle对所述左连接校验表进行校验。本方案通过Kettle对基准数据库以及业务数据库进行检查校验,并将检查结果存放在一个表中,可以全自动对业务数据库进行校验,方便后续进行数据归集。
Description
技术领域
本申请涉及数据库领域,特别是涉及一种基于Kettle对多个数据库进行自动校验的方法、装置及应用。
背景技术
在软件系统开发项目中,因数据表模型不一致而导致数据归集失败或产生的数据存在质量缺陷时,会影响后续软件开发工作的正常开展,目前经常会发生开发人员不遵守开发规范,随意变更业务数据库中先前已定稿的表模型的情况,并且开发人员在变更表模型后也未及时向项目的相关方面做补充说明,以至于业务数据库中的表模型在进行统一归集到数仓的时候,因为业务数据表模型和数仓中的归集表模型不统一从而影响后续软件开发工作的正常发展。
尤其是在政府信息化项目中,这种情况尤为常见,各地政府目前都有公共数据统一归集、共享的需求,而政府信息化项目中的数据源头来自于政府各个部门信息化建设项目的业务数据库,且大部分都是交给不同的厂商进行开发,所以导致业务数据库的开发水平参差不齐,项目管理水平存在差异,在数据归集时时常会发生因开发人员随意变更业务数据库模型导致归集失败或严重影响数据质量的情况。
在现有技术中,当业务数据库中的表模型结构变动时,整个数据归集、共享链路中还没有及时、有效的识别出存在的问题并进行预警,一般都是在最终归集数据使用时才发现问题,从而进行溯源整改,不仅费时费力,还影响项目的建设进度,所以亟需一种可以对多个业务数据库进行自动检查,及时发现问题并进行预警的方法。
发明内容
本申请实施例提供了一种基于Kettle对多个数据库进行自动校验的方法、装置及应用,可以针对多个业务数据库进行自动化检查,对开发人员进行预警以及时整改,确保后续数据归集正常进行。
第一方面,本申请实施例提供了一种基于Kettle对多个数据库进行自动校验的方法,所述方法包括:
在工作终端上部署安装Kettle,为所述Kettle设定具有访问权限的工作数据库,且在所述工作数据库中创建连接参数清单表、待检查数据表清单以及检查结果存储表,所述连接参数清单表内填写连接基准数据库和/或业务数据库的连接参数,所述待检查数据表清单内填写待检查业务数据表名称、待检查业务数据表所属的待检查业务数据库名称以及适用所述待检查业务数据库的基准数据库名称,所述检查结果表用来存储基准数据库和/或业务数据库中所有的字段属性数据;
构建至少一基准数据库,所述Kettle具有所述基准数据库的访问权限,Kettle根据所述连接参数清单表与至少一所述基准数据库进行连接,并读取columns表中基准数据库的所有字段属性保存到所述检查结果存储表中得到基准检查结果;
Kettle根据所述连接参数清单表与至少一所述业务数据库进行连接,根据所述待检查数据表清单读取columns表中待检查业务数据表的所有的字段属性,并保存到所述检查结果存储表中得到业务检查结果;
基于所述待检查数据表清单调取与所述业务检查结果相对应的基准检查结果,将该基准检查结果左连接对应的业务检查结果得到左连接校验表,利用所述Kettle对所述左连接校验表进行校验。
第二方面,本申请实施例提供了一种基于Kettle对多个数据库进行自动校验的装置,包括:
部署模块:在工作终端上部署安装Kettle,为所述Kettle设定具有访问权限的工作数据库,且在所述工作数据库中创建连接参数清单表、待检查数据表清单以及检查结果存储表,所述连接参数清单表内填写连接基准数据库和/或业务数据库的连接参数,所述待检查数据表清单内填写待检查业务数据表名称、待检查业务数据表所属的待检查业务数据库名称以及适用所述待检查业务数据库的基准数据库名称,所述检查结果表用来存储基准数据库和/或业务数据库中所有的字段属性数据;
基准数据库检查模块:构建至少一基准数据库,所述Kettle具有所述基准数据库的访问权限,Kettle根据所述连接参数清单表与至少一所述基准数据库进行连接,并读取columns表中基准数据库的所有字段属性保存到所述检查结果存储表中得到基准检查结果;
业务数据库检查模块:Kettle根据所述连接参数清单表与至少一所述业务数据库进行连接,根据所述待检查数据表清单读取columns表中待检查业务数据表的所有的字段属性,并保存到所述检查结果存储表中得到业务检查结果;
校验模块:基于所述待检查数据表清单调取与所述业务检查结果相对应的基准检查结果,将该基准检查结果左连接对应的业务检查结果得到左连接校验表,利用所述Kettle对所述左连接校验表进行校验。
第三方面,本申请实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行一种基于Kettle对多个数据库进行自动校验的方法。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括一种基于Kettle对多个数据库进行自动校验的方法。
本发明的主要贡献和创新点如下:
本申请实施例使用Kettle构建脚本通过对基准数据库以及业务数据库进行数据采集并进行校验,可以快速判断业务数据库是否发生变更;在本申请实施例中,当业务数据发生变更时,可以第一时间通知对应业务数据库的负责人对所述业务数据库进行整改;在本申请实施例中,通过对Kettle构建的脚本进行自动化操作,可以节省大量人力成本,且本方案单独设置工作数据库用来保存Kettle脚本的工作数据,不仅可以方便将基准数据库信息与业务数据库信息进行左连接校验,还可以在事后更好的进行多维分析,以便针对性地开展培训和绩效考核等工作。本方案的使用Kettle软件,基于其底层的标准数据库连接,很容易扩展成对其它类型数据库的监测。Kettle基于Java技术,可以在Windows、Linux等多种操作系统上运行,只要有Java环境即可,显而易见,本方案的适用环境更宽广,采用的是业内有名的ETL工具Kettle,通过其丰富的功能控件灵活设计搭建而成,容易操作。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种基于Kettle对多个数据库进行自动校验的方法的流程图;
图2是根据本申请一种实施例一种对业务数据库进行校验的流程示意图;
图3是根据本申请实施例的一种对基于Kettle对多个数据库进行自动校验的装置的结构框图;
图4是根据本申请实施例的电子装置的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
为便于对本方案进行理解,在此对本方案中出现的名词进行解释:
Kettle:Kettle是一款非常著名的开源ETL(Extract-Transform-Load,抽取转换加载)工具,可以在Windows、Linux等多种操作系统上运行,在数仓建设、数据处理等场景下应用非常广泛,支持可视化编程,功能组件丰富,操作简单,工作高效稳定,是数据工作人员的常用工具。
columns表:连接上MySQL的数据库后,除了可以看到一个或多个用户数据库外,还可以看到一个information_schema信息数据库,columns表在information_schema信息数据库中,columns表是包含列目录的只读系统表,它列出了数据库中所有表的列。
实施例一
本申请实施例提供了一种基于Kettle对多个数据库进行自动校验的方法,可以对多个业务数据库内的模型变更的异常情况进行自动检查,解决软件系统开发环节因业务数据库模型随意变更引发的各类问题,确保数据归集的正常开展,具体地,参考图1,所述方法包括:
在工作终端上部署安装Kettle,为所述Kettle设定具有访问权限的工作数据库,且在所述工作数据库中创建连接参数清单表、待检查数据表清单以及检查结果存储表,所述连接参数清单表内填写连接基准数据库和/或业务数据库的连接参数,所述待检查数据表清单内填写待检查业务数据表名称、待检查业务数据表所属的待检查业务数据库名称以及适用所述待检查业务数据库的基准数据库名称,所述检查结果表用来存储基准数据库和/或业务数据库中所有的字段属性数据;
在所述Kettle具有访问权限的数据库中构建至少一基准数据库,Kettle根据所述连接参数清单表与至少一所述基准数据库进行连接,并读取columns表中基准数据库的所有字段属性保存到所述检查结果存储表中得到基准检查结果;
Kettle根据所述连接参数清单表与至少一所述业务数据库进行连接,根据所述待检查数据表清单读取columns表中待检查业务数据表的所有的字段属性,并保存到所述检查结果存储表中得到业务检查结果;
基于所述待检查数据表清单调取与所述业务检查结果相对应的基准检查结果,将该基准检查结果左连接对应的业务检查结果得到左连接校验表,利用所述Kettle对所述左连接校验表进行校验。
在一些实施例中,创建工作数据库来保存连接参数清单表、检查结果存储表等可以方便管理人员进行多维分析,譬如按照时间、按软件项目所属厂商、按部门、按模型变更类型、按比例变更类型等,以便针对性地开展培训和绩效考核等工作。
在一些实施例中,在“所述连接参数清单表内填写连接基准数据库和/或业务数据库的连接参数”步骤中,所述连接参数包括所述基准数据库和/或所述业务数据库的数据库地址、数据库端口、数据库账号密码。
在一些实施例中,在“所述检查结果表用来存储基准数据库和/或所述业务数据库中所有的字段属性数据”步骤中,所述字段属性数据包括检查时间戳、数据库名称、字段类型。
具体的,所述Kettle可以部署在任何一台存在java运行环境的计算机中,保证本方案有更宽广的适用场景,本方案可在windows、Linux等操作系统上运行,且具有更低廉的资金成本和时间成本的效果。
具体的,将连接参数保存在工作数据库中可以防止连接参数的丢失,并确保Kettle连接数据库的准确性,将基准数据库和业务数据库中的字段属性数据保存在工作数据库中的检查结果表可以更加方便的进行后续的校验和对比。
示例性的,所述连接参数清单表中主要包含数据库类型、数据库编号、数据库名称、数据库地址、数据库端口、数据库账号、数据库密码等字段,具体内容如下表一所示:
表一连接参数清单表
具体的,所述数据库类型代表数据库为基准数据库或业务数据库;所述数据库标号为每一数据库的唯一编号,基准数据库与所述业务数据库分开进行编号;数据库名称为基准数据库或业务数据库具有的唯一名称,在本申请实施例中,基准数据库以Std命名,业务数据库以Tar命名;根据所述数据库地址和数据库端口对每一数据库进行连接;使用数据库账号以及数据库密码登录对应的基准数据库或业务数据库。
具体的,所述基准数据库即各软件系统开发项目开始时设计好、评审通过的数据库模型,包括数据库名、数据库中各表的中英文名称以及各表中所有字段的重要属性。
具体的,在构建好基准数据库后要对所述基准数据库导入标准初始数据。
在一些实施例中,一个基准数据库可以适用多个业务数据库,一个业务数据库只能适用一个基准数据库。对应的,所属待检查业务数据表也只能适用于一个基准数据库。
具体的,由于不同的开发厂商的开发习惯不同,可能会在业务数据库中新建一些其他功能的数据表,导致业务数据库中的数据表的数量会多于对应的基准数据库中的数据表数量,但是多余出来的数据表并不需要做检测,因为多余出的表在后续并不参与数据归集等操作,所以只需要监测指定的待检查业务数据表。
示例性的,所述待检查数据数据表清单中主要包含业务数据库编号、业务数据库名称、对应基准数据库名称、业务数据库中的数据表名称,具体内容如下表二所示:
表二待检测数据表清单
具体的,所述对应基准库名称为业务数据库对应的基准数据库,所述业务数据库中的待检查业务数据表与该基准数据库相对应;所述数据表名称为所述业务数据库中的待检查业务数据表名称。
具体的,由于所述业务数据库与所述基准数据库对应,所以知道业务数据库中的数据表名称便可以根据对应关系对所述业务数据库进行校验。
具体的,一个基准数据库代表一种字段规则,所以一个基准数据库可以对应多个业务数据库,但每一业务数据库只能对应一个基准数据库,因为一个业务数据库只可以存在一种字段规则。
具体的,所述检查结果存储表中的字段应与所述基准数据库中的字段相同示例性的,如表三所示,所述检查结果存储表中主要包含检查时间戳、数据库类型、数据库编号、数据库名称、数据表名称、字段英文名称(COLUMN_NAME)、字段注释(COLUMN_COMMENT)字段字符集类型(CHARACTER_SET_NAME)、字段类型及精度(COLUMN_TYPE)、字段默认值(COLUMN_DEFAULT)、字段默认值扩展属性(EXTRA)、字段是否允许为空(IS_NULLABLE)、字段索引(COLUMN_KEY)等字段。
表三检查结果存储表
在一些实施例中,在“Kettle根据所述连接参数清单表与至少一所述基准数据库进行连接”步骤中,在Kettle中创建一个Kettle检查脚本,所述Kettle检查脚本顺序读取所述连接参数清单中的基准数据库连接参数,并根据所述基准数据库的连接参数与每一基准数据库进行连接。
进一步的,在“Kettle根据所述连接参数清单表与至少一所述业务数据库进行连接”步骤中,使用Kettle检查脚本顺序读取所述连接参数清单中的业务数据库连接参数,并根据所述业务数据库的连接参数与每一业务数据库进行连接。
具体的,在所述检查脚本中至少包含一个作业和一个内置转换,内置转换是针对数据进行的各种处理;一个作业包含多种作业项,一个作业项代表一项工作。
示例性的,所述连接参数清单中存在基准数据库Std A、Std B、StdC的信息,所述Kettle检查脚本先获取Std A的连接参数替换Kettle检查脚本中的连接参数变量,完成Kettle检查脚本与Std A的连接,之后Kettle检查脚本读取Std A中的每一列字段属性保存到检查结果存储表中并断开与Std A的连接,重复上述步骤对Std B、Std C进行检查。
示例性的,所述连接参数清单中存在业务数据库Tar A、TarB、Tar C的信息,所述Kettle检查脚本先获取Tar A的连接参数替换Kettle检查脚本中的连接参数变量,完成检查脚本与Tar A的连接,之后Kettle检查脚本读取Tar A的每一列字段属性保存到检查结果存储表中并断开与Tar A的连接,重复上述步骤对Tar B、Tar C进行检查。
具体的,将所述基准检查结果以及业务检查结果保存在一个检查结果存储表中目的是在进行后续校验时,可以根据基准数据库与业务数据库的对应关系对所述检查结果存储表进行筛选,方便进行后续的左连接校验。
在一些实施例中,当所述基准数据库出现变更时,Kettle重新获取该基准数据库的连接参数对该基准数据库进行连接,并对该基准数据库进行重新检查得到新的检查结果,使用新的检查结果作为该基准数据库的基准检查结果。
具体的,当基准数据库出现变更后,为了保证业务数据库与所述基准数据库的统一,要根据变更后的基准数据库重新对所述业务数据库中的业务数据表进行校验。
在一些实施例中,在“利用所述Kettle对所述左连接校验表进行校验”步骤中,若所述左连接校验表中业务检查结果字段出现null字段,则认为所述业务数据库发生变更。
具体的,可以通过sql语句的分组检查或者在Kettle中设置循环作业的方式实现对业务数据库和基准数据库的自动化比对。
值得一提的是,本方案对涉及到的数据库不做特别的限定,数据库包括但不限于Mysql数据库,由于本方案是基于Kettle软件对数据库进行连接,故其很容易地扩展为其他类型数据库。
进一步地,本方案在完成对数据库的自动化监测后还可完成对其进行预警。根据预设的预警规则,由系统选择对应的方式通知到管理人员以及软件项目开发单位及时整改。
在一些实施例中,在Kettle中构建一个Kettle预警脚本,在所述工作数据库中构建预警信息表,所述预警信息表包含业务数据库信息以及对应的负责人信息,当所述业务数据库发生变更时获取对应的负责人信息使用Kettle预警脚本对所述负责人进行预警,所述负责人收到预警信息后根据所述基准数据库对所述业务数据库进行整改。
具体的,所述预警信息表包括业务数据库编号、预警类型、预警信息送达地址、预警对象姓名、是否启用。
示例性的,在本方案中预警类型可以为大屏显示、短信提醒、邮件提醒等方式,预警信息送达地址则为与预警类型对应的地址,例如,预警类型若为大屏显示,则预警信息送达地址则为大屏的编号地址,预警类型若为短信提醒,则预警信息送达地址则为手机号,若预警类型为邮件提醒,则预警信息送达地址则为邮箱地址,如下表四所示:
表四预警信息表
具体的,在本方案中还可以接入钉钉、企业微信、微信等即时通讯工具等,预警规则、预警类型根据实际应用情况进行自定义设置。
在一些具体实施例中,可以对Kettle检查脚本、Kettle预警脚本进行封装并设置定时任务,在达到设定时间时由系统自动运行,实现整个流程的全自动,且每次检查的结果都会保存在检查结果存储表中以方便进行分析统计。
具体的,通过对Kettle检查脚本、Kettle预警脚本进行自动化可以在最短的时间内检测出所述业务数据库的问题,并及时通知负责人进行整改,降低后续工作环节中的异常处置成本。
在一些具体实施例中,对所述业务数据库进行校验的流程如图2所示,且当所述负责人收到预警对业务数据库进行整改后,Kettle检查脚本对所述业务数据库进行重新检查。
在一具体示例中,本实施例的真实背景情况是:某地政府在新冠疫情时期向属地企业和民众发放补贴,根据发放对象和发放依据不同,这些补贴通过不同的补助政策进行发放,为加快政策补贴尽快落实到位,不同的补助政策交由不同的软件开发厂商完成。在补助政策开发前,政府主管部门已定义好各补贴政策后台业务数据库的基准模型,且告知各开发厂商需严格遵守基准数据库模型设计,不得随意变更,以便后期政府政策主管部门、审计部门、财政部门归集数据时可以顺利开展工作。
为确保此需求的顺利实现,特设计并实施了一种基于Kettle实现对Mysql数据库模型是否变更进行自动检查及预警的方案,由某地政府设定Kettle具有访问权限的工作数据库,并构建至少一基准数据库,每个不同的软件开发厂商都具有至少一业务数据库,且每一业务数据库都由其适应的基准数据库,使用本申请实施例的方法根据所述基准数据库对所述业务数据库进行校验,对不符合规定的业务数据库的负责厂商进行预警,以便后期政府部门可以顺利开展数据归集工作。
实施例二
基于相同的构思,参考图3,本申请还提出了一种基于Kettle对多个数据库进行自动校验的装置,包括:
部署模块:在工作终端上部署安装Kettle,为所述Kettle设定具有访问权限的工作数据库,且在所述工作数据库中创建连接参数清单表、待检查数据表清单以及检查结果存储表,所述连接参数清单表内填写连接基准数据库和/或业务数据库的连接参数,所述待检查数据表清单内填写待检查业务数据表名称、待检查业务数据表所属的待检查业务数据库名称以及适用所述待检查业务数据库的基准数据库名称,所述检查结果表用来存储基准数据库和/或业务数据库中所有的字段属性数据;
基准数据库检查模块:构建至少一基准数据库,所述Kettle具有所述基准数据库的访问权限,Kettle根据所述连接参数清单表与至少一所述基准数据库进行连接,并读取columns表中基准数据库的所有字段属性保存到所述检查结果存储表中得到基准检查结果;
业务数据库检查模块:Kettle根据所述连接参数清单表与至少一所述业务数据库进行连接,根据所述待检查数据表清单读取columns表中待检查业务数据表的所有的字段属性,并保存到所述检查结果存储表中得到业务检查结果;
校验模块:基于所述待检查数据表清单调取与所述业务检查结果相对应的基准检查结果,将该基准检查结果左连接对应的业务检查结果得到左连接校验表,利用所述Kettle对所述左连接校验表进行校验。
实施例三
本实施例还提供了一种电子装置,参考图4,包括存储器404和处理器402,该存储器404中存储有计算机程序,该处理器402被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
具体地,上述处理器402可以包括中央处理器(CPU),或者特定集成电路(ApplicationSpecificIntegratedCircuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器404可以包括用于数据或指令的大容量存储器404。举例来说而非限制,存储器404可包括硬盘驱动器(HardDiskDrive,简称为HDD)、软盘驱动器、固态驱动器(SolidStateDrive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(UniversalSerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器404可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器404可在数据处理装置的内部或外部。在特定实施例中,存储器404是非易失性(Non-Volatile)存储器。在特定实施例中,存储器404包括只读存储器(Read-OnlyMemory,简称为ROM)和随机存取存储器(RandomAccessMemory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(ProgrammableRead-OnlyMemory,简称为PROM)、可擦除PROM(ErasableProgrammableRead-OnlyMemory,简称为EPROM)、电可擦除PROM(ElectricallyErasableProgrammableRead-OnlyMemory,简称为EEPROM)、电可改写ROM(ElectricallyAlterableRead-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(StaticRandom-AccessMemory,简称为SRAM)或动态随机存取存储器(DynamicRandomAccessMemory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器404(FastPageModeDynamicRandomAccessMemory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(ExtendedDateOutDynamicRandomAccessMemory,简称为EDODRAM)、同步动态随机存取内存(SynchronousDynamicRandom-AccessMemory,简称SDRAM)等。
存储器404可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器402所执行的可能的计算机程序指令。
处理器402通过读取并执行存储器404中存储的计算机程序指令,以实现上述实施例中的任意一种基于Kettle对多个数据库进行自动校验的方法。
可选地,上述电子装置还可以包括传输设备406以及输入输出设备408,其中,该传输设备406和上述处理器402连接,该输入输出设备408和上述处理器402连接。
传输设备406可以用来经由一个网络接收或者发送数据。上述的网络具体实例可包括电子装置的通信供应商提供的有线或无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备406可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
输入输出设备408用于输入或输出信息。在本实施例中,输入的信息可以是基准数据库的标准数据、Kettle的脚本信息等,输出的信息可以业务数据库的校验结果等。
可选地,在本实施例中,上述处理器402可以被设置为通过计算机程序执行以下步骤:
S101、在工作终端上部署安装Kettle,为所述Kettle设定具有访问权限的工作数据库,且在所述工作数据库中创建连接参数清单表、待检查数据表清单以及检查结果存储表,所述连接参数清单表内填写连接基准数据库和/或业务数据库的连接参数,所述待检查数据表清单内填写待检查业务数据表名称、待检查业务数据表所属的待检查业务数据库名称以及适用所述待检查业务数据库的基准数据库名称,所述检查结果表用来存储基准数据库和/或业务数据库中所有的字段属性数据;
S102、构建至少一基准数据库,所述Kettle具有所述基准数据库的访问权限,Kettle根据所述连接参数清单表与至少一所述基准数据库进行连接,并读取columns表中基准数据库的所有字段属性保存到所述检查结果存储表中得到基准检查结果;
S103、Kettle根据所述连接参数清单表与至少一所述业务数据库进行连接,根据所述待检查数据表清单读取columns表中待检查业务数据表的所有的字段属性,并保存到所述检查结果存储表中得到业务检查结果;
S104、基于所述待检查数据表清单调取与所述业务检查结果相对应的基准检查结果,将该基准检查结果左连接对应的业务检查结果得到左连接校验表,利用所述Kettle对所述左连接校验表进行校验。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
通常,各种实施例可以以硬件或专用电路、软件、逻辑或其任何组合来实现。本发明的一些方面可以以硬件来实现,而其他方面可以以可以由控制器、微处理器或其他计算设备执行的固件或软件来实现,但是本发明不限于此。尽管本发明的各个方面可以被示出和描述为框图、流程图或使用一些其他图形表示,但是应当理解,作为非限制性示例,本文中描述的这些框、装置、系统、技术或方法可以以硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备或其某种组合来实现。
本发明的实施例可以由计算机软件来实现,该计算机软件由移动设备的数据处理器诸如在处理器实体中可执行,或者由硬件来实现,或者由软件和硬件的组合来实现。包括软件例程、小程序和/或宏的计算机软件或程序(也称为程序产品)可以存储在任何装置可读数据存储介质中,并且它们包括用于执行特定任务的程序指令。计算机程序产品可以包括当程序运行时被配置为执行实施例的一个或多个计算机可执行组件。一个或多个计算机可执行组件可以是至少一个软件代码或其一部分。另外,在这一点上,应当注意,如图4中的逻辑流程的任何框可以表示程序步骤、或者互连的逻辑电路、框和功能、或者程序步骤和逻辑电路、框和功能的组合。软件可以存储在诸如存储器芯片或在处理器内实现的存储块等物理介质、诸如硬盘或软盘等磁性介质、以及诸如例如DVD及其数据变体、CD等光学介质上。物理介质是非瞬态介质。
本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于Kettle对多个数据库进行自动校验的方法,其特征在于,包括以下步骤:
在工作终端上部署安装Kettle,为所述Kettle设定具有访问权限的工作数据库,且在所述工作数据库中创建连接参数清单表、待检查数据表清单以及检查结果存储表,所述连接参数清单表内填写连接基准数据库和/或业务数据库的连接参数,所述待检查数据表清单内填写待检查业务数据表名称、待检查业务数据表所属的待检查业务数据库名称以及适用所述待检查业务数据库的基准数据库名称,所述检查结果表用来存储基准数据库和/或业务数据库中所有的字段属性数据;
构建至少一基准数据库,所述Kettle具有所述基准数据库的访问权限,Kettle根据所述连接参数清单表与至少一所述基准数据库进行连接,并读取columns表中基准数据库的所有字段属性保存到所述检查结果存储表中得到基准检查结果;
Kettle根据所述连接参数清单表与至少一所述业务数据库进行连接,根据所述待检查数据表清单读取columns表中待检查业务数据表的所有的字段属性,并保存到所述检查结果存储表中得到业务检查结果;
基于所述待检查数据表清单调取与所述业务检查结果相对应的基准检查结果,将该基准检查结果左连接对应的业务检查结果得到左连接校验表,利用所述Kettle对所述左连接校验表进行校验。
2.根据权利要求1所述的一种基于Kettle对多个数据库进行自动校验的方法,其特征在于,在“所述连接参数清单表内填写连接基准数据库和/或业务数据库的连接参数”步骤中,所述连接参数包括所述基准数据库和/或所述业务数据库的数据库地址、数据库端口、数据库账号密码。
3.根据权利要求1所述的一种基于Kettle对多个数据库进行自动校验的方法,其特征在于,在“Kettle根据所述连接参数清单表与至少一所述基准数据库进行连接”步骤中,在Kettle中创建一个Kettle检查脚本,所述Kettle检查脚本顺序读取所述连接参数清单中的基准数据库连接参数,并根据所述基准数据库的连接参数与每一基准数据库进行连接。
4.根据权利要求3所述的一种基于Kettle对多个数据库进行自动校验的方法,其特征在于,在“Kettle根据所述连接参数清单表与至少一所述业务数据库进行连接”步骤中,使用Kettle检查脚本顺序读取所述连接参数清单中的业务数据库连接参数,并根据所述业务数据库的连接参数与每一业务数据库进行连接。
5.根据权利要求1所述的一种基于Kettle对多个数据库进行自动校验的方法,其特征在于,当所述基准数据库出现变更时,Kettle重新获取该基准数据库的连接参数对该基准数据库进行连接,并对该基准数据库进行重新检查得到新的检查结果,使用新的检查结果作为该基准数据库的基准检查结果。
6.根据权利要求1所述的一种基于Kettle对多个数据库进行自动校验方法,其特征在于,在“利用所述Kettle对所述左连接校验表进行校验”步骤中,若所述左连接校验表中业务检查结果字段出现null字段,则认为所述业务数据库发生变更。
7.根据权利要求1所述的一种基于Kettle对多个数据库进行自动校验的方法,其特征在于,在Kettle中构建一个Kettle预警脚本,在所述工作数据库中构建预警信息表,所述预警信息表包含业务数据库信息以及对应的负责人信息,当所述业务数据库发生变更时获取对应的负责人信息使用Kettle预警脚本对所述负责人进行预警,所述负责人收到预警信息后根据所述基准数据库对所述业务数据库进行整改。
8.一种基于Kettle对多个数据库进行自动校验装置,包括:
部署模块:在工作终端上部署安装Kettle,为所述Kettle设定具有访问权限的工作数据库,且在所述工作数据库中创建连接参数清单表、待检查数据表清单以及检查结果存储表,所述连接参数清单表内填写连接基准数据库和/或业务数据库的连接参数,所述待检查数据表清单内填写待检查业务数据库名称以及适用所述待检查业务数据库的基准数据库名称,所述检查结果表用来存储基准数据库和/或业务数据库中所有的字段属性数据;
基准数据库检查模块:在所述Kettle具有访问权限的数据库中构建至少一基准数据库,Kettle根据所述连接参数清单表与至少一所述基准数据库进行连接,并读取columns表中基准数据库的所有字段属性保存到所述检查结果存储表中得到基准检查结果;
业务数据库检查模块:Kettle根据所述连接参数清单表与至少一所述业务数据库进行连接,根据所述待检查数据表清单读取columns表中待检查业务数据表的所有的字段属性,并保存到所述检查结果存储表中得到业务检查结果;
校验模块:基于所述待检查数据表清单调取与所述业务检查结果相对应的基准检查结果,将所述基准检查结果左连接对应的业务检查结果得到左连接校验表,Kettle对所述左连接校验表进行校验。
9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1-7任一所述的一种基于Kettle对多个数据库进行自动校验的方法。
10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括根据权利要求1-7任一所述的一种基于Kettle对多个数据库进行自动校验的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211581491.4A CN115878643A (zh) | 2022-12-09 | 2022-12-09 | 基于Kettle对多个数据库进行自动校验的方法、装置及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211581491.4A CN115878643A (zh) | 2022-12-09 | 2022-12-09 | 基于Kettle对多个数据库进行自动校验的方法、装置及应用 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115878643A true CN115878643A (zh) | 2023-03-31 |
Family
ID=85766855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211581491.4A Pending CN115878643A (zh) | 2022-12-09 | 2022-12-09 | 基于Kettle对多个数据库进行自动校验的方法、装置及应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115878643A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116069775A (zh) * | 2023-04-06 | 2023-05-05 | 上海二三四五网络科技有限公司 | 一种数据仓库的数据质量校验系统及校验方法 |
-
2022
- 2022-12-09 CN CN202211581491.4A patent/CN115878643A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116069775A (zh) * | 2023-04-06 | 2023-05-05 | 上海二三四五网络科技有限公司 | 一种数据仓库的数据质量校验系统及校验方法 |
CN116069775B (zh) * | 2023-04-06 | 2023-08-22 | 上海二三四五网络科技有限公司 | 一种数据仓库的数据质量校验系统及校验方法 |
WO2024207589A1 (zh) * | 2023-04-06 | 2024-10-10 | 上海二三四五网络科技有限公司 | 一种数据仓库的数据质量校验系统及校验方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109032824B (zh) | 数据库校验方法、装置、计算机设备和存储介质 | |
JP6870203B2 (ja) | フィールドデバイスコミッショニングシステムおよび方法 | |
US11706084B2 (en) | Self-monitoring | |
CN113448862B (zh) | 软件版本测试方法、装置及计算机设备 | |
CN115878643A (zh) | 基于Kettle对多个数据库进行自动校验的方法、装置及应用 | |
CN110063042A (zh) | 一种数据库故障的响应方法及其终端 | |
CN114048194A (zh) | 数据的管理方法、装置和电子设备 | |
CN106708897B (zh) | 一种数据仓库质量保障方法、装置和系统 | |
TW202131660A (zh) | 用於虛擬伺服器管理的電腦實施系統以及方法 | |
CN109116818B (zh) | 一种scada系统升级时的实时数据转储方法和装置 | |
CN115801426B (zh) | 批量检测子域名ssl证书剩余有效期的方法、装置及介质 | |
CN115686535A (zh) | 一种Kubernetes集群的巡检方法、装置及应用 | |
CN112559118A (zh) | 应用数据迁移方法、装置、电子设备及存储介质 | |
CN109359093A (zh) | 一种规则文件更新方法和系统 | |
CN111813880B (zh) | 一种国土空间规划项目管理方法、系统及存储介质 | |
CN114595291A (zh) | 基于数据库注释的归集任务调整方法、装置 | |
CN114721945A (zh) | 基于图数据库的分配方法及其装置、电子设备及存储介质 | |
CN108595190B (zh) | 报表工具搭建方法、装置、计算机装置及存储介质 | |
US11941029B2 (en) | Automatic extension of database partitions | |
CN116089437B (zh) | 一种数据处理方法及服务器 | |
JP2013145425A (ja) | アプリケーションサーバ装置 | |
JP7359218B2 (ja) | 管理装置、管理方法及び管理プログラム | |
CN117217677A (zh) | 基于活动驱动的项目数据管理方法、装置、设备和介质 | |
CN116661742A (zh) | 一种项目迭代评分方法、装置、设备及存储介质 | |
CN116521652A (zh) | 一种基于DataX实现分布式异构数据库迁移方法、系统和介质 |
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 |