SEARCH_INDEX_COLUMNS 檢視表
INFORMATION_SCHEMA.SEARCH_INDEX_COLUMNS
檢視表會針對資料集中每個資料表的每個搜尋索引鍵資料欄,分別列出一個資料列。
所需權限
如要查看搜尋索引中繼資料,您必須具備索引資料表的 bigquery.tables.get
或 bigquery.tables.list
身分與存取權管理 (IAM) 權限。以下每個預先定義的 IAM 角色都包含下列至少一項權限:
roles/bigquery.admin
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.dataViewer
roles/bigquery.metadataViewer
roles/bigquery.user
如要進一步瞭解 BigQuery 權限,請參閱「使用身分與存取權管理功能控管存取權」。
結構定義
查詢INFORMATION_SCHEMA.SEARCH_INDEX_COLUMNS
檢視表時,資料集中每個資料表的每個已編入索引的資料欄,在查詢結果中都會有一個資料列。
INFORMATION_SCHEMA.SEARCH_INDEX_COLUMNS
檢視表具有下列結構定義:
資料欄名稱 | 資料類型 | 值 | |
---|---|---|---|
index_catalog |
STRING |
包含資料集的專案名稱。 | |
index_schema |
STRING |
包含索引的資料集名稱。 | |
table_name |
STRING |
建立索引的基礎資料表名稱。 | |
index_name |
STRING |
索引的名稱。 | |
index_column_name |
STRING |
頂層索引欄的名稱。 | |
index_field_path |
STRING |
展開的已索引欄位完整路徑,從欄位名稱開始。欄位以半形句號分隔。 |
範圍和語法
對這個檢視表執行的查詢必須具有資料集限定詞。下表說明此檢視區域的範圍:
檢視表名稱 | 資源範圍 | 區域範圍 |
---|---|---|
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMNS |
資料集層級 | 資料集位置 |
-
選用:
PROJECT_ID
: Google Cloud 專案的 ID。如果未指定,系統會使用預設專案。 -
DATASET_ID
:資料集 ID。詳情請參閱「資料集限定詞」。
示例
-- Returns metadata for search indexes in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMNS;
範例
以下範例會針對 my_table
的所有資料欄建立搜尋索引。
CREATE TABLE dataset.my_table( a STRING, b INT64, c STRUCT <d INT64, e ARRAY<STRING>, f STRUCT<g STRING, h INT64>>) AS SELECT 'hello' AS a, 10 AS b, (20, ['x', 'y'], ('z', 30)) AS c; CREATE SEARCH INDEX my_index ON dataset.my_table(ALL COLUMNS);
下列查詢會擷取哪些欄位已編入索引的資訊。index_field_path
會指出資料欄的哪個欄位已編入索引。只有在 STRUCT
的情況下,此值才會與 index_column_name
不同,因為 STRUCT
會提供索引欄位的完整路徑。在這個範例中,資料欄 c
包含 ARRAY<STRING>
欄位 e
和另一個名為 f
的 STRUCT
,其中包含 STRING
欄位 g
,每個欄位都會編入索引。
SELECT table_name, index_name, index_column_name, index_field_path
FROM my_project.dataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMNS
結果大致如下:
+------------+------------+-------------------+------------------+ | table_name | index_name | index_column_name | index_field_path | +------------+------------+-------------------+------------------+ | my_table | my_index | a | a | | my_table | my_index | c | c.e | | my_table | my_index | c | c.f.g | +------------+------------+-------------------+------------------+
以下查詢會將 INFORMATION_SCHEMA.SEARCH_INDEX_COUMNS
檢視畫面與 INFORMATION_SCHEMA.SEARCH_INDEXES
和 INFORMATION_SCHEMA.COLUMNS
檢視畫面彙整,以納入搜尋索引狀態和每個資料欄的資料類型:
SELECT index_columns_view.index_catalog AS project_name, index_columns_view.index_SCHEMA AS dataset_name, indexes_view.TABLE_NAME AS table_name, indexes_view.INDEX_NAME AS index_name, indexes_view.INDEX_STATUS AS status, index_columns_view.INDEX_COLUMN_NAME AS column_name, index_columns_view.INDEX_FIELD_PATH AS field_path, columns_view.DATA_TYPE AS data_type FROM mydataset.INFORMATION_SCHEMA.SEARCH_INDEXES indexes_view INNER JOIN mydataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMNS index_columns_view ON indexes_view.TABLE_NAME = index_columns_view.TABLE_NAME AND indexes_view.INDEX_NAME = index_columns_view.INDEX_NAME LEFT OUTER JOIN mydataset.INFORMATION_SCHEMA.COLUMNS columns_view ON indexes_view.INDEX_CATALOG = columns_view.TABLE_CATALOG AND indexes_view.INDEX_SCHEMA = columns_view.TABLE_SCHEMA AND index_columns_view.TABLE_NAME = columns_view.TABLE_NAME AND index_columns_view.INDEX_COLUMN_NAME = columns_view.COLUMN_NAME ORDER BY project_name, dataset_name, table_name, column_name;
結果類似下列內容:
+------------+------------+----------+------------+--------+-------------+------------+---------------------------------------------------------------+ | project | dataset | table | index_name | status | column_name | field_path | data_type | +------------+------------+----------+------------+--------+-------------+------------+---------------------------------------------------------------+ | my_project | my_dataset | my_table | my_index | ACTIVE | a | a | STRING | | my_project | my_dataset | my_table | my_index | ACTIVE | c | c.e | STRUCT<d INT64, e ARRAY<STRING>, f STRUCT<g STRING, h INT64>> | | my_project | my_dataset | my_table | my_index | ACTIVE | c | c.f.g | STRUCT<d INT64, e ARRAY<STRING>, f STRUCT<g STRING, h INT64>> | +------------+------------+----------+------------+--------+-------------+------------+---------------------------------------------------------------+