数据质量管理是指对数据质量进行管理和控制,以确保数据质量符合特定用途和特定用户的需求和期望。 根据《DAMA》对数据质量的定义是:“数据质量是指数据在满足特定用途的过程中,以及在满足特定用户的需要和期望的过程中,所表现出来的适当性、准确性、完整性、一致性、可靠性和时效性等特征的度量。”这一定义强调了数据质量与特定用途和用户需求之间的紧密关系,并突出了数据质量的多维特征。 完整性:指数据是否完整、不缺失。完整性是数据质量的重要特征,数据的完整性也取决于数据的全生命周期管理。 一致性:指数据在不同的时间、地点、系统和应用中是否保持一致。数据一致性是确保数据准确和可靠的关键。 可靠性:指数据在存储、处理、传输和使用过程中是否能够保持正确、稳定、可靠的状态。 时效性:指数据在存储、处理、传输和使用过程中是否能够保持及时、实时的状态。时效性对于实时性要求高的应用场景尤为重要。 数据质量评估是对数据质量进行定量或定性的评估和分析,以确定数据质量的好坏程度。DAMA提出了一系列评估数据质量的方法和标准,包括数据质量度量、数据质量评估模型和数据质量评估标准等。 数据质量度量:通过数据质量指标(如适当性、准确性、完整性、一致性、可靠性和时效性)对数据进行定量的度量和分析。度量方法包括统计分析、数据挖掘、机器学习、数据可视化等。 数据质量评估模型:如数据质量成熟度模型、数据质量评估框架和数据质量评估流程等,帮助用户更好地评估和管理数据质量。 数据质量评估标准:作为数据质量评估的重要依据和参考,帮助用户制定和执行数据质量管理的规范。 ApacheDolphinScheduler()是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。 数据质量是系统的其中一个模块。数据质量任务是用于检查数据在集成、处理过程中的数据准确性。本版本的数据质量任务包括单表检查、单表自定义SQL检查、多表准确性以及两表值比对。 用户在界面定义任务,用户输入值保存在TaskParam中运行任务时,Master会解析TaskParam,封装DataQualityTask所需要的参数下发至Worker。Worker运行数据质量任务,数据质量任务在运行结束之后将统计结果写入到指定的存储引擎中,当前数据质量任务结果存储在dolphinscheduler的t_ds_dq_execute_result表中Worker发送任务结果给Master,Master收到TaskResponse之后会判断任务类型是否为DataQualityTask,如果是的话会根据taskInstanceId从t_ds_dq_execute_result中读取相应的结果,然后根据用户配置好的检查方式,操作符和阈值进行结果判断,如果结果为失败的话,会根据用户配置好的的失败策略进行相应的操作,告警或者中断 校验公式:[校验方式][操作符][阈值],如果结果为真,则表明数据不符合期望,执行失败策略 校验方式: [Expected-Actual][期望值-实际值] [Actual-Expected][实际值-期望值] [Actual/Expected][实际值/期望值]x100% [(Expected-Actual)/Expected][(期望值-实际值)/期望值]x100% 操作符:=、、=、、=、!= 期望值类型:固定值、日均值、周均值、月均值、最近7天均值、最近30天均值、源表总行数、目标表总行数 例子 校验方式为:[Actual-Expected][实际值-期望值] [操作符]: [阈值]:0 期望值类型:固定值=9。 假设实际值为10,操作符为,期望值为9,那么结果10-90为真,那就意味列为空的行数据已经超过阈值,任务被判定为失败 空值检查的目标是检查出指定列为空的行数,可将为空的行数与总行数或者指定阈值进行比较,如果大于某个阈值则判定为失败 计算指定列为空的SQL语句如下:SELECTCOUNT(*)ASmissFROM${src_table}WHERE(${src_field}isnullor${src_field}='')AND(${src_filter}) 计算表总行数的SQL如下:SELECTCOUNT(*)AStotalFROM${src_table}WHERE(${src_filter}) 界面操作指南 源数据类型:选择MySQL、PostgreSQL等 源数据源:源数据类型下对应的数据源 源数据表:下拉选择验证数据所在表 源过滤条件:如标题,统计表总行数的时候也会用到,选填 源表检查列:下拉选择检查列名 校验方式: [Expected-Actual][期望值-实际值] [Actual-Expected][实际值-期望值] [Actual/Expected][实际值/期望值]x100% [(Expected-Actual)/Expected][(期望值-实际值)/期望值]x100% 校验操作符:=,、=、、=、!= 阈值:公式中用于比较的值 失败策略 告警:数据质量任务失败了,DolphinScheduler任务结果为成功,发送告警 阻断:数据质量任务失败了,DolphinScheduler任务结果为失败,发送告警 期望值类型:在下拉菜单中选择所要的类型 具体请查阅: