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

Prev Next
必要な権限

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

手動同期の場合

自動同期機能を有効にする場合
以下のいずれかのロールに所属している必要があります。

概要

COMETAで入力したメタデータをBigQueryのデータセット(スキーマ)・テーブル・カラムの説明として反映できます。
メタデータの自動同期機能を有効にすると、定期的に自動で同期させることが可能です。

また、メタデータは基本メタデータ横の更新ボタンをクリックすることで、手動で同期させることもできます。

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

BigQuery側の説明の上書き

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

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

すでにBigQueryの説明を整備済みの場合は、BigQuery側の説明をCOMETAへインポートするのを推奨します。

メタデータの自動同期

メタデータの自動同期機能は、データストア連携管理画面から有効にできます。
有効にすると、毎日定時にメタデータが自動更新されます。

自動同期では、前回の実行完了後に変更されたCOMETA側のメタデータとBigQuery側の説明の差分が検出され、COMETA側のデータがBigQueryに同期されます。

自動同期に必要な設定

アセット取得ユーザーのBigQueryのデータストア認証が必須です。

初回有効化時は次回予定に同期予定日時が表示されます。
ジョブ実行後は、前回完了に実行完了日時が表示されます。
実行履歴リンクをクリックすると、詳細ログを確認できます。

表示される実行履歴

直近90日のログを最大10件まで確認できます。

メタデータ自動同期の実行ログ

実行ログ画面では、以下の情報が表示されます。

項目 説明
ステータス 準備中、待機中、実行中、同期中、完了、またはエラー
実行タイプ スケジュール実行(定期実行)、再実行(手動)、または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;