Este guia explica como importar dados de índice do BigQuery para a
Pesquisa vetorial com a API ImportIndex
, simplificando
o processo de preenchimento de índices da Pesquisa vetorial diretamente a partir
das suas tabelas do BigQuery que contêm incorporações vetoriais.
Preparar dados do BigQuery para importação
Antes de importar dados de índice, a sua tabela do BigQuery tem de ter as seguintes colunas:
Identificadores únicos: esta coluna contém identificadores únicos para cada ponto de dados. É mapeado para o campo
id
na pesquisa vetorial.Incorporações de vetores: esta coluna contém as incorporações de vetores, representadas como um campo
FLOAT
repetido. Está mapeado para o campo de incorporação na pesquisa vetorial.
Opcionalmente, pode incluir as seguintes colunas:
Restringe: estas são colunas para restrições de strings e numéricas, que lhe permitem filtrar os dados durante as pesquisas.
Metadados: estas são colunas de metadados a devolver com os resultados da consulta do índice de pesquisa vetorial.
A preparar o índice do Vector Search para importação
Depois de preparar os dados do BigQuery, certifique-se de que o índice de pesquisa vetorial de destino:
Existe na pesquisa vetorial no seu projeto: este índice serve como destino dos seus dados importados. O índice tem de ser criado no seu projeto.
Está definido para substituir ou acrescentar dados: durante o processo de importação, tem a opção de substituir os dados existentes no índice de pesquisa vetorial ou acrescentar os dados importados do BigQuery. A substituição substitui os pontos de dados atuais pelos dados importados. A anexação adiciona os novos dados ao índice existente.
Corresponde à dimensionalidade: a dimensionalidade das incorporações armazenadas nos seus dados do BigQuery tem de ser idêntica à dimensionalidade configurada para o seu índice de pesquisa vetorial.
Especificar o ImportIndexRequest
Antes de importar dados do BigQuery, crie um objeto
ImportIndexRequest
que especifique o índice de destino, se deve
substituir os dados existentes e a configuração para estabelecer ligação ao
BigQuery. Envie este objeto de pedido para a ImportIndex
API.
Segue-se um exemplo de um ImportIndexRequest
no formato JSON:
{
"name": "projects/[PROJECT_ID]/locations/[LOCATION]/indexes/[INDEX_ID]",
"isCompleteOverwrite": true,
"config": {
"bigQuerySourceConfig": {
"tablePath": "bq://[PROJECT_ID].[DATASET_ID].[TABLE_ID]",
"datapointFieldMapping": {
"idColumn": "[ID_COLUMN_NAME]",
"embeddingColumn": "[EMBEDDING_COLUMN_NAME]",
"restricts": [
{
"namespace": "[RESTRICT_NAMESPACE]",
"allowColumn": ["[RESTRICT_ALLOW_COLUMN_NAME]"],
"denyColumn": ["[RESTRICT_DENY_COLUMN_NAME]"]
}
],
"numericRestricts": [
{
"namespace": "[RESTRICT_NAMESPACE]",
"valueColumn": "[RESTRICT_VALUE_COLUMN_NAME]",
"valueType": "INT"
}
],
"metadataColumns": ["METADATA_COLUMN1", "METADATA_COLUMN2", ...]
}
}
}
}
name
: o nome completo do recurso do índice do Vector Search onde quer importar os dados.isCompleteOverwrite
: um valor booleano que indica se deve substituir os dados existentes no índice. Defina comotrue
para substituir os dados existentes.config
: contém a configuração da origem do BigQuery.bigquerySourceConfig
: especifica os detalhes da ligação à sua tabela do BigQuery.tablePath
: o caminho completo para a sua tabela do BigQuery no formatobq://[PROJECT_ID].[DATASET_ID].[TABLE_ID]
.datapointFieldMapping
: mapeia as colunas na sua tabela do BigQuery para os campos na pesquisa vetorial.idColumn
: o nome da coluna que contém identificadores exclusivos.embeddingColumn
: o nome da coluna que contém as incorporações de vetores.restricts
: (Opcional) Especifica restrições de strings.namespace
: o espaço de nomes da restrição.allowColumn
: a matriz que contém os nomes das colunas para os valores permitidos para a restrição.denyColumn
: a matriz que contém os nomes das colunas para valores recusados para a restrição.numericRestricts
: (opcional) especifica restrições numéricas.namespace
: o espaço de nomes para a restrição numérica.value_column
: o nome da coluna que contém valores numéricos.value_type
: o tipo do valor numérico, comoINT
,FLOAT
ouDOUBLE
.metadataColumns
: (opcional) Campos de metadados a incluir com a incorporação de caraterísticas. Estes campos de metadados podem ser obtidos a partir dos resultados da pesquisa do índice, mas não afetam a própria pesquisa. Por exemplo, não é possível filtrar campos de metadados.
Executar a importação
Depois de criar um ImportIndexRequest
, envie-o para o ponto final da API ImportIndex
. Isto aciona o processo de importação, que exporta dados do BigQuery e carrega-os no seu índice de pesquisa vetorial. ImportIndex
devolve uma operação de longa duração. Pode usar o ID da operação para monitorizar o progresso da operação de importação.
Depois de armazenados, os dados importados residem no seu índice de pesquisa vetorial e são indistinguíveis dos dados carregados através de outros métodos. O índice pode continuar a ser gerido através das APIs Vector Search padrão.
O exemplo de código seguinte demonstra um resultado de consulta com
return_full_datapoint
definido como verdadeiro e a configuração do conetor do BigQuery
que especifica um genre
, restrições numéricas year
e colunas de metadados title
e description
.
nearest_neighbors {
neighbors {
datapoint {
datapoint_id: "4"
feature_vector: 0.7
feature_vector: 0.8
restricts {
namespace: "genre"
allow_list: "Drama"
}
embedding_metadata {
title: "A Movie"
description: "The story of A Movie..."
}
crowding_tag {
crowding_attribute: "0"
}
numeric_restricts {
namespace: "year"
value_int: 1942
}
}
distance: 0.75
}
}