VECTOR_INDEXES view
The INFORMATION_SCHEMA.VECTOR_INDEXES
view contains one row for each vector
index in a dataset.
Required permissions
To see vector index
metadata, you need the bigquery.tables.get
or bigquery.tables.list
Identity and Access Management (IAM)
permission on the table with the index. Each of the following predefined
IAM roles includes at least one of these permissions:
-
roles/bigquery.admin -
roles/bigquery.dataEditor -
roles/bigquery.dataOwner -
roles/bigquery.dataViewer -
roles/bigquery.metadataViewer -
roles/bigquery.user
For more information about BigQuery permissions, see Access control with IAM .
Schema
When you query theINFORMATION_SCHEMA.VECTOR_INDEXES
view, the query results
contain one row for each vector index in a dataset. The INFORMATION_SCHEMA.VECTOR_INDEXES
view has the following schema:
index_catalog
STRING
index_schema
STRING
table_name
STRING
index_name
STRING
index_status
STRING
ACTIVE
, PENDING
DISABLEMENT
, TEMPORARILY DISABLED
, or PERMANENTLY DISABLED
. -
ACTIVEmeans that the index is usable or being created. Refer to thecoverage_percentageto see the progress of index creation. -
PENDING DISABLEMENTmeans that the total size of indexed tables exceeds your organization's limit ; the index is queued for deletion. While in this state, the index is usable in vector search queries and you are charged for the vector index storage. -
TEMPORARILY DISABLEDmeans that either the total size of indexed tables exceeds your organization's limit , or the indexed table is smaller than 10 MB. While in this state, the index isn't used in vector search queries and you aren't charged for the vector index storage. -
PERMANENTLY DISABLEDmeans that there is an incompatible schema change on the indexed table.
creation_time
TIMESTAMP
last_modification_time
TIMESTAMP
last_refresh_time
TIMESTAMP
NULL
value
means the index is not yet available.disable_time
TIMESTAMP
DISABLED
. The
value is NULL
if the index status is not DISABLED
.disable_reason
STRING
NULL
if the index
status is not DISABLED
.DDL
STRING
coverage_percentage
INTEGER
VECTOR_SEARCH
query,
even if some data has already been indexed.unindexed_row_count
INTEGER
total_logical_bytes
INTEGER
total_storage_bytes
INTEGER
Scope and syntax
Queries against this view must have a dataset qualifier . The following table explains the region scope for this view:
| View Name | Resource scope | Region scope |
|---|---|---|
[ PROJECT_ID
.] DATASET_ID
.INFORMATION_SCHEMA.VECTOR_INDEXES
|
Dataset level | Dataset location |
- Optional:
PROJECT_ID: the ID of your Google Cloud project. If not specified, the default project is used. -
DATASET_ID: the ID of your dataset. For more information, see Dataset qualifier .
Example
-- Returns metadata for vector indexes in a single dataset.
SELECT
*
FROM
myDataset
.
INFORMATION_SCHEMA
.
VECTOR_INDEXES
;
Example
The following example shows all active vector indexes on tables in the dataset my_dataset
, located in the project my_project
. It includes their names, the
DDL statements used to create them, and their coverage percentage. If an
indexed base table is less than 10 MB, then its index is not populated, in
which case the coverage_percentage
value is 0.
SELECT table_name , index_name , ddl , coverage_percentage FROM my_project . my_dataset . INFORMATION_SCHEMA . VECTOR_INDEXES WHERE index_status = 'ACTIVE' ;
The result is similar to the following:
+------------+------------+-------------------------------------------------------------------------------------------------+---------------------+
| table_name | index_name | ddl | coverage_percentage |
+------------+------------+-------------------------------------------------------------------------------------------------+---------------------+
| table1 | indexa | CREATE VECTOR INDEX `indexa` ON `my_project.my_dataset.table1`(embeddings) | 100 |
| | | OPTIONS (distance_type = 'EUCLIDEAN', index_type = 'IVF', ivf_options = '{"num_lists": 100}') | |
+------------+------------+-------------------------------------------------------------------------------------------------+---------------------+
| table2 | indexb | CREATE VECTOR INDEX `indexb` ON `my_project.my_dataset.table2`(vectors) | 42 |
| | | OPTIONS (distance_type = 'COSINE', index_type = 'IVF', ivf_options = '{"num_lists": 500}') | |
+------------+------------+-------------------------------------------------------------------------------------------------+---------------------+
| table3 | indexc | CREATE VECTOR INDEX `indexc` ON `my_project.my_dataset.table3`(vectors) | 98 |
| | | OPTIONS (distance_type = 'DOT_PRODUCT', index_type = 'TREE_AH', | |
| | | tree_ah_options = '{"leaf_node_embedding_count": 1000, "normalization_type": "NONE"}') | |
+------------+------------+-------------------------------------------------------------------------------------------------+---------------------+

