排查数据沿袭问题

本页面介绍如何解决 Data Catalog 数据沿袭的问题。

项目类型

由于数据资源可以位于不同的项目中,因此下面总结了可能的项目及其资源名称。

BigQuery 存储项目

此项目会存储您的 BigQuery 数据资源。 它位于素材资源详情中第一个点之前的 Table ID 内。

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

计算项目

此项目会存储数据沿袭元数据。 对于 BigQuery,这是您运行作业的位置。 如果您从界面运行作业,则可以在项目选择器中找到计算项目名称:

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项目中没有数据沿袭查看器 (roles/datalineage.viewer)。
  • 数据沿袭尚未到达。显示数据沿袭可能需要 30 分钟到 24 小时,具体取决于所处理数据的数量和复杂程度。

如果您在页面底部看到“因缺少权限而未能提取沿袭。”消息,则表示您缺少对活跃项目的权限。否则,您将缺少对该计算项目的权限。

显示空白沿袭图的屏幕截图。
图 4. BigQuery 界面中未显示沿袭的示例。

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

接下来,检查活跃项目是否已启用 Data Lineage API。启用该 API 后,如果您拥有所需的权限(见下文),便会看到沿袭。

启用 Data Lineage API 后,在活跃项目和compute项目中都授予 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 之间的数据沿袭
  • 您对活跃项目和compute docs-compute 项目拥有 Data lineage Viewer 角色。

点击 BigQuery 进程详情会显示以下消息:

You don't have permission to view BigQuery process metadata in project X.

在 Google Cloud 控制台中,执行以下操作:

在 BigQuery 界面的“沿袭”标签页上,“详细信息”窗格显示错误消息。
图 5. BigQuery 界面中未显示的 BigQuery 进程详细信息示例。

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

BigQuery 表详细信息未显示

当您打开表详细信息窗格,该窗格仅显示“完全限定名称”属性时,会发生以下问题。即使数据沿袭正确显示,也会发生这种情况。如果您在表的存储项目中不具备所有必需的权限,就可能会发生这种情况。

示例:

  • BigQuery 表 docs-source.dataset.source-001
  • BigQuery 表 docs-target.dataset.target-001
  • 使用计算项目 docs-computedocs-source.dataset.source-001docs-target.dataset.target-001 之间的数据沿袭,
  • 活跃项目和compute docs-compute 项目具有 Data lineage Viewer 角色的用户。

在这种情况下,用户点击 BigQuery 节点详细信息时,可以看到消息 Entry with this fully qualified name is not available in the Data Catalog

显示空表格面板的屏幕截图。
图 6. 未在 BigQuery 界面中显示的 BigQuery 表详细信息示例。

如需解决此问题,请向用户授予存储项目中的 bigquery.tables.get 权限(例如,包含在 BigQuery Data Viewer 角色中)。