Spark流水线数据质量检查组件
1.组件说明
该组件提供了一个可视化、交互式的数据质量规则设计器,支持多种校验类型和参数配置,便于灵活定义和管理数据校验逻辑。
适用于需要灵活配置数据质量校验规则的场景,在数据从数据源抽取、转换并加载到数据仓库的ETL过程中,添加数据质量检查组件,对每一步的数据进行质量检查。例如,在数据抽取后检查数据的完整性,在转换过程中检查数据的一致性和准确性,确保只有符合质量要求的数据才能进入数据仓库,避免错误数据对后续数据分析和决策的影响。
2.组件主要功能
-
规则级别与描述设置
- 支持选择校验级别(错误/Error 或 警告/Warning)。
- 支持输入规则描述。
-
约束条件管理
- 支持添加、删除多个约束条件。
- 每个约束可选择不同的校验类型(如:数据集大小、列完整性、唯一性、主键检查、非负值、最小/最大/平均值、模式匹配、自定义条件等)。
- 根据不同类型动态渲染所需的参数输入项(如列名、操作符、期望值、区间、允许的值、自定义表达式等)。
- 支持操作符选择(如等于、不等于、大于、小于、区间等),部分类型支持区间输入。
校验类型 val 说明 适用场景与含义 hasSize 数据集大小 校验数据集的总行数是否满足指定条件(如等于/大于/小于某个值或在某个区间内)。 isComplete 列完整性 校验指定列是否不存在空值(即该列所有行都必须有值)。 isUnique 列唯一性 校验指定列的值是否唯一(即该列不能有重复值)。 isPrimaryKey 主键检查 校验指定列是否为主键(通常要求唯一且非空)。 isContainedIn 值在集合中 校验指定列的值是否都包含在给定的值集合内。 isNonNegative 非负值 校验指定列的所有值是否都大于等于 0。 hasPattern 模式匹配 校验指定列的值是否都符合某种正则表达式模式(如手机号、邮箱等格式校验)。 satisfies 自定义条件 支持自定义表达式校验,如“column1 > column2”等复杂逻辑。 hasMin 最小值 校验指定列的最小值是否满足条件(如大于/小于/等于某个值或在区间内)。 hasMax 最大值 校验指定列的最大值是否满足条件(如大于/小于/等于某个值或在区间内)。 hasMean 平均值 校验指定列的平均值是否满足条件(如大于/小于/等于某个值或在区间内)。 说明:
- 部分类型(如 hasSize、hasMin、hasMax、hasMean)支持操作符选择(等于、不等于、大于、小于、区间等)。
- isContainedIn 需要填写允许的值集合。
- satisfies 需要填写自定义表达式和条件名称。
- 其他类型通常需要指定列名。
3. 组件演示
3.1 创建任务
-
入口:通过顶部菜单栏选择 任务开发,或通过快捷入口 快速创建任务。
-
任务类型:选择
SparkPipeline
。
3.2 配置任务
点击任务名称,进入任务详情页。任务节点如下
使用MockData
节点生成100条测试数据
-
id
列类型为STRING,不为空 -
age
列类型为INT,可为空
使用DataProfiling
探索数据
使用Deequ进行数据质量检查
规则定义如下:
-
数据集大小在10到100之间
-
id
列不能为空 -
age
列值唯一 -
age
列值最小值在10 - 20之间 -
age
列最大值小于等于100 -
age
列非负数 -
id
列为主键列
最后通过TableShow
对各节点结果可视化展示
3.3 结果查看
模拟数据结果:
可自定义图表对结果进行可视化
数据探查结果:
数据质量检测结果:
从探查结果可见:
age
列最小值为3,最大值为97,规则age
列值最小值在10 - 20不通过,规则age
列最大值小于等于100通过。
🔗 平台体验地址:DataStudio (http://1.94.182.15:8090)
Spark流水线数据质量检查