CN109947746B - 一种基于etl流程的数据质量管控方法和系统 - Google Patents

一种基于etl流程的数据质量管控方法和系统 Download PDF

Info

Publication number
CN109947746B
CN109947746B CN201711021492.2A CN201711021492A CN109947746B CN 109947746 B CN109947746 B CN 109947746B CN 201711021492 A CN201711021492 A CN 201711021492A CN 109947746 B CN109947746 B CN 109947746B
Authority
CN
China
Prior art keywords
data
checking
task
etl
rule
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
Application number
CN201711021492.2A
Other languages
English (en)
Other versions
CN109947746A (zh
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.)
Bright Oceans Inter Telecom Co Ltd
Original Assignee
Bright Oceans Inter Telecom 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 Bright Oceans Inter Telecom Co Ltd filed Critical Bright Oceans Inter Telecom Co Ltd
Priority to CN201711021492.2A priority Critical patent/CN109947746B/zh
Publication of CN109947746A publication Critical patent/CN109947746A/zh
Application granted granted Critical
Publication of CN109947746B publication Critical patent/CN109947746B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种基于ETL流程的数据质量管控方法和系统,其特征在于,所述方法包括:导入元数据,根据所述元数据中各个表的数据获得ETL流程;为每个检查节点设置相应的检查规则,并定义需要执行的SQL;根据所述SQL,按照预先设置的执行周期设置数据调度任务,对采集的数据进行检查,得出检查结果;将检查结果与预先设置的告警阈值进行比较,如果满足阈值范围,则生成告警详单,并将所述告警详单插入到数据库;将所述告警详单数据关联汇总到数据仓库层事实汇总数据;将所述检查结果通过告警订单查询、日志查询、流程展现和/或报表展现的方式呈现。通过本申请,可快速定位ETL流程问题节点,确保数据质量。

Description

