SEARCH_INDEX_COLUMN_OPTIONS 视图
INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS
视图中的每一行对应数据集中各表的搜索索引列中设置的每个选项。
所需权限
如需查看搜索索引元数据,您需要对具有相应索引的表拥有 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_COLUMN_OPTIONS
视图时,数据集中的表内每个编入索引的列上设置的每个选项都会有一行对应的查询结果。
INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS
视图具有如下架构:
列名 | 数据类型 | 值 |
---|---|---|
index_catalog |
STRING |
包含数据集的项目的名称。 |
index_schema |
STRING |
包含索引的数据集的名称。 |
table_name |
STRING |
在其中创建索引的基表的名称。 |
index_name |
STRING |
索引的名称。 |
column_name |
STRING |
设置了相应选项的已编入索引的列的名称。 |
option_name |
STRING |
列上指定的选项的名称。 |
option_type |
STRING |
相应选项的类型。 |
option_value |
STRING |
选项的值。 |
范围和语法
针对此视图的查询必须具有数据集限定符。下表说明了此视图的区域范围:
视图名称 | 资源范围 | 区域范围 |
---|---|---|
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS |
数据集级 | 数据集位置 |
-
可选:
PROJECT_ID
:您的 Google Cloud 项目的 ID。如果未指定,则使用默认项目。 -
DATASET_ID
:您的数据集的 ID。如需了解详情,请参阅数据集限定符。
示例
-- Returns metadata for search index column options in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS;
示例
以下示例将默认的索引列粒度设置为 COLUMN
,并分别将 col2
和 col3
的粒度设置为 GLOBAL
和 COLUMN
。在此示例中,列 col2
和 col3
会显示在结果中,因为其粒度是明确设置的。系统未显示列 col1
的粒度,因为该列使用的是默认粒度。
CREATE SEARCH INDEX index1 ON `mydataset.table1` ( ALL COLUMNS WITH COLUMN OPTIONS ( col2 OPTIONS(index_granularity = 'GLOBAL'), col3 OPTIONS(index_granularity = 'COLUMN') ) ) OPTIONS( default_index_column_granularity = 'COLUMN' ); SELECT index_column_name, option_name, option_type, option_value FROM mydataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS WHERE index_schema = 'mydataset' AND index_name = 'index1' AND table_name = 'table1';
结果类似于以下内容:
+-------------------+-------------------+---------------+--------------+ | index_column_name | option_name | option_type | option_value | +-------------------+-------------------+---------------+--------------+ | col2 | index_granularity | STRING | GLOBAL | | col3 | index_granularity | STRING | COLUMN | +-------------------+-------------------+---------------+--------------+
以下等效示例未使用 ALL COLUMNS
,而是将默认索引列粒度设置为 COLUMN
,并将两个列的粒度分别单独设置为 GLOBAL
和 COLUMN
:
CREATE SEARCH INDEX index1 ON `mydataset.table1` ( col1, col2 OPTIONS(index_granularity = 'GLOBAL'), col3 OPTIONS(index_granularity = 'COLUMN') ) OPTIONS( default_index_column_granularity = 'COLUMN' ); SELECT index_column_name, option_name, option_type, option_value FROM mydataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS WHERE index_schema = 'mydataset' AND index_name = 'index1' AND table_name = 'table1';
结果类似于以下内容:
+-------------------+-------------------+---------------+--------------+ | index_column_name | option_name | option_type | option_value | +-------------------+-------------------+---------------+--------------+ | col2 | index_granularity | STRING | GLOBAL | | col3 | index_granularity | STRING | COLUMN | +-------------------+-------------------+---------------+--------------+