INFORMATION_SCHEMA.SHARED_DATASET_USAGE 檢視

INFORMATION_SCHEMA.SHARED_DATASET_USAGE 檢視畫面包含關於共用資料集資料表使用情形的近即時中繼資料。如要開始跨機構共用資料,請參閱「BigQuery 共用功能 (原 Analytics Hub)」。

必要的角色

如要取得查詢 INFORMATION_SCHEMA.SHARED_DATASET_USAGE 檢視表所需的權限,請要求管理員為您授予來源專案的 BigQuery 資料擁有者 (roles/bigquery.dataOwner) 身分與存取權管理角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

這個預先定義的角色包含 bigquery.datasets.listSharedDatasetUsage 權限,這是查詢 INFORMATION_SCHEMA.SHARED_DATASET_USAGE 檢視畫面所需的權限。

您或許還可透過自訂角色或其他預先定義的角色取得此權限。

結構定義

基礎資料會依 job_start_time 資料欄分區,並依 project_iddataset_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 使用者容易理解的字串,指的是工作執行的機構。這是訂閱者的機構編號。如果專案沒有機構,這個欄位會為空白。
job_principal_subject STRING 針對已連結資料集執行工作和查詢的使用者,其主體 ID (使用者電子郵件 ID、服務帳戶、群組電子郵件 ID、網域)。
num_rows_processed INTEGER 工作處理這個資料表的資料列數。
total_bytes_processed INTEGER 工作從這個資料表處理的總位元組數。

資料保留

INFORMATION_SCHEMA.SHARED_DATASET_USAGE 檢視畫面包含執行中的工作,以及過去 180 天的工作歷史記錄。

範圍和語法

對這個檢視表執行的查詢必須包含區域限定詞。如果您未指定區域限定詞,系統會從美國區域擷取中繼資料。下表說明此檢視區域範圍:

檢視表名稱 資源範圍 區域範圍
[PROJECT_ID.]INFORMATION_SCHEMA.SHARED_DATASET_USAGE 專案層級 美國區域
[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             |
+--------------------------+--------------------------------+----------------+

如果訂閱者沒有機構,您可以使用 job_project_number 而非 subscriber_org_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"