Modelo do Spanner para o Vertex AI Vector Search

O modelo para ficheiros do Spanner para a pesquisa vetorial da Vertex AI no Cloud Storage cria um pipeline em lote que exporta dados de incorporações vetoriais de uma tabela do Spanner para o Cloud Storage no formato JSON. Use parâmetros de modelo para especificar a pasta do Cloud Storage para a qual exportar as incorporações vetoriais. A pasta do Cloud Storage contém a lista de ficheiros .json exportados, que representam as incorporações vetoriais num formato suportado pelo índice de pesquisa vetorial do Vertex AI.

Para mais informações, consulte o artigo Formato e estrutura dos dados de entrada.

Requisitos do pipeline

  • A base de dados do Spanner tem de existir.
  • O contentor do Cloud Storage para a saída de dados tem de existir.
  • Além das funções de gestão de identidade e de acesso (IAM) necessárias para executar tarefas do Dataflow, precisa das funções de IAM necessárias para ler os seus dados do Spanner e escrever no seu contentor do Cloud Storage.

Parâmetros de modelos

Parâmetros obrigatórios

  • spannerProjectId: o ID do projeto da instância do Spanner.
  • spannerInstanceId: o ID da instância do Spanner a partir da qual exportar as incorporações de vetores.
  • spannerDatabaseId: o ID da base de dados do Spanner a partir da qual exportar as incorporações vetoriais.
  • spannerTable: a tabela do Spanner a partir da qual ler.
  • spannerColumnsToExport: uma lista separada por vírgulas das colunas necessárias para o índice do Vertex AI Vector Search. As colunas de ID e incorporação são obrigatórias para o Vector Search. Se os nomes das colunas não corresponderem à estrutura de entrada do índice do Vertex AI Vector Search, crie mapeamentos de colunas através de alias. Se os nomes das colunas não corresponderem ao formato esperado pelo Vertex AI, use a notação de:para. Por exemplo, se tiver colunas denominadas id e my_embedding, especifique id, my_embedding:embedding.
  • gcsOutputFolder: a pasta do Cloud Storage para a qual os ficheiros de saída são escritos. O caminho tem de terminar com uma barra. Por exemplo, gs://your-bucket/folder1/.
  • gcsOutputFilePrefix: o prefixo do nome do ficheiro para escrever ficheiros de saída. Por exemplo, vector-embeddings.

