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
- 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 o modelo Fluxos de alterações do Bigtable para a busca vetorial.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- 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 escolhaVERSION: a versão do modelo que você quer usarUse estes valores:
latestpara 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-central1EMBEDDING_COLUMN: a coluna de embeddingEMBEDDING_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 vetoresBIGTABLE_CHANGE_STREAM_APP_PROFILE: o ID do perfil do aplicativo Bigtable.BIGTABLE_READ_INSTANCE_ID: o ID da instância do Bigtable de origemBIGTABLE_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 DataflowJOB_NAME: um nome de job de sua escolhaVERSION: a versão do modelo que você quer usarUse estes valores:
latestpara 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-central1EMBEDDING_COLUMN: a coluna de embeddingEMBEDDING_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 vetoresBIGTABLE_CHANGE_STREAM_APP_PROFILE: o ID do perfil do aplicativo Bigtable.BIGTABLE_READ_INSTANCE_ID: o ID da instância do Bigtable de origemBIGTABLE_READ_TABLE_ID: o ID da tabela de origem do Bigtable