排查数据谱系问题

本文档介绍了如何解决 Data Catalog 数据沿袭方面的问题。

项目类型

数据资产可以位于不同的项目中。以下是可能的项目及其资源名称的摘要。

BigQuery 存储项目

此项目用于存储您的 BigQuery 数据资产。您可以在素材资源详情中找到它,位于 Table ID 的第一个英文句点之前。

在 BigQuery 界面中,存储空间项目名称显示在“表 ID”字段中,位于完全限定表名称中的第一个点之前。
图 1. BigQuery 存储项目的名称。

计算项目

此项目用于存储数据沿袭元数据。对于 BigQuery,您可以在该位置运行作业。如果您使用 Google Cloud 控制台运行作业,则可以在项目选择器中找到计算项目名称:

BigQuery 界面会在您运行 SQL 查询的页面上显示一个名为 docs-compute 的计算项目。
图 2. 运行 BigQuery 作业的计算项目的名称。

向 BigQuery API 发送请求时,请在网址中指定计算项目,例如:

POST /bigquery/v2/projects/docs-compute/jobs HTTP/1.1
Host: bigquery.googleapis.com
User-Agent: Go-http-client/1.1
Authorization: <REDACTED 1031 BYTES>
Accept-Encoding: gzip
{
  "configuration": {
    "query": {
      "useLegacySql": false,
      "query": "CREATE OR REPLACE TABLE `docs-target.dataset.target-002` AS SELECT * FROM `docs-source.dataset.source-002`;"
    }
  },
  "jobReference": {
    "projectId": "docs-compute",
    "jobId": "docs-compute-job-id",
    "location": "us",
  }
}

正在使用的项目

这是您查看数据谱系所在的项目。Google Cloud 控制台会在项目选择器中显示当前项目。如果您使用的是 API,则当前项目是您发出 API 调用的项目。

BigQuery 界面显示了名为 source-001 的数据集的数据传承,该数据集位于名为 docs-source 的项目中。
图 3. Google Cloud 控制台中的有效项目。

BigQuery 数据谱系未显示

运行 BigQuery 作业后,会出现以下问题。在这种情况下,问题可能由以下三种情况引起:

  • 活跃项目计算项目中停用了 Data Lineage API。
  • 您在有效Compute 项目中没有 Data Lineage Viewer (roles/datalineage.viewer)。
  • 数据谱系尚未到达。数据源流水线的显示时间可能介于标准 30 分钟到 24 小时之间,具体取决于所处理数据的量和复杂性。

如果您在页面底部看到“由于缺少权限,未能提取沿袭”消息,则表示您缺少对有效项目的权限。否则,您缺少计算项目的权限。

空白的谱系图。
图 4. 谱系未显示在 BigQuery 界面中的示例。

如需解决此问题,请检查是否已为计算项目启用 Data Lineage API。启用该 API 后,您需要运行作业才能查看数据沿袭。数据源流水线的显示时间可能介于标准 30 分钟到 24 小时之间,具体取决于所处理数据的量和复杂程度。

接下来,检查是否为有效项目启用了 Data Lineage API。

启用 Data Lineage API 后,在有效计算项目中授予 Data Lineage Viewer (roles/datalineage.viewer) 权限。

BigQuery 进程元数据未显示

打开表格详情窗格时,会出现以下问题:该窗格不会显示 SQL 语句或 Process type 属性等所有详细信息。即使数据谱系正常显示,也会出现这种情况。

如果您无权查看计算项目中的元数据,就可能会发生这种情况。

示例:

  • BigQuery 源表:docs-source.dataset.source-001
  • BigQuery 目标表:docs-target.dataset.target-001
  • 计算项目 docs-computedocs-source.dataset.source-001docs-target.dataset.target-001 之间的数据沿袭
  • 您拥有活跃计算 docs-compute 项目的数据沿袭查看器角色。

点击 BigQuery 进程详情后,Google Cloud 控制台中会显示以下消息:

You don't have permission to view BigQuery process metadata in project X.
在 BigQuery 界面的“谱系”标签页上,“详细信息”窗格会显示一条错误消息。
图 5. BigQuery 进程详情未显示在 BigQuery 界面中的示例。

如需解决此问题,请在计算项目中向用户授予 bigquery.jobs.get 权限(例如,包含在 BigQuery Resource Viewer 角色中)。

BigQuery 表详情未显示

打开表格详情窗格时,会出现以下问题,其中仅显示 Fully qualified name 属性。即使数据谱系正常显示,也会出现这种情况。如果您没有表格的存储空间项目中的所有必要权限,就可能会发生这种情况。

示例:

  • BigQuery 表 docs-source.dataset.source-001
  • BigQuery 表 docs-target.dataset.target-001
  • docs-source.dataset.source-001docs-target.dataset.target-001 之间的数据传承,其中包含计算项目 docs-compute
  • 您拥有活跃计算 docs-compute 项目的数据沿袭查看器角色

在这种情况下,点击 BigQuery 节点详情后,您会看到一条消息 Entry with this fully qualified name is not available in the Data Catalog

BigQuery 表详情未显示。
图 6. BigQuery 表详情未显示在 BigQuery 界面中的示例。

如需解决此问题,请在存储空间项目中授予 bigquery.tables.get 权限(例如,BigQuery 数据查看器角色包含的权限)。