IBM Cloud Pak® for Data 4.6 版本将于 2025 年 7 月 31 日结束支持(EOS)。 欲了解更多信息,请参阅 IBM Cloud Pak for Data 版本 4.X 的停止服务公告。
在 IBM Cloud Pak for Data 4.6 版本支持结束之前,升级到 IBM Software Hub 5.1 版本。 更多信息,请参阅 IBM Software Hub 版本 5.1 文档中的升级 IBM Software Hub。
创建基于 SQL 的数据质量规则 (Watson Knowledge Catalog)
您可以创建基于 SQL 的数据质量规则,以评估项目中数据的质量。 使用此类规则来测量错误,而不是评估是否符合特定质量标准。
IBM Cloud Pak for Data 及更高版本上提供此功能。 4.6.1
要创建基于 SQL 的数据质量规则:
打开项目,单击 新建资产,然后选择 数据质量规则。
定义详细信息:
- 指定数据质量规则的名称。
- 可选:提供描述。
- 可选: 选择数据质量维度以描述此资产中规则逻辑的主数据质量指标。 所选维度可用作报告类别,用于过滤或可视化所选数据。
启用 使用 SQL 语句 选项。
通过选择现有连接或创建新连接来指定要检查的数据源。 有关受支持的数据源,请参阅 数据质量规则的受支持连接类型。
如果您选择现有连接,并且此连接是使用个人凭证创建的,那么您将需要解锁该连接。
输入 SQL 语句。
编写查询时,请确保 SELECT 语句满足以下条件:
- 该语句仅返回具有唯一名称的列。 具有重复名称的列将导致验证错误。
- 该语句返回不满足数据质量条件的记录。 基于 SQL 的规则的工作方式与从数据质量定义创建的规则不同。 它们报告 SELECT 语句作为
failed或Not met返回的记录。 此外,报告的记录总数等于返回的记录数,而不是检查的记录数。
例如,假设您有一个包含 31 行的表
db2admin.credit_card,并且要检查表中有多少条卡类型为 AMEX 的记录,那么差异如下所示:数据质量定义中的数据质量规则
检查卡类型为 AMEX 的记录。
数据质量定义中的表达式:Col = 'AMEX'
数据质量规则中的 Bound 表达式:credit_card.card_type = 'AMEX'
样本结果:Total: 31 | Met: 4 (12.9%) Not met: 27 (87.1%)基于 SQL 的数据质量规则
检查卡类型不是 AMEX 的记录。
SELECT 语句:select card_type from db2admin.credit_card where card_type <> 'AMEX'
样本结果:Total: 27 | Met: 0 (0%) Not met: 27 (100%)提示: PostgreSQL 数据源中的表和模式名称区分大小写。 您可能需要将名称括在双引号中,如以下示例中所示: "schema". "table_name"您可以随时测试 SQL 语句。 请注意,测试仅返回由查询选择的列的名称。 未执行任何实际处理。 单击 下一步时,将完成有效性检验。 除非查询通过此检查,否则无法继续。
配置输出设置和内容。
选择是否要将规则输出写入数据库。 如果没有,那么在规则的运行历史记录中仅提供一些统计信息。
要生成数据库表:
启用 外部输出 选项并展开该部分。
还会将此类输出表作为具有 输出类型 设置中定义的表名称的数据资产添加到项目中。 您可以从其中或从规则的 运行历史记录中访问该命令。
配置以下设置:
输出类型: 指定连接,模式和表。 您可以从现有模式和表中进行选择,也可以在现有模式中创建新表。 要为输出创建新表,请输入名称,而不是从可用表中进行选择。
有关受支持的数据库类型,请参阅 数据质量规则的受支持连接类型。
输出记录: 对于 SQL 规则,仅捕获不满足规则条件的记录。 请参阅有关 定义 SQL 语句的信息。
- 最大异常输出记录数: 可以包含所有记录或设置最大数目。 当您设置最大数目时,请注意输出表可以包含比指定数目更少的记录。 如果少于指定数目的记录符合输出记录的要求,但由于 DataStage 作业中的负载均衡,也会发生此情况。 如果其中一个执行节点迂到的输出记录数少于其在允许的最大输出记录数中所占的比例,那么所有执行节点写入输出表的记录总数小于指定的最大数目。
- 更新方法: 可以将新的输出记录追加到输出表的现有内容中。 如果要仅保留最新运行的输出结果,请选择覆盖现有记录。 更改已运行但仍写入同一输出表的数据质量规则的输出内容时,请确保使用更新方法 覆盖 将输出表中的列替换为新定义的输出列。
完成后,折叠该部分并继续配置输出内容。
配置输出表的内容。 缺省情况下, SQL 查询选择的所有列都包含在输出表中。 您可以除去所选列或所有这些列,并添加其他内容。 单击 添加输出内容 ,然后选择下列其中一个选项:
列: 选择要在输出表中看到的列。 您可以从 SQL 查询返回的所有列中进行选择。
统计信息和属性: 选择要包含在输出表中的任何其他属性或统计信息:
- 记录标识: 包含用于标识输出中的记录的唯一键。
- 规则名称: 包含数据质量规则的名称。
- 系统日期: 显示运行规则的系统日期。 系统日期是在服务器上设置的时区中的日期。
- 系统时间戳记: 显示运行规则的系统日期和时间。 系统日期和时间是在服务器上设置的时区中的日期和时间。
- 传递规则: 显示记录满足的规则条件数。
- 失败的规则: 显示记录未满足的规则条件数。
- 通过规则的百分比: 显示已满足的规则条件的百分比。
- 失败规则百分比: 显示未满足的规则条件的百分比。
请检查配置。 要确保正确配置规则,可以在实际将其保存到项目之前对其进行测试。 将直接显示规则测试的输出,并与您在输出设置中配置的内容相匹配。
要更改配置,请单击磁贴上的编辑 (
) 图标并更新设置。 完成复审后,单击 创建。 规则及其相关的 DataStage 流将添加到项目中。 DataStage 流的缺省名称为
DataStage flow of data rule <rulename>。
如果正确配置了规则而未缺少任何信息,那么其状态为 就绪。 此状态表示可以运行规则。 规则状态 未就绪 指示由于 SQL 语法错误,修改的依赖关系或其他规则定义问题而无法运行规则。 例如,用于访问数据源的密码已更改。 对于使用 Watson Data API 创建的数据质量规则,更有可能看到此状态:创建数据质量规则。 使用 API 创建数据质量规则时,请确保还测试并验证该规则。
了解更多
后续步骤
父主题: 管理数据质量规则