Vista VECTOR_INDEXES

La vista INFORMATION_SCHEMA.VECTOR_INDEXES contiene una fila para cada índice vectorial en un conjunto de datos.

Permisos necesarios

Para ver los metadatos del índice vectorial, necesitas el permiso bigquery.tables.get o bigquery.tables.list de Identity and Access Management (IAM) en la tabla con el índice. Cada una de los siguientes roles predefinidos de IAM 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 IAM de BigQuery, consulta Control de acceso con IAM.

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 El nombre del proyecto que contiene el conjunto de datos.
index_schema STRING Es el nombre del conjunto de datos que contiene el índice.
table_name STRING El nombre de la tabla en la que se crea el índice.
index_name STRING Es el nombre del índice vectorial.
index_status STRING El estado del índice: ACTIVE, PENDING DISABLEMENT, TEMPORARILY DISABLED, o PERMANENTLY DISABLED.
  • ACTIVE significa que el índice se puede usar o crear. Consulta 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. El índice se pone en cola para su eliminación. En este estado, el índice se puede usar en las consultas de búsqueda vectorial y se te cobra por el almacenamiento del índice vectorial.
  • TEMPORARILY DISABLED significa que el tamaño total de las tablas indexadas supera el límite de tu organización, o la tabla indexada es inferior a 10 MB. En este estado, el índice no se usa en las consultas de búsqueda vectorial y no se te cobra por el almacenamiento del índice vectorial.
  • 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, borrar 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 en la que el estado del índice se estableció en DISABLED. El valor es NULL si el estado del índice no es DISABLED.
disable_reason STRING El motivo por el que se inhabilitó el índice. NULL si el estado del índice no es DISABLED.
DDL STRING La declaración del lenguaje de definición de datos (DDL) que se usa para crear el índice.
coverage_percentage INTEGER El porcentaje aproximado de datos de tabla que se indexaron. 0% significa que el índice no se puede usar en una consulta VECTOR_SEARCH, incluso si ya se indexaron algunos datos.
unindexed_row_count INTEGER La cantidad de filas en la tabla que no se indexaron.
total_logical_bytes INTEGER La cantidad de bytes lógicos facturables para el índice.
total_storage_bytes INTEGER La cantidad de bytes de almacenamiento facturables para el índice.

Permiso y sintaxis

Las consultas realizadas a esta vista deben tener un calificador de conjunto de datos. En la siguiente tabla, se explica el permiso de la región para esta vista:

Nombre de la vista Permiso del recurso Permiso de la región
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.VECTOR_INDEXES Nivel de conjunto de datos Ubicación del conjunto de datos

Reemplaza lo siguiente:

  • Opcional: PROJECT_ID: el ID del proyecto de Google Cloud. Si no se especifica, se usa el proyecto predeterminado.

    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 en las tablas del conjunto de datos my_dataset, ubicado en el proyecto my_project. Incluye los nombres, las declaraciones DDL que se usan para crearlos y el porcentaje de cobertura. Si una tabla base indexada tiene menos de 10 MB, su índice no se propaga. En ese caso, el valor coverage_percentage será 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"}') |                     |
    +------------+------------+-------------------------------------------------------------------------------------------------+---------------------+