Modelo do AstraDB para o BigQuery

O modelo AstraDB para BigQuery é um pipeline em lote que lê registros do AstraDB e os grava no BigQuery.

Se a tabela de destino não existir no BigQuery, o pipeline criará uma tabela com os seguintes valores:

  • O Dataset ID, que é herdado do keyspace do Cassandra.
  • O Table ID, que é herdado da tabela do Cassandra.

O esquema da tabela de destino é inferido da tabela de origem do Cassandra.

  • List e Set são mapeados para campos REPEATED do BigQuery.
  • Map são mapeados para campos RECORD do BigQuery.
  • Todos os outros tipos são mapeados para campos do BigQuery com os tipos correspondentes.
  • Os tipos definidos pelo usuário (UDTs, na sigla em inglês) e de dados de tupla do Cassandra não são compatíveis.

Requisitos de pipeline

  • Conta do AstraDB com um token

Parâmetros do modelo

Parâmetros obrigatórios

  • astraToken: valor do token ou ID do recurso de secret (por exemplo: AstraCS:abcdefghij).
  • astraDatabaseId: identificador exclusivo do banco de dados (UUID) (exemplo: cf7af129-d33a-498f-ad06-d97a6ee6eb7).
  • astraKeyspace: nome do keyspace do Cassandra no banco de dados do Astra.
  • astraTable: nome da tabela no banco de dados do Cassandra (exemplo: my_table).

Parâmetros opcionais

  • astraQuery: consulta para filtrar linhas em vez de ler a tabela inteira.
  • astraDatabaseRegion: se não for fornecido, será escolhido um padrão, que é útil em bancos de dados multirregionais.
  • minTokenRangesCount: o número mínimo de divisões para distribuir a consulta.
  • outputTableSpec: o local da tabela do BigQuery em que a saída será gravada. A tabela precisa estar no formato <project>:<dataset>.<table_name>. O esquema da tabela precisa corresponder aos objetos de entrada.

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 AstraDB to BigQuery 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 flex-template run JOB_NAME \
    --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/AstraDB_To_BigQuery \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --parameters \
       astraToken=ASTRA_TOKEN,\
       astraDatabaseId=ASTRA_DATABASE_ID,\
       astraKeyspace=ASTRA_KEYSPACE,\
       astraTable=ASTRA_TABLE,\

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
  • ASTRA_TOKEN: o token do Astra
  • ASTRA_DATABASE_ID: o identificador do banco de dados
  • ASTRA_KEYSPACE: o keyspace do Cassandra
  • ASTRA_TABLE: a tabela do Cassandra

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": {
       "astraToken": "ASTRA_TOKEN",
       "astraDatabaseId": "ASTRA_DATABASE_ID",
       "astraKeyspace": "ASTRA_KEYSPACE",
       "astraTable": "ASTRA_TABLE",
     },
     "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/AstraDB_To_BigQuery",
     "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
  • ASTRA_TOKEN: o token do Astra
  • ASTRA_DATABASE_ID: o identificador do banco de dados
  • ASTRA_KEYSPACE: o keyspace do Cassandra
  • ASTRA_TABLE: a tabela do Cassandra

A seguir