Fluxos de alterações do Bigtable para o modelo de pesquisa de vetor

Este modelo cria um pipeline de streaming para transmitir registros de alteração de dados do Bigtable e gravá-los na Vertex AI Busca Vetorial usando o Dataflow Portable Runner.

Requisitos de pipeline

  • A instância de origem do Bigtable precisa existir.
  • A tabela de origem do Bigtable precisa existir e a tabela precisa ter os fluxos de alterações ativados.
  • O perfil do aplicativo Bigtable precisa existir.
  • O caminho do índice da pesquisa de vetores precisa existir.

Parâmetros do modelo

Parâmetros obrigatórios

  • embeddingColumn: nome da coluna totalmente qualificada em que os embeddings são armazenados. No formato cf:col.
  • embeddingByteSize: o tamanho do byte de cada entrada na matriz de embeddings. Use 4 para ponto flutuante e 8 para duplo. O padrão é 4.
  • vectorSearchIndex: o índice de busca vetorial em que as mudanças serão transmitidas, no formato "projects/{projectID}/locations/{region}/indexes/{indexID}" (sem espaços à esquerda ou à direita). Por exemplo, projects/123/locations/us-east1/indexes/456.
  • bigtableChangeStreamAppProfile: o ID do perfil do aplicativo do Bigtable. O perfil do aplicativo precisa usar roteamento de cluster único e permitir transações de linha única.
  • bigtableReadInstanceId: o ID da instância de origem do Bigtable.
  • bigtableReadTableId: o ID da tabela de origem do Bigtable.

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 o modelo Fluxos de alterações do Bigtable para a busca vetorial.
  6. Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
  7. Cliquem em Executar job.

CLI da gcloud

No shell ou no terminal, execute o modelo:

gcloud dataflow flex-template run JOB_NAME \
    --template-file-gcs-location=gs://dataflow-templates/VERSION/flex/Bigtable_Change_Streams_to_Vector_Search \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --parameters \
       embeddingColumn=EMBEDDING_COLUMN,\
       embeddingByteSize=EMBEDDING_BYTE_SIZE,\
       vectorSearchIndex=VECTOR_SEARCH_INDEX,\
       bigtableChangeStreamAppProfile=BIGTABLE_CHANGE_STREAM_APP_PROFILE,\
       bigtableReadInstanceId=BIGTABLE_READ_INSTANCE_ID,\
       bigtableReadTableId=BIGTABLE_READ_TABLE_ID,\

Substitua:

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

    Use 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/latest/
    • o nome da versão, como 2023-09-12-00_RC00, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
  • REGION_NAME: a região em que você quer implantar o job do Dataflow, por exemplo, us-central1
  • EMBEDDING_COLUMN: a coluna de embedding
  • EMBEDDING_BYTE_SIZE: o tamanho do byte da matriz de embeddings. Pode ser 4 ou 8.
  • VECTOR_SEARCH_INDEX: o caminho do índice de pesquisa de vetores
  • BIGTABLE_CHANGE_STREAM_APP_PROFILE: o ID do perfil do aplicativo Bigtable.
  • BIGTABLE_READ_INSTANCE_ID: o ID da instância do Bigtable de origem
  • BIGTABLE_READ_TABLE_ID: o ID da tabela de origem do Bigtable

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/flexTemplates:launch
{
   "launchParameter": {
     "jobName": "JOB_NAME",
     "parameters": {
       "embeddingColumn": "EMBEDDING_COLUMN",
       "embeddingByteSize": "EMBEDDING_BYTE_SIZE",
       "vectorSearchIndex": "VECTOR_SEARCH_INDEX",
       "bigtableChangeStreamAppProfile": "BIGTABLE_CHANGE_STREAM_APP_PROFILE",
       "bigtableReadInstanceId": "BIGTABLE_READ_INSTANCE_ID",
       "bigtableReadTableId": "BIGTABLE_READ_TABLE_ID",
     },
     "containerSpecGcsPath": "gs://dataflow-templates/VERSION/flex/Bigtable_Change_Streams_to_Vector_Search",
     "environment": { "maxWorkers": "10" }
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto 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:

    • latest para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/
    • o nome da versão, como 2023-09-12-00_RC00, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
  • LOCATION: a região em que você quer implantar o job do Dataflow, por exemplo, us-central1
  • EMBEDDING_COLUMN: a coluna de embedding
  • EMBEDDING_BYTE_SIZE: o tamanho do byte da matriz de embeddings. Pode ser 4 ou 8.
  • VECTOR_SEARCH_INDEX: o caminho do índice de pesquisa de vetores
  • BIGTABLE_CHANGE_STREAM_APP_PROFILE: o ID do perfil do aplicativo Bigtable.
  • BIGTABLE_READ_INSTANCE_ID: o ID da instância do Bigtable de origem
  • BIGTABLE_READ_TABLE_ID: o ID da tabela de origem do Bigtable