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
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- 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.
- No menu suspenso Modelo do Dataflow, selecione the Spanner to Vertex AI Vector Search files on Cloud Storage template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- 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 escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates-REGION_NAME/latest/- o nome da versão, como
2023-09-12-00_RC00
, para usar uma versão específica do modelo, que pode ser encontrada aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates-REGION_NAME/
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 SpannerSPANNER_INSTANCE_ID
: o ID da instância do SpannerSPANNER_DATABASE_ID
: o ID do banco de dados do SpannerSPANNER_TABLE
: a tabela do SpannerSPANNER_COLUMNS_TO_EXPORT
: as colunas a serem exportadas da tabela do SpannerGCS_OUTPUT_FOLDER
: a pasta do Cloud Storage para enviar arquivosGCS_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 DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates-REGION_NAME/latest/- o nome da versão, como
2023-09-12-00_RC00
, para usar uma versão específica do modelo, que pode ser encontrada aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates-REGION_NAME/
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 SpannerSPANNER_INSTANCE_ID
: o ID da instância do SpannerSPANNER_DATABASE_ID
: o ID do banco de dados do SpannerSPANNER_TABLE
: a tabela do SpannerSPANNER_COLUMNS_TO_EXPORT
: as colunas a serem exportadas da tabela do SpannerGCS_OUTPUT_FOLDER
: a pasta do Cloud Storage para enviar arquivosGCS_OUTPUT_FILE_PREFIX
: o prefixo dos arquivos de saída no Cloud Storage
A seguir
- Saiba mais sobre os modelos do Dataflow.
- Confira a lista de modelos fornecidos pelo Google.