アセットのメタデータをBigQueryに同期する

Prev Next
必要な権限

本機能を利用するには、以下の権限が必要です。

概要

COMETAで入力したメタデータをBigQueryのデータセット(スキーマ)・テーブル・カラムの説明として反映できます。

BigQueryメタデータ同期の設定画面

BigQuery側の説明の上書き

COMETAからの同期を実行すると、BigQuery側の既存の説明は常に上書きされます
BigQuery側で直接編集した内容は、次回のCOMETAからの同期時に失われますのでご注意ください。

COMETAからBigQueryにメタデータを同期する前に

COMETA側のメタデータを同期すると、BigQueryの説明は上書きされます。
すでにBigQueryの説明を整備済みの場合は、BigQuery側の説明をCOMETAへインポートするのを推奨します。

同期フォーマット

COMETA上の各アセットの論理名と説明が利用されます。
論理名: 説明」のフォーマットでBigQueryの説明に同期されます。


テーブルの論理名が「ユーザー情報」、説明が「ユーザー情報のテーブルです。」の場合、「ユーザー情報: ユーザー情報のテーブルです。」の文字列がBigQueryの説明に同期されます。

論理名や説明が設定されていない場合

論理名と説明がどちらも設定されていない場合、空の文字列でBigQuery側の説明も上書きされます。
どちらかが設定されている場合は、設定されているメタデータの文字列のみが同期されます。

BigQuery側で必要なパーミッション

BigQuery側のメタデータを更新するためには、アセット取得ユーザーに対し、以下のパーミッションを付与する必要があります。

  • bigquery.datasets.get
  • bigquery.datasets.update
  • bigquery.tables.get
  • bigquery.tables.update

または、個別のカスタムロール作成ではなく、BigQuery事前定義ロールを使用したい場合、BigQuery Data Ownerロールの使用が可能です。

注意事項

  • BigQueryに同期した説明がCOMETAのGoogle BigQueryに関するメタデータに反映されるのは、日次のデータストア連携ジョブの実行後です。
    • 同期したメタデータがCOMETA上に反映されるまで、最大24時間程度かかる可能性があります。
  • マテリアライズドビューでは、カラムの説明は同期されません。テーブルの説明は同期されます。
  • COMETAの基本メタデータの説明の最大長は、BigQueryの説明の最大長よりも大きいため、以下のBigQueryの制限を超えた文字列は切り詰められます。
    • データセットの説明: 最大16,384文字
    • テーブルの説明: 最大16,384文字
    • カラムの説明: 最大1,024文字

TIPS: BigQueryの説明をCOMETAにインポートする

BigQueryに保存済みの説明をCOMETAの基本メタデータの説明としてインポートできます。
以下のSQLを実行し、実行結果をCSV形式でダウンロードすると、メタデータインポート機能でインポート可能なCSV形式で取得できます。

INFORMATION_SCHEMAの指定について

以下のSQLのproject.dataset.INFORMATION_SCHEMA部分は、対象のプロジェクトIDとデータセットIDに置き換えてください。

データセットの説明をインポートする場合

SELECT
    s.catalog_name AS project_id,
    s.schema_name AS dataset_id,
    TRIM(s.option_value, '"') AS description
FROM
    `project.INFORMATION_SCHEMA.SCHEMATA_OPTIONS` s
WHERE
    s.option_name = 'description'
ORDER BY
    project_id,
    dataset_id;

テーブルの説明をインポートする場合

SELECT
    t.table_catalog AS project_id,
    t.table_schema AS dataset_id,
    t.table_name AS table_id,
    TRIM(t.option_value, '"') AS description
FROM
    `project.dataset.INFORMATION_SCHEMA.TABLE_OPTIONS` t
WHERE
    t.option_name = 'description'
ORDER BY
    project_id,
    dataset_id,
    table_id;

カラムの説明をインポートする場合

SELECT
    c.table_catalog AS project_id,
    c.table_schema AS dataset_id,
    c.table_name AS table_id,
    c.column_name AS column_id,
    c.description AS description
FROM
    `project.dataset.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS` c
WHERE
     c.description IS NOT NULL
ORDER BY
    project_id,
    dataset_id,
    table_id,
    column_id;