SEARCH_INDEX_COLUMNS 视图
INFORMATION_SCHEMA.SEARCH_INDEX_COLUMNS
视图中的每一行对应数据集中每个表的每个搜索索引列。
所需权限
如需查看搜索索引元数据,您需要对具有相应索引的表拥有 bigquery.tables.get
或 bigquery.tables.list
Identity and Access Management (IAM) 权限。以下每个预定义的 IAM 角色都至少包含以下权限之一:
roles/bigquery.admin
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.dataViewer
roles/bigquery.metadataViewer
roles/bigquery.user
如需详细了解 BigQuery 权限,请参阅使用 IAM 进行访问权限控制。
架构
当您查询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
指示将列的哪个字段编入索引。这与 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>> | +------------+------------+----------+------------+--------+-------------+------------+---------------------------------------------------------------+