リスティングのモニタリング

データ プロバイダは、リスティングの使用状況に関する統計情報を追跡できます。共有データの使用状況の指標を取得する方法は 2 つあります。

  • Analytics Hub を使用します。Analytics Hub を使用すると、リスティングの使用状況の指標ダッシュボードを表示できます。ダッシュボードには、1 日のサブスクリプション数、1 日に実行されるジョブ数、各組織のサブスクライバー数、各テーブルのジョブ頻度などが含まれています。共有データの使用状況の指標を取得するには、INFORMATION_SCHEMA.SHARED_DATASET_USAGE ビューにクエリを実行します。

  • INFORMATION_SCHEMA ビューを使用します。サブスクライバーがデータセットをどのように使用しているかを追跡するには、INFORMATION_SCHEMA.SHARED_DATASET_USAGE ビューに直接クエリを実行します。

Analytics Hub を使用する

Analytics Hub を使用して共有データの使用状況の指標を取得する手順は次のとおりです。

  1. Google Cloud コンソールで、[Analytics Hub] ページに移動します。

    Analytics Hub に移動

  2. 使用状況の指標を表示するリスティングを含むデータ エクスチェンジ名をクリックします。

  3. [使用状況の指標] をクリックして、次の操作を行います。

    1. [リスティング] メニューからリスティングを選択します。

    2. 期間を設定します。

このページには、使用状況に関する次の指標が表示されます。

  • 合計サブスクリプション数: 選択したリスティングでの現在のサブスクリプションの数。最大 60 日分の合計サブスクリプション数を確認できます。
  • 合計サブスクライバー数: 選択したリスティングの全サブスクリプションにおける一意のサブスクライバー数。最大 60 日分の合計サブスクライバー数を確認できます。
  • 実行されたジョブの合計数: 選択したリスティングの各テーブルで実行された一意のジョブの数。
  • スキャンされた合計バイト数: 選択したリスティングの全テーブルからスキャンされたバイト数の合計。
  • 1 日のサブスクリプション数: ある期間について選択したリスティングのサブスクリプション数を追跡するグラフ。1 日のサブスクリプション数を最大 60 日分確認できます。
  • 組織あたりのサブスクライバー数: 選択したリスティングを使用する組織と、その組織のサブスクライバーの数が一覧表示されます。
  • 1 日に実行されたジョブ数: このグラフには、選択したリスティングから取得したジョブ使用量が表示されます。
  • テーブルのジョブ頻度: 選択したリスティングでテーブルにアクセスする頻度。

INFORMATION_SCHEMA ビューを使用する

データ プロバイダは、INFORMATION_SCHEMA.SHARED_DATASET_USAGE ビューにクエリを実行して、サブスクライバーによるデータセットの使用状況を追跡できます。このビューへのクエリ実行に必要なロールを付与されていることを確認してください。

デフォルト プロジェクト以外のプロジェクトに対してクエリを実行するには、次の形式でプロジェクト ID を追加します。

PROJECT_ID.region-REGION_NAME.INFORMATION_SCHEMA.SHARED_DATASET_USAGE

例: myproject.region-us.INFORMATION_SCHEMA.SHARED_DATASET_USAGE

次の例は、INFORMATION_SCHEMA ビューにクエリを実行して使用状況の指標を表示する方法を示しています。

すべての共有テーブルで実行されたジョブの合計数を取得する

次の例では、プロジェクトのサブスクライバーによって実行されたジョブの合計数を計算します。

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 を使用します。

データ エクスチェンジの使用状況の指標を取得する

データ エクスチェンジとソース データセットが異なるプロジェクトに存在する場合、次の手順でデータ交換の使用状況の指標を表示します。

  1. 対象のデータ エクスチェンジに属するすべてのリスティングを検索します。
  2. リスティングに関連付けられているソース データセットを取得します。
  3. データ エクスチェンジの使用状況の指標を表示するには、次のクエリを使用します。
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"

次のステップ