一种基于ETL流程的数据质量管控方法和系统
技术领域
本申请涉及数据分析技术领域,特别地,涉及一种基于ETL流程的数据质量管控方法和系统。
背景技术
数据仓库技术(Extract-Transform-Load,ETL)用来描述将数据从来源端经过抽取(Extract)、转换(Transform)、加载(Load)至目的端的过程。
在ETL数据处理过程中,会经理很多环节,参见图1。每个环节由于过滤方式、清洗方式、原始数据的抽取规则是否符合规范要求、转换过程是否执行成功、加载过程类型是否正确等因素,造成数据记录丢失、数据不准确、转换过程失败、超时等情况。而在定位这些问题的环节时,由于环节较多、使用技术较多、造成问题的原因较多,导致维护人员定位问题无从下手,或是会发大量的时间来做数据核查工作,费力且不一定能准确定位问题。例如,从信令采集解析提供的外部数据表示(External Data Representation,XDR)数据看,存在一系列问题,如关键字段填充率低、解析机制不合理、业务识别率低、识别不准确等问题,严重影响了上层分析的准确性。
在ETL数据处理过程中出现的上述数据缺失、数据计算不准确、数据处理过程超时等属于数据质量问题。数据质量是数据分析的基础,数据质量的高低,直接影响上层应用分析结论的准确性,确保数据质量是ETL过程中端到端数据质量分析的基础。
传统ETL过程中数据质量问题常常通过人工做数据核查的方式来定位问题,常用的核查手段是人工查找日志,通过编写SQL或者SHELL脚本执行比对校验结果来定位,这种方式工作量大,对维护人员等操作者要求高。
而在信令数据ETL处理过程中,常用拨测的方法从宏观上验证统计指标,通过两边系统的比对来验证数据质量,这种方法首先需要构建对比方法,其次工作量大,并且不能定位到问题产生的环节。
还有通过抽取关键字段核查的方法。为了保证关键指标的准确,常常查关键字段是否满足规范要求,需要较多的技术基础作为支撑,特别是信令XDR数据,原始数据量大,传统的关系型数据库并不能很好的支持验证,需要专门的技术人员来做处理。
发明内容
本申请提供一种基于ETL流程的数据质量管控方法和系统,用于解决现有技术中存在的以下问题:
(1)人工核查过程麻烦,需要有经验的技术人员才能定位;
(2)效率不高,通常经过多个环节对比、查找日志才能够定位问题,大多是重复的工作;
(3)操作不方便,需要核查人员知道日志路径、查看方式,熟练使用不同类型数据库SQL;
(4)核查结果不直观,不能通过可视化页面展示结果,不能直接看到问题发生的环节。
本申请公开的一种基于ETL流程的数据质量管控方法,所述方法包括:
导入元数据,根据所述元数据中各个表的数据获得ETL流程;其中,所述ETL流程包括数据抽取、数据转换和数据加载三个环节,同时,ETL流程数据呈现包括指标结果和数据处理环境两个环节,所述ETL流程和ETL流程数据呈现的每个环节都包含至少一个检查节点;
为每个检查节点设置相应的检查规则,并定义需要执行的命令语句;
根据所述命令语句,按照预先设置的执行周期执行设定的数据调度任务,对根据所述数据调度任务启动的数据采集任务采集到的数据进行检查,得出检查结果;
将检查结果与预先设置的告警阈值进行比较,如果满足阈值范围,则生成告警详单,并将所述告警详单插入到数据库;
将所述告警详单数据关联汇总到数据仓库层事实汇总数据。
优选地,将所述检查结果通过告警订单查询、日志查询、流程展现和/或报表展现的方式呈现。
优选地,所述导入元数据,根据所述元数据中各个表的数据获得ETL流程,具体包括:
将所述元数据中包含的来源表名、目标表名、处理过程名、字段名、字段类型和/或层次读入EXCEL;
根据所述处理过程名、字段类型和/或层次确定所述元数据中各个表的数据的ELT流程环节;
将读入EXCEL的表数据解析为指定的物理表结构,并存入数据库中。
优选地,所述为每个检查节点设置相应的检查规则,具体包括:
设置所述ETL流程中的数据抽取环节中的检查节点对应的检查规则为完整性和有效性规则;
设置所述ETL流程中的数据转换环节中的检查节点对应的检查规则为完整性和及时性规则;
设置所述ETL流程中的数据加载环节中的检查节点对应的检查规则为完整性规则;
设置所述ETL流程数据呈现中的指标结果环节中的检查节点对应的检查规则为准确性规则;
设置所述ETL流程数据呈现中的数据处理环境环节中的检查节点对应的检查规则为有效性规则。
优选的,所述检查规则中:
完整性检查规则指检查记录行数是否准确、检查文件大小和个数是否完整、检查文件名称是否规范和/或检查字段数是否符合要求;
准确性检查规则指通过同环比的方式检查指标值是否符合要求;
及时性检查规则指检查任务执行是否成功和检查任务执行是否超时;
有效性检查规则指检查字段超长记录数占比、检查不符合长度要求的字段记录数占比、检查空字段记录数占比、检查零字段记录数占比、检查字段无法关联的记录数占比、检查字段在阈值范围内的记录数之比和/或检查目录空间是否异常。
优选地,所述按照预先设置的执行周期执行设定的数据调度任务,具体包括:
扫描任务表,如果扫描到任务状态为“启动标识”且执行时间与当前时间相同,则进行任务调度;
按数据任务调度周期和所述执行周期,更新下次执行时间和下次数据时间,其中,所述下次数据时间指根据所述数据调度任务启动数据采集任务的时间;
根据执行任务类型将执行结果插入结果数据表。
优选地,根据所述数据任务调度启动数据采集任务采集数据,具体包括:
配置需要收集的基础日志数据,所述日志数据包括存储过程日志、spark过程日志、mr过程日志、redis流程日志和/或sqoop流程日志;
收集所述基础日志数据;
收集数据源文件信息;
收集数据库信息;
收集环境信息。
本申请公开的一种基于ETL流程的数据质量管控系统,所述系统包括:
元数据导入模块,用于导入元数据,根据所述元数据中各个表的数据获得ETL流程;其中,所述ETL流程包括数据抽取、数据转换和数据加载三个环节,同时,ETL流程数据呈现包括指标结果和数据处理环境两个环节,所述ETL流程和ETL流程数据呈现的每个环节都包含至少一个检查节点;
检查规则预定义模块,用于为每个检查节点设置相应的检查规则,并定义需要执行的命令语句;
任务调度模块,用于根据所述命令语句,按照预先设置的执行周期执行设定的数据调度任务,对根据所述数据任务调度任务启动的数据采集任务采集的数据进行检查,得出检查结果;
告警模块,用于将检查结果与预先设置的告警阈值进行比较,如果满足阈值范围,则生成告警详单,并将所述告警详单插入到数据库;
关联汇总模块,用于将所述告警详单数据关联汇总到数据仓库层事实汇总数据。
优选的,所述系统还包括:
数据展现模块,用于将所述检查结果通过告警订单查询、日志查询、流程展现和/或报表展现的方式呈现。
优选的,所述检查规则预定义模块,具体包括:
抽取子模块,用于设置所述ETL流程中的数据抽取环节中的检查节点对应的检查规则为完整性和有效性规则;
转换子模块,用于设置所述ETL流程中的数据转换环节中的检查节点对应的检查规则为完整性和及时性规则;
加载子模块,用于设置所述ETL流程中的数据加载环节中的检查节点对应的检查规则为完整性规则;
指标结果子模块,用于设置所述ETL流程数据呈现中的指标结果环节中的检查节点对应的检查规则为准确性规则;
环境子模块,用于设置所述ETL流程数据呈现中的数据处理环境环节中的检查节点对应的检查规则为有效性规则。
优选的,所述任务调度模块,具体包括:
调度确认子模块,用于扫描任务表,如果扫描到任务状态为“启动标识”且执行时间与当前时间相同,则进行任务调度;
更新子模块,用于按任务调度周期和执行周期,更新下次执行时间和下次数据时间;
执行结果子模块,用于根据执行任务类型将执行结果插入结果数据表。
优选的,所述系统还包括:
收集数据模块,用于根据所述数据调度任务启动数据采集任务采集数据,具体包括:
配置需要收集的基础日志数据,所述日志数据包括存储过程日志、spark过程日志、mr过程日志、redis流程日志和/或sqoop流程日志;
收集所述基础日志数据;
收集数据源文件信息;
收集数据库信息;
收集环境信息。
与现有技术相比,本申请具有以下优点:本申请充分考虑传统数据核查的问题,针对数据质量人工核查效率低、不直观、门槛高的问题,为ETL流程每个环节的数据质量问题做了预先的定义,建立数据质量检查标准体系下ETL每个环节数据质量检查规则,周期地执行ETL每个环境选择的检查规则,第一时间发现数据抽取、转换、加载过程中的问题,直观发现问题产生的原因,为解决问题提供依据,保证ETL过程数据质量可靠,减少人力核查成本,提高效率。检查结果可通过ETL流程图给予呈现,并能通过报表的方式展示每个环节数据质量问题的数量,可以直接发现出现数据质量问题的环节清晰直观。
附图说明
附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本申请ETL数据处理流程环节示意图;
图2为本申请实施例一种基于ETL流程的数据质量管控方法的流程图;
图3为本申请实施例一种基于ETL流程的数据质量管控方法中任务调度流程图;
图4-图10为本申请实施例中数据展现示意图;
图11为本申请实施例一种基于ETL流程的数据质量管控系统的结构示意图;
图12为本申请系统的应用场景示意图;
图13为本申请系统的运行环境示意图;
图14为预定义检查规则示意图;
图15-图16为检查规则一键模板配置示意图;
图17-图18为ETL流程串联展示示意图;
图19为服务器关系配置图;
图20为自定义SQL示意图;
图21-24为本系统操作流程示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
在本申请的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。“多个”的含义是两个或两个以上,除非另有明确具体的限定。术语“包括”、“包含”及类似术语应该被理解为是开放性的术语,即“包括/包含但不限于”。术语“基于”是“至少部分地基于”。术语“一实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”。其他术语的相关定义将在下文描述中给出。
参照图1,示出了本申请一种基于ETL流程的数据管控方法优选实施例的流程图。本优选方法实施例包括以下步骤:
步骤S101:导入元数据,根据所述元数据中各个表的数据获得ETL流程;其中,所述ETL流程包括数据抽取、数据转换和数据加载三个环节,同时,ETL流程数据呈现包括指标结果和数据处理环境两个环节,所述ETL流程和ETL流程数据呈现的每个环节都包含至少一个检查节点。
元数据导入主要导入表之间的关系,即来源表和目标表的对应关系,以及每个表有哪些字段,每个字段的数据类型,和所使用的汇总算法。步骤S101是定位问题来源的基础,为后续整个ETL流程以及指标算法提供基础数据和关系指导。
导入ETL中每个环节的关系,以流程图的形式展现,根据数据表的关系进行ETL流程的创建,其中创建的ETL流程需要包含数据抽取、数据转换和模型加载的环节类型,但具体环节的内容由数据表确定。
可通过以下技术实现:将所述元数据输入EXCEL,SHEET页每行应包含来源表名、目标表名、处理过程名、字段名、字段类型和/或层次等描述,通过JavaScript读入EXCEL,根据所述处理过程名、字段类型和/或层次确定所述元数据中各个表的数据的ELT流程环节;将读入EXCEL的表数据解析为指定的物理表结构,并存入数据库中。
步骤S102:为每个检查节点设置相应的检查规则,并定义需要执行的命令语句。本实施例优选结构化查询语言(Structured Query Language,SQL)。
ETL流程环节检查项包括:
数据源接口抽取环节:原始信令xdr文件;
数据模型加载环节:数据模型和语义模型、数据接口或视图;
数据处理过程转换环节:数据采集、数据处理、应用查询;
指标结果展示环节:描述业务的指标波动;
环境:存储空间、核心服务。
依据ETL关系的流程图,每个节点属于抽取、转换、加载、指标结果或数据处理环境中的一个环节类型,对于每种环节类型可以选择不同的检查规则,检查规则可以进行周期性设置,检查结果配置相应的阈值范围,每个阈值范围设置一个级别,检查结果配置为与阈值范围的比较关系,如同环比、区间、经验值比较等。
所述检查规则设置,优选为:设置所述ETL流程中的数据抽取环节中的检查节点对应的检查规则为完整性和有效性规则;设置所述ETL流程中的数据转换环节中的检查节点对应的检查规则为完整性和及时性规则;设置所述ETL流程中的数据加载环节中的检查节点对应的检查规则为完整性规则;设置所述ETL流程数据呈现中的指标结果环节中的检查节点对应的检查规则为准确性规则;设置所述ETL流程数据呈现中的数据处理环境环节中的检查节点对应的检查规则为有效性规则。
其中,所述检查规则中:
完整性检查规则指检查记录行数是否准确、检查文件大小和个数是否完整、检查文件名称是否规范和/或检查字段数是否符合要求;
准确性检查规则指通过同环比的方式检查指标值是否符合要求;
及时性检查规则指检查任务执行是否成功和检查任务执行是否超时;
有效性检查规则指检查字段超长记录数占比、检查不符合长度要求的字段记录数占比、检查空字段记录数占比、检查零字段记录数占比、检查字段无法关联的记录数占比、检查字段在阈值范围内的记录数之比和/或检查目录空间是否异常。
具体地,定义不同ETL环节的数据质量问题对应的检查规则和原因,编码方式可以为:检查类型+检查子类+规则类型+四位告警内容编码,如下表所示:
步骤S103:根据所述命令语句,按照预先设置的执行周期执行设定的数据调度任务,对根据所述数据调度任务启动的数据采集任务采集到的数据进行检查,得出检查结果。
参见图3,任务调度步骤可根据任务定义表SYS_QUA_SCHEM_JOINRULE(表名)中的IF_DO的值,0代表未开启调度,1代表开启调度,按预先设置的任务的周期类型EXE_TIME执行时间和当前时间是否相同决定是否进行任务调度。
程序流程:
1.程序通过扫描任务表SYS_QUA_SCHEM_JOINRULE(表名),如果扫描到任务状态为“启动标识”且执行时间和当前时间相同,进行任务调度。
2.按任务调度周期和执行周期,更新下次执行时间和下次数据时间;其中,所述下次数据时间指根据所述数据调度任务启动数据采集任务的时间。
3.根据执行任务类型取出执行结果放入任务队列和SYS_QUA_EXE_TASK(表名)任务表。
4.线程池取出队列任务执行,更新SYS_QUA_EXE_TASK(表名)状态。
在预先设置执行周期的步骤中,还包含数据粒度、执行周期、执行时间、执行间隔、数据时间、周期执行、单次执行等设置,通过这些设置可以选择是否开启任务调度及开启任务调度的周期。
所述步骤S103的数据调度任务将启动数据采集任务采集数据,具体包括:
所述数据采集,包括配置需要收集的基础日志数据,所述日志数据包括存储过程日志、spark过程日志、mr过程日志、redis流程日志和/或sqoop流程日志;
收集所述基础日志数据;
收集数据源文件信息;
收集数据库信息;
收集环境信息。
数据采集模块接收任务调度的调度项,从SYS_QUA_SCHEM_JOINRULE(表名)中获取路径,数据源,文件名任务类别等参数,从本地目录或者远程主机目录,读取数据,通过FTP下载,并入库,(入库的表名)通过SYS_QUA_CHECK_ALARMTYPE(表名)获取,字段在配置文件中设置。收集的内容主要是处理过程中的日志,统计的接口文件信息,环境信息。
数据收集步骤为规则检查提供数据源。
所述数据采集可通过以下技术实现:
(1)文件信息:SHELL脚本统计文件的基础信息,将行数、文件名、生成时间等基础信息保存成文件,通过周期任务执行FTP下载入库。
(2)字段信息:通过映射规约(MapReduce)程序从配置表读入数据,统计对应规则的记录数占比,插入到数据库中的目标表中。
步骤S104:将检查结果与预先设置的告警阈值进行比较,如果满足阈值范围,则生成告警详单,并将所述告警详单插入到数据库。
参见图3,流程5:执行完成以后将结果插入SYS_QUA_RESULT(表名)结果数据表,并与SYS_QUA_ALARM_LEVEL:(表名)中的阈值比较,将符合阈值的插入SYS_QUA_ALARM_LIST(表名),生成告警详单。
本申请对收集的数据做检查,不同的ETL环节对应有预置的检查方法,检查结果需要和阈值比对,如在阈值内则生成告警。
预定义策略表对于每个环节的每条检查规则都保存了需要执行的SQL:
预置规则:周期调度模块启动,从调度接口SYS_QUA_SCHEM_JOINRULE(表名)表中取出任务,关联预定义策略表SYS_QUA_CHECK_ALARMTYPE,执行策略表中的SQL,得到结果同调度接口表中的告警阈值比较,满足则插入到告警详单表中。
生成的告警可以通过邮件、短信等方式通知用户。
步骤S105:将所述告警详单数据关联汇总到数据仓库层事实汇总数据,为数据展现提供来源。
阈值数据库存储过程模块,通过周期调度周期执行,将原始数据汇总到数据仓库事实表中。
依据所述规则产生的结果或者告警,进行关联汇总,所述关联可依据厂家、省份和/或数据分类作为关联的维度,或者按照天或小时的时间维度进行关联汇总。
优选的,本实施例还包括步骤S106:将所述检查结果通过告警订单查询、日志查询、流程展现和/或报表展现的方式呈现。
评估维度包括:省份、来源系统、厂家、数据分类(13大类)、告警级别(1-4)、检查类型(数据源接口,处理过程,模型,环境,指标)、规则类型(有效,及时,完整,准确)。
关键指标包括:文件大小,文件个数,记录数,文件上报时长,处理时长,字段关联率,字段回填率,字段超长率,文件命名规范率,指标准确率。
报表包括:有效性报表,完整性报表,及时性报表,统计报表。
技术实现:
使用SPRINGBOOT+ORACLE+HTML+JS,使用JS插件包含时间插件,对话框插件,表格插件,数据流程插件。
展现ETL环节中产生的告警,所述告警的环境根据告警级别显示不同的颜色;按照不同的维度展现ETL每个环节中关联计算的结果。
具体参见图4-图11:
图4中的告警详单可查询某个时间段内所有告警信息,可根据开始、结束时间,级别,类型等筛选。
图5为ETL数据流程告警,可查询一天内,某个接口产生告警的节点,电机可以下钻到订单。
图6为环境告警,可查询一天内某主机节点产生的告警,有表空间、目录空间、进程等,点击可以下钻到订单。
图7为日志查询,可以查看所有流程的日志,根据开始、结束时间,ETL类型,执行状态进行筛选,针对一类日志类型,可以下钻到具体日志详单。
图8为文件详单查询,查询SHELL脚本统计的文件信息,可根据时间、文件类型、文件大小等进行过滤。
图9为数据源接口报表,可查询数据源接口的信息,包含字段关联率,字段回填率,字段超长率,文件大小,记录数,个数等关联指标,可以根据时间和文件类型过滤。
图10为数据模型报表报表,主要可查看数据模型中的表的记录数和处理过程时长,可以根据时间和表名过滤。
对于前述的各方法实施例,为了描述简单,故将其都表述为一系列的动作组合,但是本领域的技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为根据本申请,某些步骤可以采用其他顺序或同时执行;其次,本领域技术人员也应该知悉,上述方法实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
参照图11,示出了本申请实施例一种基于ETL流程的数据质量管控系统的结构框图,包括:
元数据导入模块41,用于导入元数据,根据所述元数据中各个表的数据获得ETL流程;其中,所述ETL流程包括数据抽取、数据转换和数据加载三个环节,其中,ETL流程数据呈现包括指标结果和数据处理环境两个环节,所述ETL流程和ETL流程数据呈现的每个环节都包含至少一个检查节点;
检查规则预定义模块42,用于为每个检查节点设置相应的检查规则,并定义需要执行的命令语句;
收集数据模块43;
任务调度模块44,用于根据所述命令语句,按照预先设置的执行周期执行设定的数据调度任务,对根据所述数据调度任务启动的数据采集任务采集到的数据进行检查,得出检查结果;
告警模块45,用于将检查结果与预先设置的告警阈值进行比较,如果满足阈值范围,则生成告警详单,并将所述告警详单插入到数据库;
关联汇总模块46,用于将所述告警详单数据关联汇总到数据仓库层事实汇总数据。
优选的,本优选实施例还包括:数据展现模块47,用于将所述检查结果通过告警订单查询、日志查询、流程展现和/或报表展现的方式呈现。
其中,所述检查规则预定义模块42,具体包括:
抽取子模块,用于设置所述ETL流程中的数据抽取环节中的检查节点对应的检查规则为完整性和有效性规则;
转换子模块,用于设置所述ETL流程中的数据转换环节中的检查节点对应的检查规则为完整性和及时性规则;
加载子模块,用于设置所述ETL流程中的数据加载环节中的检查节点对应的检查规则为完整性规则;
指标结果子模块,用于设置所述ETL流程数据呈现中的指标结果环节中的检查节点对应的检查规则为准确性规则;
环境子模块,用于设置所述ETL流程数据呈现中的数据处理环境环节中的检查节点对应的检查规则为有效性规则。
所述数据收集模块43,用于根据其中,所述下次数据时间指根据所述数据调度任务启动数据采集任务的时间,具体包括:
配置需要收集的基础日志数据,所述日志数据包括存储过程日志、spark过程日志、mr过程日志、redis流程日志和/或sqoop流程日志;
收集所述基础日志数据;
收集数据源文件信息;
收集数据库信息;
收集环境信息。
所述任务调度模块44,具体包括:
调度确认子模块,用于扫描任务表,如果扫描到任务状态为“启动标识”且执行时间与当前时间相同,则进行任务调度;
更新子模块,用于按任务调度周期和执行周期,更新下次执行时间和下次数据时间;
数据检查子模块,用于按照预先设置的SQL检查数据;
执行结果子模块,用于根据执行任务类型将执行结果插入结果数据表。
所述模块之间,控制流调用关系为:
任务调度模块->数据采集模块,
任务调度模块->数据检查子模块,
任务调度模块->关联汇总模块。
数据流控制调用关系为:数据采集模块->数据检查子模块->关联汇总模块->数据展现模块。
参见图12,示出了本申请系统的应用场景,由操作人员部署系统,导入元数据,收集数据,配置检查点,维护人员或者用户只需要登录系统查看有没有告警即可。
参见图13,示出了本申请系统的运行环境:
a)确定目标系统运行平台,可选Linux Centos6.4或者HADOOP的ONYARN环境;
b)确定目标系统开发环境、开发工具、开发方法;
采用Java语言,eclipse、tomcat开发环境,采用面向对象的开发方法,ie9以上的设置。
C)确定目标系统的主要运行设备型号及配置:Centos6.4,jdk1.8,tomcat8,oracle 11g。
所述系统中,接口的类型分为三种:用户接口、外部接口和内部接口,通过数据库表的方式对接。
用户接口即是提供操作界面,通过页面查询可以选取的检查规则,设置调度信息,收集信息,ST_LOG_COLLECT_CONFIG为统计字段配置接口,说明:字段配置说明表,有用户操作页面配置,格式由数据库表的形式提供,周期按每个处理周期读入。如下表所示:
SYS_QUA_CHECK_ALARMTYPE说明:规则类型表,系统内置,定义了每个环节需要执行的内容,用户可以查看具体的规则。
外部接口说明:处理程序需要输出的的日志表,每个处理周期插入一条数据到数据库,只要有数据转换过程(数据从一张表到另一张表转移的过程)就需要记录,方式为直接插入数据库表结构中,参见下表:
ST_LOG_PROCEDURE(过程日志接口)
内部接口程序采用独立的MapReduce模块,通过读取配置表ST_LOG_COLLECT_CONFIG和原始接口文件,生成统计结果,插入到结果表ST_LOG_COL_COLLECT。
ST_LOG_COL_COLLECT(字段配置接口):
说明:字段收集结果表
输出:由外部mapreduce程序统计输出
格式:文件或者直接插入数据库
周期:每个处理周期输出
命名:如果是文件,名称是接口名称+_+COL+_+数据时间(yyyymmddhhmiss).log,例子:LTE_XDR_MME_COL_20161231110000.log
分割符:竖线,
换行符,linux换行符。
SYS_QUA_SCHEM_JOINRULE(规则调度接口)说明:调度配置表(调度和规则,1对1)
/>
/>
本申请提供的一种基于ETL流程的数据质量管控系统有如下特性:
(1)直观性:
通过流程图的方式展现端到端的数据质量问题(涵盖处理环境,ETL流程,数据源),可通过告警,信息推送方式展现;
(2)易用性:
支持一键配置规则,对单个ETL流程可以一键快速配置规则,支持同环比,经验值等多种检查方式,支持oracle,gbase,hive等多种数据库中数据的检查,前后台分离,快速部署;
(3)稳定性:
后台采用资源池,线程池,连接池的方式,保证规则定时执行或者周期执行,同时支持消息队列方式,FTP方式收集数据;
(4)扩展性:
使用接口对接,系统提供固定检测规则检查不同环节数据质量问题,规则可扩展,可自定义,灵活的周期调度方式,适配各种数据延迟,不同粒度周期执行。
本系统中检查数据出错可分以下几类:
超时类:数据库连接超时处理,任务等待超时处理;
操作类:队列溢出错误处理;
数据类:空指针错误处理,类型转换错误处理,数据插入报错处理;
运行类:类缺失错误处理,参数传递出错处理。
本系统通过以下方式确保安全性:
(1)所有的密码都需要是密文保存、集中管理、集中存放;
(2)页面跳转或者程序间传递不能带有敏感信息,如果必须有,需要是密文;
(3)后备技术:周期性的数据备份
(4)恢复及重启技术:采用ONYARN(YARN,Yet Another Resource Negotiator,另一种资源协调者)方式运行,可以实现后台进程的高可用,采用数据库自带的主从备份方式来保障程序的有效运行。
所述系统有如下关键点设计:
(1)预定义ETL环节各检查节点的检查规则
参见图14,ETL环节切分为数据源接口抽取环节,处理过程转换环节,数据模型和指标加载环节,把整个环节各检查节点需要的检查规则定义出来,并定义需要执行的SQL,在检查时只需要需要针对具体环节的具体节点选择对应规则即可完成检查工作,不用关注检查的细节。
(2)ETL检查规则一键模板配置
可以预先定义ETL流程中每个环节需要检查的规则模板,在配置时候只需要选择模板即可完成检查规则的配置,方便对一类原始接口定义检查规则,方便管理和迁移,并且再配置时也不需要关注细节。
参见图15,为设置模板示意图,图16为选择模板示意图。
(3)ETL流程串联展示
在查看告警的时候,只需要选择接口既可以查看整个ETL流程,并且有告警的环节会变成红色,方便查询和理清ETL的逻辑,以及发现具体的ETL环境数据质量问题,点击可以下钻到告警的详细信息。
图17为ETL流程展示,图18为告警详单展示。
(4)环境实体-联系(Entity Relationship,ER)图设置
参见图19,可配置基本的服务器关系,直观展示ETL过程中服务器组织信息。
(5)自定义SQL
参见图20,对于复杂的逻辑,可以支持自定义SQL的方式,对不同的数据库做查询,方便业务的扩展和特殊检查的支持。
参见图21-24,示出了本系统的操作流程:
图21:配置数据源,图22-23:数据收集,图24:检查规则设置。
本系统具有如下优点:
(1)直观展示
能直接发现ETL中出现数据质量问题的环节,并能查看到具体原因,省去了繁琐的逐步定位问题,使用者只需要关注每个环节是否告警,而不需要去了解当中的细节。
(2)易操作
只需要一次部署,一键配置以后,检查规则即可周期执行检查,后面只要关注检查的结果即可判断数据质量有无问题,不需要专业的人员反复的定位、编写额外的脚本,节约人力,便于操作且效率更高。
(3)容易扩展
对于ETL环节中特殊的检查规则可以使用自定义SQL的方式检查,如果规则比较通用,可以加入到系统阈值的规则库里面,后续即可选择使用。
需要说明的是,上述系统实施例属于优选实施例,所涉及的单元和模块并不一定是本申请所必须的。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于本申请的方法实施例而言,由于其与系统实施例基本相似,所以描述的比较简单,相关之处参见系统实施例的部分说明即可。
以上对本申请所提供的一种基于ETL流程的数据质量管控方法和系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种基于ETL流程的数据质量管控方法,其特征在于,所述方法包括:
导入元数据,根据所述元数据中各个表的数据获得ETL流程;其中,所述ETL流程包括数据抽取、数据转换和数据加载三个环节, 同时,ETL流程数据呈现包括指标结果和数据处理环境两个环节,所述ETL流程和ETL流程数据呈现的每个环节都包含至少一个检查节点;
为每个检查节点设置相应的检查规则,并定义需要执行的命令语句;
根据所述命令语句,按照预先设置的执行周期执行设定的数据调度任务,对根据所述数据调度任务启动的数据采集任务采集到的数据进行检查,得出检查结果;
将检查结果与预先设置的告警阈值进行比较,如果满足阈值范围,则生成告警详单,并将所述告警详单插入到数据库;
将所述告警详单数据关联汇总到数据仓库层事实汇总数据;以及
将所述检查结果通过告警订单查询、日志查询、流程展现和/或报表展现的方式呈现。
2.根据权利要求1所述的方法,其特征在于,所述导入元数据,根据所述元数据中各个表的数据获得ETL流程,具体包括:
将所述元数据中包含的来源表名、目标表名、处理过程名、字段名、字段类型和/或层次读入EXCEL;
根据所述处理过程名、字段类型和/或层次确定所述元数据中各个表的数据的ELT流程环节;
将读入EXCEL的表数据解析为指定的物理表结构,并存入数据库中。
3.根据权利要求1所述的方法,其特征在于,所述为每个检查节点设置相应的检查规则,具体包括:
设置所述ETL流程中的数据抽取环节中的检查节点对应的检查规则为完整性和有效性规则;
设置所述ETL流程中的数据转换环节中的检查节点对应的检查规则为完整性和及时性规则;
设置所述ETL流程中的数据加载环节中的检查节点对应的检查规则为完整性规则;
设置所述ETL流程数据呈现中的指标结果环节中的检查节点对应的检查规则为准确性规则;
设置所述ETL流程数据呈现中的数据处理环境环节中的检查节点对应的检查规则为有效性规则。
4.根据权利要求3所述的方法,其特征在于,所述检查规则中:
完整性检查规则指检查记录行数是否准确、检查文件大小和个数是否完整、检查文件名称是否规范和/或检查字段数是否符合要求;
准确性检查规则指通过同环比的方式检查指标值是否符合要求;
及时性检查规则指检查任务执行是否成功和检查任务执行是否超时;
有效性检查规则指检查字段超长记录数占比、检查不符合长度要求的字段记录数占比、检查空字段记录数占比、检查零字段记录数占比、检查字段无法关联的记录数占比、检查字段在阈值范围内的记录数之比和/或检查目录空间是否异常。
5.根据权利要求1所述的方法,其特征在于,所述按照预先设置的执行周期执行设定的数据调度任务,具体包括:
扫描任务表,如果扫描到任务状态为“启动标识”且执行时间与当前时间相同,则进行任务调度;
按数据任务调度周期和所述执行周期,更新下次执行时间和下次数据时间,其中,所述下次数据时间指根据所述数据调度任务启动数据采集任务的时间;
根据执行任务类型将执行结果插入结果数据表。
6.根据权利要求1所述的方法,其特征在于,根据所述数据任务调度启动数据采集任务采集数据,具体包括:
配置需要收集的基础日志数据,所述日志数据包括存储过程日志、spark过程日志、mr过程日志、redis流程日志和/或sqoop流程日志;
收集所述基础日志数据;
收集数据源文件信息;
收集数据库信息;
收集环境信息。
7.一种基于ETL流程的数据质量管控系统,其特征在于,所述系统包括:
元数据导入模块,用于导入元数据,根据所述元数据中各个表的数据获得ETL流程;其中,所述ETL流程包括数据抽取、数据转换和数据加载三个环节,同时, ETL流程数据呈现包括指标结果和数据处理环境两个环节,所述ETL流程和ETL流程数据呈现的每个环节都包含至少一个检查节点;
检查规则预定义模块,用于为每个检查节点设置相应的检查规则,并定义需要执行的命令语句;
任务调度模块,用于根据所述命令语句,按照预先设置的执行周期执行设定的数据调度任务,对根据所述数据调度任务启动的数据采集任务采集的数据进行检查,得出检查结果;
告警模块,用于将检查结果与预先设置的告警阈值进行比较,如果满足阈值范围,则生成告警详单,并将所述告警详单插入到数据库;
关联汇总模块,用于将所述告警详单数据关联汇总到数据仓库层事实汇总数据;以及
数据展现模块,用于将所述检查结果通过告警订单查询、日志查询、流程展现和/或报表展现的方式呈现。
8.根据权利要求7所述的系统,其特征在于,所述检查规则预定义模块,具体包括:
抽取子模块,用于设置所述ETL流程中的数据抽取环节中的检查节点对应的检查规则为完整性和有效性规则;
转换子模块,用于设置所述ETL流程中的数据转换环节中的检查节点对应的检查规则为完整性和及时性规则;
加载子模块,用于设置所述ETL流程中的数据加载环节中的检查节点对应的检查规则为完整性规则;
指标结果子模块,用于设置所述ETL流程数据呈现中的指标结果环节中的检查节点对应的检查规则为准确性规则;
环境子模块,用于设置所述ETL流程数据呈现中的数据处理环境环节中的检查节点对应的检查规则为有效性规则。
9.根据权利要求7所述的系统,其特征在于,所述任务调度模块,具体包括:
调度确认子模块,用于扫描任务表,如果扫描到任务状态为“启动标识”且执行时间与当前时间相同,则进行任务调度;
更新子模块,用于按任务调度周期和执行周期,更新下次执行时间和下次数据时间;
执行结果子模块,用于根据执行任务类型将执行结果插入结果数据表。
10.根据权利要求7所述的系统,其特征在于,所述系统还包括:
收集数据模块,用于根据所述数据调度任务启动数据采集任务采集数据,具体包括:
配置需要收集的基础日志数据,所述日志数据包括存储过程日志、spark过程日志、mr过程日志、redis流程日志和/或sqoop流程日志;
收集所述基础日志数据;
收集数据源文件信息;
收集数据库信息;
收集环境信息。
CN201711021492.2A 2017-10-26 2017-10-26 一种基于etl流程的数据质量管控方法和系统 Active CN109947746B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711021492.2A CN109947746B (zh) 2017-10-26 2017-10-26 一种基于etl流程的数据质量管控方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711021492.2A CN109947746B (zh) 2017-10-26 2017-10-26 一种基于etl流程的数据质量管控方法和系统

