TABLE_STORAGE 檢視畫面
INFORMATION_SCHEMA.TABLE_STORAGE
檢視畫面會顯示資料表和具體化檢視畫面的目前儲存空間用量快照。查詢 INFORMATION_SCHEMA.TABLE_STORAGE
檢視表時,查詢結果會針對目前專案中的每個資料表或具體化檢視表,各列出一個相對應的資料列。
INFORMATION_SCHEMA.TABLE_STORAGE
檢視畫面中的資料不會即時更新,通常會延遲幾秒到幾分鐘。如果儲存空間變更僅是因為分區或資料表到期,
或是因為修改資料集時間旅行視窗,則可能需要最多一天,才會反映在 INFORMATION_SCHEMA.TABLE_STORAGE
檢視畫面中。
如果資料集包含超過 1,000 個資料表,且您刪除了該資料集,則只有在刪除資料集的時空旅行視窗過期後,這個檢視畫面才會反映變更。
透過表格儲存空間檢視畫面,您可以輕鬆觀察目前的儲存空間用量,並查看儲存空間是使用邏輯未壓縮位元組、實體壓縮位元組還是時空旅行位元組。這項資訊可協助您規劃未來的成長,並瞭解表格的更新模式。
*_BYTES
欄中包含的資料
表格儲存空間檢視畫面中的 *_BYTES
欄位包含儲存空間位元組用量資訊。系統會根據具體化檢視區塊的儲存空間用量,以及下列類型的資料表,判斷這項資訊:
- 透過「建立及使用資料表」一文所述的任何方法建立的永久資料表。
- 在工作階段中建立的臨時資料表。這些資料表會放入名稱類似「_c018003e063d09570001ef33ae401fad6ab92a6a」的資料集中。
- 在多重陳述式查詢 (「指令碼」) 中建立的臨時資料表。這些資料表會放入名稱類似「__script72280c173c88442c3a7200183a50eeeaa4073719」的資料集中。
儲存在查詢結果快取中的資料不會產生費用,因此不會計入 *_BYTES
資料欄值。
複製和快照會顯示 *_BYTES
資料欄值,就像是完整的表格,而不是顯示與基本表格所用儲存空間的差異,因此會高估。帳單會正確計算儲存空間用量差異。如要進一步瞭解複製和快照儲存及計費的差異位元組,請參閱TABLE_STORAGE_USAGE_TIMELINE
檢視畫面。
預測儲存空間費用
如要預測資料集的每月儲存空間費用,您可以使用這個檢視畫面中的 logical
或 physical *_BYTES
欄,具體取決於資料集使用的資料集儲存空間計費模式。請注意,這只是粗略的預測,實際帳單金額是根據 BigQuery 儲存空間帳單基礎架構的用量計算,並顯示在 Cloud Billing 中。
如果資料集使用邏輯帳單模型,您可以按照下列方式預估每月儲存空間費用:
((ACTIVE_LOGICAL_BYTES
值 / POW
(1024, 3)) * 使用中的邏輯位元組價格) +
((LONG_TERM_LOGICAL_BYTES
值 / POW
(1024, 3)) * 長期邏輯位元組價格)
資料表的 ACTIVE_LOGICAL_BYTES
值會反映該資料表目前使用的有效位元組。
如果資料集採用實體計費模式,您可以按照下列方式預測儲存空間費用:
((ACTIVE_PHYSICAL_BYTES + FAIL_SAFE_PHYSICAL_BYTES
值 / POW
(1024, 3)) * 作用中實體位元組價格) +
((LONG_TERM_PHYSICAL_BYTES
值 / POW
(1024, 3)) * 長期實體位元組價格)
資料表的 ACTIVE_PHYSICAL_BYTES
值反映該資料表目前使用的有效位元組,以及該資料表用於時間旅行的位元組。
如要查看資料表本身的有效位元組,請從 ACTIVE_PHYSICAL_BYTES
值減去 TIME_TRAVEL_PHYSICAL_BYTES
值。
詳情請參閱「儲存空間定價」。
必要的角色
如要取得查詢 INFORMATION_SCHEMA.TABLE_STORAGE
檢視畫面所需的權限,請要求管理員授予您專案的 BigQuery 中繼資料檢視者 (roles/bigquery.metadataViewer
) 身分與存取權管理角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這個預先定義的角色具備查詢 INFORMATION_SCHEMA.TABLE_STORAGE
檢視畫面所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要查詢 INFORMATION_SCHEMA.TABLE_STORAGE
檢視區塊,必須具備下列權限:
-
bigquery.tables.get
-
bigquery.tables.list
結構定義
INFORMATION_SCHEMA.TABLE_STORAGE
檢視表具有下列結構定義:
資料欄名稱 | 資料類型 | 值 |
---|---|---|
PROJECT_ID |
STRING |
資料集所屬專案的專案 ID。 |
PROJECT_NUMBER |
INT64 |
資料集所屬專案的專案編號。 |
TABLE_CATALOG |
STRING |
資料集所屬專案的專案 ID。 |
TABLE_SCHEMA |
STRING |
包含資料表或具體化檢視區塊的資料集名稱,又稱為 datasetId 。 |
TABLE_NAME |
STRING |
資料表或具體化檢視表的名稱,又稱為 tableId 。 |
CREATION_TIME |
TIMESTAMP |
資料表的建立時間。 |
TOTAL_ROWS |
INT64 |
資料表或具體化檢視區塊中的資料列總數。 |
TOTAL_PARTITIONS |
INT64 |
資料表或具體化檢視區塊中的分區數。 未分區資料表會傳回 0。 |
TOTAL_LOGICAL_BYTES |
INT64 |
資料表或具體化檢視區塊中的邏輯 (未壓縮) 位元組總數。 |
ACTIVE_LOGICAL_BYTES |
INT64 |
未滿 90 天的邏輯 (未壓縮) 位元組數。 |
LONG_TERM_LOGICAL_BYTES |
INT64 |
超過 90 天的邏輯 (未壓縮) 位元組數。 |
CURRENT_PHYSICAL_BYTES |
INT64 |
目前資料表在所有分區的實際位元組總數。 |
TOTAL_PHYSICAL_BYTES |
INT64 |
儲存空間使用的實體 (壓縮) 位元組總數,包括使用中、長期和時空旅行 (已刪除或變更的資料) 位元組。不包括安全機制 (在時間旅行視窗後保留的已刪除或變更資料) 位元組。 |
ACTIVE_PHYSICAL_BYTES |
INT64 |
90 天內實體 (壓縮) 位元組數,包括時間旅行 (已刪除或變更的資料) 位元組。 |
LONG_TERM_PHYSICAL_BYTES |
INT64 |
超過 90 天的實體 (壓縮) 位元組數。 |
TIME_TRAVEL_PHYSICAL_BYTES |
INT64 |
時空旅行儲存空間 (已刪除或變更的資料) 使用的實體 (壓縮) 位元組數。 |
STORAGE_LAST_MODIFIED_TIME |
TIMESTAMP |
資料最近一次寫入資料表的時間。 |
DELETED |
BOOLEAN |
指出資料表是否已刪除。 |
TABLE_TYPE |
STRING |
資料表類型。例如 BASE TABLE 。 |
FAIL_SAFE_PHYSICAL_BYTES |
INT64 |
安全儲存空間 (已刪除或變更的資料) 使用的實體 (壓縮) 位元組數。 |
LAST_METADATA_INDEX_REFRESH_TIME |
TIMESTAMP |
資料表的上次中繼資料索引重新整理時間。 |
TABLE_DELETION_REASON |
STRING |
如果 DELETED 欄位為 true,則為資料表刪除原因。可能的值如下:
|
TABLE_DELETION_TIME |
TIMESTAMP |
資料表的刪除時間。 |
範圍和語法
對這個檢視表執行的查詢必須包含區域限定詞。下表說明這個檢視畫面的區域範圍:
檢視表名稱 | 資源範圍 | 區域範圍 |
---|---|---|
[`PROJECT_ID`.]`region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE[_BY_PROJECT] |
專案層級 | REGION |
-
選用:
PROJECT_ID
:您的 Google Cloud 專案 ID。如未指定,系統會使用預設專案。 -
REGION
:任何資料集區域名稱。 例如:`region-us`
。
以下範例說明如何傳回指定專案中資料表的儲存空間資訊:
SELECT * FROM `myProject`.`region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE;
以下範例說明如何傳回指定區域中資料表的儲存空間資訊:
SELECT * FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_BY_PROJECT;
範例
範例 1:
以下範例顯示目前專案的邏輯位元組總計費用。
SELECT SUM(total_logical_bytes) AS total_logical_bytes FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE;
結果會類似如下:
+---------------------+ | total_logical_bytes | +---------------------+ | 971329178274633 | +---------------------+
範例 2:
以下範例顯示目前專案中,資料集層級的不同儲存空間位元組(以 GiB 為單位)。
SELECT table_schema AS dataset_name, -- Logical SUM(total_logical_bytes) / power(1024, 3) AS total_logical_gib, SUM(active_logical_bytes) / power(1024, 3) AS active_logical_gib, SUM(long_term_logical_bytes) / power(1024, 3) AS long_term_logical_gib, -- Physical SUM(total_physical_bytes) / power(1024, 3) AS total_physical_gib, SUM(active_physical_bytes) / power(1024, 3) AS active_physical_gib, SUM(active_physical_bytes - time_travel_physical_bytes) / power(1024, 3) AS active_no_tt_physical_gib, SUM(long_term_physical_bytes) / power(1024, 3) AS long_term_physical_gib, SUM(time_travel_physical_bytes) / power(1024, 3) AS time_travel_physical_gib, SUM(fail_safe_physical_bytes) / power(1024, 3) AS fail_safe_physical_gib FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE WHERE table_type ='BASE TABLE' GROUP BY table_schema ORDER BY dataset_name
範例 3:
以下範例說明如何預測未來 30 天內,每個資料集在邏輯和實體帳單模型之間的價格差異。這個範例假設查詢執行後 30 天內的儲存空間用量維持不變。請注意,預測僅限於基本資料表,不包括資料集內的所有其他類型資料表。
這項查詢的價格變數所用價格適用於 us-central1
區域。如要為其他區域執行這項查詢,請適當更新價格變數。如需價格資訊,請參閱「儲存空間價格」。
在 Google Cloud 控制台中開啟 BigQuery 頁面。
在「Query editor」(查詢編輯器) 方塊中輸入下列 GoogleSQL 查詢。
INFORMATION_SCHEMA
需要使用 GoogleSQL 語法。GoogleSQL 是 Google Cloud 控制台的預設語法。DECLARE active_logical_gib_price FLOAT64 DEFAULT 0.02; DECLARE long_term_logical_gib_price FLOAT64 DEFAULT 0.01; DECLARE active_physical_gib_price FLOAT64 DEFAULT 0.04; DECLARE long_term_physical_gib_price FLOAT64 DEFAULT 0.02; WITH storage_sizes AS ( SELECT table_schema AS dataset_name, -- Logical SUM(IF(deleted=false, active_logical_bytes, 0)) / power(1024, 3) AS active_logical_gib, SUM(IF(deleted=false, long_term_logical_bytes, 0)) / power(1024, 3) AS long_term_logical_gib, -- Physical SUM(active_physical_bytes) / power(1024, 3) AS active_physical_gib, SUM(active_physical_bytes - time_travel_physical_bytes) / power(1024, 3) AS active_no_tt_physical_gib, SUM(long_term_physical_bytes) / power(1024, 3) AS long_term_physical_gib, -- Restorable previously deleted physical SUM(time_travel_physical_bytes) / power(1024, 3) AS time_travel_physical_gib, SUM(fail_safe_physical_bytes) / power(1024, 3) AS fail_safe_physical_gib, FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_BY_PROJECT WHERE total_physical_bytes + fail_safe_physical_bytes > 0 -- Base the forecast on base tables only for highest precision results AND table_type = 'BASE TABLE' GROUP BY 1 ) SELECT dataset_name, -- Logical ROUND(active_logical_gib, 2) AS active_logical_gib, ROUND(long_term_logical_gib, 2) AS long_term_logical_gib, -- Physical ROUND(active_physical_gib, 2) AS active_physical_gib, ROUND(long_term_physical_gib, 2) AS long_term_physical_gib, ROUND(time_travel_physical_gib, 2) AS time_travel_physical_gib, ROUND(fail_safe_physical_gib, 2) AS fail_safe_physical_gib, -- Compression ratio ROUND(SAFE_DIVIDE(active_logical_gib, active_no_tt_physical_gib), 2) AS active_compression_ratio, ROUND(SAFE_DIVIDE(long_term_logical_gib, long_term_physical_gib), 2) AS long_term_compression_ratio, -- Forecast costs logical ROUND(active_logical_gib * active_logical_gib_price, 2) AS forecast_active_logical_cost, ROUND(long_term_logical_gib * long_term_logical_gib_price, 2) AS forecast_long_term_logical_cost, -- Forecast costs physical ROUND((active_no_tt_physical_gib + time_travel_physical_gib + fail_safe_physical_gib) * active_physical_gib_price, 2) AS forecast_active_physical_cost, ROUND(long_term_physical_gib * long_term_physical_gib_price, 2) AS forecast_long_term_physical_cost, -- Forecast costs total ROUND(((active_logical_gib * active_logical_gib_price) + (long_term_logical_gib * long_term_logical_gib_price)) - (((active_no_tt_physical_gib + time_travel_physical_gib + fail_safe_physical_gib) * active_physical_gib_price) + (long_term_physical_gib * long_term_physical_gib_price)), 2) AS forecast_total_cost_difference FROM storage_sizes ORDER BY (forecast_active_logical_cost + forecast_active_physical_cost) DESC;
按一下「執行」。
結果類似下列畫面:
+--------------+--------------------+-----------------------+---------------------+------------------------+--------------------------+-----------------------------+------------------------------+----------------------------------+-------------------------------+----------------------------------+--------------------------------+ | dataset_name | active_logical_gib | long_term_logical_gib | active_physical_gib | long_term_physical_gib | active_compression_ratio | long_term_compression_ratio | forecast_active_logical_cost | forecaset_long_term_logical_cost | forecast_active_physical_cost | forecast_long_term_physical_cost | forecast_total_cost_difference | +--------------+--------------------+-----------------------+---------------------+------------------------+--------------------------+-----------------------------+------------------------------+----------------------------------+-------------------------------+----------------------------------+--------------------------------+ | dataset1 | 10.0 | 10.0 | 1.0 | 1.0 | 10.0 | 10.0 | 0.2 | 0.1 | 0.04 | 0.02 | 0.24 |