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çãoINFORMATION_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 .
|
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 |
Opcional: PROJECT_ID
: o ID do seu
projeto do Google Cloud. Se não for especificado, o projeto padrão será usado.
DATASET_ID
: ID do conjunto de dados. Para mais informações, consulte Qualificador de conjunto de dados.
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"}') | | +------------+------------+-------------------------------------------------------------------------------------------------+---------------------+