Parâmetros opcionais

  • spannerHost: o ponto final do Spanner a chamar no modelo. O valor predefinido é https://batch-spanner.googleapis.com. Por exemplo, https://batch-spanner.googleapis.com.
  • spannerVersionTime: se estiver definido, especifica a hora em que a versão da base de dados tem de ser obtida. O valor é uma string no formato de data RFC-3339 na hora epoch Unix. Por exemplo: 1990-12-31T23:59:60Z. A data/hora tem de ser no passado e aplica-se a obsolescência máxima da data/hora (https://cloud.google.com/spanner/docs/timestamp-bounds#maximum_timestamp_staleness). Se não estiver definido, é usado um limite forte (https://cloud.google.com/spanner/docs/timestamp-bounds#strong) para ler os dados mais recentes. A predefinição é empty. Por exemplo, 1990-12-31T23:59:60Z.
  • spannerDataBoostEnabled: quando definido como true, o modelo usa o cálculo a pedido do Spanner. A tarefa de exportação é executada em recursos de computação independentes que não afetam as cargas de trabalho atuais do Spanner. A utilização desta opção incorre em custos adicionais no Spanner. Para mais informações, consulte a vista geral do Spanner Data Boost (https://cloud.google.com/spanner/docs/databoost/databoost-overview). Predefinição: false.
  • spannerPriority: a prioridade do pedido para chamadas do Spanner. Os valores permitidos são HIGH, MEDIUM e LOW. O valor predefinido é MEDIUM.

Execute o modelo

Consola

  1. Aceda à página do fluxo de dados Criar tarefa a partir de um modelo.
  2. Aceda a Criar tarefa a partir de modelo
  3. No campo Nome da tarefa, introduza um nome exclusivo para a tarefa.
  4. Opcional: para Ponto final regional, selecione um valor no menu pendente. A região predefinida é us-central1.

    Para ver uma lista das regiões onde pode executar uma tarefa do Dataflow, consulte as localizações do Dataflow.

  5. No menu pendente Modelo do fluxo de dados, selecione the Spanner to Vertex AI Vector Search files on Cloud Storage template.
  6. Nos campos de parâmetros fornecidos, introduza os valores dos parâmetros.
  7. Clique em Executar tarefa.

gcloud

Na shell ou no terminal, execute o modelo:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/Cloud_Spanner_vectors_to_Cloud_Storage \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --parameters \
       spannerProjectId=SPANNER_PROJECT_ID,\
       spannerInstanceId=SPANNER_INSTANCE_ID,\
       spannerDatabaseId=SPANNER_DATABASE_ID,\
       spannerTable=SPANNER_TABLE,\
       spannerColumnsToExport=SPANNER_COLUMNS_TO_EXPORT,\
       gcsOutputFolder=GCS_OUTPUT_FOLDER,\
       gcsOutputFilePrefix=GCS_OUTPUT_FILE_PREFIX,\

Substitua o seguinte:

  • JOB_NAME: um nome de tarefa exclusivo à sua escolha
  • VERSION: a versão do modelo que quer usar

    Pode usar os seguintes valores:

  • REGION_NAME: a região onde quer implementar a tarefa do Dataflow, por exemplo, us-central1
  • SPANNER_PROJECT_ID: o ID do projeto do Spanner
  • SPANNER_INSTANCE_ID: o ID da instância do Spanner
  • SPANNER_DATABASE_ID: o ID da base de dados do Spanner
  • SPANNER_TABLE: a tabela do Spanner
  • SPANNER_COLUMNS_TO_EXPORT: as colunas a exportar da tabela do Spanner
  • GCS_OUTPUT_FOLDER: a pasta do Cloud Storage para a qual os ficheiros são enviados
  • GCS_OUTPUT_FILE_PREFIX: o prefixo dos ficheiros de saída no Cloud Storage

API

Para executar o modelo através da API REST, envie um pedido HTTP POST. Para mais informações sobre a API e os respetivos âmbitos de autorização, consulte projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates-LOCATION/VERSION/Cloud_Spanner_vectors_to_Cloud_Storage
{
   "jobName": "JOB_NAME",
   "parameters": {
     "spannerProjectId": "SPANNER_PROJECT_ID",
     "spannerInstanceId": "SPANNER_INSTANCE_ID",
     "spannerDatabaseId": "SPANNER_DATABASE_ID",
     "spannerTable": "SPANNER_TABLE",
     "spannerColumnsToExport": "SPANNER_COLUMNS_TO_EXPORT",
     "gcsOutputFolder": "GCS_OUTPUT_FOLDER",
     "gcsOutputFilePrefix": "GCS_OUTPUT_FILE_PREFIX",
   },
   "environment": { "maxWorkers": "10" }
}

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto onde quer executar a tarefa do Dataflow Google Cloud
  • JOB_NAME: um nome de tarefa exclusivo à sua escolha
  • VERSION: a versão do modelo que quer usar

    Pode usar os seguintes valores:

  • LOCATION: a região onde quer implementar a tarefa do Dataflow, por exemplo, us-central1
  • SPANNER_PROJECT_ID: o ID do projeto do Spanner
  • SPANNER_INSTANCE_ID: o ID da instância do Spanner
  • SPANNER_DATABASE_ID: o ID da base de dados do Spanner
  • SPANNER_TABLE: a tabela do Spanner
  • SPANNER_COLUMNS_TO_EXPORT: as colunas a exportar da tabela do Spanner
  • GCS_OUTPUT_FOLDER: a pasta do Cloud Storage para a qual os ficheiros são enviados
  • GCS_OUTPUT_FILE_PREFIX: o prefixo dos ficheiros de saída no Cloud Storage

O que se segue?