Vista VECTOR_INDEXES
A vista INFORMATION_SCHEMA.VECTOR_INDEXES
contém uma linha para cada índice de vetor num conjunto de dados.
Autorizações necessárias
Para ver os metadados do índice vetorial, precisa da autorização
bigquery.tables.get
ou bigquery.tables.list
de gestão de identidade e de acesso (IAM)
na tabela com o índice. Cada uma das seguintes funções do IAM predefinidas inclui, pelo menos, uma destas autorizaçõ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 autorizações do BigQuery, consulte o artigo Controlo de acesso com a IAM.
Esquema
Quando consulta a vistaINFORMATION_SCHEMA.VECTOR_INDEXES
, os resultados da consulta contêm uma linha para cada índice de vetor num conjunto de dados.
A vista INFORMATION_SCHEMA.VECTOR_INDEXES
tem o seguinte esquema:
Nome da coluna | Tipo de dados | Valor |
---|---|---|
index_catalog |
STRING |
O 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 na qual o índice é criado. |
index_name |
STRING |
O nome do índice vetorial. |
index_status |
STRING |
O estado 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, eliminar uma coluna indexada. |
last_refresh_time |
TIMESTAMP |
A última vez que os dados da tabela foram indexados. Um valor NULL
significa que o índice ainda não está disponível. |
disable_time |
TIMESTAMP |
A hora em que o estado do índice foi definido como DISABLED . O valor é NULL se o estado do índice não for DISABLED . |
disable_reason |
STRING |
O motivo pelo qual o índice foi desativado. NULL se o estado do índice não for DISABLED . |
DDL |
STRING |
A declaração de linguagem de definição de dados (LDD) usada para criar o índice. |
coverage_percentage |
INTEGER |
A percentagem aproximada de dados da tabela que foram indexados.
0% significa que o índice não é utilizável numa 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. |
Âmbito e sintaxe
As consultas nesta vista têm de ter um qualificador de conjunto de dados. A tabela seguinte explica o âmbito da região para esta vista:
Nome da vista | Âmbito do recurso | Âmbito da região |
---|---|---|
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.VECTOR_INDEXES |
Nível do conjunto de dados | Localização do conjunto de dados |
-
Opcional:
PROJECT_ID
: o ID do seu projeto do Trusted Cloud Google Cloud. Se não for especificado, é usado o projeto predefinido. -
DATASET_ID
: o ID do seu conjunto de dados. Para mais informações, consulte o artigo 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 seguinte mostra todos os índices vetoriais ativos em tabelas no conjunto de dados
my_dataset
, localizados no projeto my_project
. Inclui os respetivos nomes, as declarações DDL usadas para os criar e a percentagem de cobertura. Se uma tabela base indexada tiver menos de 10 MB, o respetivo índice não é preenchido. Nesse caso, o valor coverage_percentage
é 0.
SELECT table_name, index_name, ddl, coverage_percentage FROM my_project.my_dataset.INFORMATION_SCHEMA.VECTOR_INDEXES WHERE index_status = 'ACTIVE';
O resultado é 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"}') | | +------------+------------+-------------------------------------------------------------------------------------------------+---------------------+