Vorlage "AstraDB für BigQuery"

Die Vorlage „AstraDB für BigQuery“ ist eine Batchpipeline, die Datensätze aus AstraDB liest und in BigQuery schreibt.

Wenn die Zieltabelle in BigQuery nicht vorhanden ist, erstellt die Pipeline eine Tabelle mit folgenden Werten:

  • Die Dataset ID, der vom Cassandra-Schlüsselbereich übernommen wird.
  • Die Table ID, die von der Cassandra-Tabelle übernommen wird.

Das Schema der Zieltabelle wird aus der Cassandra-Quelltabelle abgeleitet.

  • List und Set werden BigQuery-REPEATED-Feldern zugeordnet.
  • Map sind BigQuery-RECORD-Feldern zugeordnet.
  • Alle anderen Typen werden BigQuery-Feldern mit den entsprechenden Typen zugeordnet.
  • Benutzerdefinierte Cassandra-Typen (UDTs, User-Defined Types) und Tupel-Datentypen werden nicht unterstützt.

Pipelineanforderungen

  • AstraDB-Konto mit einem Token

Vorlagenparameter

Erforderliche Parameter

  • astraToken: Tokenwert oder Secret-Ressourcen-ID (Beispiel: AstraCS:abcdefghij).
  • astraDatabaseId: Eindeutige Datenbank-Kennung (UUID) (Beispiel: cf7af129-d33a-498f-ad06-d97a6ee6eb7).
  • astraKeyspace : Der Name des Cassandra-Schlüsselbereichs in der Astra-Datenbank.
  • astraTable : Der Name der Tabelle in der Cassandra-Datenbank. Beispiel: my_table.

Optionale Parameter

  • astraQuery : Die Abfrage, die zum Filtern von Zeilen verwendet werden soll, anstatt die gesamte Tabelle zu lesen.
  • astraDatabaseRegion: Wenn nicht angegeben, wird eine Standardeinstellung ausgewählt, die bei multiregionalen Datenbanken nützlich ist.
  • minTokenRangesCount : Die minimale Anzahl von Splits, die zum Verteilen der Abfrage verwendet werden sollen.
  • outputTableSpec: Der Speicherort der BigQuery-Tabelle, in die die Ausgabe geschrieben werden soll. Verwenden Sie das Format <PROJECT_ID>:<DATASET_NAME>.<TABLE_NAME>. Das Schema der Tabelle muss mit den Eingabeobjekten übereinstimmen.

Führen Sie die Vorlage aus.

Console

  1. Rufen Sie die Dataflow-Seite Job aus Vorlage erstellen auf.
  2. Zur Seite "Job aus Vorlage erstellen“
  3. Geben Sie im Feld Jobname einen eindeutigen Jobnamen ein.
  4. Optional: Wählen Sie für Regionaler Endpunkt einen Wert aus dem Drop-down-Menü aus. Die Standardregion ist us-central1.

    Eine Liste der Regionen, in denen Sie einen Dataflow-Job ausführen können, finden Sie unter Dataflow-Standorte.

  5. Wählen Sie im Drop-down-Menü Dataflow-Vorlage die Option the AstraDB to BigQuery templateaus.
  6. Geben Sie Ihre Parameterwerte in die Parameterfelder ein.
  7. Klicken Sie auf Job ausführen.

gcloud

Führen Sie die Vorlage in der Shell oder im Terminal aus:

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

Ersetzen Sie dabei Folgendes:

  • JOB_NAME: ein eindeutiger Jobname Ihrer Wahl
  • VERSION: Die Version der Vorlage, die Sie verwenden möchten

    Sie können die folgenden Werte verwenden:

    • latest zur Verwendung der neuesten Version der Vorlage, die im nicht datierten übergeordneten Ordner im Bucket verfügbar ist: gs://dataflow-templates-REGION_NAME/latest/
    • Den Versionsnamen wie 2023-09-12-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates-REGION_NAME/.
  • REGION_NAME: die Region, in der Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • ASTRA_TOKEN: das Astra-Token
  • ASTRA_DATABASE_ID: die Datenbank-ID
  • ASTRA_KEYSPACE: der Cassandra-Schlüsselbereich
  • ASTRA_TABLE: die Cassandra-Tabelle

API

Senden Sie eine HTTP-POST-Anfrage, um die Vorlage mithilfe der REST API auszuführen. Weitere Informationen zur API und ihren Autorisierungsbereichen finden Sie unter 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" }
  }
}

Ersetzen Sie dabei Folgendes:

  • PROJECT_ID: die ID des Google Cloud-Projekts, in dem Sie den Dataflow-Job ausführen möchten
  • JOB_NAME: ein eindeutiger Jobname Ihrer Wahl
  • VERSION: Die Version der Vorlage, die Sie verwenden möchten

    Sie können die folgenden Werte verwenden:

    • latest zur Verwendung der neuesten Version der Vorlage, die im nicht datierten übergeordneten Ordner im Bucket verfügbar ist: gs://dataflow-templates-REGION_NAME/latest/
    • Den Versionsnamen wie 2023-09-12-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates-REGION_NAME/.
  • LOCATION: die Region, in der Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • ASTRA_TOKEN: das Astra-Token
  • ASTRA_DATABASE_ID: die Datenbank-ID
  • ASTRA_KEYSPACE: der Cassandra-Schlüsselbereich
  • ASTRA_TABLE: die Cassandra-Tabelle

Nächste Schritte