本機能を利用するには、以下の権限が必要です。
手動同期の場合
- メタデータ編集者ロール
自動同期機能を有効にする場合
以下のいずれかのロールに所属している必要があります。
- アカウント特権管理者ロール
- データストアアクセス管理者ロール
概要
COMETAで入力したメタデータをBigQueryのデータセット(スキーマ)・テーブル・カラムの説明として反映できます。
メタデータの自動同期機能を有効にすると、定期的に自動で同期させることが可能です。

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

COMETAからの同期を実行すると、BigQuery側の既存の説明は常に上書きされます。
BigQuery側で直接編集した内容は、同期時に失われますのでご注意ください。
すでにBigQueryの説明を整備済みの場合は、BigQuery側の説明をCOMETAへインポートするのを推奨します。
メタデータの自動同期
メタデータの自動同期機能は、データストア連携管理画面から有効にできます。
有効にすると、毎日定時にメタデータが自動更新されます。
自動同期では、前回の実行完了後に変更されたCOMETA側のメタデータとBigQuery側の説明の差分が検出され、COMETA側のデータがBigQueryに同期されます。
アセット取得ユーザーのBigQueryのデータストア認証が必須です。
初回有効化時は次回予定に同期予定日時が表示されます。
ジョブ実行後は、前回完了に実行完了日時が表示されます。
実行履歴リンクをクリックすると、詳細ログを確認できます。

直近90日のログを最大10件まで確認できます。
メタデータ自動同期の実行ログ
実行ログ画面では、以下の情報が表示されます。
| 項目 | 説明 |
|---|---|
| ステータス | 準備中、待機中、実行中、同期中、完了、またはエラー |
| 実行タイプ | スケジュール実行(定期実行)、再実行(手動)、またはCOMETAメンテナンス |
| 件数 | 同期に成功した件数と失敗した件数 |
| 開始日時 | ジョブの開始日時 |
| 終了日時 | ジョブの終了日時 |
最新のジョブが失敗している場合は、再実行できます。
同期フォーマット
COMETA上の各アセットの論理名と説明が利用されます。
「論理名: 説明」のフォーマットでBigQueryの説明に同期されます。
例
テーブルの論理名が「ユーザー情報」、説明が「ユーザー情報のテーブルです。」の場合、「ユーザー情報: ユーザー情報のテーブルです。」の文字列がBigQueryの説明に同期されます。
論理名と説明がどちらも設定されていない場合、空の文字列でBigQuery側の説明も上書きされます。
どちらかが設定されている場合は、設定されているメタデータの文字列のみが同期されます。
BigQuery側で必要なパーミッション
BigQuery側のメタデータを更新するためには、アセット取得ユーザーに対し、以下のパーミッションを付与する必要があります。
bigquery.datasets.getbigquery.datasets.updatebigquery.tables.getbigquery.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形式で取得できます。
以下の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;