0 / 0
Go back to the English version of the documentation
标识主键
Last updated: 2024年8月22日
标识主键

运行主键分析以识别关系数据库中数据资产中的单个或复合主键。 主键唯一地标识数据资产中的每条记录。 每个数据资产只能有一个主键。

验证已在数据中定义的主键,并确定作为主键候选项的列。 主键必须是唯一的且不能包含空值。

此类型的分析通过查找符合数据唯一标识的列来识别数据资产的单列主键。 为了识别多列或 复合 主键,分析将确定哪些列组合包含唯一值,从而使它们成为主键的候选值。 将对不同列组合的值进行求值,并计算并置值的唯一性。 仅检查相邻列。

建议仅将置信度超过定义阈值的列和列组合 (在 扩充设置 中或针对个别运行) 作为主键。 如果已在数据中定义主键,那么将自动分配此键。 此信息必须显式包含在元数据导入中。 您仍可以使用主键分析的结果来验证定义的主键。

先决条件

必须部署 DataStage 服务以运行主键分析。

作为元数据扩充的一部分运行的所有操作都需要凭证以进行安全授权。 通常,用户 API 密钥用于在不中断的情况下执行此类长时间运行的操作。 如果尝试运行主密钥分析时凭证不可用,那么系统会提示您创建 API 密钥。 然后,该 API 密钥将保存为您的任务凭证。 请参阅 管理用户 API 密钥

如果与数据源的任何连接已锁定,那么将要求您输入个人凭证。 这是一个一次性步骤,用于为您永久解锁连接。

您可以在不首先创建资产概要文件的情况下运行主键分析。 分析不依赖于概要文件信息,例如列值的频率分布。 而是直接分析列数据。

手动设置主键

如果已使用 概要文件数据 选项分析数据,那么可以设置主键而不运行键或关系分析,也可以更改分配。 通过单击资产名称或从溢出菜单中选择 查看列 来打开资产的列视图。

  • 要设置单列主键,请选择列,然后从工具栏中选择 更多> 指定为主键
  • 要设置多列主键,请选择要组成该键的列,然后从工具栏中选择 更多> 指定为复合主键

替换主键时,将取消分配旧主键的任何关系。 必须设置新关系。

运行主键分析

要对一个或多个资产运行主键分析:

  1. 打开元数据扩充资产。

  2. 资产 选项卡上,根据需要选择资产。

  3. 从工具栏中选择 Enrich> 标识主键

    缺省情况下,此分析在单个列上运行。 但是,单个列可能不满足主键的条件。 在这种情况下,您可以选择对多个列运行分析以创建复合主键。 分析会并置不同列组合的值,计算并置值的唯一性,从而确定哪些列组合包含唯一值,使它们成为主键候选值。 根据数据资产的大小,此类分析可能非常耗时。

  4. 单击运行。 当分析完成时,系统会通知您,但您可能需要刷新扩充项结果以查看任何新的主键。

缺省情况下,分析期间标识的所有主键都具有候选状态,这意味着它们将显示为建议的键,除非您的数据已包含已定义的主键。 在这种情况下,这些列将在分析期间指定为主键。

运行另一个主键分析将删除当前分析期间未找到的所有先前建议的主键。 例如,运行单列主键分析将除去先前分析中标识的所有复合主键候选项。

检查分析结果并分配键

在资产的详细信息面板中的 密钥 选项卡上查看资产的密钥。 如果您的数据已包含主键,那么此处显示为 "已分配"。 此外,此处还列出了任何建议的密钥。 要更改指定的主键,请单击 Edit 图标 编辑图标

完整的密钥列表提供了以下信息:

  • 建议或指定为主键的列的名称,或复合主键的列名列表
  • 构成已分配或候选主键的列数
  • 构成已分配或候选主键的一个或多个列的数据类型
  • 用于分配或建议键的置信度分数
  • 每个键的不同值,唯一值和空值的数目和百分比
  • 密钥的状态,可以是 已分配建议
  • 最近一次修改列的日期

要分配主键或替换分配的键,请从键的溢出菜单中选择 分配 。 如果替换现有主键,那么将取消分配旧主键的任何关系。 然后,可以设置新关系。

取消分配或除去密钥

您可以取消分配已分配的密钥。 在这种情况下,还会取消分配此主键的任何关系,并且会将该键的状态设置为 "建议"。 然后,可以分配新的主键并设置相应的关系。

您还可以完全除去已分配的密钥或建议的密钥。 未分配此密钥的任何关系。 在重新运行主键分析时,可能会建议或再次指定已除去的键。

访问作业运行详细信息

虽然您可以从侧面板访问常规元数据扩充的作业详细信息,但必须转至项目的 作业 选项卡以查看用于主键分析的作业。 该作业的类型为 元数据扩充资产的密钥分析。 作业名遵循模式 metadata_扩充项名称 (PK 检测)。

了解更多信息

父主题: 扩充数据资产

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