Visualização VECTOR_INDEXES

A visualização INFORMATION_SCHEMA.VECTOR_INDEXES contém uma linha para cada índice vetorial em um conjunto de dados.

Permissões necessárias

Para ver os metadados do índice vetorial, é preciso ter a permissão bigquery.tables.get ou bigquery.tables.list do Identity and Access Management (IAM) na tabela com o índice. Cada um dos seguintes papéis predefinidos do IAM inclui pelo menos uma destas permissões:

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

Para mais informações sobre as permissões do BigQuery, consulte Controle de acesso com o IAM.

Esquema

Quando você consulta a visualização INFORMATION_SCHEMA.VECTOR_INDEXES, os resultados da consulta contêm uma linha para cada índice vetorial em um conjunto de dados.

A visualização INFORMATION_SCHEMA.VECTOR_INDEXES tem o seguinte esquema:

Nome da coluna Tipo de dados Valor
index_catalog STRING Nome do projeto que contém o conjunto de dados.
index_schema STRING O nome do conjunto de dados que contém o índice.
table_name STRING O nome da tabela em que o índice é criado.
index_name STRING O nome do índice vetorial.
index_status STRING O status do índice: ACTIVE, PENDING DISABLEMENT, TEMPORARILY DISABLED ou PERMANENTLY DISABLED.
  • ACTIVE significa que o índice pode ser usado ou está sendo criado. Consulte o coverage_percentage para ver o progresso da criação do índice.
  • PENDING DISABLEMENT significa que o tamanho total das tabelas indexadas excede o limite da sua organização. O índice está na fila para exclusão. Nesse estado, o índice pode ser usado em consultas de pesquisa de vetor, e há cobrança pelo armazenamento do índice vetorial.
  • TEMPORARILY DISABLED significa que o tamanho total das tabelas indexadas excede o limite da sua organização ou que a tabela indexada é menor que 10 MB. Nesse estado, o índice não será usado em consultas de pesquisa de vetor, e há cobrança pelo armazenamento do índice vetorial.
  • PERMANENTLY DISABLED significa que há uma alteração de esquema incompatível na tabela indexada.
creation_time TIMESTAMP A hora em que o índice foi criado.
last_modification_time TIMESTAMP A última vez que a configuração do índice foi modificada. Por exemplo, a exclusão de uma coluna indexada.
last_refresh_time TIMESTAMP A última vez que os dados da tabela foram indexados. Um valor NULL indica que o índice ainda não está disponível.
disable_time TIMESTAMP A hora em que o status do índice foi definido como DISABLED. O valor será NULL se o status do índice não for DISABLED.
disable_reason STRING O motivo da desativação do índice. NULL se o status do índice não for DISABLED.
DDL STRING A instrução de linguagem de definição de dados (DDL) usada para criar o índice.
coverage_percentage INTEGER A porcentagem aproximada dos dados na tabela que foram indexados. 0% significa que o índice não pode ser usado em uma consulta VECTOR_SEARCH, mesmo que alguns dados já tenham sido indexados.
unindexed_row_count INTEGER O número de linhas na tabela que não foram indexadas.
total_logical_bytes INTEGER O número de bytes lógicos faturáveis para o índice.
total_storage_bytes INTEGER O número de bytes de armazenamento faturáveis para o índice.

Escopo e sintaxe

As consultas nesta visualização precisam ter um qualificador de conjunto de dados. A tabela a seguir explica o escopo da região dessa visualização:

Acessar nome Escopo do recurso Escopo da região
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.VECTOR_INDEXES Nível do conjunto de dados Local do conjunto de dados

Substitua:

  • Opcional: PROJECT_ID: o ID do seu projeto do Google Cloud. Se não for especificado, o projeto padrão será usado.

    Exemplo

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

    Exemplo

    O exemplo a seguir mostra todos os índices vetoriais ativos das tabelas no conjunto de dados my_dataset, localizado no projeto my_project. Isso inclui os nomes, as instruções DDL usadas para criá-los e a porcentagem de cobertura. Se uma tabela base indexada for menor que 10 MB, o índice não será preenchido. Nesse caso, o valor de 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';

    O resultado será semelhante ao seguinte:

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