0 / 0
Go back to the English version of the documentation
根据数据质量定义创建规则
Last updated: 2024年12月13日
根据数据质量定义创建规则

您可以根据项目中的数据质量定义创建数据质量规则。

可以将多个数据质量定义应用于一个表,或者将同一定义绑定到单个数据质量规则中同一表的多个列。

项目中必须至少存在一个数据质量定义。 请参阅 管理数据质量定义

要根据数据质量定义创建数据质量规则:

  1. 打开一个项目,点击新资产 > 测量和监控数据质量

    或者,您可以直接从数据质量定义创建规则。

  2. 定义详细信息:

    • 指定数据质量规则的名称。

    • 可选:提供描述。

    • 选择此数据质量规则所提供的数据质量维度。 数据质量维度描述此资产中规则逻辑的数据质量指标。 所选维度可用作报告类别,用于过滤或可视化所选数据。

      您可以在以下选项之间进行选择:

      应用所有预设维度
      此规则将对所使用的数据质量定义上设置的所有维度的评分进行添加。 这是缺省设置。
      仅应用此维度
      该规则仅对所选维度的分数作出贡献。 将忽略此规则中使用的数据质量定义上的维度设置。 如果选择此选项但未设置数据质量维度,那么将在 维度中捕获规则的个别检查的数据质量得分。
    • 可选: 将要创建的规则类型更改为基于 SQL 的规则。 在这种情况下,请继续执行 创建基于 SQL 的规则中的指示信息。

  3. 至少添加一个数据质量定义。 如果直接从数据质量定义创建规则,那么已预先选择该定义。 但是,您可以删除此预先选择的数据质量定义并选择不同的数据质量定义。

    要添加数据质量定义,请单击 添加 ,然后选择要用于在同一规则中创建多个检查的所有数据质量定义。 仅当未选择数据质量定义时, 添加 按钮才可用。 添加至少一个定义后,可以使用加号图标添加更多定义。

    对于 " 选择数据质量定义 " 对话框中的任何数据质量定义,配置的规则表达式将显示在侧面板中,以帮助您选择最适合您用途的定义。

    如果要将同一定义应用于表的不同列,那么可以根据需要多次复制所选数据质量定义。

    请注意,根据输出配置,将为每个已通过或失败的检查创建输出表中的单独条目。

  4. 配置绑定。

    对于每个数据质量定义,将数据绑定到规则表达式中的所有变量。 可以将列数据,字面值或作业参数绑定到变量。 根据配置的绑定,您可能需要创建连接,如下一步中所述。

    要完成绑定,可以使用 上一个下一个 箭头或下拉列表在数据质量定义之间移动。 绑定表显示所有变量及其数据类型。 对于每个变量,请选择绑定类型以及要将该变量绑定到的数据。

    当您将列数据直接绑定到规则中的变量时,可以使用来自项目中所有数据资产的数据,这些数据来自其中一个受支持的连接。 请参阅 用于组织和数据质量的受支持连接器。 如果要从使用个人凭证创建的连接绑定数据,那么需要先解锁该连接。 除了来自连接的数据资产外,您还可以使用从本地文件系统上载的 CSV 格式文件中的数据资产或从基于文件的数据源连接中的数据资产。

    但是,绑定可能需要预处理数据,或者您可能希望在输出表中包含其他信息。 在这种情况下,请启用 在外部管理绑定 选项并激活 DataStage。 将除去所有现有绑定并创建 DataStage 流。 缺省情况下, DataStage 流名为 <rule_name>_DataStage_flow,但您可以更改该名称。 完成规则配置后,配置 DataStage 流。 在外部创建此类复杂规则和管理绑定时,可以使用来自 DataStage支持的连接的所有数据资产。 请参阅 DataStage 连接器

    要让具有外部绑定的数据质量规则为资产或列的数据质量评分做出贡献,可将该资产或列作为相关项添加到相应的规则中。 使用 验证 关系类型的数据质量。 对于与此关系类型链接的所有资产和列,将报告相同的分数和问题。

    除了将规则变量绑定到单个字面值或列之外,您还可以使用项目级别的作业参数。

    您可以使用 参数到字面值 选项将规则变量绑定到集中管理的字面值,并且可以在运行时更改这些值。 此类参数通常表示事实或特定数据片段。 通过使用参数而不是规则中的实际值,可确保规则在值发生更改时始终使用最新值。

    必须先创建可复用的 DataStage 参数集,然后才能将规则变量绑定到作业参数:

    1. 在您的项目中,点击新资产>定义可重复使用的参数集
    2. 使用缺省值或值集定义参数。 要在规则中使用,您可以定义类型为 date , integer , string , float , time 或 timestamp 的参数。 不支持已加密的类型,列表和路径。 请参阅 创建和使用参数和参数集

    使用值集时,可以更改每个作业运行的变量值。 编辑运行时参数值并重新运行作业。

    您还可以定义要在绑定中用作项目级别作业参数的列,以便更轻松地进行维护。 列参数由资产标识和列名组成,并且还存储在 DataStage 参数集中。 您可以创建新的参数集或将列参数添加到现有参数集。 在这种情况下,必须创建类型为字符串的参数,并手动输入所需的资产标识和列名作为缺省值。 更简单的方法是在创建规则时在绑定步骤中添加此类参数。

    1. 作为 绑定类型,选择 列中的参数。 然后,单击 选择参数
    2. 列出了所有可用的参数集。 展开要使用的项。
    3. 要添加参数,请单击加号图标。
    4. 指定参数名称。 跳过 提示 字段。 它不用于列参数。
    5. 选择数据资产和列。 您的选择将设置为参数的缺省值。

    请注意,值集不能与列参数一起使用。 此外,无法在运行时更改列参数。

    如果更新在多个规则中使用的列参数,那么必须通过打开这些数据质量规则并单击 运行规则来重新运行这些规则中的每个数据质量规则。

  5. 创建连接。 如果绑定无需连接,那么可以移至下一步。 但是,如果要在输出表中使用来自多个表的数据,那么必须创建与这些表的连接。 如果在外部管理绑定,那么无法在规则配置中创建连接。 还必须在 DataStage 流中定义连接。

    如果绑定需要连接,那么将列出这些表。 设置连接后,将显示 连接完成 列中的复选标记。 在 连接键 表中,针对要定义的每个连接完成以下步骤:

    1. 单击 添加密钥对

    2. 单击 密钥 1。 然后,选择要在连接中使用的第一个项。

    3. 单击 键 2 ,然后选择第二项。

    4. 选择连接类型:

      内连接 (Inner Join)
      所选列包含相等值的记录将传输到输出数据集。
      左外连接 (Left Outer Join)
      为键 1 选择的列的所有记录都将传输到输出表。 仅当值匹配时,才会传输为键 2 选择的列的记录。
      右外连接 (Right Outer Join)
      为键 2 选择的列的所有记录都将传输到输出表。 仅当值匹配时,才会传输为键 1 选择的列的记录。
      全外连接
      这两个表中的所有记录都将传输到输出表。

    您可以随时更改连接类型。 但是,如果要更改对密钥 1 或密钥 2 的选择,那么必须删除现有密钥对并创建新的密钥对。

  6. 可选: 配置采样。

    如果您不希望或不需要评估数据资产的所有行,请启用数据采样。 因此,您可以根据一小部分数据生成结果。

    对于定期连接的数据资产,将在数据源上执行采样。 在大多数数据库中,记录的顺序不是确定性的。 因此,样本中包含的记录可能因运行而异,这意味着输出表的结果和内容 (如果已配置) 也可能随时间变化。

    对于基于查询的已连接数据资产,不会在数据源上执行采样,而是在与规则关联的 DataStage 流的 Sample 阶段中执行采样。

    1. 设置样本的最大大小。 选择要包含在数据样本中的最大记录数。 缺省值为 1,000 条记录。

    2. 选择采样方法:

      顺序
      该样本包含数据资产的前 x 条记录。 根据数据资产的大小,数字 x 最多可以达到您指定为允许的最大样本大小的值。 例如,如果您有 1,000,000 条记录,并且指定最大样本大小为 2,000 ,那么样本将包含前 2,000 条记录。
      时间间隔
      样本包含每 n条记录,直到达到允许的最大样本大小为止。 例如,如果您有 100 万条记录,并指定样本大小为 2,000 且间隔为 10,那么最多将读取 20,000 条记录 (2,000*10),并且将选择每第 10 条记录以得出样本大小 2,000。
      RANDOM
      样本包含随机选择的记录,直至达到允许的最大样本大小。 用于选择记录的公式为 (100/sample_percent)*sample_size*2。 在此公式中使用数字 2,以确保读取足够的记录来生成有效的随机样本大小。 例如,如果您有 1,000,000 条记录,并且指定样本大小为 2,000 且百分比为 5 ,那么样本包含 2,000 条记录。 要创建样本,最多可读取 80,000 条记录 ((100/ 5) * 2,000 * 2 = 80,000)。
      百分比 字段中,指定要用于创建样本的百分比。 请指定大于 0 且最多为 100 的值。
  7. 配置输出设置和内容。

    选择是否要将规则输出写入外部位置。 如果没有,那么在规则的运行历史记录中仅提供一些统计信息。

    您可以选择将规则输出写入数据库表。 如果在外部管理绑定,那么您还可以选择最多创建 4 DataStage 输出链接。

    要生成数据库表或输出链接:

    1. 启用 外部输出 选项并展开该部分。

    2. 选择要生成的输出类型:

      • 要将输出写入数据库表,请选择下列其中一个选项:

        • 写入新的数据库表

          选择连接。 根据所选连接,选择模式,或选择目录和模式。 然后,输入要创建的输出表的名称。

          运行规则时,此新输出表也会作为数据资产添加到项目中。

        • 写入现有数据库表

          选择连接。 根据所选连接,选择模式和现有表,或选择目录、模式和现有表。 输出内容部分由该表格的列填充,您可以将内容映射到这些列。

          如果项目中不存在相应的数据资产,那么将在运行规则时创建相应的数据资产。

        有关受支持的数据库类型,请参阅 用于组织和数据质量的受支持连接器。 模式和表名必须遵循以下约定:

        • 名称的第一个字符必须是字母字符。
        • 其余名称可以由字母字符,数字字符或下划线组成。
        • 名称不得包含空格。

        您可以从项目中的 " 资产 " 页面或从规则的 运行历史记录访问对应于规则输出表的数据资产。

        配置以下设置:

        • 输出记录: 选择是要在输出中包含所有记录,仅包含不符合规则条件 (缺省设置) 的记录,还是仅包含符合规则条件的记录。

        • 最大异常输出记录数: 可以包含所有记录或设置最大数目。

        • 更新方法: 可以将新的输出记录追加到输出表的现有内容中。 如果要仅保留最新运行的输出结果,请选择覆盖现有记录。

          对于更新方法 追加,无法更改表模式,即,无法重命名,添加或删除列。 如果要更改数据质量规则的输出内容并写入现有输出表,请确保使用更新方法 覆盖 将输出表中的列替换为新定义的输出列。

      • 要在 DataStage 流中管理绑定时创建输出链接,请选择 DataStage 输出链接

        最多配置 4 个输出链接。 选择应该路由到特定链接的输出: 所有记录,仅不符合规则条件的记录,仅符合规则条件的记录或所有违反规则条件的记录。

        此外,定义每个链接要写入的最大输出记录数。

        输出记录的内容由您在下一步中配置的内容确定。 对于违反的规则条件,可以根据规则中的数据质量定义数返回 0 或更多输出记录。 每个输出记录都具有以下信息:

        • 记录标识。 此度量将自动设置为输出列。
        • 输入记录未传递的其中一个定义的定义标识
        • 在定义重复的情况下唯一标识失败定义的编号

        要将定义 ID 映射到项目中的数据质量定义,请使用 IBM Knowledge Catalog API:

        必须在 DataStage 流中配置这些输出链接的目标节点。

      您可以随时更改输出类型。 根据您的新选择,将重置或覆盖任何已配置的设置。

      完成后,折叠该部分并继续配置输出内容。

    3. 配置输出表的内容。

      1. 如果在外部管理绑定,那么可以在输出表中包含通过 DataStage 输入链接提供的任何其他列。 此类列不会列示在输出表配置中。 不能包含在规则绑定中使用的任何变量。

      2. 单击 添加输出内容 ,然后选择下列其中一个选项:

        • : 选择要在输出表中看到的列。 如果在外部管理绑定,那么此选项不可用。
        • 统计信息和属性: 选择要包含在输出表中的任何其他属性或统计信息:
          • 绑定到资产 ID:列出规则绑定的数据资产 ID。 如果选择此指标,则会为数据质量规则中的每个数据资产写入一条输出记录。 因此,可以为单个输入记录写入多条输出记录。 同一数据质量规则的不同资产的输出记录内容仅在每个输入记录的这些指标上有所不同:数据质量定义数据质量定义 ID与资产 ID 绑定,以及可能的通过规则未通过规则通过规则百分比未通过规则百分比

            此度量值不可用于具有外部管理的绑定的规则。 此外,该指标只能与数据质量定义数据质量定义 ID指标结合使用。 如果规则与多个数据质量定义相关联,则输出中会自动包含度量消歧器

          • 绑定到列: 列出每个绑定列的名称。 如果选择了此度量值,那么将为数据质量定义中的每列写入一条输出记录。 因此,可以为单个输入记录写入多条输出记录。 同一数据质量定义的不同列的输出记录内容仅在每个输入记录的这些指标上有所不同:"数据质量定义、"数据质量定义 ID、"绑定到栏目,可能还有 "通行规则、"不合格规则、"通过百分比规则和 "未通过规则的百分比

            此度量值不可用于具有外部管理的绑定的规则。 此外,该指标只能与数据质量定义数据质量定义 ID指标结合使用。 如果规则与多个数据质量定义相关联,则输出中会自动包含度量消歧器

          • 数据质量定义: 列出应用的数据质量定义的名称。 如果选择了该指标,可能会写入多条输出记录,具体取决于规则包含的数据质量定义的数量。

          • 数据质量定义 ID:包含一个唯一密钥,用于识别应用的数据质量定义。 如果选择了该指标,可能会写入多条输出记录,具体取决于规则包含的数据质量定义的数量。

          • 消歧器:包含一个数字,主要用于在一个数据质量定义被多次使用的情况下,对规则中使用的数据质量定义进行消歧。 编号从 0 开始。

          • 失败的规则: 显示记录未满足的规则条件数。

          • 任务 ID:包含一个唯一密钥,用于识别与规则的DataStage流程相关联的作业。

          • 任务运行 ID:包含一个唯一密钥,用于识别与规则的DataStage流程相关联的作业的单个运行。

          • 传递规则: 显示记录满足的规则条件数。

          • 通过规则的百分比: 显示已满足的规则条件的百分比。

          • 失败规则百分比: 显示未满足的规则条件的百分比。

          • 项目 ID:包含一个唯一密钥,用于识别规则所在的项目。

          • 记录标识: 包含用于标识输出中的记录的唯一键。 对于违反规则条件的输出链接,将自动包含此度量值。

          • 规则 ID:包含标识数据质量规则的唯一密钥。

          • 规则名称: 包含数据质量规则的名称。

          • 系统日期: 显示运行规则的系统日期。 系统日期是在服务器上设置的时区中的日期。

          • 系统时间:显示运行规则时的系统日期和时间。 系统日期和时间是在服务器上设置的时区中的日期和时间。

        • 变量: 从要包含在输出表中的规则逻辑中选择变量。
        • 表达式: 添加用于定义输出列内容的表达式。 您可以在输出内容概述中为此列提供描述性名称。 您可以使用块元素来构造表达式。 根据需要选择并组合元素。 有关使用块元素的更多信息,请参阅 管理数据质量定义。 或者,您可以使用自由格式编辑器来构造表达式。 请参阅 规则逻辑或规则输出的构建块
  8. 请检查配置。 要确保正确配置规则,可以在实际将其保存到项目之前对其进行测试。 将直接显示规则测试的输出,并与您在输出设置中配置的内容相匹配。

    要更改配置,请单击磁贴上的编辑图标 "编辑图标并更新设置。

    完成复审后,单击 创建。 规则及其相关的 DataStage 流将添加到项目中。 DataStage 流的缺省名称为 DataStage flow of data rule <rulename>。 请勿编辑此类流。

    如果使用外部管理的绑定配置了规则,那么当您单击 创建时,会将规则和 DataStage 流及其子流添加到项目中。 但是,您的规则还没有准备好运行。 必须先编辑 DataStage 流,然后才能运行该规则。 您还可以选择 创建和编辑 DataStage 流程。 在这种情况下,规则和 DataStage 流及其子流也会添加到项目中,但您将直接转至 DataStage 流配置。 此类 DataStage 流的命名遵循模式 <rule-name>_Datastage_flowDataStage subflow of data rule <rulename>。 有关配置流的更多信息,请参阅 DataStage 流

如果正确配置了规则而未缺少任何信息,那么其状态为 就绪。 此状态表示可以运行规则。 规则状态 未就绪 指示无法运行规则,因为已修改某些依赖关系。 例如,更新了数据质量定义,或者除去了规则的绑定中使用的表。 如果未配置关联的 DataStage 流,那么对于具有外部管理的绑定的规则,还会显示状态 未就绪 。 配置流程后,可以通过从溢出菜单中选择 验证 来验证规则。 如果验证成功,那么状态将设置为 Ready,您可以运行规则。

对规则分析的数据资产进行修改后,规则可能不再有效。 因此,您可能希望在手动运行规则之前验证任何情况下的规则状态。

了解更多信息

后续步骤

父主题: 管理数据质量规则

Generative AI search and answer
These answers are generated by a large language model in watsonx.ai based on content from the product documentation. Learn more