Publications (2)

Publication Number Publication Date
CN109947746A CN109947746A (zh) 2019-06-28
CN109947746B true CN109947746B (zh) 2023-12-26

Family

ID=67003985

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711021492.2A Active CN109947746B (zh) 2017-10-26 2017-10-26 一种基于etl流程的数据质量管控方法和系统

Country Status (1)

Country Link
CN (1) CN109947746B (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110347741B (zh) * 2019-07-18 2023-05-05 普元信息技术股份有限公司 大数据处理过程中有效提升输出成果数据质量的系统及其控制方法
CN110457371A (zh) * 2019-08-13 2019-11-15 杭州有赞科技有限公司 数据管理方法、装置、存储介质及系统
CN110580265B (zh) * 2019-09-16 2020-11-20 北京三快在线科技有限公司 Etl任务的处理方法、装置、设备及存储介质
CN111159191B (zh) * 2019-12-30 2023-05-09 深圳博沃智慧科技有限公司 一种数据处理方法、装置和界面
CN111159161A (zh) * 2019-12-31 2020-05-15 青梧桐有限责任公司 基于etl规则的数据质量监控及预警系统和方法
CN111159272A (zh) * 2019-12-31 2020-05-15 青梧桐有限责任公司 基于数据仓库及etl的数据质量监控及预警方法和系统
CN111399826B (zh) * 2020-03-19 2020-12-01 北京三维天地科技股份有限公司 一种可视化拖拽流程图式etl在线数据交换方法和系统
CN111626838A (zh) * 2020-05-28 2020-09-04 山东浪潮商用系统有限公司 一种用于税务系统的数据治理方法及系统
CN111651460A (zh) * 2020-06-11 2020-09-11 上海德易车信息科技有限公司 一种数据治理方法、装置、电子设备及可读存储介质
CN111767267B (zh) * 2020-06-18 2024-05-10 杭州数梦工场科技有限公司 元数据处理方法、装置、电子设备
CN111767283B (zh) * 2020-06-19 2023-08-18 北京思特奇信息技术股份有限公司 一种数据系统监测方法和系统
CN112416896A (zh) * 2020-11-17 2021-02-26 珠海格力电器股份有限公司 数据异常的报警方法和装置、存储介质、电子装置
CN112527783B (zh) * 2020-11-27 2024-05-24 中科曙光南京研究院有限公司 一种基于Hadoop的数据质量探查系统
CN113342789A (zh) * 2020-12-01 2021-09-03 李孔雀 基于大数据和深度学习的数据清洗方法及云服务器
CN112597142A (zh) * 2020-12-26 2021-04-02 中国农业银行股份有限公司 一种数据质量检测方法和数据质量检测引擎
CN112632169B (zh) * 2020-12-29 2023-03-28 永辉云金科技有限公司 一种金融数据自动上报方法、装置及计算机设备
CN112667618B (zh) * 2020-12-30 2023-06-06 湖南长城医疗科技有限公司 一种公共区域卫生平台质控系统及方法
CN112749164A (zh) * 2020-12-30 2021-05-04 北京知因智慧科技有限公司 数据质量分析方法、装置及电子设备
CN112667619B (zh) * 2020-12-30 2023-10-10 平安证券股份有限公司 辅助检查数据的方法、装置、终端设备及存储介质
CN112925767A (zh) * 2021-03-03 2021-06-08 浪潮云信息技术股份公司 基于互联网监管的多数据源动态数据同步治理方法及系统
CN113157676A (zh) * 2021-04-14 2021-07-23 联通(广东)产业互联网有限公司 一种数据质量管理方法、系统、装置及存储介质
CN114880385B (zh) * 2021-07-27 2022-11-22 云南省地质环境监测院(云南省环境地质研究院) 一种通过自动组合流程接入地质灾害数据的方法及装置
CN113641566A (zh) * 2021-08-30 2021-11-12 平安资产管理有限责任公司 基于人工智能的系统告警方法、装置、计算机设备和介质
CN113626513A (zh) * 2021-09-01 2021-11-09 浙江力石科技股份有限公司 文旅资源采集方法和系统
CN113672488A (zh) * 2021-09-06 2021-11-19 银清科技有限公司 日志文本处理方法及装置
CN113808716B (zh) * 2021-09-14 2024-03-19 北京天健源达科技股份有限公司 住院闭环信息处理方法
CN113918636B (zh) * 2021-10-21 2024-04-19 中通服公众信息产业股份有限公司 一种基于etl的数据处理量分析方法
CN114328700B (zh) * 2022-03-16 2022-07-05 上海柯林布瑞信息技术有限公司 医疗数据etl任务中的数据核查方法及装置
CN115237609B (zh) * 2022-09-22 2022-12-27 深圳市优网科技有限公司 一种用户信息快速关联回填的方法、装置及存储介质
CN117421328A (zh) * 2023-11-23 2024-01-19 上海信投数字科技有限公司 基于人工智能的数据治理方法、系统、设备及可读介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101576893A (zh) * 2008-05-09 2009-11-11 北京世纪拓远软件科技发展有限公司 数据质量分析方法及系统
CN102117306A (zh) * 2010-01-04 2011-07-06 阿里巴巴集团控股有限公司 Etl数据处理过程的监控方法及其系统
CN104361437A (zh) * 2014-10-31 2015-02-18 北京思特奇信息技术股份有限公司 一种多样化数据接口质量检查管理的方法及系统
CN104778236A (zh) * 2015-04-02 2015-07-15 上海烟草集团有限责任公司 一种基于元数据的etl实现方法及系统
CN104850635A (zh) * 2015-05-24 2015-08-19 华东电网有限公司 一种多数据源环境下数据缺失自动检查及集中监控方法
US9323816B1 (en) * 2010-12-31 2016-04-26 United Services Automobile Association (Usaa) Extract, transform, and load application complexity management framework
CN110309211A (zh) * 2018-03-12 2019-10-08 华为技术有限公司 一种定位etl过程问题的方法及相关设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101576893A (zh) * 2008-05-09 2009-11-11 北京世纪拓远软件科技发展有限公司 数据质量分析方法及系统
CN102117306A (zh) * 2010-01-04 2011-07-06 阿里巴巴集团控股有限公司 Etl数据处理过程的监控方法及其系统
US9323816B1 (en) * 2010-12-31 2016-04-26 United Services Automobile Association (Usaa) Extract, transform, and load application complexity management framework
CN104361437A (zh) * 2014-10-31 2015-02-18 北京思特奇信息技术股份有限公司 一种多样化数据接口质量检查管理的方法及系统
CN104778236A (zh) * 2015-04-02 2015-07-15 上海烟草集团有限责任公司 一种基于元数据的etl实现方法及系统
CN104850635A (zh) * 2015-05-24 2015-08-19 华东电网有限公司 一种多数据源环境下数据缺失自动检查及集中监控方法
CN110309211A (zh) * 2018-03-12 2019-10-08 华为技术有限公司 一种定位etl过程问题的方法及相关设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
报表系统中ETL通用框架的设计与研究;范金花;梁正和;;计算机技术与发展(第06期) *
范金花等.报表系统中ETL通用框架的设计与研究.《计算机技术与发展》.2009,第19卷(第06期),全文. *

Also Published As

Publication number Publication date
CN109947746A (zh) 2019-06-28

Similar Documents

Publication Publication Date Title
CN109947746B (zh) 一种基于etl流程的数据质量管控方法和系统
US11151083B2 (en) Generating target application packages for groups of computing devices
CN107958049B (zh) 一种数据质量稽查管理系统
US8151248B1 (en) Method and system for software defect management
CN111159191A (zh) 一种数据处理方法、装置和界面
CN111125444A (zh) 大数据任务调度管理方法、装置、设备及存储介质
US9116779B2 (en) Test management domain asset discovery and analysis
CN102722436A (zh) 一种增量覆盖信息的统计方法和装置
CN105760296A (zh) 自动化测试控制方法、装置及终端
CN112711496A (zh) 日志信息全链路追踪方法、装置、计算机设备和存储介质
CN111061733A (zh) 数据处理方法、装置、电子设备和计算机可读存储介质
CN109582286B (zh) 基于Freemarker技术的数据规范性校验方法及其装置
CN116521092B (zh) 一种工业设备数据的存储方法和装置
CN117389792A (zh) 一种故障排查方法、装置、存储介质及电子设备
CN112486841A (zh) 埋点采集数据校验的方法及装置
CN111694752B (zh) 应用测试方法、电子设备及存储介质
CN115617623A (zh) 性能指标数据可视化方法、装置、电子设备及存储介质
KR101039874B1 (ko) 정보통신 통합플랫폼 테스트 시스템
CN113609015A (zh) 一种基于Bash Shell的自动化测试框架
CN114911687A (zh) 一种智能电能表测试用例复用系统以及复用方法
CN111352824A (zh) 测试方法、装置及计算机设备
CN112148459B (zh) 节点关联数据的处理方法、装置、可读介质以及设备
US11816112B1 (en) Systems and methods for automated process discovery
CN113485693B (zh) 接口配置方法、装置、设备及存储介质
CN113688147B (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