データリネージの問題のトラブルシューティング

このドキュメントでは、Data Catalog データリネージに関する問題を解決する方法について説明します。

プロジェクトの種類

データアセットは異なるプロジェクトに存在できます。使用可能なプロジェクトとそのアセット名の概要は次のとおりです。

BigQuery ストレージ プロジェクト

このプロジェクトには、BigQuery データアセットが保存されます。アセットの詳細で、Table ID の一部として最初のドットの前に表示されます。

BigQuery UI では、ストレージ プロジェクト名が、完全修飾されたテーブル名の最初のドットの前に [Table ID] フィールドに表示されます。
図 1: BigQuery ストレージ プロジェクトの名前。

コンピューティング プロジェクト

このプロジェクトには、データリネージのメタデータが保存されます。BigQuery の場合、ここでジョブを実行します。Google Cloud コンソールを使用してジョブを実行する場合は、プロジェクト セレクタでコンピューティング プロジェクト名を確認できます。

BigQuery UI の SQL クエリを実行するページに、docs-compute というコンピューティング プロジェクトが表示されます。
図 2.BigQuery ジョブを実行するコンピューティング プロジェクトの名前。

BigQuery API にリクエストを送信する場合は、URL にコンピューティング プロジェクトを指定します。次に例を示します。

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 UI で、docs-source というプロジェクトにある source-001 というデータセットのデータリネージが表示されます。
図 3. Google Cloud コンソールでアクティブなプロジェクト。

BigQuery データリネージが表示されない

BigQuery ジョブの実行後に次の問題が発生します。この場合、次の 3 つのシナリオが考えられます。

ページの下部に「権限がないためリネージを取得できませんでした。」というメッセージが表示された場合は、アクティブなプロジェクトに対する権限がありません。そうでない場合は、コンピューティング プロジェクトに対する権限がありません。

空のリネージグラフ。
図 4. BigQuery UI にリネージが表示されない例。

この問題を解決するには、コンピューティング プロジェクトで Data Lineage API が有効になっていることを確認します。API を有効にしてから、データリネージを確認するためにジョブを実行する必要があります。処理されるデータの量と複雑さに応じて、データリネージが表示されるまでに標準の 30 分から最大 24 時間かかることがあります。

次に、アクティブなプロジェクトで Data Lineage API が有効になっていることを確認します。

Data Lineage API が有効になったら、アクティブなプロジェクトとコンピューティング プロジェクトの両方でデータリネージ閲覧者roles/datalineage.viewer)を付与します。

BigQuery プロセスのメタデータが表示されない

次の問題は、テーブルの詳細ペインを開いたときに、SQL ステートメントや Process type プロパティなどのすべての詳細が表示されない場合に発生します。これは、データリネージが正しく表示されている場合でも発生します。

これは、コンピューティング プロジェクトのメタデータを表示する権限がない場合に発生します。

例:

BigQuery プロセスの詳細をクリックすると、Google Cloud コンソールに次のメッセージが表示されます。

You don't have permission to view BigQuery process metadata in project X.
BigQuery UI の場合、[Lineage] タブの [Details] ペインにエラー メッセージが表示されます。
図 5. BigQuery UI に BigQuery プロセスの詳細が表示されない例。

この問題を解決するには、コンピューティング プロジェクトでユーザーに bigquery.jobs.get 権限(BigQuery リソース閲覧者ロールに含まれる権限など)を付与します。

BigQuery テーブルの詳細が表示されない

次の問題は、テーブルの詳細ペインを開いたときに Fully qualified name プロパティのみが表示される場合に発生します。これは、データリネージが正しく表示されている場合でも発生します。これは、テーブルのストレージ プロジェクトで必要な権限をすべて持っていない場合に発生することがあります。

例:

この場合、BigQuery ノードの詳細をクリックすると、Entry with this fully qualified name is not available in the Data Catalog というメッセージが表示されます。

BigQuery テーブルの詳細が表示されない。
図 6. BigQuery UI に BigQuery テーブルの詳細が表示されない例。

この問題を解決するには、ストレージ プロジェクトbigquery.tables.get 権限(BigQuery データ閲覧者ロールに含まれる権限など)を付与します。