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). Por exemplo, cf7af129-d33a-498f-ad06-d97a6ee6eb7.
  • astraKeyspace: o nome do keyspace do Cassandra no banco de dados do Astra.
  • astraTable: o nome da tabela no banco de dados do Cassandra. Por exemplo, my_table.

Parâmetros opcionais

  • astraQuery: a consulta a ser usada 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 a serem usadas para distribuir a consulta.
  • outputTableSpec: o local da tabela do BigQuery em que a saída será gravada. Use o formato <PROJECT_ID>:<DATASET_NAME>.<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 o modelo AstraDB para BigQuery.
  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/ \
    --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/",
     "environment": { "maxWorkers": "10" }
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto em que você quer executar o job do Dataflow Google Cloud
  • 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