概述
数据质量平台是一款针对数据及其生产链路的数据质量管理平台,为数据的开发及使用提供全套的数据质量解决方案。 数据质量平台具有多种功能,主要包括数据量、数据个性化指标的波动监控及异常报警,数据内容探查及差异对比等,保证了数据在生产及使用流程中的可靠性和合理性,从而避免因为数据质量问题而导致数据失信、决策失误。
在整个数据开发环节中,数据质量平台提供着重要的数据质量保障作用,具体如下:
-
在任务开发阶段
数据探查对数据进行统计性分析,帮助判断数据质量情况,确定数据是否可用。
-
在任务发布阶段
任务执行完成之后生成分区数据,触发监控规则进行质量监控校验。
-
质量校验过程中,发现质量异常
根据规则设置的强弱属性,判断是否需要熔断下游任务防止异常扩散。
-
如果是强规则,下游任务需要等待规则执行成功再继续执行。
-
如果是弱规则,会发送失败告警但是不影响下游执行。
-
任务修改流程中的数据对比
任务修改可以利用数据对比,对比线上和开发的数据,判断任务修改的影响面。
数据探查
全量探查
在使用数据过程中,您可利用数据探查功能,对一张数据表进行全量探查,一键生成探查报告,展示探查后列的统计分布结果,如下:
-
各个字段空值、0值的占比。
-
唯一键重复情况。
-
一些重要字段的枚举值、均值、分位数等分布的情况。
探查作为所有数据工作的基础,可帮助您了解数据全貌、发现潜在问题、理解数据分布,从而更好的使用数据。
在使用数据过程中,您可利用数据探查功能,对一张数据表进行全量探查,一键生成探查报告,展示探查后列的统计分布结果,如下:
-
各个字段空值、0值的占比。
-
唯一键重复情况。
-
一些重要字段的枚举值、均值、分位数等分布的情况。
探查作为所有数据工作的基础,可帮助您了解数据全貌、发现潜在问题、理解数据分布,从而更好的使用数据。
1 创建探查
创建探查的步骤如下:
-
登录DataLeap控制台。
-
选择 数据质量 > 数据探查 > 创建探查,进入创建探查页面。
-
设置探查信息。
-
选择探查对象。
-
选择您需要探查的数据源。目前仅支持Hive,包含引擎、库、表及探查分区等信息。
-
设置探查指标。
-
设置高级参数。
-
-
创建探查的相关参数说明如下表所示。
参数 | 说明 |
选择探查对象 | |
引擎 | 提供 EMR 和 LAS 两种引擎选项。当选择 EMR 时,可从下拉列表中选择一个实例。当选择 LAS 时,实例默认为 default。 |
库名 | 要探查的数据库名称,下拉可选。 |
表名 | 所选数据库下要探查的数据表名称,下拉可选。 |
负责人 | 数据表的负责人,选择表名后自动显示。 |
探查分区 | 数据表的分区字段,选择表名后自动显示。 一级分区必填,可通过以下方式设置:输入设置,分区取值无需填写引号。例如,可填写date=20201016/hour=10/app=数据质量,无需填写date='20201016'/hour='10'/app='数据质量'。从下拉列表中选择推荐的分区表达式,并可根据需要进行编辑。 |
探查设置 | |
主键重复值 | 若需要探查,则需要指定主键,可选择多个。 |
字段探查 | 包含各字段NULL值、0值、数值分布、枚举值等指标。可以在 详细设置 中进行更改,未勾选的探查项不会展示在探查报告中。NULL值:默认对所有字段探查NULL值。0值:默认对所有数值类字段探查0值。枚举值:默认对所有字段探查枚举值,若无需求,可移除勾选。数值分布:默认对所有数值类字段探查数值分布,包含Min/Max/Mean/Sum/分位数/标准差。空字符串:默认对所有字段探查没有字符的字符串*""* ,若无需求,可移除勾选。 |
高级参数设置 | |
描述 | 支持对探查报告进行简单描述,方便探查报告的浏览者理解探查信息。 |
运行参数 | 支持Set高级参数,便于调控探查运行状况。 |
过滤条件 | 支持输入语法逻辑与 SQL 一致的条件语句,如type=‘***’,无需输入‘where’。 |
-
点击 确定 按钮,完成创建,进入探查结果页面。
说明
通过探查结果页面的 新建探查 按钮,也可创建新的探查。
2 管理探查结果
数据探查创建成功后,可以执行查看探查报告、搜索探查结果、查看运行日志等操作,步骤如下:
-
登录DataLeap控制台。
-
选择 数据质量 > 数据探查 > 探查结果,进入探查结果页面。
-
在 引擎 下拉列表中,选择要查看的引擎和对应的实例。
-
点击探查结果列表前的折叠图标或点击 全部展开 按钮,展开列表信息。
-
可执行以下操作:
-
设置搜索信息,快速查找符合条件的探查结果列表。
-
点击列表中某条探查信息 操作 列的 探查报告 按钮,进入探查报告页面,查看数据探查结果。
-
内容包括该分区的行数、字段数、表大小、存储格式、填写的探查描述信息等,并统计字段探查信息的总结。字段详情如下:
-
NULL值:统计该字段中,出现NULL的个数和占比。
-
0值:统计该字段中,出现NULL的个数和占比。仅支持 数值类 字段。
-
枚举值:统计该字段中的枚举值,按占比从大到小排序。点击 更多 按钮,可查看所有枚举值,最多展示前100个。
-
数值统计:统计该字段中分位数、均值、标准差、SUM,统计前会过滤掉NULL值。其中,分位数可选择 查看10% - 90%分位数 或 查看25%/50%/75%分位数。仅支持 数值类 字段。
-
-
说明
-
创建的数据探查运行成功后,才可以查看探查报告。
-
点击列表中某条探查信息 操作 列的 分享 按钮,可以复制该报告地址,并分享给他人。
-
点击列表中某条探查信息 操作 列的 复制 按钮,可以复制并修改其探查信息,快速创建新的探查。
-
点击列表中某条探查信息 操作 列的 更多图标 > 运行日志 按钮,可以查看该探查的运行日志。
-
点击列表中某条运行中的探查信息 操作 列的 更多图标 > 终止 按钮,可以终止该探查。
-
点击列表中某条探查信息 操作 列的 更多图标 > 重跑 按钮,可以重跑该探查任务。
-
动态探查
动态探查提供全局数据视角、完善的抽样策略裁剪数据,将数据缩小在一定的范围内,从而提高响应速率。 动态探查基于抽样的部分数据进行探查,展示字段明细以及字段的 0 值、Null 值、枚举值等探查信息,并支持通过过滤、group by等操作分析数据质量问题,实时展示统计分布结果。
1 使用场景
当前动态探查支持的主要使用场景如下:
-
电商数据存在 Json 类型的某个字段,该字段存放产品的一些独有字段。当进行分析时,您可以利用 Hive 的基本函数比如 get_json_object,提取相应的列数据。
-
当数据开发埋点出现用户账号为非邮箱账号,导致最终的统计结果不准时,您可以通过探查来确定数据分布以及异常的点,然后利用异常点确定具体的异常行数据。
2 操作步骤
-
登录DataLeap控制台。
-
选择 数据质量 > 数据探查 > 动态探查,进入动态探查页面。
-
设置探查信息
-
选择探查对象。
-
设置探查指标。
-
-
动态探查的相关参数说明如下表所示。
参数 | 说明 |
选择探查对象 | |
引擎 | 提供 EMR 和 LAS 两种引擎选项。当选择 EMR 时,可从下拉列表中选择一个实例。当选择 LAS 时,实例默认为 default。 |
库名 | 要探查的数据库名称,下拉可选。 |
表名 | 所选数据库下要探查的数据表名称,下拉可选。 |
负责人 | 数据表的负责人,选择表名后自动显示。 |
探查分区 | 数据表的分区字段,选择表名后自动显示。 一级分区必填,分区取值无需填写引号。例如,可填写date=20201016/hour=10/app=数据质量,无需填写date='20201016'/hour='10'/app='数据质量'。 |
探查设置 | |
抽样方式 | 提供连续抽样和过滤抽样两个选项。连续抽样:按照默认顺序连续抽样前x条数据。过滤抽样:使用where过滤语句进行过滤。 |
抽样条件 | 抽样的筛选条件。 使用where过滤语句进行过滤。 |
抽样条数 | 抽样的数量,仅可设置为正整数,最大支持5000条。说明探查将消耗一定计算资源,若数量较大,探查运行时间将会变长。 |
探查字段选择 | 要探查的表字段,默认全选,可通过 详细设置 按钮编辑。 |
-
点击 确定 按钮,进入抽样探查结果页面,可查看抽样条数的快速探查结果。
-
内容包括预览对象、行列数、操作步骤数等信息,并展示探查信息和数据列表。
-
探查信息:统计字段探查信息的总结。
-
NULL值:统计该字段中,出现NULL的个数和占比。
-
0值:统计该字段中,出现NULL的个数和占比。仅支持 数值类 字段。
-
枚举值:统计该字段中的枚举值,按数值从小到大排序。点击 更多 按钮,可查看所有枚举值,最多展示前100个。
-
数值统计:统计该字段中分位数、均值、标准差、SUM,统计前会过滤掉NULL值。其中,分位数可选择 查看10% - 90%分位数 或 查看25%/50%/75%分位数。仅支持 数值类 字段。
-
-
数据列表:展示探查的全部数据集合,可以快速查看原始数据的详细内容。
-
-
还可对探查结果执行以下操作:
-
数据抽样
-
点击 数据抽样 按钮,在数据抽样页面,可以编辑探查信息,对该对象进行新的抽样探查。
-
过滤
-
点击 过滤 按钮,在过滤页面,选择字段并设置过滤规则后,点击 保存 按钮,可实时查看过滤后的探查结果。
-
Group By
-
点击 Group By 按钮,在 Group By 页面,选择一个或多个分组字段及其展示方式后,点击 保存 按钮,可以实时展示相应字段上的count(*)值。
-
列删除
-
点击 列删除 按钮,在列删除页面,选择一个或多个要取消显示的列字段,点击 删除 按钮,可以实时移除相应列的展示信息。
-
列排序
-
点击 列排序 按钮,在列排序页面,选择字段并设置升降序排序规则后,点击 保存 按钮,可实时查看按规则排序后的探查结果。
-
操作步骤
-
点击 操作步骤 按钮或在过滤、Group By 等各操作页面,可以查看对本次探查结果的所有操作的内容,并可编辑或删除相应的操作步骤。编辑或者删除之后会按照新的逻辑重新进行运算。
-
在字段名称搜索框的下拉列表中,选择要查看的字段,可以快速定位该字段。
-
点击 收起/展开探查 复合按钮,可以收起/展开页面上半部分的探查信息。
-
点击全屏显示图标按钮,可全屏展示探查结果页面。
-
-
相关操作的参数说明如下表所示。
参数 | 说明 |
过滤 | |
过滤方式 | 目前仅支持过滤模板。 可对操作到目前为止具备的全部字段设置过滤规则,可设置多个,之间的关系为 且。 字段的过滤方式支持以下选项:==!=>>=<<=空字符非空字符IS NOT NULLIS NULLLIKE包含不包含 |
Group By | |
Group By | 要分组的列字段,下拉可选,支持多选。 选项范围包括操作到目前为止具备的全部字段。 |
展示方式 | 提供新生成表格和作为新列两个选项。新生成表格:Group By新生成一张表,并替换当前表。作为新列:在原有的表上增加一个列,显示每个group by字段上的count(*)的值。 |
列删除 | |
字段名称 | 要删除的列字段,下拉可选,支持多选。 选项范围包括操作到目前为止具备的全部字段。 |
列排序 | |
排序规则 | 选择字段,设置其升降序排序规则。 选项范围包括操作到目前为止具备的全部字段。 |
数据对比
概述
在数据发生变动的时候,如更改数据 Schema、变更数据源等,需要对变更前后的数据进行对比,通过量化评估两份数据的差异,来避免变更导致的数据变化影响数据下游正常使用的情况发生。 通过数据对比功能,对新旧数据表到字段级进行差异量化对比,精确衡量数据变动的影响,为数据责任人提供参考依据。 产品提供了以下两种模式进行对比。
-
表:对比的对象为两张已持久化到 Hive 的 A 表和 B 表。
-
SQL:对比的对象为两段 SQL 产出的虚拟数据集,该数据尚未持久化到 Hive 表。
-
相比表对比,SQL 对比具有以下优势:
-
如果需要对比多个日期分区,可以在 SQL 中直接查询出某一段日期分区下的数据进行对比,而 Hive 表对比仅可选择一个固定分区。
-
对比的数据在原 Hive 表基础上,需要进行一些过滤、聚合、Join 等,更适合用 SQL 对比。
-
有些需要更改表结构的数据变动(如增加字段、更改字段类型等),由于可以先对比数据结果,再进行变更,用 SQL 对比更方便。
-
在数据发生变动的时候,如更改数据 Schema、变更数据源等,需要对变更前后的数据进行对比,通过量化评估两份数据的差异,来避免变更导致的数据变化影响数据下游正常使用的情况发生。 通过数据对比功能,对新旧数据表到字段级进行差异量化对比,精确衡量数据变动的影响,为数据责任人提供参考依据。 产品提供了以下两种模式进行对比。
-
表:对比的对象为两张已持久化到 Hive 的 A 表和 B 表。
-
SQL:对比的对象为两段 SQL 产出的虚拟数据集,该数据尚未持久化到 Hive 表。
-
相比表对比,SQL 对比具有以下优势:
-
如果需要对比多个日期分区,可以在 SQL 中直接查询出某一段日期分区下的数据进行对比,而 Hive 表对比仅可选择一个固定分区。
-
对比的数据在原 Hive 表基础上,需要进行一些过滤、聚合、Join 等,更适合用 SQL 对比。
-
有些需要更改表结构的数据变动(如增加字段、更改字段类型等),由于可以先对比数据结果,再进行变更,用 SQL 对比更方便。
-
1 新建对比
新建数据对比的步骤如下:
-
登录DataLeap控制台。
-
选择 数据质量 > 数据对比 ,进入数据对比页面。
-
点击 新建对比 按钮,进入新建对比页面。
-
设置对比信息。
-
选择对比模式,并设置相关参数。
-
选择校验的内容。
-
指定两份数据对比的唯一键。
-
注意
-
若唯一键重复,可能导致校验报告数据不可信,请提前检验主键唯一性的数据质量。
-
选择要校验的字段,并对其设置 Diff 逻辑。
-
说明
-
该设置仅对两份数据中,唯一键匹配上的数据进行计算。如果匹配上的数量为0,则不会进行计算,报告中也不会展示 Diff 明细。
-
-
根据需要,可设置运行参数。
-
-
点击 提交 按钮,完成新建对比。
创建数据对比的相关参数说明如下表所示。
参数 | 说明 |
选择对比模式 | 提供表和SQL两种对比模式选项。表:对比的对象为两张已持久化到 Hive 的 A 表和 B 表。SQL:对比的对象为两段 SQL 产出的虚拟数据集,该数据尚未持久化到 Hive 表。 |
引擎 | 提供 EMR 和 LAS 两种引擎选项。当选择 EMR 时,可从下拉列表中选择一个实例。当选择 LAS 时,实例默认为 default。 |
表模式 | |
库名 | 要对比的数据库名称,下拉可选。 |
表名 | 所选数据库下要对比的数据表名称,下拉可选。 |
表负责人 | 数据表的负责人,选择表名后自动显示。 |
分区信息 | 数据表的分区字段,选择表名后自动显示。 分区取值无需填写引号。例如,可填写date=20201016/hour=10/app=数据质量,无需填写date='20201016'/hour='10'/app='数据质量'。 |
其他过滤条件 | 根据需要增加过滤条件。 支持输入语法逻辑与 SQL 一致的条件语句,如 dau>1000 and type in (a,b),无需输入where。 |
唯一键 | 用于两表匹配,表对比默认从数据地图上获取唯一键信息,可以更改。注意当主键出现重复值时,会影响对比报告结果。 |
字段 | 两表对应的校验字段,自动填充,B 表可编辑。 |
Diff逻辑 | Diff 逻辑支持以下两种计算方式:等值匹配:新旧两字段中不相等的取值行数,占旧表总行数的百分比,越小意味着 Diff 越小。计算方式:count(A!=B)/count(A)差值绝对值:新旧两字段数值差值的绝对值求和,占旧表字段求和的百分比,越小意味着 Diff 越小。计算方式:SUM(|A-B|)/SUM(A) |
是否查询Diff明细 | 可选择是否查询 Diff 明细。 勾选后,若该字段出现 Diff,系统会提供 Diff 数据明细。注意该查询会额外消耗计算资源,勾选重要字段即可。 |
运行参数 | SQL 语句前的运行参数,如“set 参数名 1=取值;”,按需配置。 |
SQL模式 | |
SQL 别名 | 自行设置的两表的 SQL 别名,便于后续快速理解对比报告。 |
对比字段 | 解析输入的 SQL 语句后,自动填充,可按需编辑。 相关参数说明,可参见“表模式”。 |
运行参数 | SQL 语句前的运行参数,如“set 参数名 1=取值;”,按需配置。 |
2 管理对比结果
数据对比创建成功后,可以执行查看对比报告、搜索对比结果、查看运行日志等操作,步骤如下:
-
登录DataLeap控制台。
-
选择 数据质量 > 数据对比,进入数据对比页面。
-
在 引擎 下拉列表中,选择要查看的引擎和对应的实例。
-
可执行以下操作:
-
设置搜索信息,快速查找符合条件的对比结果列表。
-
点击对比结果列表中某条信息 操作 列的 对比报告 按钮,进入对比报告页面,可以查看对比总体概况、Diff明细列表等信息。
-
对比总体概况中,各指标计算逻辑如下:
-
表A/B行数:select count(*) from table_A/B
-
行数差值百分比:|数据B行数-数据A行数|/数据A行数
-
主键匹配上的总行数:select count(*) from table_A inner join table_B on 唯一键A = 唯一键 B
-
表A/B中匹配上的行数占比:(主键匹配上的总行数)/(表A/B行数)
-
-
Diff 明细列表,各字段含义如下:
-
字段名称(A/B):可以核查字段是否选择正确。
-
字段类型(A/B):可以对比字段的类型差异。
-
Diff逻辑:若 Diff值为0,说明两表完全相同;若存在Diff,则可根据 Diff逻辑: Diff值 和 Diff值占比(%) 的数值大小进行评估。
-
-
-
说明
-
创建的数据对比运行成功后,才可以查看对比报告。
-
点击列表中某条信息 操作 列的 运行日志 按钮,可以查看该对比的运行日志。
-
点击列表中某条运行中的信息 操作 列的 终止 按钮,可以终止该对比。
-