Modelo do AstraDB para o BigQuery

O modelo do AstraDB para o BigQuery é um pipeline em lote que lê registos do AstraDB e escreve-os no BigQuery.

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

  • O Dataset ID, que é herdado do espaço de chaves do Cassandra.
  • O Table ID, que é herdado da tabela do Cassandra.

O esquema da tabela de destino é inferido a partir da tabela Cassandra de origem.

  • List e Set são mapeados para campos REPEATED do BigQuery.
  • Map são mapeados para campos do RECORD BigQuery.
  • Todos os outros tipos são mapeados para campos do BigQuery com os tipos correspondentes.
  • Os tipos definidos pelo utilizador (UDTs) e os tipos de dados de tuplos do Cassandra não são suportados.

Requisitos do pipeline

  • Conta do AstraDB com um token

Parâmetros de modelos

Parâmetros obrigatórios

  • astraToken: o valor do token ou o ID do recurso secreto. Por exemplo, AstraCS:abcdefghij.
  • astraDatabaseId: o identificador exclusivo (UUID) da base de dados. Por exemplo, cf7af129-d33a-498f-ad06-d97a6ee6eb7.
  • astraKeyspace: o nome do keyspace do Cassandra na base de dados do Astra.
  • astraTable: o nome da tabela na base de dados Cassandra. Por exemplo, my_table.

Parâmetros opcionais

  • astraQuery: a consulta a usar para filtrar linhas em vez de ler a tabela inteira.
  • astraDatabaseRegion: se não for fornecido, é escolhida uma predefinição, o que é útil com bases de dados de várias regiões.
  • minTokenRangesCount: o número mínimo de divisões a usar para distribuir a consulta.
  • outputTableSpec: a localização da tabela do BigQuery para a qual escrever os resultados. Use o formato <PROJECT_ID>:<DATASET_NAME>.<TABLE_NAME>. O esquema da tabela tem de corresponder aos objetos de entrada.

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 AstraDB to BigQuery template.
  6. Nos campos de parâmetros fornecidos, introduza os valores dos parâmetros.
  7. Clique em Executar tarefa.

gcloud

Na 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 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
  • ASTRA_TOKEN: o token do Astra
  • ASTRA_DATABASE_ID: o identificador da base de dados
  • ASTRA_KEYSPACE: o espaço de chaves do Cassandra
  • ASTRA_TABLE: a tabela Cassandra

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/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 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
  • ASTRA_TOKEN: o token do Astra
  • ASTRA_DATABASE_ID: o identificador da base de dados
  • ASTRA_KEYSPACE: o espaço de chaves do Cassandra
  • ASTRA_TABLE: a tabela Cassandra

O que se segue?