本文档可帮助您排查并解决 Knowledge Catalog(以前称为 Dataplex Universal Catalog)数据沿袭图未显示的最常见问题。 解决这些问题可确保您能够成功跟踪数据移动、了解数据来源并调试数据流水线。
项目类型
数据资产可以位于不同的项目中。下表总结了可能的项目及其资产名称。
BigQuery 存储项目
此项目用于存储 BigQuery 数据资产。您可以在资产详情中找到它,作为 Table ID 的一部分,位于第一个点之前。
计算项目
此项目存储数据沿袭元数据。对于 BigQuery,这是您运行作业的位置。如果您使用 Google Cloud 控制台运行作业,可以在项目选择器中找到计算项目名称:
向 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 数据沿袭未显示
运行 BigQuery 作业后出现以下问题。在这种情况下,该问题可能由以下三种情况引起:
- Data Lineage API 已在活跃项目或计算项目中停用。
- 您在活跃或计算项目中没有 Data Lineage Viewer 角色 (
roles/datalineage.viewer)。 - 数据沿袭尚未到达。根据所处理的数据量和复杂程度,数据沿袭可能需要 30 分钟到 24 小时才能显示。
如果您看到“由于缺少权限,未能提取沿袭”消息,则表示您缺少活跃项目的权限。否则,您缺少计算项目的权限。
如需解决此问题,请检查是否已为计算项目启用 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-compute中的docs-source.dataset.source-001和docs-target.dataset.target-001之间的数据沿袭 - 您拥有活跃和计算
docs-compute项目的 Data Lineage Viewer 角色。
点击 BigQuery 进程详细信息后, Google Cloud 控制台中会显示以下消息:
You don't have permission to view BigQuery process metadata in project X.
如需解决此问题,请在计算项目中为用户授予 bigquery.jobs.get 权限(例如 BigQuery Resource Viewer 角色具有此权限)。
BigQuery 表详细信息未显示
打开表详细信息窗格时,会出现以下问题,系统仅显示 Fully qualified name 属性。即使数据沿袭显示正常,也会发生这种情况。如果您在表的存储项目中没有所有必需的权限,则可能会发生这种情况。
示例:
- BigQuery 表
docs-source.dataset.source-001 - BigQuery 表
docs-target.dataset.target-001 - 计算项目
docs-compute中的docs-source.dataset.source-001和docs-target.dataset.target-001之间的数据沿袭 - 您拥有活跃和计算
docs-compute项目的 Data Lineage Viewer 角色。
在这种情况下,当您点击 BigQuery 节点详细信息时,会看到消息 Entry with this fully qualified name is not available in Knowledge
Catalog or you do not have permissions to view it。
如需解决此问题,请在存储项目中授予 bigquery.tables.get 权限(例如 BigQuery Data Viewer 角色具有此权限)。
列级沿袭数据显示“没有可供选择的列”
在 Google Cloud 控制台中查看资产时,如果表级沿袭图正确显示,但选择列级沿袭后显示“没有可选择的列”消息,或者不显示列到列的链接,则会出现以下问题。
此问题可能会在以下情况下发生:
- 自定义 OpenLineage 事件:通过 Data Lineage API
ProcessOpenLineageRunEvent端点提取的事件仅支持表级谱系。自定义列级分面不会在Google Cloud 控制台中呈现。 - 不支持的数据源或系统:列级沿袭图仅针对 BigQuery SQL 转换和 Managed Service for Apache Spark 作业生成。其他集成系统(例如 Cloud Data Fusion 和 Vertex AI)仅支持表级沿袭。
- 不支持的 BigQuery 作业类型:不会为 BigQuery 加载作业、复制作业或例程收集列级沿袭信息。
- 外部表:不会为外部表收集上游列级沿袭信息。
- 非结构化或存储级资产:虽然基于文件的资产(例如原始 Cloud Storage 文件或存储桶)通常是非结构化的,但如果向系统报告了列级沿袭,数据沿袭可以显示这些资产的列。如果未针对文件资产报告列级沿袭,您将无法选择任何列。
- 复杂的嵌套类型:列级沿袭仅跟踪顶级列。您无法单独选择嵌套在复杂数据类型(例如
STRUCT或JSON)中的字段。 - 分区伪列:在列级谱系图中,系统分区列(例如
_PARTITIONDATE和_PARTITIONTIME)无法识别。 - 链接数量超出上限:如果转换作业生成的列级关联超过 1,500 个,Knowledge Catalog 会跳过列级沿袭数据收集,仅保留表级沿袭数据。
- 跨组织的资产:如果沿袭路径遍历位于其他组织中的资产,那么如果您不属于该资产所在的组织,则无法访问架构和列详细信息。
意外的 Knowledge Catalog 高级处理费用
您停用了 Dataplex API (dataplex.googleapis.com) 以停止收费,但仍会看到“Knowledge Catalog Premium Processing”SKU 的每日费用。
如果 Data Lineage API (datalineage.googleapis.com) 保持启用状态,则可能会出现此问题。Data Lineage API 的费用会根据“Knowledge Catalog Premium Processing”SKU 收取,但在 Google Cloud 控制台中,该 API 是作为单独的 API 进行管理的。停用 Dataplex API 不会停用 Data Lineage API,也不会停止收取相关费用。
如需确定数据沿袭是否是产生费用的原因,请在 Cloud Billing 报告中查找标签 goog-dataplex-workload-type(值为 LINEAGE)。
如需停止产生费用,请通过在项目中停用 Data Lineage API 来关闭数据沿袭。