INFORMATION_SCHEMA.SHARED_DATASET_USAGE 檢視畫面
INFORMATION_SCHEMA.SHARED_DATASET_USAGE
檢視畫面包含共用資料集資料表用量的近乎即時中繼資料。如要開始跨機構共用資料,請參閱「BigQuery sharing (舊稱 Analytics Hub)」。
必要的角色
如要取得查詢 INFORMATION_SCHEMA.SHARED_DATASET_USAGE
檢視畫面所需的權限,請要求管理員授予您來源專案的 BigQuery 資料擁有者 (roles/bigquery.dataOwner
) 身分與存取權管理角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這個預先定義的角色具備 bigquery.datasets.listSharedDatasetUsage
權限,這是查詢 INFORMATION_SCHEMA.SHARED_DATASET_USAGE
檢視畫面時的必要權限。
結構定義
基礎資料依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
|
使用者可理解的字串,是指工作執行的機構。這是訂閱者的機構號碼。如果專案沒有機構,這個欄位會是空白。 |
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
。
取得資料交換的使用情況指標
如果資料交易所和來源資料集位於不同專案,請按照下列步驟查看資料交易所的使用情況指標:
- 找出資料交易平台的所有刊登項目。
- 擷取附加至房源資訊的來源資料集。
- 如要查看資料交易所的用量指標,請使用下列查詢:
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"