Modello da AstraDB a BigQuery

Il modello da AstraDB a BigQuery è una pipeline batch che legge i record da AstraDB e li scrive in BigQuery.

Se la tabella di destinazione non esiste in BigQuery, la pipeline crea una tabella con i seguenti valori:

  • Il valore Dataset ID, che viene ereditato dallo spazio delle chiavi di Cassandra.
  • Il valore Table ID, che viene ereditato dalla tabella Cassandra.

Lo schema della tabella di destinazione viene dedotto dalla tabella Cassandra di origine.

  • List e Set sono mappati ai campi REPEATED di BigQuery.
  • Map sono mappati ai campi RECORD di BigQuery.
  • Tutti gli altri tipi vengono mappati ai campi BigQuery con i tipi corrispondenti.
  • I tipi di dati definiti dall'utente (UDT) e tuple di Cassandra non sono supportati.

Requisiti della pipeline

  • Account AstraDB con un token

Parametri del modello

Parametri obbligatori

  • astraToken : il valore del token o l'ID risorsa del secret. ad esempio AstraCS:abcdefghij.
  • astraDatabaseId : l'identificatore univoco del database (UUID). (Esempio: cf7af129-d33a-498f-ad06-d97a6ee6eb7).
  • astraKeyspace : il nome dello spazio delle chiavi di Cassandra all'interno del database Astra.
  • astraTable : il nome della tabella all'interno del database Cassandra. (Esempio: mia_tabella).

Parametri facoltativi

  • astraQuery : la query da utilizzare per filtrare le righe anziché leggere l'intera tabella.
  • astraDatabaseRegion : se non viene specificato, viene selezionato un valore predefinito, utile con i database multiregionali.
  • minTokenRangesCount : il numero minimo di suddivisioni da utilizzare per distribuire la query.
  • outputTableSpec : la posizione della tabella BigQuery in cui scrivere l'output. Utilizza il formato <PROJECT_ID>:<DATASET_NAME>.<TABLE_NAME>. Lo schema della tabella deve corrispondere agli oggetti di input.

Esegui il modello

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. La regione predefinita è us-central1.

    Per un elenco di regioni in cui è possibile eseguire un job Dataflow, consulta Località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the AstraDB to BigQuery template.
  6. Inserisci i valori parametro negli appositi campi.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

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,\

Sostituisci quanto segue:

  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella padre non con data del bucket: gs://dataflow-templates-REGION_NAME/latest/
    • il nome della versione, ad esempio 2023-09-12-00_RC00, per utilizzare una versione specifica del modello, che è possibile trovare nidificata nella rispettiva cartella principale con data nel bucket: gs://dataflow-templates-REGION_NAME/
  • REGION_NAME: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempio us-central1
  • ASTRA_TOKEN: il token Astra
  • ASTRA_DATABASE_ID: l'identificatore del database
  • ASTRA_KEYSPACE: lo spazio delle chiavi di Cassandra
  • ASTRA_TABLE: la tabella Cassandra

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui relativi ambiti di autorizzazione, consulta 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" }
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Google Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella padre non con data del bucket: gs://dataflow-templates-REGION_NAME/latest/
    • il nome della versione, ad esempio 2023-09-12-00_RC00, per utilizzare una versione specifica del modello, che è possibile trovare nidificata nella rispettiva cartella principale con data nel bucket: gs://dataflow-templates-REGION_NAME/
  • LOCATION: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempio us-central1
  • ASTRA_TOKEN: il token Astra
  • ASTRA_DATABASE_ID: l'identificatore del database
  • ASTRA_KEYSPACE: lo spazio delle chiavi di Cassandra
  • ASTRA_TABLE: la tabella Cassandra

Passaggi successivi