Modelo de pesquisa de vetor do Spanner para a Vertex AI

O modelo do Spanner para arquivos de pesquisa de vetor da Vertex AI no Cloud Storage cria um pipeline em lote que exporta dados de embeddings vetoriais de uma tabela do Spanner para o Cloud Storage no formato JSON. Use os parâmetros do modelo para especificar a pasta do Cloud Storage para exportar os embeddings vetoriais. A pasta do Cloud Storage contém a lista de arquivos .json exportados, que representam os embeddings vetoriais em um formato aceito pelo índice Vector Search da Vertex AI.

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

Requisitos de pipeline

  • O banco de dados do Spanner precisa existir.
  • É necessário ter um bucket do Cloud Storage para a exibição de dados.
  • Além dos papéis do Identity and Access Management (IAM) necessários para executar jobs do Dataflow, você precisa dos papéis do IAM necessários para ler os dados do Spanner e gravar no bucket do Cloud Storage.

Parâmetros do modelo

Parâmetro Descrição
spannerProjectId O ID do projeto da instância do Spanner.
spannerInstanceId O ID da instância do Spanner de onde os embeddings vetoriais serão exportados.
spannerDatabaseId O ID do banco de dados do Spanner para exportar os embeddings vetoriais.
spannerTable A tabela do Spanner para leitura.
spannerColumnsToExport Uma lista separada por vírgulas de colunas obrigatórias para o índice de pesquisa de vetor da Vertex AI. As colunas id e embedding são exigidas pela pesquisa de vetor. Se os nomes das colunas não corresponderem à estrutura de entrada do índice da Pesquisa de vetor da Vertex AI, crie mapeamentos de coluna usando aliases. Se os nomes das colunas não corresponderem ao formato esperado pela Vertex AI, use a notação from:to. Por exemplo, se você tiver colunas chamadas id e my_embedding, especifique id, my_embedding:embedding.
gcsOutputFolder Pasta do Cloud Storage para gravar arquivos de saída. Esse caminho precisa terminar com uma barra. Exemplo: gs://your-bucket/folder1/.
gcsOutputFilePrefix O prefixo do nome de arquivo para gravar arquivos de saída. Por exemplo, vector-embeddings.
spannerHost Opcional: o endpoint do Spanner para chamar no modelo. O valor padrão é https://batch-spanner.googleapis.com.
spannerVersionTime Opcional: se definido, especifica o horário em que a versão do banco de dados precisa ser usada. O valor é uma string no formato de data RFC-3339 em tempo de época Unix. Por exemplo, 1990-12-31T23:59:60Z. O carimbo de data/hora precisa estar no passado, e a Inatividade máxima do carimbo de data/hora se aplica. Se não for definido, um limite forte será usado para ler os dados mais recentes. O padrão é vazio.
spannerDataBoostEnabled Opcional: quando definido como true, o modelo usa a computação sob demanda do Spanner. O job de exportação é executado em recursos de computação independentes que não afetam as cargas de trabalho atuais do Spanner. O uso dessa opção gera cobranças adicionais no Spanner. Para mais informações, consulte Visão geral do Data Boost do Spanner. O padrão é false.
spannerPriority Opcional: a prioridade de solicitação das chamadas do Spanner. Os valores permitidos são HIGH, MEDIUM e LOW. O valor padrão é MEDIUM.

Executar o modelo

Console

  1. Acesse a página Criar job usando um modelo do Dataflow.
  2. Acesse Criar job usando um modelo
  3. No campo Nome do job, insira um nome exclusivo.
  4. Opcional: em Endpoint regional, selecione um valor no menu suspenso. A região padrão é us-central1.

    Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.

  5. No menu suspenso Modelo do Dataflow, selecione the Spanner to Vertex AI Vector Search files on Cloud Storage template.
  6. Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
  7. Cliquem em Executar job.

gcloud

No 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:

  • JOB_NAME: um nome de job de sua escolha
  • VERSION: a versão do modelo que você quer usar

    Use estes valores:

  • REGION_NAME: a região onde você quer implantar o job 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 do banco de dados do Spanner
  • SPANNER_TABLE: a tabela do Spanner
  • SPANNER_COLUMNS_TO_EXPORT: as colunas a serem exportadas da tabela do Spanner
  • GCS_OUTPUT_FOLDER: a pasta do Cloud Storage para enviar arquivos
  • GCS_OUTPUT_FILE_PREFIX: o prefixo dos arquivos de saída no Cloud Storage

API

Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a API e os respectivos escopos 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:

  • PROJECT_ID: o ID do projeto do Google Cloud em que você quer executar o job do Dataflow
  • JOB_NAME: um nome de job de sua escolha
  • VERSION: a versão do modelo que você quer usar

    Use estes valores:

  • LOCATION: a região onde você quer implantar o job 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 do banco de dados do Spanner
  • SPANNER_TABLE: a tabela do Spanner
  • SPANNER_COLUMNS_TO_EXPORT: as colunas a serem exportadas da tabela do Spanner
  • GCS_OUTPUT_FOLDER: a pasta do Cloud Storage para enviar arquivos
  • GCS_OUTPUT_FILE_PREFIX: o prefixo dos arquivos de saída no Cloud Storage

A seguir