Modelo do Bigtable para o Vertex AI Vector Search

O modelo para ficheiros do Bigtable para a Pesquisa vetorial da Vertex AI no Cloud Storage cria um pipeline em lote que lê dados de uma tabela do Bigtable e escreve-os num contentor do Cloud Storage no formato JSON. Use este modelo para incorporações de vetores.

Requisitos do pipeline

  • A tabela do Bigtable tem de existir.
  • O contentor do Cloud Storage de saída tem de existir antes de executar o pipeline.

Parâmetros de modelos

Parâmetros obrigatórios

  • bigtableProjectId: o ID do projeto do Google Cloud que contém a instância do Bigtable a partir da qual quer ler dados.
  • bigtableInstanceId: o ID da instância do Bigtable que contém a tabela.
  • bigtableTableId: o ID da tabela do Bigtable a partir da qual ler.
  • outputDirectory: o caminho do Cloud Storage onde os ficheiros JSON de saída são armazenados. Por exemplo, gs://your-bucket/your-path/.
  • idColumn: o nome da coluna totalmente qualificado onde o ID está armazenado. No formato cf:col ou _key.
  • embeddingColumn: o nome da coluna totalmente qualificado onde os encaixes estão armazenados. No formato cf:col ou _key.

Parâmetros opcionais

  • filenamePrefix: o prefixo do nome do ficheiro JSON. Por exemplo: table1-. Se não for indicado nenhum valor, o fuso horário predefinido é part.
  • crowdingTagColumn: o nome da coluna totalmente qualificado onde a etiqueta de sobreposição está armazenada. No formato cf:col ou _key.
  • embeddingByteSize: o tamanho em bytes de cada entrada na matriz de incorporações. Para o tipo float, use o valor 4. Para o tipo duplo, use o valor 8. A predefinição é 4.
  • allowRestrictsMappings: os nomes das colunas totalmente qualificados separados por vírgulas para as colunas a usar como restrições permitidas, com os respetivos alias. No formato cf:col->alias.
  • denyRestrictsMappings: os nomes das colunas totalmente qualificados separados por vírgulas para as colunas a usar como restrições de negação, com os respetivos alias. No formato cf:col->alias.
  • intNumericRestrictsMappings: os nomes das colunas totalmente qualificados separados por vírgulas das colunas a usar como numeric_restricts inteiros, com os respetivos alias. No formato cf:col->alias.
  • floatNumericRestrictsMappings: os nomes das colunas totalmente qualificados separados por vírgulas das colunas a usar como numeric_restricts de ponto flutuante (4 bytes), com os respetivos alias. No formato cf:col->alias.
  • doubleNumericRestrictsMappings: os nomes das colunas totalmente qualificados separados por vírgulas das colunas a usar como numeric_restricts duplos (8 bytes), com os respetivos alias. No formato cf:col->alias.
  • bigtableAppProfileId: o ID do perfil da app do Cloud Bigtable a usar para a exportação. A predefinição é: default.

Execute o modelo

Consola

  1. Aceda à página do fluxo de dados Criar tarefa a partir de um modelo.
  2. Aceda a Criar tarefa a partir de modelo
  3. No campo Nome da tarefa, introduza um nome exclusivo para a tarefa.
  4. Opcional: para Ponto final regional, selecione um valor no menu pendente. A região predefinida é us-central1.

    Para ver uma lista das regiões onde pode executar uma tarefa do Dataflow, consulte as localizações do Dataflow.

  5. No menu pendente Modelo do fluxo de dados, selecione the Cloud Bigtable to Vector Embeddings template.
  6. Nos campos de parâmetros fornecidos, introduza os valores dos parâmetros.
  7. Clique em Executar tarefa.

CLI gcloud

Na shell ou no terminal, execute o modelo:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/Cloud_Bigtable_to_Vector_Embeddings \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --parameters \
       bigtableProjectId=BIGTABLE_PROJECT_ID,\
       bigtableInstanceId=BIGTABLE_INSTANCE_ID,\
       bigtableTableId=BIGTABLE_TABLE_ID,\
       filenamePrefix=FILENAME_PREFIX,\
       idColumn=ID_COLUMN,\
       embeddingColumn=EMBEDDING_COLUMN,\

Substitua o seguinte:

  • JOB_NAME: um nome de tarefa exclusivo à sua escolha
  • VERSION: a versão do modelo que quer usar

    Pode usar os seguintes valores:

  • REGION_NAME: a região onde quer implementar a tarefa do Dataflow, por exemplo, us-central1
  • BIGTABLE_PROJECT_ID: o ID do projeto
  • BIGTABLE_INSTANCE_ID: o ID da instância
  • BIGTABLE_TABLE_ID: o ID da tabela
  • FILENAME_PREFIX: o prefixo do ficheiro JSON
  • ID_COLUMN: a coluna ID
  • EMBEDDING_COLUMN: a coluna de incorporações

API

Para executar o modelo através da API REST, envie um pedido HTTP POST. Para mais informações sobre a API e os respetivos âmbitos 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_Bigtable_to_Vector_Embeddings
{
   "jobName": "JOB_NAME",
   "parameters": {
     "bigtableProjectId": "BIGTABLE_PROJECT_ID",
     "bigtableInstanceId": "BIGTABLE_INSTANCE_ID",
     "bigtableTableId": "BIGTABLE_TABLE_ID",
     "filenamePrefix": "FILENAME_PREFIX",
     "idColumn": "ID_COLUMN",
     "embeddingColumn": "EMBEDDING_COLUMN",
   },
   "environment": { "maxWorkers": "10" }
}

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto onde quer executar a tarefa do Dataflow Google Cloud
  • JOB_NAME: um nome de tarefa exclusivo à sua escolha
  • VERSION: a versão do modelo que quer usar

    Pode usar os seguintes valores:

  • LOCATION: a região onde quer implementar a tarefa do Dataflow, por exemplo, us-central1
  • BIGTABLE_PROJECT_ID: o ID do projeto
  • BIGTABLE_INSTANCE_ID: o ID da instância
  • BIGTABLE_TABLE_ID: o ID da tabela
  • FILENAME_PREFIX: o prefixo do ficheiro JSON
  • ID_COLUMN: a coluna ID
  • EMBEDDING_COLUMN: a coluna de incorporações

O que se segue?