INFORMATION_SCHEMA.SHARED_DATASET_USAGE ビュー
INFORMATION_SCHEMA.SHARED_DATASET_USAGE
ビューには、共有データセット テーブルの使用に関するほぼリアルタイムのメタデータが含まれます。組織間でデータを共有するには、Analytics Hub をご覧ください。
必要なロール
INFORMATION_SCHEMA.SHARED_DATASET_USAGE
ビューをクエリするために必要な権限を取得するには、ソース プロジェクトに対する BigQuery データオーナー(roles/bigquery.dataOwner
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
この事前定義ロールには、INFORMATION_SCHEMA.SHARED_DATASET_USAGE
ビューに対するクエリの実行に必要な bigquery.datasets.listSharedDatasetUsage
権限が含まれています。
カスタムロールや他の事前定義ロールを使用して、この権限を取得することもできます。
スキーマ
基になるデータはjob_start_time
列で分割され、project_id
と dataset_id
でクラスタ化されます。
INFORMATION_SCHEMA.SHARED_DATASET_USAGE
のスキーマは次のとおりです。
列名 | データの種類 | 値 |
---|---|---|
project_id
|
STRING
|
(クラスタリング列)共有データセットを含むプロジェクトの ID。 |
dataset_id
|
STRING
|
(クラスタリング列)共有データセットの ID。 |
table_id
|
STRING
|
アクセスされたテーブルの ID。 |
data_exchange_id
|
STRING
|
データ交換のリソースパス。 |
listing_id
|
STRING
|
リスティングのリソースパス。 |
job_start_time
|
TIMESTAMP
|
(パーティショニング列)このジョブの開始時間。 |
job_end_time
|
TIMESTAMP
|
このジョブの終了時間。 |
job_id
|
STRING
|
ジョブ ID。たとえば、「bquxjob_1234」。 |
job_project_number
|
INTEGER
|
このジョブが属するプロジェクトの数。 |
job_location
|
STRING
|
ジョブのロケーション。 |
linked_project_number
|
INTEGER
|
サブスクライバーのプロジェクトのプロジェクト番号。 |
linked_dataset_id
|
STRING
|
サブスクライバーのデータセットのリンクされたデータセット ID。 |
subscriber_org_number
|
INTEGER
|
ジョブが実行された組織番号。これはサブスクライバーの組織番号です。組織のないプロジェクトの場合、このフィールドは空になります。 |
subscriber_org_display_name
|
STRING
|
ジョブが実行された組織を参照する、人が読める形式の文字列。これはサブスクライバーの組織番号です。組織のないプロジェクトの場合、このフィールドは空になります。 |
num_rows_processed
|
INTEGER
|
ジョブによってこのテーブルから処理された行数。 |
total_bytes_processed
|
INTEGER
|
ジョブによってこのテーブルで処理された合計バイト数。 |
データの保持
INFORMATION_SCHEMA.SHARED_DATASET_USAGE
ビューには、実行中のジョブと過去 180 日間のジョブ履歴が含まれます。
スコープと構文
このビューに対するクエリでは、リージョン修飾子を指定する必要があります。リージョン修飾子を指定しない場合、メタデータは US リージョンから取得されます。次の表で、このビューのリージョン スコープを説明します。
ビュー名 | リソース スコープ | リージョン スコープ |
---|---|---|
[PROJECT_ID.]INFORMATION_SCHEMA.SHARED_DATASET_USAGE |
プロジェクト レベル | US リージョン |
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE |
プロジェクト レベル | REGION |
省略可: PROJECT_ID
: Google Cloud プロジェクトの ID。指定しない場合は、デフォルトのプロジェクトが使用されます。
REGION
: 任意のデータセット リージョン名。例: `region-us`
例
デフォルト プロジェクト以外のプロジェクトに対してクエリを実行するには、次の形式でプロジェクト ID を追加します。
PROJECT_ID
.region-REGION_NAME
.INFORMATION_SCHEMA.SHARED_DATASET_USAGE
例: myproject.region-us.INFORMATION_SCHEMA.SHARED_DATASET_USAGE
すべての共有テーブルで実行されたジョブの合計数を取得する
次の例では、プロジェクトのサブスクライバーによって実行されたジョブの合計数を計算します。
SELECT COUNT(DISTINCT job_id) AS num_jobs FROM `region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE
次のような結果になります。
+------------+ | num_jobs | +------------+ | 1000 | +------------+
サブスクライバーによって実行されたジョブの合計数を確認するには、WHERE
句を使用します。
- データセットには
WHERE dataset_id = "..."
を使用します。 - テーブルには
WHERE dataset_id = "..." AND table_id = "..."
を使用します。
処理された行数に基づいて最も使用頻度の高いテーブルを取得する
次のクエリは、サブスクライバーによって処理された行数に基づいて最も使用されているテーブルを計算します。
SELECT dataset_id, table_id, SUM(num_rows_processed) AS usage_rows FROM `region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE GROUP BY 1, 2 ORDER BY 3 DESC LIMIT 1
出力は次のようになります。
+---------------+-------------+----------------+ | dataset_id | table_id | usage_rows | +---------------+-------------+----------------+ | mydataset | mytable | 15 | +---------------+-------------+----------------+
テーブルを使用している上位の組織を確認する
次のクエリは、テーブルから処理されたバイト数に基づいて上位のサブスクライバーを計算します。num_rows_processed
列を指標として使用することもできます。
SELECT subscriber_org_number, ANY_VALUE(subscriber_org_display_name) AS subscriber_org_display_name, SUM(total_bytes_processed) AS usage_bytes FROM `region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE GROUP BY 1
出力は次のようになります。
+--------------------------+--------------------------------+----------------+ |subscriber_org_number | subscriber_org_display_name | usage_bytes | +-----------------------------------------------------------+----------------+ | 12345 | myorganization | 15 | +--------------------------+--------------------------------+----------------+
組織に所属していないサブスクライバーの場合は、subscriber_org_number
の代わりに job_project_number
を使用します。
データ エクスチェンジの使用状況の指標を取得する
データ エクスチェンジとソース データセットが異なるプロジェクトに存在する場合、次の手順でデータ交換の使用状況の指標を表示します。
- 対象のデータ エクスチェンジに属するすべてのリスティングを検索します。
- リスティングに関連付けられているソース データセットを取得します。
- データ エクスチェンジの使用状況の指標を表示するには、次のクエリを使用します。
SELECT * FROM source_project_1.`region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE WHERE dataset_id='source_dataset_id' AND data_exchange_id="projects/4/locations/us/dataExchanges/x1" UNION ALL SELECT * FROM source_project_2.`region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE WHERE dataset_id='source_dataset_id' AND data_exchange_id="projects/4/locations/us/dataExchanges/x1"