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_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"