Vista VECTOR_INDEXES

La vista INFORMATION_SCHEMA.VECTOR_INDEXES contiene una fila por cada índice de vector de un conjunto de datos.

Permisos obligatorios

Para ver los metadatos del índice vectorial, necesitas el permiso de gestión de identidades y accesos (IAM) bigquery.tables.get o bigquery.tables.list en la tabla con el índice. Cada uno de los siguientes roles de gestión de identidades y accesos predefinidos incluye al menos uno de estos permisos:

  • roles/bigquery.admin
  • roles/bigquery.dataEditor
  • roles/bigquery.dataOwner
  • roles/bigquery.dataViewer
  • roles/bigquery.metadataViewer
  • roles/bigquery.user

Para obtener más información sobre los permisos de BigQuery, consulta Control de acceso con gestión de identidades y accesos.

Esquema

Cuando consultas la vista INFORMATION_SCHEMA.VECTOR_INDEXES, los resultados de la consulta contienen una fila por cada índice vectorial de un conjunto de datos.

La vista INFORMATION_SCHEMA.VECTOR_INDEXES tiene el siguiente esquema:

Nombre de la columna Tipo de datos Valor
index_catalog STRING Nombre del proyecto que contiene el conjunto de datos.
index_schema STRING Nombre del conjunto de datos que contiene el índice.
table_name STRING Nombre de la tabla en la que se crea el índice.
index_name STRING El nombre del índice vectorial.
index_status STRING Estado del índice: ACTIVE, PENDING DISABLEMENT, TEMPORARILY DISABLED o PERMANENTLY DISABLED.
  • ACTIVE significa que el índice se puede usar o se está creando. Consulta la coverage_percentage para ver el progreso de la creación del índice.
  • PENDING DISABLEMENT significa que el tamaño total de las tablas indexadas supera el límite de tu organización y que el índice se ha puesto en cola para su eliminación. En este estado, el índice se puede usar en consultas de búsqueda de vectores y se te cobra por el almacenamiento del índice de vectores.
  • TEMPORARILY DISABLED significa que el tamaño total de las tablas indexadas supera el límite de tu organización o que la tabla indexada tiene un tamaño inferior a 10 MB. En este estado, el índice no se usa en las consultas de búsqueda de vectores y no se te cobra por el almacenamiento del índice de vectores.
  • PERMANENTLY DISABLED significa que hay un cambio de esquema incompatible en la tabla indexada.
creation_time TIMESTAMP La hora en la que se creó el índice.
last_modification_time TIMESTAMP La última vez que se modificó la configuración del índice. Por ejemplo, eliminar una columna indexada.
last_refresh_time TIMESTAMP La última vez que se indexaron los datos de la tabla. Un valor NULL significa que el índice aún no está disponible.
disable_time TIMESTAMP La hora a la que se definió el estado del índice como DISABLED. El valor es NULL si el estado del índice no es DISABLED.
disable_reason STRING Motivo por el que se ha inhabilitado el índice. NULL si el estado del índice no es DISABLED.
DDL STRING La instrucción del lenguaje de definición de datos (DDL) usada para crear el índice.
coverage_percentage INTEGER El porcentaje aproximado de datos de la tabla que se ha indexado. Un valor del 0% significa que el índice no se puede usar en una consulta VECTOR_SEARCH, aunque ya se hayan indexado algunos datos.
unindexed_row_count INTEGER Número de filas de la tabla que no se han indexado.
total_logical_bytes INTEGER Número de bytes lógicos facturables del índice.
total_storage_bytes INTEGER Número de bytes de almacenamiento facturables del índice.

Ámbito y sintaxis

Las consultas de esta vista deben tener un calificador de conjunto de datos. En la siguiente tabla se explica el ámbito de la región de esta vista:

Nombre de la vista Ámbito de los recursos Ámbito de la región
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.VECTOR_INDEXES Nivel del conjunto de datos Ubicación del conjunto de datos

Sustituye lo siguiente:
  • Opcional: PROJECT_ID: el ID de tu Google Cloud proyecto. Si no se especifica, se usa el proyecto predeterminado.
  • DATASET_ID: el ID de tu conjunto de datos. Para obtener más información, consulta Calificador de conjunto de datos.

Ejemplo

-- Returns metadata for vector indexes in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.VECTOR_INDEXES;

Ejemplo

En el siguiente ejemplo se muestran todos los índices vectoriales activos de las tablas del conjunto de datos my_dataset, ubicado en el proyecto my_project. Incluye sus nombres, las instrucciones DDL usadas para crearlos y su porcentaje de cobertura. Si una tabla base indexada tiene menos de 10 MB, su índice no se rellena, en cuyo caso el valor de coverage_percentage es 0.

SELECT table_name, index_name, ddl, coverage_percentage
FROM my_project.my_dataset.INFORMATION_SCHEMA.VECTOR_INDEXES
WHERE index_status = 'ACTIVE';

El resultado es similar al siguiente:

+------------+------------+-------------------------------------------------------------------------------------------------+---------------------+
| 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"}') |                     |
+------------+------------+-------------------------------------------------------------------------------------------------+---------------------+