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âmetros obrigatórios

  • 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 de ID e de incorporação são obrigatórias para a pesquisa vetorial. 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 de:a. Por exemplo, se você tiver colunas com os nomes "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. (Exemplo: vector-embeddings).

Parâmetros opcionais

  • spannerHost: opcional: o endpoint do Spanner para chamar no modelo. O valor padrão é https://batch-spanner.googleapis.com. (Exemplo: https://batch-spanner.googleapis.com).
  • spannerVersionTime: 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 (https://cloud.google.com/spanner/docs/timestamp-bounds#maximum_timestamp_staleness) é aplicável. Se não for definido, um limite forte (https://cloud.google.com/spanner/docs/timestamp-bounds#strong) será usado para ler os dados mais recentes. O padrão é vazio. (Exemplo: 1990-12-31T23:59:60Z).
  • spannerDataBoostEnabled: 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, acesse a visão geral do Spanner Data Boost (https://cloud.google.com/spanner/docs/databoost/databoost-overview). O padrão é: falso.
  • spannerPriority: a prioridade de solicitação das chamadas do Spanner. Os valores permitidos são ALTO, MÉDIO e BAIXO. Por padrão, a frequência selecionada é MEDIUM (média).

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 em que 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 em que 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