SEARCH_INDEXES 檢視畫面
INFORMATION_SCHEMA.SEARCH_INDEXES 檢視表會為資料集中的每個搜尋索引包含一個資料列。
所需權限
如要查看搜尋索引中繼資料,您必須具備索引所在資料表的 bigquery.tables.get 或 bigquery.tables.list Identity and Access Management (IAM) 權限。下列每個預先定義的 IAM 角色都至少包含其中一項權限:
roles/bigquery.adminroles/bigquery.dataEditorroles/bigquery.dataOwnerroles/bigquery.dataViewerroles/bigquery.metadataViewerroles/bigquery.user
如要進一步瞭解 BigQuery 權限,請參閱「使用 IAM 控管存取權」。
結構定義
查詢INFORMATION_SCHEMA.SEARCH_INDEXES 檢視表時,資料集中每個搜尋索引在查詢結果都會有一個資料列。
INFORMATION_SCHEMA.SEARCH_INDEXES 檢視表具有下列結構定義:
| 資料欄名稱 | 資料類型 | 值 |
|---|---|---|
index_catalog |
STRING |
資料集所屬專案的名稱。 |
index_schema |
STRING |
包含索引的資料集名稱。 |
table_name |
STRING |
建立索引的基礎資料表名稱。 |
index_name |
STRING |
索引的名稱。 |
index_status |
STRING |
索引的狀態:ACTIVE、PENDING
DISABLEMENT、TEMPORARILY DISABLED 或 PERMANENTLY DISABLED。
|
creation_time |
TIMESTAMP |
索引的建立時間。 |
last_modification_time |
TIMESTAMP |
上次修改索引設定的時間。例如刪除已建立索引的資料欄。 |
last_refresh_time |
TIMESTAMP |
上次為表格資料建立索引的時間。NULL 值表示索引尚未提供。 |
disable_time |
TIMESTAMP |
索引狀態設為 DISABLED 的時間。如果索引狀態不是 DISABLED,值為 NULL。 |
disable_reason |
STRING |
索引停用的原因。如果索引狀態不是 DISABLED,則為 NULL。 |
DDL |
STRING |
用於建立索引的 DDL 陳述式。 |
coverage_percentage |
INTEGER |
已建立索引的資料表資料約略百分比。0% 表示索引無法用於 SEARCH 查詢,即使部分資料已建立索引也一樣。 |
unindexed_row_count |
INTEGER |
尚未建立索引的資料表列數。 |
total_logical_bytes |
INTEGER |
索引的可計費邏輯位元組數。 |
total_storage_bytes |
INTEGER |
索引的可計費儲存空間位元組數。 |
analyzer |
STRING |
用於為搜尋索引產生符記的文字分析器。 |
為確保穩定性,建議您在資訊結構定義查詢中明確列出資料欄,而非使用萬用字元 (SELECT *)。明確列出資料欄可避免基礎結構定義變更時,查詢中斷。
範圍和語法
對這個檢視表執行的查詢必須具有資料集限定詞。下表說明這個檢視畫面的區域範圍:
| 檢視表名稱 | 資源範圍 | 區域範圍 |
|---|---|---|
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.SEARCH_INDEXES |
資料集層級 | 資料集位置 |
-
選用:
PROJECT_ID:您的 Google Cloud 專案 ID。如未指定,系統會使用預設專案。 -
DATASET_ID:資料集 ID。詳情請參閱「資料集限定符」。
示例
-- Returns metadata for search indexes in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.SEARCH_INDEXES;
範例
以下範例會顯示專案 my_project 中,資料集 my_dataset 內資料表的所有有效搜尋索引。包括名稱、用於建立這些項目的 DDL 陳述式、涵蓋範圍百分比,以及文字分析器。如果編入索引的基礎資料表小於 10 GB,系統就不會填入索引,此時 coverage_percentage 為 0。
SELECT table_name, index_name, ddl, coverage_percentage, analyzer
FROM my_project.my_dataset.INFORMATION_SCHEMA.SEARCH_INDEXES
WHERE index_status = 'ACTIVE';
結果應如下所示:
+-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+ | table_name | index_name | ddl | coverage_percentage | analyzer | +-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+ | small_table | names_index | CREATE SEARCH INDEX `names_index` ON `my_project.my_dataset.small_table`(names) | 0 | NO_OP_ANALYZER | | large_table | logs_index | CREATE SEARCH INDEX `logs_index` ON `my_project.my_dataset.large_table`(ALL COLUMNS) | 100 | LOG_ANALYZER | +-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+