要确定您的数据是否质量良好,请检查数据在多大程度上符合您的期望,并识别数据中的异常。 对数据进行质量评估也可以帮助您了解数据的结构和内容。
运行数据质量规则以根据定义的条件评估数据。 规则类型确定数据的来源。
根据数据质量定义创建的规则
您可以对 DataStage支持的任何连接器中的数据资产运行具有外部管理的绑定的复杂规则。 请参阅 DataStage 连接器。
对于直接绑定数据的简单规则,支持 支持的连接器 中列出的连接。
此外,您还可以使用从本地文件系统上载的 CSV 格式文件中的数据资产,或者从基于文件的数据源连接中的数据资产。
基于 SQL 的规则
有关受支持的数据库类型,请参阅 受支持的连接器。
要让具有外部绑定的数据质量规则或基于 SQL 的数据质量规则为资产或列的数据质量评分做出贡献,可将该资产或列作为相关项添加到相应的规则中。 使用 验证关系类型的数据质量。
- 必需的服务
IBM Knowledge Catalog
DataStage或DataStage as a Service Anywhere'
通过DataStage,您可以在支持的区域运行数据质量规则。 借助DataStage as a Service Anywhere,您可以使用远程引擎在IBM Cloud之外运行数据质量规则。 有关设置远程引擎的详细信息,请参阅DataStage as a Service Anywhere文档。- 所需许可权
要运行数据质量规则,您必须在项目中具有 管理员 或 编辑者 角色。 此外,您还必须具有 执行数据质量规则 用户许可权 ,并且必须有权访问与要检查的数据资产的数据源的连接。
要从规则运行历史记录或 Data quality 页面查看导致数据质量问题的数据(输出表),您必须拥有 Drill down to issue details 用户权限。 但是,任何可以访问连接的人都可以访问项目中为输出表创建的数据资产。 为限制对该数据资产的访问,应使用个人凭据设置与存储输出表的数据源的连接。
您还可以使用 API 而不是用户界面来完成以下任务。 这些 API 的链接在 了解更多信息 部分中列出。
运行数据质量规则
运行数据质量规则需要 DataStage 流,随后需要 DataStage 作业。 首次从资产中运行规则时,将自动创建具有缺省作业设置的作业。 将缺省名称为 DataStage flow of data rule <rulename>.DataStage job
的 DataStage 作业添加到项目中。
初始运行后,您可以根据需要修改作业设置,例如,设置已调度的运行。 或者,您可能想要调整在作业结束之前可接受的警告数 (缺省情况下为 100)。 要更改作业设置,请转至作业的详细信息页面,然后单击工具栏上的画笔图标。 您可以通过单击规则的运行历史记录或项目的 作业 页面中的作业名来访问作业的详细信息页面。
您还可以手动为规则创建其他 DataStage 作业,可以从项目中规则的溢出菜单创建,也可以在打开资产时从资产名称旁边的溢出菜单创建。 请参阅 创建用于运行数据质量规则的作业。
要在手动运行规则之前确认该规则仍然有效,可以通过从溢出菜单中选择 验证 来检查规则状态。
您可以通过下列其中一种方式来运行规则:
- 打开数据质量规则,然后单击 运行规则。 将此选项用于规则的初始运行,以创建关联的 DataStage 作业。
- 从项目的规则溢出菜单中选择 运行。
- 进入项目的 "作业"页面,打开作业详细信息,然后点击操作栏中的运行图标 " 运行作业。
您还可以通过设置具有用于运行规则的重复调度的作业来自动执行质量检查。
使用 IBM Cloud 凭证运行规则。 通常,您的个人 IBM Cloud API 密钥用于在不中断的情况下执行此类长时间运行的操作。 如果创建作业时凭证不可用,那么将提示您创建 API 密钥。 然后,该 API 密钥将保存为您的任务凭证。
分组规则
您可以将某些数据质量规则分组到单个 DataStage 流程中执行:
数据质量规则必须根据数据质量定义创建。
规则变量必须绑定到项目中的单个数据资产:
- 来自这些文件存储连接器之一的单个文件:Amazon S3、Apache HDFS、Azure数据湖存储或Google Cloud Storage
- 从本地文件系统上传的文件
- 单一关系数据资产
根据您分组的各个数据质量规则的配置,运行规则可能需要对数据进行多次传递。
不能对绑定到多个数据资产的数据质量规则进行分组。
您可以使用以下 API 调用来分组执行规则:
POST /data_quality/v3/projects/{project_id}/execute_rules
此 API 调用需要以下参数:
- project_id
包含规则的项目 ID
- 请求主体
有效载荷格式如下
{ "rules": [ { "id": "<rule1_id>" }, { "id": "<rule2_id>" } ] }
推动数据质量规则中的处理
数据质量规则处理的某些方面可以向下推送到数据源,以减少从数据源传输出来的数据量并加快处理速度。 列选择、在不同数据资产之间创建连接和采样都是通过关系数据库管理系统(RDBMS)向下推送到数据源,这意味着它们支持 SQL 查询。 对于基于文件的数据源,不会向下推送处理过程。 基于 SQL 的数据质量规则始终在数据源上运行。
借助DataStage as a Service Anywhere,您可以使用远程引擎在IBM Cloud之外运行数据质量规则。 有关设置远程引擎的详细信息,请参阅DataStage as a Service Anywhere文档。
列选择
对于 RDBMS 数据源,可在数据源上运行 select colA, colB from schema1.table1
这样的 SQL SELECT 语句,只从表中检索所需的列。 此类查询无法在文件存储连接的数据资产上运行。 对于此类文件,将检索所有列,并使用 DataStage Modify 阶段过滤列。
联接
如果数据质量规则有两个或更多绑定到多个数据资产的变量,则必须在某些列上连接这些数据资产。
对于 RDBMS 数据源,可在数据源上运行带 JOIN 子句(如 SELECT col1, col2 FROM schema1.table1 INNER JOIN schema1.table2 ON table1.id = table2.id
)的 SQL SELECT 语句。 通过该查询,数据资产的连接在数据源处完成。 有些 RDBMS 数据源根本不支持 JOIN 处理,或者只支持某些类型的 JOIN 子句。 例如,Google BigQuery 完全不支持 JOIN 子句。
连接数据质量规则的结果还取决于 RDBMS 数据源在连接处理过程中如何处理空值和空字符串等值。
对于来自文件存储连接的数据资产,将检索每个单独数据资产的所有记录,并使用 DataStage 连接阶段来连接数据资产。
采样
对于 RDBMS 数据源,可在数据源处进行随机和顺序采样。 对于顺序采样,需要在 SQL 语句中添加 RDBMS 特定的子句来选择记录,例如 FETCH FIRST 或 LIMIT。
对于来自文件存储连接的数据资产,将检索所有记录,并使用 DataStage 样本阶段创建样本。
正在检查运行历史记录
每次运行数据规则时,都会创建一个运行记录。 这些运行记录列示在规则的运行历史记录中,以便您可以查看每次运行时结果的更改情况。 要查看运行记录,请打开数据质量规则并转至 运行历史记录 选项卡。 每个运行记录都提供以下信息:
- 作为超链接运行的规则的开始时间。 单击链接以访问作业运行 "零售"。
- 作为超链接的相应 DataStage 作业的名称。 单击链接以访问作业详细信息。
- 运行的状态。
- 对于根据数据质量定义创建的规则:
- 已测试的记录数。
- 符合规则的记录数和已测试记录的百分比。
- 不符合规则的记录数和已测试记录的百分比。
- 对于基于 SQL 的规则:
- 未满足规则 列中的 SELECT 语句返回的记录数。
所有运行记录都会保存,并一直存储到您将其删除为止。 请考虑定期清除运行历史记录以节省空间。 您可以一次删除选定的运行记录或所有运行记录。 删除运行记录时,还会删除相应的作业运行详细信息。
检查规则输出表
如果为规则定义了输出表,那么将按配置将规则输出写入数据库表。 请参阅 从数据质量定义创建规则 或 创建基于 SQL 的规则中配置输出设置的步骤。
还会将输出表作为数据资产添加到项目中。 您可以通过下列其中一种方式访问输出表:
- 转至规则的运行历史记录,然后单击 查看输出表。 例如,如果要搜索或过滤包含大量记录的输出,可以将规则输出下载为 CSV 文件,以便在电子表格程序中使用。 输出页面还提供指向项目中相应数据资产的链接。
- 在项目中打开输出表。 搜索与规则中定义的输出表同名的数据资产。
- 使用本机数据库查询访问数据库中的表。
了解更多信息
- 创建用于运行数据质量规则的作业
- 根据数据质量定义创建规则
- 创建基于 SQL 的规则
- IBM Knowledge Catalog API:运行数据质量规则
- IBM Knowledge Catalog API:列出所有数据质量规则运行结果或其子集的历史记录
- IBM Knowledge Catalog API:获取运行的数据质量规则
父主题: 管理数据质量