Von Google bereitgestellte Dataflow-Batchvorlagen

Google bietet eine Reihe von Open-Source-Vorlagen für Cloud Dataflow.

Mit diesen Dataflow-Vorlagen können Sie umfangreiche Datenaufgaben wie Datenimport, Datenexport, Datensicherung, Datenwiederherstellung und Bulk-API-Vorgänge problemlos ausführen, ohne eine dedizierte Entwicklungsumgebung verwenden zu müssen. Die Vorlagen basieren auf Apache Beam und verwenden Dataflow, um die Daten zu transformieren.

Allgemeine Informationen zu Vorlagen finden Sie unter Dataflow-Vorlagen. Eine Liste aller verfügbaren Kategorien finden Sie unter Kategorien.

In diesem Leitfaden werden Batchvorlagen beschrieben.

BigQuery für Cloud Storage TFRecords

Die Vorlage "BigQuery für Cloud Storage TFRecords" ist eine Pipeline, die Daten aus einer BigQuery-Abfrage liest und in einen Cloud Storage-Bucket im TFRecord-Format schreibt. Sie können die Aufteilung der Prozentsätze für Training, Tests und Validierungen festlegen. Standardmäßig beträgt die Aufteilung 1 oder 100 % für den Trainingssatz und 0 oder 0 % für Test- und Validierungssätze. Beachten Sie, dass bei der Dataset-Aufteilung die Summe aus Training, Tests und Validierungen in der Addition 1 oder 100 % ergeben muss (z. B. 0,6 + 0,2 + 0,2). Dataflow bestimmt automatisch die optimale Anzahl von Shards für jedes Ausgabe-Dataset.

Voraussetzungen für diese Pipeline:

  • Das BigQuery-Dataset und die Tabelle müssen vorhanden sein.
  • Der Cloud Storage-Ausgabe-Bucket muss vor der Pipelineausführung vorhanden sein. Unterverzeichnisse, Training und Validierungen müssen nicht bereits vorhanden sein und werden automatisch generiert.

Vorlagenparameter

Parameter Beschreibung
readQuery Eine BigQuery SQL-Abfrage, die Daten aus der Quelle extrahiert. Beispiel: select * from dataset1.sample_table.
outputDirectory Das Präfix der obersten Ebene des Cloud Storage-Pfads, unter dem die TFRecord-Dateien für Training, Tests und Validierungen geschrieben werden. z. B. gs://mybucket/output. Unterverzeichnisse für resultierende TFRecord-Dateien für Training, Tests und Validierungen werden automatisch aus outputDirectory generiert. Zum Beispiele gs://mybucket/output/train
trainingPercentage [Optional] Der Prozentsatz der Abfragedaten, die TFRecord-Trainingsdateien zugewiesen sind. Der Standardwert ist 1 oder 100 %.
testingPercentage [Optional] Der Prozentsatz der Abfragedaten, die TFRecord-Testdateien zugewiesen sind. Der Standardwert ist 0 oder 0 %.
validationPercentage [Optional] Der Prozentsatz der Abfragedaten, die TFRecord-Validierungsdateien zugewiesen sind. Der Standardwert ist 0 oder 0 %.
outputSuffix [Optional] Das Dateisuffix für die TFRecord-Dateien für Training, Test und Validierung, die geschrieben werden. Der Standardwert ist .tfrecord.

Vorlage "BigQuery für Cloud Storage TFRecord" ausführen

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. Der regionale Standardendpunkt 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 BigQuery to TFRecords template aus.
  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 jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Cloud_BigQuery_to_GCS_TensorFlow_Records \
    --region REGION_NAME \
    --parameters \
readQuery=READ_QUERY,\
outputDirectory=OUTPUT_DIRECTORY,\
trainingPercentage=TRAINING_PERCENTAGE,\
testingPercentage=TESTING_PERCENTAGE,\
validationPercentage=VALIDATION_PERCENTAGE,\
outputSuffix=OUTPUT_FILENAME_SUFFIX

Dabei gilt:

  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-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: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • READ_QUERY: Die auszuführende BigQuery-Abfrage
  • OUTPUT_DIRECTORY: Das Cloud Storage-Pfadpräfix für Ausgabe-Datasets
  • TRAINING_PERCENTAGE: Die Dezimalprozentsatzaufteilung für das Trainings-Dataset
  • TESTING_PERCENTAGE: Die Dezimalprozentsatzaufteilung für das Test-Dataset
  • VALIDATION_PERCENTAGE: Die Dezimalprozentsatzaufteilung für das Validierungs-Dataset
  • OUTPUT_FILENAME_SUFFIX: Das bevorzugte Suffix der TensorFlow Record-Ausgabedatei

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/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Cloud_BigQuery_to_GCS_TensorFlow_Records
{
   "jobName": "JOB_NAME",
   "parameters": {
       "readQuery":"READ_QUERY",
       "outputDirectory":"OUTPUT_DIRECTORY",
       "trainingPercentage":"TRAINING_PERCENTAGE",
       "testingPercentage":"TESTING_PERCENTAGE",
       "validationPercentage":"VALIDATION_PERCENTAGE",
       "outputSuffix":"OUTPUT_FILENAME_SUFFIX"
   },
   "environment": { "zone": "us-central1-f" }
}

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • READ_QUERY: Die auszuführende BigQuery-Abfrage
  • OUTPUT_DIRECTORY: Das Cloud Storage-Pfadpräfix für Ausgabe-Datasets
  • TRAINING_PERCENTAGE: Die Dezimalprozentsatzaufteilung für das Trainings-Dataset
  • TESTING_PERCENTAGE: Die Dezimalprozentsatzaufteilung für das Test-Dataset
  • VALIDATION_PERCENTAGE: Die Dezimalprozentsatzaufteilung für das Validierungs-Dataset
  • OUTPUT_FILENAME_SUFFIX: Das bevorzugte Suffix der TensorFlow Record-Ausgabedatei

BigQuery-Export nach Parquet (über Storage API)

Die Vorlage „BigQuery für Parquet“ ist eine Batchpipeline, die Daten aus einer BigQuery-Tabelle liest und im Parquet-Format in einen Cloud Storage-Bucket schreibt. Diese Vorlage verwendet die BigQuery Storage API zum Exportieren der Daten.

Voraussetzungen für diese Pipeline:

  • Die BigQuery-Eingabetabelle muss vorhanden sein, bevor Sie die Pipeline ausführen.
  • Der Cloud Storage-Ausgabe-Bucket muss vorhanden sein, bevor Sie die Pipeline ausführen.

Vorlagenparameter

Parameter Beschreibung
tableRef Ort der BigQuery-Eingabetabelle. z. B. <my-project>:<my-dataset>.<my-table>
bucket Der Cloud Storage-Ordner, in den die Parquet-Dateien geschrieben werden sollen. z. B. gs://mybucket/exports.
numShards [Optional] Die Anzahl der Shards der Ausgabedatei. Der Standardwert ist 1.
fields (Optional) Eine durch Kommas getrennte Liste von Feldern, die aus der BigQuery-Eingabetabelle ausgewählt werden sollen.

Vorlage „BigQuery für Cloud Storage Parquet“ ausführen

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. Der regionale Standardendpunkt 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 BigQuery export to Parquet (via Storage API) template aus.
  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 beta dataflow flex-template run JOB_NAME \
    --project=PROJECT_ID \
    --template-file-gcs-location=gs://dataflow-templates/VERSION/flex/BigQuery_to_Parquet \
    --region=REGION_NAME \
    --parameters \
tableRef=BIGQUERY_TABLE,\
bucket=OUTPUT_DIRECTORY,\
numShards=NUM_SHARDS,\
fields=FIELDS

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der 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/latest/
    • Den Versionsnamen wie 2021-09-20-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: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • BIGQUERY_TABLE: Ihr BigQuery-Tabellenname
  • OUTPUT_DIRECTORY: Ihr Cloud Storage-Ordner für Ausgabedateien
  • NUM_SHARDS: Die gewünschte Anzahl von Ausgabedateien-Shards
  • FIELDS: Eine durch Kommas getrennte Liste von Feldern, die aus der BigQuery-Eingabetabelle ausgewählt werden

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
{
   "launch_parameter": {
      "jobName": "JOB_NAME",
      "parameters": {
          "tableRef": "BIGQUERY_TABLE",
          "bucket": "OUTPUT_DIRECTORY",
          "numShards": "NUM_SHARDS",
          "fields": "FIELDS"
      },
      "containerSpecGcsPath": "gs://dataflow-templates/VERSION/flex/BigQuery_to_Parquet",
   }
}

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • BIGQUERY_TABLE: Ihr BigQuery-Tabellenname
  • OUTPUT_DIRECTORY: Ihr Cloud Storage-Ordner für Ausgabedateien
  • NUM_SHARDS: Die gewünschte Anzahl von Ausgabedateien-Shards
  • FIELDS: Eine durch Kommas getrennte Liste von Feldern, die aus der BigQuery-Eingabetabelle ausgewählt werden

BigQuery für Elasticsearch

Die Vorlage "BigQuery für Elasticsearch" ist eine Batchpipeline, die Daten aus einer BigQuery-Tabelle als Dokumente in Elasticsearch aufnimmt. Die Vorlage kann entweder die gesamte Tabelle oder bestimmte Datensätze mithilfe einer angegebenen Abfrage lesen.

Voraussetzungen für diese Pipeline

  • Die BigQuery-Quelltabelle
  • Ein Elasticsearch-Host auf einer Google Cloud-Instanz oder in Elastic Cloud mit Elasticsearch Version 7.0 oder höher, der über die Dataflow-Worker-Maschinen zugänglich sein sollte

Vorlagenparameter

Parameter Beschreibung
connectionUrl Elasticsearch-URL im Format https://hostname:[port] oder geben Sie die CloudID an, wenn Elastic Cloud verwendet wird.
apiKey Base64-codierter API-Schlüssel für die Authentifizierung.
index Elasticsearch-Index, an den die Anfragen gestellt werden, z. B. my-index.
inputTableSpec (Optional) BigQuery-Tabelle, aus der gelesen werden soll, um Daten in Elasticsearch einzufügen. Es muss entweder eine Tabelle oder eine Abfrage angegeben werden. z. B. projectId:datasetId.tablename.
query (Optional) SQL-Abfrage zum Abrufen von Daten aus BigQuery. Es muss entweder eine Tabelle oder eine Abfrage angegeben werden.
useLegacySql (Optional) Legen Sie den Wert "true" fest, um Legacy-SQL zu verwenden (nur anwendbar, wenn eine Abfrage bereitstellt wird). Standardeinstellung: false.
batchSize (Optional) Batchgröße in der Anzahl an Dokumenten. Standardeinstellung: 1000.
batchSizeBytes (Optional) Batchgröße in der Anzahl an Byte. Standardeinstellung: 5242880 (5 MB).
maxRetryAttempts (Optional) Maximale Wiederholungsversuche, muss > 0 sein. Standardeinstellung: no retries.
maxRetryDuration (Optional) Maximale Wiederholungsdauer in Millisekunden, muss > 0 sein. Standardeinstellung: no retries.
propertyAsIndex (Optional) Eine Eigenschaft im indexierten Dokument, deren Wert angibt, dass _index-Metadaten im Dokument in der Bulk-Anfrage enthalten sein sollen (hat Vorrang vor einer_index-UDF). Standardwert: none.
propertyAsId (Optional) Eine Eigenschaft im indexierten Dokument, deren Wert angibt, dass _id-Metadaten im Dokument in der Bulk-Anfrage enthalten sein sollen (hat Vorrang vor einer_id-UDF). Standardwert: none.
javaScriptIndexFnGcsPath (Optional) Der Cloud Storage-Pfad zur JavaScript-UDF-Quelle für eine Funktion, die angibt, dass _index-Metadaten im Dokument in der Bulk-Anfrage enthalten sein sollen. Standardwert: none.
javaScriptIndexFnName (Optional) UDF-JavaScript-Funktionsname für eine Funktion, die angibt, dass _index-Metadaten im Dokument in der Bulk-Anfrage enthalten sein sollen. Standardwert: none.
javaScriptIdFnGcsPath (Optional) Der Cloud Storage-Pfad zur JavaScript-UDF-Quelle für eine Funktion, die angibt, dass _id-Metadaten im Dokument in der Bulk-Anfrage enthalten sein sollen. Standardwert: none.
javaScriptIdFnName (Optional) UDF-JavaScript-Funktionsname für eine Funktion, die angibt, dass _id-Metadaten im Dokument in der Bulk-Anfrage enthalten sein sollen. Standardwert: none.
javaScriptTypeFnGcsPath (Optional) Der Cloud Storage-Pfad zur JavaScript-UDF-Quelle für eine Funktion, die angibt, dass _type-Metadaten im Dokument in der Bulk-Anfrage enthalten sein sollen. Standardwert: none.
javaScriptTypeFnName (Optional) UDF-JavaScript-Funktionsname für eine Funktion, die angibt, dass _type-Metadaten im Dokument in der Bulk-Anfrage enthalten sein sollen. Standardwert: none.
javaScriptIsDeleteFnGcsPath (Optional) Der Cloud Storage-Pfad zur JavaScript-UDF-Quelle für eine Funktion, die bestimmt, ob das Dokument gelöscht statt eingefügt oder aktualisiert werden soll. Die Funktion sollte den Stringwert "true" oder "false" zurückgeben. Standardwert: none.
javaScriptIsDeleteFnName (Optional) UDF-JavaScript-Funktionsname für eine Funktion, die bestimmt, ob das Dokument gelöscht statt eingefügt oder aktualisiert werden soll. Die Funktion sollte den Stringwert "true" oder "false" zurückgeben. Standardwert: none.
usePartialUpdate (Optional) Gibt an, ob Teilaktualisierungen (Aktualisieren statt Erstellen oder Indexieren, Teildokumente sind zulässig) in Elasticsearch-Anfragen verwendet werden sollen. Standardeinstellung: false.
bulkInsertMethod (Optional) Gibt an, ob INDEX (Indexieren, Upserts sind zulässig) oder CREATE (Erstellen, Fehler bei doppelter _id) in Bulk-Anfragen von Elasticsearch verwendet werden soll. Standardeinstellung: CREATE.

Vorlage "BigQuery für Elasticsearch" ausführen

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. Der regionale Standardendpunkt 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 BigQuery to Elasticsearch template aus.
  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 beta dataflow flex-template run JOB_NAME \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --template-file-gcs-location=gs://dataflow-templates/VERSION/flex/BigQuery_to_Elasticsearch \
    --parameters \
inputTableSpec=INPUT_TABLE_SPEC,\
connectionUrl=CONNECTION_URL,\
apiKey=APIKEY,\
index=INDEX

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der Sie den Dataflow-Job ausführen möchten
  • JOB_NAME: ein eindeutiger Jobname Ihrer Wahl
  • REGION_NAME: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • INPUT_TABLE_SPEC: ist der BigQuery-Tabellenname
  • CONNECTION_URL: ist die Elasticsearch-URL
  • APIKEY: ist der base64-codierte API-Schlüssel für die Authentifizierung
  • INDEX: ist ihr Elasticsearch-Index

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
{
   "launch_parameter": {
      "jobName": "JOB_NAME",
      "parameters": {
          "inputTableSpec": "INPUT_TABLE_SPEC",
          "connectionUrl": "CONNECTION_URL",
          "apiKey": "APIKEY",
          "index": "INDEX"
      },
      "containerSpecGcsPath": "gs://dataflow-templates/VERSION/flex/BigQuery_to_Elasticsearch",
   }
}

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der Sie den Dataflow-Job ausführen möchten
  • JOB_NAME: ein eindeutiger Jobname Ihrer Wahl
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • INPUT_TABLE_SPEC: ist der BigQuery-Tabellenname
  • CONNECTION_URL: ist die Elasticsearch-URL
  • APIKEY: ist der base64-codierte API-Schlüssel für die Authentifizierung
  • INDEX: ist ihr Elasticsearch-Index

BigQuery für MongoDB

Die Vorlage "BigQuery für MongoDB" ist eine Batchpipeline, die Zeilen aus BigQuery liest und als Dokumente in MongoDB schreibt. Derzeit wird jede Zeile als Dokument gespeichert.

Voraussetzungen für diese Pipeline

  • Die BigQuery-Quelltabelle
  • Die MongoDB-Zielinstanz sollte über die Dataflow-Worker-Maschinen zugänglich sein.

Vorlagenparameter

Parameter Beschreibung
mongoDbUri MongoDB-Verbindungs-URI im Format mongodb+srv://:@.
database Datenbank in MongoDB zum Speichern der Sammlung. Beispiel: my-db.
collection Name der Sammlung in der MongoDB-Datenbank. Beispiel: my-collection.
inputTableSpec BigQuery-Tabelle, aus der gelesen werden soll. Beispiel: bigquery-project:dataset.input_table.

Vorlage "BigQuery für MongoDB" ausführen

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. Der regionale Standardendpunkt 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 BigQuery to MongoDB template aus.
  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 beta dataflow flex-template run JOB_NAME \
      --project=PROJECT_ID \
      --region=REGION_NAME \
      --template-file-gcs-location=gs://dataflow-templates/VERSION/flex/BigQuery_to_MongoDB \
      --parameters \
  inputTableSpec=INPUT_TABLE_SPEC,\
  mongoDbUri=MONGO_DB_URI,\
  database=DATABASE,\
  collection=COLLECTION
  

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der Sie den Dataflow-Job ausführen möchten
  • JOB_NAME: ein eindeutiger Jobname Ihrer Wahl
  • REGION_NAME: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • INPUT_TABLE_SPEC: Der Name Ihrer BigQuery-Quelltabelle.
  • MONGO_DB_URI: Ihr MongoDB-URI.
  • DATABASE: Ihre MongoDB-Datenbank.
  • COLLECTION: Ihre MongoDB-Sammlung.

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
  {
     "launch_parameter": {
        "jobName": "JOB_NAME",
        "parameters": {
            "inputTableSpec": "INPUT_TABLE_SPEC",
            "mongoDbUri": "MONGO_DB_URI",
            "database": "DATABASE",
            "collection": "COLLECTION"
        },
        "containerSpecGcsPath": "gs://dataflow-templates/VERSION/flex/BigQuery_to_MongoDB",
     }
  }

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der Sie den Dataflow-Job ausführen möchten
  • JOB_NAME: ein eindeutiger Jobname Ihrer Wahl
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • INPUT_TABLE_SPEC: Der Name Ihrer BigQuery-Quelltabelle.
  • MONGO_DB_URI: Ihr MongoDB-URI.
  • DATABASE: Ihre MongoDB-Datenbank.
  • COLLECTION: Ihre MongoDB-Sammlung.

Bigtable für Cloud Storage Avro

Die Vorlage "Cloud Bigtable für Cloud Storage Avro" ist eine Pipeline, die Daten aus einer Bigtable-Tabelle liest und in einen Cloud Storage-Bucket im Avro-Format schreibt. Sie können die Vorlage verwenden, um Daten von Bigtable in Cloud Storage zu verschieben.

Voraussetzungen für diese Pipeline:

  • Die Bigtable-Tabelle muss vorhanden sein.
  • Der Cloud Storage-Ausgabe-Bucket muss vorhanden sein, bevor Sie die Pipeline ausführen.

Vorlagenparameter

Parameter Beschreibung
bigtableProjectId Die ID des Google Cloud-Projekts der Bigtable-Instanz, aus der Sie Daten lesen möchten.
bigtableInstanceId Die ID der Bigtable-Instanz, die die Tabelle enthält.
bigtableTableId Die ID der zu exportierenden Bigtable-Tabelle.
outputDirectory Der Cloud Storage-Pfad, in den Daten geschrieben werden. Beispiel: gs://mybucket/somefolder.
filenamePrefix Das Präfix des Avro-Dateinamens. Beispiel: output-.

Vorlage „Bigtable für Cloud Storage Avro” ausführen

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. Der regionale Standardendpunkt 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 Cloud Bigtable to Avro Files on Cloud Storage template aus.
  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 jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Avro \
    --region REGION_NAME \
    --parameters \
bigtableProjectId=BIGTABLE_PROJECT_ID,\
bigtableInstanceId=INSTANCE_ID,\
bigtableTableId=TABLE_ID,\
outputDirectory=OUTPUT_DIRECTORY,\
filenamePrefix=FILENAME_PREFIX

Dabei gilt:

  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-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: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • BIGTABLE_PROJECT_ID: Die ID des Google Cloud-Projekts der Bigtable-Instanz, aus der Sie Daten lesen möchten.
  • INSTANCE_ID: Die ID der Bigtable-Instanz, die die Tabelle enthält.
  • TABLE_ID: Die ID der zu exportierenden Bigtable-Tabelle.
  • OUTPUT_DIRECTORY: Der Cloud Storage-Pfad, in den Daten geschrieben werden, z. B. gs://mybucket/somefolder
  • FILENAME_PREFIX: Das Präfix des Avro-Dateinamens, z. B. output-

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/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Avro
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "BIGTABLE_PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "outputDirectory": "OUTPUT_DIRECTORY",
       "filenamePrefix": "FILENAME_PREFIX",
   },
   "environment": { "zone": "us-central1-f" }
}

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • BIGTABLE_PROJECT_ID: Die ID des Google Cloud-Projekts der Bigtable-Instanz, aus der Sie Daten lesen möchten.
  • INSTANCE_ID: Die ID der Bigtable-Instanz, die die Tabelle enthält.
  • TABLE_ID: Die ID der zu exportierenden Bigtable-Tabelle.
  • OUTPUT_DIRECTORY: Der Cloud Storage-Pfad, in den Daten geschrieben werden, z. B. gs://mybucket/somefolder
  • FILENAME_PREFIX: Das Präfix des Avro-Dateinamens, z. B. output-

Bigtable für Cloud Storage Parquet

Die Vorlage "Cloud Bigtable für Cloud Storage Parquet" ist eine Pipeline, die Daten aus einer Bigtable-Tabelle liest und in einen Cloud Storage-Bucket im Parquet-Format schreibt. Sie können die Vorlage verwenden, um Daten von Bigtable in Cloud Storage zu verschieben.

Voraussetzungen für diese Pipeline:

  • Die Bigtable-Tabelle muss vorhanden sein.
  • Der Cloud Storage-Ausgabe-Bucket muss vorhanden sein, bevor Sie die Pipeline ausführen.

Vorlagenparameter

Parameter Beschreibung
bigtableProjectId Die ID des Google Cloud-Projekts der Bigtable-Instanz, aus der Sie Daten lesen möchten.
bigtableInstanceId Die ID der Bigtable-Instanz, die die Tabelle enthält.
bigtableTableId Die ID der zu exportierenden Bigtable-Tabelle.
outputDirectory Der Cloud Storage-Pfad, in den Daten geschrieben werden. Beispiel: gs://mybucket/somefolder.
filenamePrefix Das Präfix des Parquet-Dateinamens. Beispiel: output-.
numShards Die Anzahl von Shards für Ausgabedateien. Beispiel: 2

Vorlage „Bigtable für Cloud Storage Parquet” ausführen

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. Der regionale Standardendpunkt 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 Cloud Bigtable to Parquet Files on Cloud Storage template aus.
  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 jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Parquet \
    --region REGION_NAME \
    --parameters \
bigtableProjectId=BIGTABLE_PROJECT_ID,\
bigtableInstanceId=INSTANCE_ID,\
bigtableTableId=TABLE_ID,\
outputDirectory=OUTPUT_DIRECTORY,\
filenamePrefix=FILENAME_PREFIX,\
numShards=NUM_SHARDS

Dabei gilt:

  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-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: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • BIGTABLE_PROJECT_ID: Die ID des Google Cloud-Projekts der Bigtable-Instanz, aus der Sie Daten lesen möchten.
  • INSTANCE_ID: Die ID der Bigtable-Instanz, die die Tabelle enthält.
  • TABLE_ID: Die ID der zu exportierenden Bigtable-Tabelle.
  • OUTPUT_DIRECTORY: Der Cloud Storage-Pfad, in den Daten geschrieben werden, z. B. gs://mybucket/somefolder
  • FILENAME_PREFIX: Das Präfix des Parquet-Dateinamens, z. B. output-
  • NUM_SHARDS: Die Anzahl der auszugebenden Parquet-Dateien, z. B. 1

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/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Parquet
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "BIGTABLE_PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "outputDirectory": "OUTPUT_DIRECTORY",
       "filenamePrefix": "FILENAME_PREFIX",
       "numShards": "NUM_SHARDS"
   },
   "environment": { "zone": "us-central1-f" }
}

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • BIGTABLE_PROJECT_ID: Die ID des Google Cloud-Projekts der Bigtable-Instanz, aus der Sie Daten lesen möchten.
  • INSTANCE_ID: Die ID der Bigtable-Instanz, die die Tabelle enthält.
  • TABLE_ID: Die ID der zu exportierenden Bigtable-Tabelle.
  • OUTPUT_DIRECTORY: Der Cloud Storage-Pfad, in den Daten geschrieben werden, z. B. gs://mybucket/somefolder
  • FILENAME_PREFIX: Das Präfix des Parquet-Dateinamens, z. B. output-
  • NUM_SHARDS: Die Anzahl der auszugebenden Parquet-Dateien, z. B. 1

Bigtable für Cloud Storage SequenceFile

Die Vorlage "Cloud Bigtable für Cloud Storage SequenceFile" ist eine Pipeline, die Daten aus einer Bigtable-Tabelle liest und in einen Cloud Storage-Bucket im SequenceFile-Format schreibt. Sie können die Vorlage verwenden, um Daten von Bigtable in Cloud Storage zu kopieren.

Voraussetzungen für diese Pipeline:

  • Die Bigtable-Tabelle muss vorhanden sein.
  • Der Cloud Storage-Ausgabe-Bucket muss vorhanden sein, bevor Sie die Pipeline ausführen.

Vorlagenparameter

Parameter Beschreibung
bigtableProject Die ID des Google Cloud-Projekts der Bigtable-Instanz, aus der Sie Daten lesen möchten.
bigtableInstanceId Die ID der Bigtable-Instanz, die die Tabelle enthält.
bigtableTableId Die ID der zu exportierenden Bigtable-Tabelle.
bigtableAppProfileId Die ID des Bigtable-Anwendungsprofils, das für den Export verwendet werden soll. Wenn Sie kein Anwendungsprofil angeben, verwendet Bigtable das Standard-Anwendungsprofil der Instanz.
destinationPath Der Cloud Storage-Pfad, in den Daten geschrieben werden. Beispiel: gs://mybucket/somefolder.
filenamePrefix Das Präfix des SequenceFile-Dateinamens. Beispiel: output-.

Vorlage "Cloud Bigtable für Cloud Storage SequenceFile" ausführen

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. Der regionale Standardendpunkt 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 Cloud Bigtable to SequenceFile Files on Cloud Storage template aus.
  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 jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_SequenceFile \
    --region REGION_NAME \
    --parameters \
bigtableProject=BIGTABLE_PROJECT_ID,\
bigtableInstanceId=INSTANCE_ID,\
bigtableTableId=TABLE_ID,\
bigtableAppProfileId=APPLICATION_PROFILE_ID,\
destinationPath=DESTINATION_PATH,\
filenamePrefix=FILENAME_PREFIX

Dabei gilt:

  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-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: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • BIGTABLE_PROJECT_ID: Die ID des Google Cloud-Projekts der Bigtable-Instanz, aus der Sie Daten lesen möchten.
  • INSTANCE_ID: Die ID der Bigtable-Instanz, die die Tabelle enthält.
  • TABLE_ID: Die ID der zu exportierenden Bigtable-Tabelle.
  • APPLICATION_PROFILE_ID: Die ID des Bigtable-Anwendungsprofils, das für den Export verwendet werden soll.
  • DESTINATION_PATH: Der Cloud Storage-Pfad, in den Daten geschrieben werden, z. B. gs://mybucket/somefolder
  • FILENAME_PREFIX: Das Präfix des SequenceFile-Dateinamens. Beispiel: output-.

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/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_SequenceFile
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProject": "BIGTABLE_PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "bigtableAppProfileId": "APPLICATION_PROFILE_ID",
       "destinationPath": "DESTINATION_PATH",
       "filenamePrefix": "FILENAME_PREFIX",
   },
   "environment": { "zone": "us-central1-f" }
}

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • BIGTABLE_PROJECT_ID: Die ID des Google Cloud-Projekts der Bigtable-Instanz, aus der Sie Daten lesen möchten.
  • INSTANCE_ID: Die ID der Bigtable-Instanz, die die Tabelle enthält.
  • TABLE_ID: Die ID der zu exportierenden Bigtable-Tabelle.
  • APPLICATION_PROFILE_ID: Die ID des Bigtable-Anwendungsprofils, das für den Export verwendet werden soll.
  • DESTINATION_PATH: Der Cloud Storage-Pfad, in den Daten geschrieben werden, z. B. gs://mybucket/somefolder
  • FILENAME_PREFIX: Das Präfix des SequenceFile-Dateinamens. Beispiel: output-.

Datastore für Cloud Storage Text [verworfen]

Diese Vorlage wurde verworfen und wird in Q1 2022 entfernt. Bitte migrieren Sie die Vorlage Firestore zu Cloud Storage Text.

Die Vorlage "Datastore für Cloud Storage Text" ist eine Batchpipeline, die Datastore-Entitäten liest und als Textdateien in Cloud Storage schreibt. Sie können eine Funktion zum Verarbeiten aller Entitäten als JSON-Strings bereitstellen. Wenn Sie keine derartige Funktion bereitstellen, ist jede Zeile in der Ausgabedatei eine JSON-serialisierte Entität.

Voraussetzungen für diese Pipeline:

Datastore muss im Projekt eingerichtet werden, bevor Sie die Pipeline ausführen.

Vorlagenparameter

Parameter Beschreibung
datastoreReadGqlQuery Eine GQL-Abfrage, die angibt, welche Entitäten abgerufen werden sollen. Beispiel: SELECT * FROM MyKind.
datastoreReadProjectId Die Google Cloud-Projekt-ID der Datastore-Instanz, aus der Daten gelesen werden sollen.
datastoreReadNamespace Der Namespace der angeforderten Entitäten. Lassen Sie diesen Parameter leer, um den Standard-Namespace zu verwenden.
javascriptTextTransformGcsPath (Optional) Der Cloud Storage-URI der Datei .js, in der die benutzerdefinierte JavaScript-Funktion (UDF) definiert wird, die Sie verwenden möchten. Beispiel: gs://my-bucket/my-udfs/my_file.js.
javascriptTextTransformFunctionName (Optional) Der Name der benutzerdefinierten JavaScript-Funktion, die Sie verwenden möchten. Wenn Ihre JavaScript-Funktion beispielsweise myTransform(inJson) { /*...do stuff...*/ } ist, lautet der Funktionsname myTransform. Beispiele für JavaScript-UDFs finden Sie unter UDF-Beispiele.
textWritePrefix Das Präfix des Cloud Storage-Pfads zum Angeben des Orts, an dem die Daten geschrieben werden. Beispiel: gs://mybucket/somefolder/.

Vorlage "Datastore für Cloud Storage Text" ausführen

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. Der regionale Standardendpunkt 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 Datastore to Text Files on Cloud Storage template aus.
  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 jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Datastore_to_GCS_Text \
    --region REGION_NAME \
    --parameters \
datastoreReadGqlQuery="SELECT * FROM DATASTORE_KIND",\
datastoreReadProjectId=DATASTORE_PROJECT_ID,\
datastoreReadNamespace=DATASTORE_NAMESPACE,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\
textWritePrefix=gs://BUCKET_NAME/output/

Dabei gilt:

  • JOB_NAME: ein eindeutiger Jobname Ihrer Wahl
  • REGION_NAME: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • BUCKET_NAME: der Name Ihres Cloud Storage-Buckets
  • DATASTORE_PROJECT_ID: Die ID des Cloud-Projekts, in dem die Datastore-Instanz vorhanden ist
  • DATASTORE_KIND: der Typ Ihrer Datastore-Entitäten
  • DATASTORE_NAMESPACE: der Namespace Ihrer Datastore-Entitäten
  • JAVASCRIPT_FUNCTION: ist der Name der benutzerdefinierten JavaScript-Funktion (UDF), die Sie verwenden möchten.

    Wenn Ihre JavaScript-Funktion beispielsweise myTransform(inJson) { /*...do stuff...*/ } ist, lautet der Funktionsname myTransform. Beispiele für JavaScript-UDFs finden Sie unter UDF-Beispiele.

  • PATH_TO_JAVASCRIPT_UDF_FILE Der Cloud Storage-URI der Datei .js, in der die benutzerdefinierte JavaScript-Funktion (UDF) definiert wird, die Sie verwenden möchten. Beispiel: gs://my-bucket/my-udfs/my_file.js

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/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Datastore_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "datastoreReadGqlQuery": "SELECT * FROM DATASTORE_KIND"
       "datastoreReadProjectId": "DATASTORE_PROJECT_ID",
       "datastoreReadNamespace": "DATASTORE_NAMESPACE",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION",
       "textWritePrefix": "gs://BUCKET_NAME/output/"
   },
   "environment": { "zone": "us-central1-f" }
}

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der Sie den Dataflow-Job ausführen möchten
  • JOB_NAME: ein eindeutiger Jobname Ihrer Wahl
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • BUCKET_NAME: der Name Ihres Cloud Storage-Buckets
  • DATASTORE_PROJECT_ID: Die ID des Cloud-Projekts, in dem die Datastore-Instanz vorhanden ist
  • DATASTORE_KIND: der Typ Ihrer Datastore-Entitäten
  • DATASTORE_NAMESPACE: der Namespace Ihrer Datastore-Entitäten
  • JAVASCRIPT_FUNCTION: ist der Name der benutzerdefinierten JavaScript-Funktion (UDF), die Sie verwenden möchten.

    Wenn Ihre JavaScript-Funktion beispielsweise myTransform(inJson) { /*...do stuff...*/ } ist, lautet der Funktionsname myTransform. Beispiele für JavaScript-UDFs finden Sie unter UDF-Beispiele.

  • PATH_TO_JAVASCRIPT_UDF_FILE Der Cloud Storage-URI der Datei .js, in der die benutzerdefinierte JavaScript-Funktion (UDF) definiert wird, die Sie verwenden möchten. Beispiel: gs://my-bucket/my-udfs/my_file.js

Firestore für Cloud Storage Text

Die Vorlage „Firestore für Cloud Storage Text“ ist eine Batchpipeline, die Firestore-Entitäten liest und als Textdateien in Cloud Storage schreibt. Sie können eine Funktion zum Verarbeiten aller Entitäten als JSON-Strings bereitstellen. Wenn Sie keine derartige Funktion bereitstellen, ist jede Zeile in der Ausgabedatei eine JSON-serialisierte Entität.

Voraussetzungen für diese Pipeline:

Firestore muss im Projekt eingerichtet werden, bevor Sie die Pipeline ausführen.

Vorlagenparameter

Parameter Beschreibung
firestoreReadGqlQuery Eine GQL-Abfrage, die angibt, welche Entitäten abgerufen werden sollen. Beispiel: SELECT * FROM MyKind.
firestoreReadProjectId Die Google Cloud-Projekt-ID der Firestore-Instanz, aus der Daten gelesen werden sollen.
firestoreReadNamespace Der Namespace der angeforderten Entitäten. Lassen Sie diesen Parameter leer, um den Standard-Namespace zu verwenden.
javascriptTextTransformGcsPath (Optional) Der Cloud Storage-URI der Datei .js, in der die benutzerdefinierte JavaScript-Funktion (UDF) definiert wird, die Sie verwenden möchten. Beispiel: gs://my-bucket/my-udfs/my_file.js.
javascriptTextTransformFunctionName (Optional) Der Name der benutzerdefinierten JavaScript-Funktion, die Sie verwenden möchten. Wenn Ihre JavaScript-Funktion beispielsweise myTransform(inJson) { /*...do stuff...*/ } ist, lautet der Funktionsname myTransform. Beispiele für JavaScript-UDFs finden Sie unter UDF-Beispiele.
textWritePrefix Das Präfix des Cloud Storage-Pfads zum Angeben des Orts, an dem die Daten geschrieben werden. Beispiel: gs://mybucket/somefolder/.

Vorlage „Firestore für Cloud Storage Text“ ausführen

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. Der regionale Standardendpunkt 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 Firestore to Text Files on Cloud Storage template aus.
  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 jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Firestore_to_GCS_Text \
    --region REGION_NAME \
    --parameters \
firestoreReadGqlQuery="SELECT * FROM FIRESTORE_KIND",\
firestoreReadProjectId=FIRESTORE_PROJECT_ID,\
firestoreReadNamespace=FIRESTORE_NAMESPACE,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\
textWritePrefix=gs://BUCKET_NAME/output/

Dabei gilt:

  • JOB_NAME: ein eindeutiger Jobname Ihrer Wahl
  • REGION_NAME: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • BUCKET_NAME: der Name Ihres Cloud Storage-Buckets
  • FIRESTORE_PROJECT_ID: Die ID des Cloud-Projekts, in dem die Firestore-Instanz vorhanden ist
  • FIRESTORE_KIND: Typ Ihrer Firestore-Entitäten
  • FIRESTORE_NAMESPACE: Namespace Ihrer Firestore-Entitäten
  • JAVASCRIPT_FUNCTION: ist der Name der benutzerdefinierten JavaScript-Funktion (UDF), die Sie verwenden möchten.

    Wenn Ihre JavaScript-Funktion beispielsweise myTransform(inJson) { /*...do stuff...*/ } ist, lautet der Funktionsname myTransform. Beispiele für JavaScript-UDFs finden Sie unter UDF-Beispiele.

  • PATH_TO_JAVASCRIPT_UDF_FILE Der Cloud Storage-URI der Datei .js, in der die benutzerdefinierte JavaScript-Funktion (UDF) definiert wird, die Sie verwenden möchten. Beispiel: gs://my-bucket/my-udfs/my_file.js

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/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Firestore_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "firestoreReadGqlQuery": "SELECT * FROM FIRESTORE_KIND"
       "firestoreReadProjectId": "FIRESTORE_PROJECT_ID",
       "firestoreReadNamespace": "FIRESTORE_NAMESPACE",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION",
       "textWritePrefix": "gs://BUCKET_NAME/output/"
   },
   "environment": { "zone": "us-central1-f" }
}

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der Sie den Dataflow-Job ausführen möchten
  • JOB_NAME: ein eindeutiger Jobname Ihrer Wahl
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • BUCKET_NAME: der Name Ihres Cloud Storage-Buckets
  • FIRESTORE_PROJECT_ID: Die ID des Cloud-Projekts, in dem die Firestore-Instanz vorhanden ist
  • FIRESTORE_KIND: Typ Ihrer Firestore-Entitäten
  • FIRESTORE_NAMESPACE: Namespace Ihrer Firestore-Entitäten
  • JAVASCRIPT_FUNCTION: ist der Name der benutzerdefinierten JavaScript-Funktion (UDF), die Sie verwenden möchten.

    Wenn Ihre JavaScript-Funktion beispielsweise myTransform(inJson) { /*...do stuff...*/ } ist, lautet der Funktionsname myTransform. Beispiele für JavaScript-UDFs finden Sie unter UDF-Beispiele.

  • PATH_TO_JAVASCRIPT_UDF_FILE Der Cloud Storage-URI der Datei .js, in der die benutzerdefinierte JavaScript-Funktion (UDF) definiert wird, die Sie verwenden möchten. Beispiel: gs://my-bucket/my-udfs/my_file.js

Cloud Spanner für Cloud Storage Avro

Die Vorlage "Cloud Spanner für Avro-Dateien in Cloud Storage" ist eine Batchpipeline, die eine vollständige Cloud Spanner-Datenbank im Avro-Format nach Cloud Storage exportiert. Beim Exportieren einer Cloud Spanner-Datenbank wird ein Ordner in dem von Ihnen ausgewählten Bucket erstellt. Der Ordner enthält:

  • Eine spanner-export.json-Datei
  • Eine TableName-manifest.json-Datei für jede Tabelle in der Datenbank, die Sie exportiert haben
  • Mindestens eine TableName.avro-#####-of-#####-Datei

Wenn Sie beispielsweise eine Datenbank mit den zwei Tabellen Singers und Albums exportieren, wird die folgende Dateigruppe erstellt:

  • Albums-manifest.json
  • Albums.avro-00000-of-00002
  • Albums.avro-00001-of-00002
  • Singers-manifest.json
  • Singers.avro-00000-of-00003
  • Singers.avro-00001-of-00003
  • Singers.avro-00002-of-00003
  • spanner-export.json

Voraussetzungen für diese Pipeline:

  • Die Cloud Spanner-Datenbank muss vorhanden sein.
  • Der Cloud Storage-Ausgabe-Bucket muss vorhanden sein.
  • Zusätzlich zu den IAM-Rollen, die zum Ausführen von Dataflow-Jobs erforderlich sind, müssen Sie die entsprechenden IAM-Rollen haben, um Ihre Cloud Spanner-Daten zu lesen und in Ihren Cloud Storage-Bucket zu schreiben.

Vorlagenparameter

Parameter Beschreibung
instanceId Die Instanz-ID der Cloud Spanner-Datenbank, die Sie exportieren möchten.
databaseId Die Datenbank-ID der Cloud Spanner-Datenbank, die Sie exportieren möchten.
outputDir Der Cloud Storage-Pfad, in den Sie Avro-Dateien exportieren möchten. Der Exportjob erstellt unter diesem Pfad ein neues Verzeichnis, das die exportierten Dateien enthält.
snapshotTime (Optional) Der Zeitstempel für die Version der Cloud Spanner-Datenbank, die Sie lesen möchten. Der Zeitstempel muss im RFC 3339-UTC-"Zulu"-Format angegeben werden. Beispiel: 1990-12-31T23:59:60Z. Der Zeitstempel muss in der Vergangenheit liegen und die maximale Zeitstempelveralterung gilt.
tableNames (Optional) Eine durch Kommas getrennte Liste von Tabellen, die die Teilmenge der zu exportierenden Cloud Spanner-Datenbank angeben. Die Liste muss alle zugehörigen Tabellen enthalten (übergeordnete Tabellen, Fremdschlüssel-Tabellen). Wenn sie nicht explizit aufgeführt sind, muss das Flag "sollteExportBasedTables" für einen erfolgreichen Export gesetzt sein.
shouldExportRelatedTables (Optional) Das Flag, das in Verbindung mit dem Parameter „tableNames“ verwendet wird, um alle zu exportierenden Tabellen einzubeziehen.
spannerProjectId (Optional) Die Google Cloud-Projekt-ID der Cloud Spanner-Datenbank, aus der Daten gelesen werden sollen.

Vorlage „Cloud Spanner für Avro-Dateien in Cloud Storage“ ausführen

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.

    Damit der Job auf der Seite Instanzen für Spanner in der Google Cloud Console angezeigt wird, muss der Jobname dem folgenden Format entsprechen:

    cloud-spanner-export-SPANNER_INSTANCE_ID-SPANNER_DATABASE_NAME

    Ersetzen Sie Folgendes:

    • SPANNER_INSTANCE_ID: ID Ihrer Spanner-Instanz
    • SPANNER_DATABASE_NAME: Name der Spanner-Datenbank
  4. Optional: Wählen Sie für Regionaler Endpunkt einen Wert aus dem Drop-down-Menü aus. Der regionale Standardendpunkt 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 Cloud Spanner to Avro Files on Cloud Storage template aus.
  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 jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro \
    --region REGION_NAME \
    --staging-location GCS_STAGING_LOCATION \
    --parameters \
instanceId=INSTANCE_ID,\
databaseId=DATABASE_ID,\
outputDir=GCS_DIRECTORY

Dabei gilt:

  • JOB_NAME: ein eindeutiger Jobname Ihrer Wahl

    Damit der Job im Cloud Spanner-Bereich der Google Cloud Console angezeigt wird, muss der Jobname folgendes Format haben:cloud-spanner-export-INSTANCE_ID-DATABASE_ID.

  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-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: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • GCS_STAGING_LOCATION: der Pfad zum Schreiben temporärer Dateien, z. B. gs://mybucket/temp
  • INSTANCE_ID: Ihre Cloud Spanner-Instanz-ID
  • DATABASE_ID: Ihre Cloud Spanner-Datenbank-ID
  • GCS_DIRECTORY: Der Cloud-Speicherpfad, in den die Avro-Dateien exportiert werden,

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/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro
{
   "jobName": "JOB_NAME",
   "parameters": {
       "instanceId": "INSTANCE_ID",
       "databaseId": "DATABASE_ID",
       "outputDir": "gs://GCS_DIRECTORY"
   }
}

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der Sie den Dataflow-Job ausführen möchten
  • JOB_NAME: ein eindeutiger Jobname Ihrer Wahl

    Damit der Job im Cloud Spanner-Bereich der Google Cloud Console angezeigt wird, muss der Jobname folgendes Format haben:cloud-spanner-export-INSTANCE_ID-DATABASE_ID.

  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • GCS_STAGING_LOCATION: der Pfad zum Schreiben temporärer Dateien, z. B. gs://mybucket/temp
  • INSTANCE_ID: Ihre Cloud Spanner-Instanz-ID
  • DATABASE_ID: Ihre Cloud Spanner-Datenbank-ID
  • GCS_DIRECTORY: Der Cloud-Speicherpfad, in den die Avro-Dateien exportiert werden,

Cloud Spanner für Cloud Storage Text

Die Vorlage "Cloud Spanner für Cloud Storage Text" ist eine Batchpipeline, die Daten aus einer Cloud Spanner-Tabelle einliest und als CSV-Textdateien in Cloud Storage schreibt.

Voraussetzungen für diese Pipeline:

  • Die Spanner-Tabelle mit den Eingabedaten muss vorhanden sein, bevor Sie die Pipeline ausführen.

Vorlagenparameter

Parameter Beschreibung
spannerProjectId Die Google Cloud-Projekt-ID der Cloud Spanner-Datenbank, aus der Daten gelesen werden sollen.
spannerDatabaseId Die Datenbank-ID der angeforderten Tabelle.
spannerInstanceId Die Instanz-ID der angeforderten Tabelle.
spannerTable Die Tabelle, aus der die Daten gelesen werden sollen.
textWritePrefix Das Verzeichnis, in das Ausgabetextdateien geschrieben werden. Fügen Sie am Ende einen Schrägstrich (/) hinzu. Beispiel: gs://mybucket/somefolder/.
spannerSnapshotTime (Optional) Der Zeitstempel für die Version der Cloud Spanner-Datenbank, die Sie lesen möchten. Der Zeitstempel muss im RFC 3339-UTC-"Zulu"-Format angegeben werden. Beispiel: 1990-12-31T23:59:60Z. Der Zeitstempel muss in der Vergangenheit liegen und die maximale Zeitstempelveralterung gilt.

Vorlage "Cloud Spanner für Cloud Storage Text" ausführen

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. Der regionale Standardendpunkt 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 Cloud Spanner to Text Files on Cloud Storage template aus.
  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 jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Spanner_to_GCS_Text \
    --region REGION_NAME \
    --parameters \
spannerProjectId=SPANNER_PROJECT_ID,\
spannerDatabaseId=DATABASE_ID,\
spannerInstanceId=INSTANCE_ID,\
spannerTable=TABLE_ID,\
textWritePrefix=gs://BUCKET_NAME/output/

Dabei gilt:

  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-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: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • SPANNER_PROJECT_ID: die Cloud-Projekt-ID der Spanner-Datenbank, aus der Sie Daten lesen möchten
  • DATABASE_ID: Die Spanner-Datenbank-ID
  • BUCKET_NAME: der Name Ihres Cloud Storage-Buckets
  • INSTANCE_ID: Die Spanner-Instanz-ID
  • TABLE_ID: Die Spanner-Tabellen-ID

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/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Spanner_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "spannerProjectId": "SPANNER_PROJECT_ID",
       "spannerDatabaseId": "DATABASE_ID",
       "spannerInstanceId": "INSTANCE_ID",
       "spannerTable": "TABLE_ID",
       "textWritePrefix": "gs://BUCKET_NAME/output/"
   },
   "environment": { "zone": "us-central1-f" }
}

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • SPANNER_PROJECT_ID: die Cloud-Projekt-ID der Spanner-Datenbank, aus der Sie Daten lesen möchten
  • DATABASE_ID: Die Spanner-Datenbank-ID
  • BUCKET_NAME: der Name Ihres Cloud Storage-Buckets
  • INSTANCE_ID: Die Spanner-Instanz-ID
  • TABLE_ID: Die Spanner-Tabellen-ID

Cloud Storage Avro für Bigtable

Die Vorlage "Cloud Storage Avro für Cloud Bigtable" ist eine Pipeline, die Daten aus Avro-Dateien in einem Cloud Storage-Bucket liest und in eine Bigtable-Tabelle schreibt. Sie können die Vorlage verwenden, um Daten aus Cloud Storage in Bigtable zu kopieren.

Voraussetzungen für diese Pipeline:

  • Die Bigtable-Tabelle muss vorhanden sein und dieselben Spaltenfamilien haben, die in die Avro-Dateien exportiert wurden.
  • Die Avro-Eingabedateien müssen in einem Cloud Storage-Bucket vorhanden sein, bevor Sie die Pipeline ausführen.
  • Bigtable erwartet ein bestimmtes Schema aus den Avro-Eingabedateien.

Vorlagenparameter

Parameter Beschreibung
bigtableProjectId Die ID des Google Cloud-Projekts der Bigtable-Instanz, in die Daten geschrieben werden sollen.
bigtableInstanceId Die ID der Bigtable-Instanz, die die Tabelle enthält.
bigtableTableId Die ID der zu importierenden Bigtable-Tabelle.
inputFilePattern Das Muster des Cloud Storage-Pfads, in dem sich die Daten befinden, z. B. gs://mybucket/somefolder/prefix*.

Vorlage „Cloud Storage Avro für Bigtable” ausführen

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. Der regionale Standardendpunkt 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 Avro Files on Cloud Storage to Cloud Bigtable template aus.
  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 jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Bigtable \
    --region REGION_NAME \
    --parameters \
bigtableProjectId=BIGTABLE_PROJECT_ID,\
bigtableInstanceId=INSTANCE_ID,\
bigtableTableId=TABLE_ID,\
inputFilePattern=INPUT_FILE_PATTERN

Dabei gilt:

  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-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: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • BIGTABLE_PROJECT_ID: Die ID des Google Cloud-Projekts der Bigtable-Instanz, aus der Sie Daten lesen möchten.
  • INSTANCE_ID: Die ID der Bigtable-Instanz, die die Tabelle enthält.
  • TABLE_ID: Die ID der zu exportierenden Bigtable-Tabelle.
  • INPUT_FILE_PATTERN: Das Muster des Cloud Storage-Pfads, in dem sich die Daten befinden, z. B. gs://mybucket/somefolder/prefix*

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/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Bigtable
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "BIGTABLE_PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "inputFilePattern": "INPUT_FILE_PATTERN",
   },
   "environment": { "zone": "us-central1-f" }
}

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • BIGTABLE_PROJECT_ID: Die ID des Google Cloud-Projekts der Bigtable-Instanz, aus der Sie Daten lesen möchten.
  • INSTANCE_ID: Die ID der Bigtable-Instanz, die die Tabelle enthält.
  • TABLE_ID: Die ID der zu exportierenden Bigtable-Tabelle.
  • INPUT_FILE_PATTERN: Das Muster des Cloud Storage-Pfads, in dem sich die Daten befinden, z. B. gs://mybucket/somefolder/prefix*

Cloud Storage Avro für Cloud Spanner

Die Vorlage "Cloud Storage Avro für Cloud Spanner" ist eine Batchpipeline, die in Cloud Storage gespeicherte Avro-Dateien liest und in eine Cloud Spanner-Datenbank importiert.

Voraussetzungen für diese Pipeline:

  • Die Cloud Spanner-Zieldatenbank muss vorhanden und muss leer sein.
  • Sie benötigen Leseberechtigungen für den Cloud Storage-Bucket und Schreibberechtigungen für die Ziel-Cloud-Spanner-Datenbank.
  • Der Cloud Storage-Eingabepfad muss vorhanden sein und die Datei spanner-export.json mit einer JSON-Beschreibung der zu importierenden Dateien enthalten.

Vorlagenparameter

Parameter Beschreibung
instanceId Die Instanz-ID der Cloud Spanner-Datenbank.
databaseId Die Datenbank-ID der Cloud Spanner-Datenbank.
inputDir Der Cloud Storage-Pfad, aus dem die Avro-Dateien importiert werden.

Vorlage „Cloud Storage Avro zu Cloud Spanner“ ausführen

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.

    Damit der Job auf der Seite Instanzen für Spanner in der Google Cloud Console angezeigt wird, muss der Jobname dem folgenden Format entsprechen:

    cloud-spanner-import-SPANNER_INSTANCE_ID-SPANNER_DATABASE_NAME

    Ersetzen Sie Folgendes:

    • SPANNER_INSTANCE_ID: ID Ihrer Spanner-Instanz
    • SPANNER_DATABASE_NAME: Name der Spanner-Datenbank
  4. Optional: Wählen Sie für Regionaler Endpunkt einen Wert aus dem Drop-down-Menü aus. Der regionale Standardendpunkt 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 Avro Files on Cloud Storage to Cloud Spanner template aus.
  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 jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner \
    --region REGION_NAME \
    --staging-location GCS_STAGING_LOCATION \
    --parameters \
instanceId=INSTANCE_ID,\
databaseId=DATABASE_ID,\
inputDir=GCS_DIRECTORY

Dabei gilt:

  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-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: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • INSTANCE_ID: Die ID der Spanner-Instanz, die die Datenbank enthält
  • DATABASE_ID: Die ID der Spanner-Datenbank, in die importiert werden soll
  • GCS_DIRECTORY: Der Cloud Storage-Pfad, aus dem die Avro-Dateien importiert werden, z. B. gs://mybucket/somefolder

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/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner
{
   "jobName": "JOB_NAME",
   "parameters": {
       "instanceId": "INSTANCE_ID",
       "databaseId": "DATABASE_ID",
       "inputDir": "gs://GCS_DIRECTORY"
   },
   "environment": {
       "machineType": "n1-standard-2"
   }
}

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • INSTANCE_ID: Die ID der Spanner-Instanz, die die Datenbank enthält
  • DATABASE_ID: Die ID der Spanner-Datenbank, in die importiert werden soll
  • GCS_DIRECTORY: Der Cloud Storage-Pfad, aus dem die Avro-Dateien importiert werden, z. B. gs://mybucket/somefolder

Cloud Storage Parquet für Cloud Bigtable

Die Vorlage "Cloud Storage Parquet für Cloud Bigtable" ist eine Pipeline, die Daten aus Parquet-Dateien in einem Cloud Storage-Bucket liest und in eine Bigtable-Tabelle schreibt. Sie können die Vorlage verwenden, um Daten aus Cloud Storage in Bigtable zu kopieren.

Voraussetzungen für diese Pipeline:

  • Die Bigtable-Tabelle muss vorhanden sein und dieselben Spaltenfamilien haben, die in die Parquet-Dateien exportiert wurden.
  • Die Parquet-Eingabedateien müssen in einem Cloud Storage-Bucket vorhanden sein, bevor Sie die Pipeline ausführen.
  • Bigtable erwartet ein bestimmtes Schema aus den Parquet-Eingabedateien.

Vorlagenparameter

Parameter Beschreibung
bigtableProjectId Die ID des Google Cloud-Projekts der Bigtable-Instanz, in die Daten geschrieben werden sollen.
bigtableInstanceId Die ID der Bigtable-Instanz, die die Tabelle enthält.
bigtableTableId Die ID der zu importierenden Bigtable-Tabelle.
inputFilePattern Das Muster des Cloud Storage-Pfads, in dem sich die Daten befinden, z. B. gs://mybucket/somefolder/prefix*.

Vorlage „Cloud Storage Parquet für Bigtable” ausführen

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. Der regionale Standardendpunkt 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 Parquet Files on Cloud Storage to Cloud Bigtable template aus.
  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 jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/GCS_Parquet_to_Cloud_Bigtable \
    --region REGION_NAME \
    --parameters \
bigtableProjectId=BIGTABLE_PROJECT_ID,\
bigtableInstanceId=INSTANCE_ID,\
bigtableTableId=TABLE_ID,\
inputFilePattern=INPUT_FILE_PATTERN

Dabei gilt:

  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-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: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • BIGTABLE_PROJECT_ID: Die ID des Google Cloud-Projekts der Bigtable-Instanz, aus der Sie Daten lesen möchten.
  • INSTANCE_ID: Die ID der Bigtable-Instanz, die die Tabelle enthält.
  • TABLE_ID: Die ID der zu exportierenden Bigtable-Tabelle.
  • INPUT_FILE_PATTERN: Das Muster des Cloud Storage-Pfads, in dem sich die Daten befinden, z. B. gs://mybucket/somefolder/prefix*

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/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Parquet_to_Cloud_Bigtable
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "BIGTABLE_PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "inputFilePattern": "INPUT_FILE_PATTERN",
   },
   "environment": { "zone": "us-central1-f" }
}

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • BIGTABLE_PROJECT_ID: Die ID des Google Cloud-Projekts der Bigtable-Instanz, aus der Sie Daten lesen möchten.
  • INSTANCE_ID: Die ID der Bigtable-Instanz, die die Tabelle enthält.
  • TABLE_ID: Die ID der zu exportierenden Bigtable-Tabelle.
  • INPUT_FILE_PATTERN: Das Muster des Cloud Storage-Pfads, in dem sich die Daten befinden, z. B. gs://mybucket/somefolder/prefix*

Cloud Storage SequenceFile für Bigtable

Die Vorlage "Cloud Storage SequenceFile für Cloud Bigtable" ist eine Pipeline, die Daten aus SequenceFiles in einem Cloud Storage-Bucket liest und in eine Bigtable-Tabelle schreibt. Sie können die Vorlage verwenden, um Daten aus Cloud Storage in Bigtable zu kopieren.

Voraussetzungen für diese Pipeline:

  • Die Bigtable-Tabelle muss vorhanden sein.
  • Die Eingabe-SequenceFiles müssen in einem Cloud Storage-Bucket vorhanden sein, bevor die Pipeline ausgeführt wird.
  • Die Eingabe-SequenceFiles müssen aus Bigtable oder HBase exportiert worden sein.

Vorlagenparameter

Parameter Beschreibung
bigtableProject Die ID des Google Cloud-Projekts der Bigtable-Instanz, in die Daten geschrieben werden sollen.
bigtableInstanceId Die ID der Bigtable-Instanz, die die Tabelle enthält.
bigtableTableId Die ID der zu importierenden Bigtable-Tabelle.
bigtableAppProfileId Die ID des Bigtable-Anwendungsprofils, das für den Import verwendet werden soll. Wenn Sie kein Anwendungsprofil angeben, verwendet Bigtable das Standard-Anwendungsprofil der Instanz.
sourcePattern Das Muster des Cloud Storage-Pfads, in dem sich die Daten befinden, z. B. gs://mybucket/somefolder/prefix*.

Vorlage „Cloud Storage SequenceFile für Bigtable” ausführen

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. Der regionale Standardendpunkt 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 SequenceFile Files on Cloud Storage to Cloud Bigtable template aus.
  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 jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/GCS_SequenceFile_to_Cloud_Bigtable \
    --region REGION_NAME \
    --parameters \
bigtableProject=BIGTABLE_PROJECT_ID,\
bigtableInstanceId=INSTANCE_ID,\
bigtableTableId=TABLE_ID,\
bigtableAppProfileId=APPLICATION_PROFILE_ID,\
sourcePattern=SOURCE_PATTERN

Dabei gilt:

  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-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: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • BIGTABLE_PROJECT_ID: Die ID des Google Cloud-Projekts der Bigtable-Instanz, aus der Sie Daten lesen möchten.
  • INSTANCE_ID: Die ID der Bigtable-Instanz, die die Tabelle enthält.
  • TABLE_ID: Die ID der zu exportierenden Bigtable-Tabelle.
  • APPLICATION_PROFILE_ID: Die ID des Bigtable-Anwendungsprofils, das für den Export verwendet werden soll.
  • SOURCE_PATTERN: Das Muster des Cloud Storage-Pfads, in dem sich die Daten befinden, z. B. gs://mybucket/somefolder/prefix*

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/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_SequenceFile_to_Cloud_Bigtable
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProject": "BIGTABLE_PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "bigtableAppProfileId": "APPLICATION_PROFILE_ID",
       "sourcePattern": "SOURCE_PATTERN",
   },
   "environment": { "zone": "us-central1-f" }
}

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • BIGTABLE_PROJECT_ID: Die ID des Google Cloud-Projekts der Bigtable-Instanz, aus der Sie Daten lesen möchten.
  • INSTANCE_ID: Die ID der Bigtable-Instanz, die die Tabelle enthält.
  • TABLE_ID: Die ID der zu exportierenden Bigtable-Tabelle.
  • APPLICATION_PROFILE_ID: Die ID des Bigtable-Anwendungsprofils, das für den Export verwendet werden soll.
  • SOURCE_PATTERN: Das Muster des Cloud Storage-Pfads, in dem sich die Daten befinden, z. B. gs://mybucket/somefolder/prefix*

Cloud Storage Text für BigQuery

Die Pipeline "Cloud Storage Text für BigQuery" ist eine Batchpipeline, mit der Sie in Cloud Storage gespeicherte Textdateien lesen, diese mit einer von Ihnen bereitgestellten benutzerdefinierten JavaScript-Funktion (User Defined Function, UDF) transformieren und das Ergebnis an eine BigQuery-Tabelle anhängen können.

Voraussetzungen für diese Pipeline:

  • Erstellen Sie eine JSON-Datei, die Ihr BigQuery-Schema beschreibt.

    Stellen Sie ein JSON-Array der obersten Ebene mit dem Namen BigQuery Schema bereit, dessen Inhalt dem Muster {"name": "COLUMN_NAME", "type": "DATA_TYPE"} folgt.

    Die Batchvorlage "Cloud Storage Text für BigQuery" unterstützt nicht den Import von Daten in Felder des Typs STRUCT (Eintrag) in der BigQuery-Zieltabelle.

    Der folgende JSON-Code beschreibt ein BigQuery-Beispielschema:

    {
      "BigQuery Schema": [
        {
          "name": "location",
          "type": "STRING"
        },
        {
          "name": "name",
          "type": "STRING"
        },
        {
          "name": "age",
          "type": "STRING"
        },
        {
          "name": "color",
          "type": "STRING"
        },
        {
          "name": "coffee",
          "type": "STRING"
        }
      ]
    }
    
  • Erstellen Sie eine JavaScript-Datei (.js) mit Ihrer UDF, die die Logik für die Transformation der Textzeilen bereitstellt. Ihre Funktion muss einen JSON-String zurückgeben.

    Diese Funktion teilt beispielsweise jede Zeile einer CSV-Datei auf und gibt nach der Transformation der Werte einen JSON-String zurück.

    function transform(line) {
    var values = line.split(',');
    
    var obj = new Object();
    obj.location = values[0];
    obj.name = values[1];
    obj.age = values[2];
    obj.color = values[3];
    obj.coffee = values[4];
    var jsonString = JSON.stringify(obj);
    
    return jsonString;
    }

Vorlagenparameter

Parameter Beschreibung
javascriptTextTransformFunctionName ist der Name der benutzerdefinierten JavaScript-Funktion (UDF), die Sie verwenden möchten. Wenn Ihre JavaScript-Funktion beispielsweise myTransform(inJson) { /*...do stuff...*/ } ist, lautet der Funktionsname myTransform. Beispiele für JavaScript-UDFs finden Sie unter UDF-Beispiele.
JSONPath Der gs://-Pfad zur JSON-Datei, die Ihr BigQuery-Schema definiert und in Cloud Storage gespeichert wird. Beispiel: gs://path/to/my/schema.json.
javascriptTextTransformGcsPath Der Cloud Storage-URI der Datei .js, in der die benutzerdefinierte JavaScript-Funktion (UDF) definiert wird, die Sie verwenden möchten. Beispiel: gs://my-bucket/my-udfs/my_file.js.
inputFilePattern Der gs://-Pfad zum Text in Cloud Storage, den Sie verarbeiten möchten. Beispiel: gs://path/to/my/text/data.txt.
outputTable Der BigQuery-Tabellenname, den Sie zum Speichern Ihrer verarbeiteten Daten erstellen möchten. Wenn Sie eine vorhandene BigQuery-Tabelle wiederverwenden, werden die Daten an die Zieltabelle angehängt. z. B. my-project-name:my-dataset.my-table.
bigQueryLoadingTemporaryDirectory Das temporäre Verzeichnis für den BigQuery-Ladevorgang. z. B. gs://my-bucket/my-files/temp_dir.

Vorlage "Cloud Storage Text für BigQuery" ausführen

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. Der regionale Standardendpunkt 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 Text Files on Cloud Storage to BigQuery (Batch) template aus.
  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 jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/GCS_Text_to_BigQuery \
    --region REGION_NAME \
    --parameters \
javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\
JSONPath=PATH_TO_BIGQUERY_SCHEMA_JSON,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
inputFilePattern=PATH_TO_TEXT_DATA,\
outputTable=BIGQUERY_TABLE,\
bigQueryLoadingTemporaryDirectory=PATH_TO_TEMP_DIR_ON_GCS

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der 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/latest/
    • Den Versionsnamen wie 2021-09-20-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: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • JAVASCRIPT_FUNCTION: ist der Name der benutzerdefinierten JavaScript-Funktion (UDF), die Sie verwenden möchten.

    Wenn Ihre JavaScript-Funktion beispielsweise myTransform(inJson) { /*...do stuff...*/ } ist, lautet der Funktionsname myTransform. Beispiele für JavaScript-UDFs finden Sie unter UDF-Beispiele.

  • PATH_TO_BIGQUERY_SCHEMA_JSON: der Cloud Storage-Pfad zur JSON-Datei, die die Schemadefinition enthält
  • PATH_TO_JAVASCRIPT_UDF_FILE Der Cloud Storage-URI der Datei .js, in der die benutzerdefinierte JavaScript-Funktion (UDF) definiert wird, die Sie verwenden möchten. Beispiel: gs://my-bucket/my-udfs/my_file.js
  • PATH_TO_TEXT_DATA: Der Cloud Storage-Pfad zu Ihrem Text-Dataset
  • BIGQUERY_TABLE: Ihr BigQuery-Tabellenname
  • PATH_TO_TEMP_DIR_ON_GCS: Der Cloud Storage-Pfad zum temporären Verzeichnis

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/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Text_to_BigQuery
{
   "jobName": "JOB_NAME",
   "parameters": {
       "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION",
       "JSONPath": "PATH_TO_BIGQUERY_SCHEMA_JSON",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "inputFilePattern":"PATH_TO_TEXT_DATA",
       "outputTable":"BIGQUERY_TABLE",
       "bigQueryLoadingTemporaryDirectory": "PATH_TO_TEMP_DIR_ON_GCS"
   },
   "environment": { "zone": "us-central1-f" }
}

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • JAVASCRIPT_FUNCTION: ist der Name der benutzerdefinierten JavaScript-Funktion (UDF), die Sie verwenden möchten.

    Wenn Ihre JavaScript-Funktion beispielsweise myTransform(inJson) { /*...do stuff...*/ } ist, lautet der Funktionsname myTransform. Beispiele für JavaScript-UDFs finden Sie unter UDF-Beispiele.

  • PATH_TO_BIGQUERY_SCHEMA_JSON: der Cloud Storage-Pfad zur JSON-Datei, die die Schemadefinition enthält
  • PATH_TO_JAVASCRIPT_UDF_FILE Der Cloud Storage-URI der Datei .js, in der die benutzerdefinierte JavaScript-Funktion (UDF) definiert wird, die Sie verwenden möchten. Beispiel: gs://my-bucket/my-udfs/my_file.js
  • PATH_TO_TEXT_DATA: Der Cloud Storage-Pfad zu Ihrem Text-Dataset
  • BIGQUERY_TABLE: Ihr BigQuery-Tabellenname
  • PATH_TO_TEMP_DIR_ON_GCS: Der Cloud Storage-Pfad zum temporären Verzeichnis

Cloud Storage Text für Datastore [verworfen]

Diese Vorlage wurde verworfen und wird in Q1 2022 entfernt. Bitte migrieren Sie zu der Vorlage Cloud Storage Text für Firestore.

Die Vorlage "Cloud Storage Text für Datastore" ist eine Batchpipeline, die aus in Cloud Storage gespeicherten Textdateien liest und JSON-codierte Entitäten in Datastore schreibt. Jede Zeile in den Eingabetextdateien muss das angegebene JSON-Format haben.

Voraussetzungen für diese Pipeline:

  • Cloud Datastore muss im Zielprojekt aktiviert sein.

Vorlagenparameter

Parameter Beschreibung
textReadPattern Ein Cloud Storage-Pfadmuster, das den Speicherort Ihrer Textdatendateien angibt. Beispiel: gs://mybucket/somepath/*.json.
javascriptTextTransformGcsPath (Optional) Der Cloud Storage-URI der Datei .js, in der die benutzerdefinierte JavaScript-Funktion (UDF) definiert wird, die Sie verwenden möchten. Beispiel: gs://my-bucket/my-udfs/my_file.js.
javascriptTextTransformFunctionName (Optional) Der Name der benutzerdefinierten JavaScript-Funktion, die Sie verwenden möchten. Wenn Ihre JavaScript-Funktion beispielsweise myTransform(inJson) { /*...do stuff...*/ } ist, lautet der Funktionsname myTransform. Beispiele für JavaScript-UDFs finden Sie unter UDF-Beispiele.
datastoreWriteProjectId Die Google Cloud-Projekt-ID, in der die Datastore-Entitäten geschrieben werden sollen.
datastoreHintNumWorkers (Optional) Hinweis für die erwartete Anzahl von Workern im Schritt zur Drosselung der Erhöhung in Datastore. Standardwert ist 500.
errorWritePath Die Ausgabedatei des Fehler-Logs für Schreibfehler, die während der Verarbeitung auftreten. Beispiel: gs://bucket-name/errors.txt.

Vorlage "Cloud Storage Text für Datastore" ausführen

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. Der regionale Standardendpunkt 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 Text Files on Cloud Storage to Datastore template aus.
  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 jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/GCS_Text_to_Datastore \
    --region REGION_NAME \
    --parameters \
textReadPattern=PATH_TO_INPUT_TEXT_FILES,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\
datastoreWriteProjectId=PROJECT_ID,\
errorWritePath=ERROR_FILE_WRITE_PATH

Dabei gilt:

  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-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: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • PATH_TO_INPUT_TEXT_FILES: Das Muster der Eingabedateien in Cloud Storage
  • JAVASCRIPT_FUNCTION: ist der Name der benutzerdefinierten JavaScript-Funktion (UDF), die Sie verwenden möchten.

    Wenn Ihre JavaScript-Funktion beispielsweise myTransform(inJson) { /*...do stuff...*/ } ist, lautet der Funktionsname myTransform. Beispiele für JavaScript-UDFs finden Sie unter UDF-Beispiele.

  • PATH_TO_JAVASCRIPT_UDF_FILE Der Cloud Storage-URI der Datei .js, in der die benutzerdefinierte JavaScript-Funktion (UDF) definiert wird, die Sie verwenden möchten. Beispiel: gs://my-bucket/my-udfs/my_file.js
  • ERROR_FILE_WRITE_PATH: Der gewünschte Pfad zur Fehlerdatei in Cloud Storage

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/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Text_to_Datastore
{
   "jobName": "JOB_NAME",
   "parameters": {
       "textReadPattern": "PATH_TO_INPUT_TEXT_FILES",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION",
       "datastoreWriteProjectId": "PROJECT_ID",
       "errorWritePath": "ERROR_FILE_WRITE_PATH"
   },
   "environment": { "zone": "us-central1-f" }
}

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • PATH_TO_INPUT_TEXT_FILES: Das Muster der Eingabedateien in Cloud Storage
  • JAVASCRIPT_FUNCTION: ist der Name der benutzerdefinierten JavaScript-Funktion (UDF), die Sie verwenden möchten.

    Wenn Ihre JavaScript-Funktion beispielsweise myTransform(inJson) { /*...do stuff...*/ } ist, lautet der Funktionsname myTransform. Beispiele für JavaScript-UDFs finden Sie unter UDF-Beispiele.

  • PATH_TO_JAVASCRIPT_UDF_FILE Der Cloud Storage-URI der Datei .js, in der die benutzerdefinierte JavaScript-Funktion (UDF) definiert wird, die Sie verwenden möchten. Beispiel: gs://my-bucket/my-udfs/my_file.js
  • ERROR_FILE_WRITE_PATH: Der gewünschte Pfad zur Fehlerdatei in Cloud Storage

Cloud Storage Text für Firestore

Die Vorlage „Cloud Storage Text für Firestore“ ist eine Batchpipeline, die aus in Cloud Storage gespeicherten Textdateien liest und JSON-codierte Entitäten in Datastore schreibt. Jede Zeile in den Eingabetextdateien muss das angegebene JSON-Format haben.

Voraussetzungen für diese Pipeline:

  • Cloud Firestore muss im Zielprojekt aktiviert sein.

Vorlagenparameter

Parameter Beschreibung
textReadPattern Ein Cloud Storage-Pfadmuster, das den Speicherort Ihrer Textdatendateien angibt. Beispiel: gs://mybucket/somepath/*.json.
javascriptTextTransformGcsPath (Optional) Der Cloud Storage-URI der Datei .js, in der die benutzerdefinierte JavaScript-Funktion (UDF) definiert wird, die Sie verwenden möchten. Beispiel: gs://my-bucket/my-udfs/my_file.js.
javascriptTextTransformFunctionName (Optional) Der Name der benutzerdefinierten JavaScript-Funktion, die Sie verwenden möchten. Wenn Ihre JavaScript-Funktion beispielsweise myTransform(inJson) { /*...do stuff...*/ } ist, lautet der Funktionsname myTransform. Beispiele für JavaScript-UDFs finden Sie unter UDF-Beispiele.
firestoreWriteProjectId Die Google Cloud-Projekt-ID, in der die Firestore-Entitäten geschrieben werden sollen.
firestoreHintNumWorkers (Optional) Hinweis für die erwartete Anzahl von Workern im Schritt zur Drosselung der Erhöhung in Firestore. Standardwert ist 500.
errorWritePath Die Ausgabedatei des Fehler-Logs für Schreibfehler, die während der Verarbeitung auftreten. Beispiel: gs://bucket-name/errors.txt.

Vorlage „Cloud Storage Text für Firestore“ ausführen

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. Der regionale Standardendpunkt 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 Text Files on Cloud Storage to Firestore template aus.
  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 jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/GCS_Text_to_Firestore \
    --region REGION_NAME \
    --parameters \
textReadPattern=PATH_TO_INPUT_TEXT_FILES,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\
firestoreWriteProjectId=PROJECT_ID,\
errorWritePath=ERROR_FILE_WRITE_PATH

Dabei gilt:

  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-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: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • PATH_TO_INPUT_TEXT_FILES: Das Muster der Eingabedateien in Cloud Storage
  • JAVASCRIPT_FUNCTION: ist der Name der benutzerdefinierten JavaScript-Funktion (UDF), die Sie verwenden möchten.

    Wenn Ihre JavaScript-Funktion beispielsweise myTransform(inJson) { /*...do stuff...*/ } ist, lautet der Funktionsname myTransform. Beispiele für JavaScript-UDFs finden Sie unter UDF-Beispiele.

  • PATH_TO_JAVASCRIPT_UDF_FILE Der Cloud Storage-URI der Datei .js, in der die benutzerdefinierte JavaScript-Funktion (UDF) definiert wird, die Sie verwenden möchten. Beispiel: gs://my-bucket/my-udfs/my_file.js
  • ERROR_FILE_WRITE_PATH: Der gewünschte Pfad zur Fehlerdatei in Cloud Storage

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/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Text_to_Firestore
{
   "jobName": "JOB_NAME",
   "parameters": {
       "textReadPattern": "PATH_TO_INPUT_TEXT_FILES",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION",
       "firestoreWriteProjectId": "PROJECT_ID",
       "errorWritePath": "ERROR_FILE_WRITE_PATH"
   },
   "environment": { "zone": "us-central1-f" }
}

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • PATH_TO_INPUT_TEXT_FILES: Das Muster der Eingabedateien in Cloud Storage
  • JAVASCRIPT_FUNCTION: ist der Name der benutzerdefinierten JavaScript-Funktion (UDF), die Sie verwenden möchten.

    Wenn Ihre JavaScript-Funktion beispielsweise myTransform(inJson) { /*...do stuff...*/ } ist, lautet der Funktionsname myTransform. Beispiele für JavaScript-UDFs finden Sie unter UDF-Beispiele.

  • PATH_TO_JAVASCRIPT_UDF_FILE Der Cloud Storage-URI der Datei .js, in der die benutzerdefinierte JavaScript-Funktion (UDF) definiert wird, die Sie verwenden möchten. Beispiel: gs://my-bucket/my-udfs/my_file.js
  • ERROR_FILE_WRITE_PATH: Der gewünschte Pfad zur Fehlerdatei in Cloud Storage

Cloud Storage Text für Pub/Sub (Batch)

Diese Vorlage erstellt eine Batchpipeline, die Datensätze aus Textdateien liest, die in Cloud Storage gespeichert sind. Diese Datensätze werden dann in einem Pub/Sub-Thema veröffentlicht. Die Vorlage kann zum Veröffentlichen von Datensätzen in einer JSON-Datei mit Zeilenumbruch oder in einer CSV-Datei für ein Pub/Sub-Thema zur Echtzeitverarbeitung genutzt werden. Sie können diese Vorlage verwenden, um Daten in Pub/Sub wiederzugeben.

Diese Vorlage legt keinen Zeitstempel für die einzelnen Datensätze fest. Die Ereigniszeit entspricht der Veröffentlichungszeit während der Ausführung. Wenn Ihre Pipeline für die Verarbeitung eine korrekte Ereigniszeit benötigt, müssen Sie diese Pipeline nicht verwenden.

Voraussetzungen für diese Pipeline:

  • Die zu lesenden Dateien müssen in einem durch Zeilenumbruch getrennten JSON- oder CSV-Format vorliegen. Einträge, die sich über mehrere Zeilen in den Quelldateien erstrecken, können später Probleme verursachen, da jede Zeile in den Dateien als Nachricht an Pub/Sub veröffentlicht wird.
  • Das Pub/Sub-Thema muss vorhanden sein, bevor die Pipeline ausgeführt wird.

Vorlagenparameter

Parameter Beschreibung
inputFilePattern Das Muster der Eingabedatei, aus der gelesen werden soll. Beispiel: gs://bucket-name/files/*.json.
outputTopic Das Pub/Sub-Eingabethema, in das geschrieben werden soll. Der Name muss das Format projects/<project-id>/topics/<topic-name> haben.

Vorlage "Cloud Storage Text für Pub/Sub (Batch)" ausführen

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. Der regionale Standardendpunkt 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 Text Files on Cloud Storage to Pub/Sub (Batch) template aus.
  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 jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_PubSub \
    --region REGION_NAME \
    --parameters \
inputFilePattern=gs://BUCKET_NAME/files/*.json,\
outputTopic=projects/PROJECT_ID/topics/TOPIC_NAME

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der 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/latest/
    • Den Versionsnamen wie 2021-09-20-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: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • TOPIC_NAME: der Name Ihres Pub/Sub-Themas
  • BUCKET_NAME: der Name Ihres Cloud Storage-Buckets

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/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_PubSub
{
   "jobName": "JOB_NAME",
   "parameters": {
       "inputFilePattern": "gs://BUCKET_NAME/files/*.json",
       "outputTopic": "projects/PROJECT_ID/topics/TOPIC_NAME"
   },
   "environment": { "zone": "us-central1-f" }
}

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • TOPIC_NAME: der Name Ihres Pub/Sub-Themas
  • BUCKET_NAME: der Name Ihres Cloud Storage-Buckets

Cloud Storage Text für Cloud Spanner

Die Vorlage "Cloud Storage Text für Cloud Spanner" ist eine Batchpipeline, die CSV-Textdateien aus Cloud Storage liest und in eine Cloud Spanner-Datenbank importiert.

Voraussetzungen für diese Pipeline:

  • Die Cloud Spanner-Zieldatenbank und -tabelle müssen vorhanden sein.
  • Sie benötigen Leseberechtigungen für den Cloud Storage-Bucket und Schreibberechtigungen für die Ziel-Cloud-Spanner-Datenbank.
  • Der Cloud Storage-Eingabepfad mit den CSV-Dateien muss vorhanden sein.
  • Sie müssen eine Importmanifestdatei mit einer JSON-Beschreibung der CSV-Dateien erstellen. Sie müssen diese Manifestdatei in Cloud Storage speichern.
  • Wenn die Ziel-Cloud-Spanner-Datenbank bereits über ein Schema verfügt, müssen alle in der Manifestdatei angegebenen Spalten dieselben Datentypen wie die entsprechenden Spalten im Schema der Zieldatenbank haben.
  • Die ASCII- oder UTF-8-codierte Manifestdatei muss folgendem Format entsprechen:

  • Zu importierende Textdateien müssen im CSV-Format mit ASCII- oder UTF-8-Codierung vorliegen. Wir empfehlen, in UTF-8-codierten Dateien keine Bytereihenfolge-Marke (Byte Order Mark, BOM) zu verwenden.
  • Die Daten müssen einem der folgenden Typen entsprechen:

    GoogleSQL

        BOOL
        INT64
        FLOAT64
        NUMERIC
        STRING
        DATE
        TIMESTAMP
        BYPES
        JSON

    PostgreSQL

        boolean
        bigint
        double precision
        numeric
        character varying, text
        date
        timestamp with time zone
        bytea

Vorlagenparameter

Parameter Beschreibung
instanceId Die Instanz-ID der Cloud Spanner-Datenbank.
databaseId Die Datenbank-ID der Cloud Spanner-Datenbank.
importManifest Der Pfad in Cloud Storage zur Importmanifestdatei.
columnDelimiter Das Spaltentrennzeichen, das in der Quelldatei verwendet wird. Der Standardwert ist ,.
fieldQualifier Das Zeichen, das jeden Wert in der Quelldatei, die das columnDelimiter enthält, einschließen muss. Der Standardwert ist ".
trailingDelimiter Gibt an, ob die Zeilen in den Quelldateien nachgestellte Trennzeichen haben (ob das Zeichen columnDelimiter also am Ende jeder Zeile nach dem letzten Spaltenwert erscheint). Der Standardwert ist true.
escape Das von der Quelldatei verwendete Escapezeichen. Dieser Parameter ist standardmäßig nicht gesetzt und die Vorlage verwendet kein Escapezeichen.
nullString Der String, der einen NULL-Wert darstellt. Dieser Parameter ist standardmäßig nicht gesetzt und die Vorlage verwendet den Null-String nicht.
dateFormat Das zum Parsen der Datumsspalten verwendete Format. Standardmäßig versucht die Pipeline, die Datumsspalten als yyyy-M-d[' 00:00:00'] zu parsen, z. B. als 2019-01-31 oder 2019-1-1 00:00:00. Wenn sich Ihr Datumsformat unterscheidet, geben Sie es mit den Mustern java.time.format.DateTimeFormatter an.
timestampFormat Das zum Parsen der Zeitstempelspalten verwendete Format. Ist der Zeitstempel eine lange Ganzzahl, wird er als UNIX-Epoche geparst. Ansonsten wird er als String mit dem Format java.time.format.DateTimeFormatter.ISO_INSTANT geparst. In anderen Fällen geben Sie Ihren eigenen Musterstring an, z. B. mithilfe von MMM dd yyyy HH:mm:ss.SSSVV für Zeitstempel im Format "Jan 21 1998 01:02:03.456+08:00".

Wenn Sie benutzerdefinierte Datums- oder Zeitstempelformate verwenden müssen, stellen Sie sicher, dass sie gültige java.time.format.DateTimeFormatter-Muster haben. Die folgende Tabelle zeigt zusätzliche Beispiele für benutzerdefinierte Formate in den Datums- und Zeitstempelspalten:

Typ Eingabewert Format Bemerkung
DATE 2011-3-31 Die Vorlage kann dieses Format standardmäßig parsen. Sie müssen den Parameter dateFormat nicht angeben.
DATE 2011-3-31 00:00:00 Die Vorlage kann dieses Format standardmäßig parsen. Sie müssen das Format nicht angeben. Sie können yyyy-M-d' 00:00:00' verwenden.
DATE 01. Apr 18 tt. MMM jj
DATE Mittwoch, 3. April 2019 EEEE, d. MMMM jjjj
TIMESTAMP 2019-01-02T11:22:33Z
2019-01-02T11:22:33.123Z
2019-01-02T11:22:33.12356789Z
Das Standardformat ISO_INSTANT kann diese Art von Zeitstempel parsen. Sie müssen den Parameter timestampFormat nicht angeben.
TIMESTAMP 1568402363 Standardmäßig kann die Vorlage diese Art von Zeitstempel parsen und sie als Unix-Epochen-Zeit behandeln.
TIMESTAMP Di, 3. Jun 2008 11:05:30 GMT EEE, d. MMM jjjj HH:mm:ss VV
TIMESTAMP 31.12.2018 110530.123PST tt.MM.jjjj HHmmss.SSSSz
TIMESTAMP 2019-01-02T11:22:33Z oder 2019-01-02T11:22:33.123Z jjjj-MM-tt'T'HH:mm:ss[.SSS]VV Wenn die Eingabespalte eine Kombination aus 2019-01-02T11:22:33Z und 2019-01-02T11:22:33.123Z ist, kann das Standardformat diese Art von Zeitstempel parsen. Sie müssen keinen eigenen Formatparameter angeben. Sie können jedoch yyyy-MM-dd'T'HH:mm:ss[.SSS]VV verwenden, um beide Fälle zu verarbeiten. Beachten Sie, dass Sie yyyy-MM-dd'T'HH:mm:ss[.SSS]'Z' nicht verwenden können, da das Postfix "Z" als Zeitzonen-ID und nicht als Zeichenliteral geparst werden muss. Intern wird die Zeitstempelspalte in eine java.time.Instant umgewandelt. Daher muss es in UTC angegeben werden oder mit Zeitzoneninformationen verknüpft sein. Lokales Datum, z. B. 2019-01-02 11:22:33, kann nicht als gültige java.time.Instant geparst werden.

Vorlage „Textdateien in Cloud Storage für Cloud Spanner“ ausführen

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. Der regionale Standardendpunkt 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 Text Files on Cloud Storage to Cloud Spanner template aus.
  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 jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner \
    --region REGION_NAME \
    --parameters \
instanceId=INSTANCE_ID,\
databaseId=DATABASE_ID,\
importManifest=GCS_PATH_TO_IMPORT_MANIFEST

Dabei gilt:

  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-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: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • INSTANCE_ID: Ihre Cloud Spanner-Instanz-ID
  • DATABASE_ID: Ihre Cloud Spanner-Datenbank-ID
  • GCS_PATH_TO_IMPORT_MANIFEST: Der Cloud Storage-Pfad zu Ihrer Importmanifestdatei

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/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner
{
   "jobName": "JOB_NAME",
   "parameters": {
       "instanceId": "INSTANCE_ID",
       "databaseId": "DATABASE_ID",
       "importManifest": "GCS_PATH_TO_IMPORT_MANIFEST"
   },
   "environment": {
       "machineType": "n1-standard-2"
   }
}

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • INSTANCE_ID: Ihre Cloud Spanner-Instanz-ID
  • DATABASE_ID: Ihre Cloud Spanner-Datenbank-ID
  • GCS_PATH_TO_IMPORT_MANIFEST: Der Cloud Storage-Pfad zu Ihrer Importmanifestdatei

Cloud Storage nach Elasticsearch

Die Vorlage "Cloud Storage nach Elasticsearch" ist eine Batchpipeline, die Daten aus CSV-Dateien liest, die in einem Cloud Storage-Bucket gespeichert sind, und diese Daten als JSON-Dokumente in Elasticsearch schreibt.

Voraussetzungen für diese Pipeline:

  • Der Cloud Storage-Bucket muss vorhanden sein.
  • Ein Elasticsearch-Host auf einer Google Cloud-Instanz oder in Elasticsearch Cloud, auf den über Dataflow zugegriffen werden kann, muss vorhanden sein.
  • Es muss eine BigQuery-Tabelle für die Fehlerausgabe vorhanden sein.

Vorlagenparameter

Parameter Beschreibung
inputFileSpec Das Cloud Storage-Dateimuster für die Suche nach CSV-Dateien. Beispiel: gs://mybucket/test-*.csv.
connectionUrl Elasticsearch-URL im Format https://hostname:[port] oder geben Sie die CloudID an, wenn Elastic Cloud verwendet wird.
apiKey Base64-codierter API-Schlüssel für die Authentifizierung.
index Der Elasticsearch-Index, an den die Anfragen ausgegeben werden, z. B. my-index.
deadletterTable Die BigQuery-Dead-Letter-Tabelle, an die fehlgeschlagene Einfügungen gesendet werden sollen. Beispiel: <your-project>:<your-dataset>.<your-table-name>.
containsHeaders (Optional) Boolescher Wert, der festlegt, ob Header in der CSV-Datei enthalten sein sollen. Standard-true.
delimiter (Optional) Das Trennzeichen, das in der CSV-Datei verwendet wird. Beispiel: ,
csvFormat (Optional) Das CSV-Format gemäß dem Apache Commons CSV-Format. Standardeinstellung: Default.
jsonSchemaPath (Optional) Der Pfad zum JSON-Schema. Standardeinstellung: null.
largeNumFiles (Optional) Auf "true" setzen, wenn die Anzahl der Dateien im Zehntausenderbereich liegt. Standardeinstellung: false.
javascriptTextTransformGcsPath (Optional) Der Cloud Storage-URI der Datei .js, in der die benutzerdefinierte JavaScript-Funktion (UDF) definiert wird, die Sie verwenden möchten. Beispiel: gs://my-bucket/my-udfs/my_file.js.
javascriptTextTransformFunctionName (Optional) Der Name der benutzerdefinierten JavaScript-Funktion, die Sie verwenden möchten. Wenn Ihre JavaScript-Funktion beispielsweise myTransform(inJson) { /*...do stuff...*/ } ist, lautet der Funktionsname myTransform. Beispiele für JavaScript-UDFs finden Sie unter UDF-Beispiele.
batchSize (Optional) Batchgröße in der Anzahl an Dokumenten. Standardeinstellung: 1000.
batchSizeBytes (Optional) Batchgröße in der Anzahl an Byte. Standardeinstellung: 5242880 (5 MB).
maxRetryAttempts (Optional) Maximale Wiederholungsversuche, muss > 0 sein. Standardeinstellung: keine Wiederholungen.
maxRetryDuration (Optional) Maximale Wiederholungsdauer in Millisekunden, muss > 0 sein. Standardeinstellung: keine Wiederholungen.
csvFileEncoding (Optional) CSV-Dateicodierung.
propertyAsIndex (Optional) Eine Eigenschaft im indexierten Dokument, deren Wert angibt, dass _index-Metadaten im Dokument in der Bulk-Anfrage enthalten sein sollen (hat Vorrang vor einer_index-UDF). Standardwert: none.
propertyAsId (Optional) Eine Eigenschaft im indexierten Dokument, deren Wert angibt, dass _id-Metadaten im Dokument in der Bulk-Anfrage enthalten sein sollen (hat Vorrang vor einer_id-UDF). Standardwert: none.
javaScriptIndexFnGcsPath (Optional) Der Cloud Storage-Pfad zur JavaScript-UDF-Quelle für eine Funktion, die angibt, dass _index-Metadaten im Dokument in der Bulk-Anfrage enthalten sein sollen. Standardwert: none.
javaScriptIndexFnName (Optional) UDF-JavaScript-Funktionsname für eine Funktion, die angibt, dass _index-Metadaten im Dokument in der Bulk-Anfrage enthalten sein sollen. Standardwert: none.
javaScriptIdFnGcsPath (Optional) Der Cloud Storage-Pfad zur JavaScript-UDF-Quelle für eine Funktion, die angibt, dass _id-Metadaten im Dokument in der Bulk-Anfrage enthalten sein sollen. Standardwert: none.
javaScriptIdFnName (Optional) UDF-JavaScript-Funktionsname für eine Funktion, die angibt, dass _id-Metadaten im Dokument in der Bulk-Anfrage enthalten sein sollen. Standardwert: none.
javaScriptTypeFnGcsPath (Optional) Der Cloud Storage-Pfad zur JavaScript-UDF-Quelle für eine Funktion, die angibt, dass _type-Metadaten im Dokument in der Bulk-Anfrage enthalten sein sollen. Standardwert: none.
javaScriptTypeFnName (Optional) UDF-JavaScript-Funktionsname für eine Funktion, die angibt, dass _type-Metadaten im Dokument in der Bulk-Anfrage enthalten sein sollen. Standardwert: none.
javaScriptIsDeleteFnGcsPath (Optional) Der Cloud Storage-Pfad zur JavaScript-UDF-Quelle für eine Funktion, die bestimmt, ob das Dokument gelöscht statt eingefügt oder aktualisiert werden soll. Die Funktion sollte den Stringwert "true" oder "false" zurückgeben. Standardwert: none.
javaScriptIsDeleteFnName (Optional) UDF-JavaScript-Funktionsname für eine Funktion, die bestimmt, ob das Dokument gelöscht statt eingefügt oder aktualisiert werden soll. Die Funktion sollte den Stringwert "true" oder "false" zurückgeben. Standardwert: none.
usePartialUpdate (Optional) Gibt an, ob Teilaktualisierungen (Aktualisieren statt Erstellen oder Indexieren, Teildokumente sind zulässig) in Elasticsearch-Anfragen verwendet werden sollen. Standardeinstellung: false.
bulkInsertMethod (Optional) Gibt an, ob INDEX (Indexieren, Upserts sind zulässig) oder CREATE (Erstellen, Fehler bei doppelter _id) in Bulk-Anfragen von Elasticsearch verwendet werden soll. Standardeinstellung: CREATE.

Vorlage "Cloud Storage nach Elasticsearch" ausführen

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. Der regionale Standardendpunkt 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 Cloud Storage to Elasticsearch template aus.
  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 beta dataflow flex-template run JOB_NAME \
    --project=PROJECT_ID\
    --region=REGION_NAME \
    --template-file-gcs-location=gs://dataflow-templates/VERSION/flex/GCS_to_Elasticsearch \
    --parameters \
inputFileSpec=INPUT_FILE_SPEC,\
connectionUrl=CONNECTION_URL,\
apiKey=APIKEY,\
index=INDEX,\
deadletterTable=DEADLETTER_TABLE,\

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der 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/latest/
    • Den Versionsnamen wie 2021-09-20-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: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • INPUT_FILE_SPEC: Ihr Cloud Storage-Dateimuster.
  • CONNECTION_URL: ist die Elasticsearch-URL
  • APIKEY: ist der base64-codierte API-Schlüssel für die Authentifizierung
  • INDEX: ist ihr Elasticsearch-Index
  • DEADLETTER_TABLE: Ihre BigQuery-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
{
   "launch_parameter": {
      "jobName": "JOB_NAME",
      "parameters": {
          "inputFileSpec": "INPUT_FILE_SPEC",
          "connectionUrl": "CONNECTION_URL",
          "apiKey": "APIKEY",
          "index": "INDEX",
          "deadletterTable": "DEADLETTER_TABLE"
      },
      "containerSpecGcsPath": "gs://dataflow-templates/VERSION/flex/GCS_to_Elasticsearch",
   }
}

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • INPUT_FILE_SPEC: Ihr Cloud Storage-Dateimuster.
  • CONNECTION_URL: ist die Elasticsearch-URL
  • APIKEY: ist der base64-codierte API-Schlüssel für die Authentifizierung
  • INDEX: ist ihr Elasticsearch-Index
  • DEADLETTER_TABLE: Ihre BigQuery-Tabelle.

Java-Datenbankkonnektivität (JDBC) für BigQuery

Die Vorlage "JDBC für BigQuery" ist eine Batchpipeline, die Daten aus einer relationalen Datenbanktabelle in eine vorhandene BigQuery-Tabelle kopiert. Diese Pipeline verwendet JDBC, um eine Verbindung zur relationalen Datenbank herzustellen. Sie können mit dieser Vorlage Daten aus einer beliebigen relationalen Datenbank mit den verfügbaren JDBC-Treibern nach BigQuery kopieren. Als zusätzliche Schutzmaßnahme können Sie auch einen Cloud KMS-Schlüssel zusammen mit einem Base64-codierten Nutzernamen, Passwort und Verbindungsstring-Parametern übergeben, die mit dem Cloud KMS-Schlüssel verschlüsselt sind. Weitere Informationen zum Verschlüsseln von Nutzernamen, Passwörtern und Verbindungsstring-Parametern finden Sie unter Cloud KMS API-Verschlüsselungsendpunkt.

Voraussetzungen für diese Pipeline:

  • Die JDBC-Treiber für die relationale Datenbank müssen verfügbar sein.
  • Die BigQuery-Tabelle muss vor der Pipelineausführung vorhanden sein.
  • Die BigQuery-Tabelle muss ein kompatibles Schema haben.
  • Die relationale Datenbank muss über das Subnetz zugänglich sein, in dem Dataflow ausgeführt wird.

Vorlagenparameter

Parameter Beschreibung
driverJars Die durch Kommas getrennte Liste der JAR-Dateien des Treibers. z. B. gs://<my-bucket>/driver_jar1.jar,gs://<my-bucket>/driver_jar2.jar.
driverClassName Der Name der JDBC-Treiberklasse. z. B. com.mysql.jdbc.Driver.
connectionURL Der URL-String für die JDBC-Verbindung. Beispiel: jdbc:mysql://some-host:3306/sampledb. Kann als String übergeben werden, der Base64-codiert und dann mit einem Cloud KMS-Schlüssel verschlüsselt wird.
query Die Abfrage, die in der Quelle zur Extraktion der Daten ausgeführt wird. Beispiel: select * from sampledb.sample_table.
outputTable Der Speicherort der BigQuery-Ausgabetabelle im Format <my-project>:<my-dataset>.<my-table>.
bigQueryLoadingTemporaryDirectory Das temporäre Verzeichnis für den BigQuery-Ladevorgang. z. B. gs://<my-bucket>/my-files/temp_dir.
connectionProperties [Optional] Attributstring für die JDBC-Verbindung. Format des Strings muss [propertyName=property;]* sein. Beispiel: unicode=true;characterEncoding=UTF-8.
username (Optional) Der Nutzername, der für die JDBC-Verbindung verwendet werden soll. Kann als Base64-codierter String übergeben werden, der mit einem Cloud KMS-Schlüssel verschlüsselt ist.
password (Optional) Das Passwort für die JDBC-Verbindung. Kann als Base64-codierter String übergeben werden, der mit einem Cloud KMS-Schlüssel verschlüsselt ist.
KMSEncryptionKey [Optional] Cloud KMS-Verschlüsselungsschlüssel zur Entschlüsselung des Nutzernamens, Passworts und Verbindungsstrings. Wenn der Cloud KMS-Schlüssel übergeben wird, müssen der Nutzername, das Passwort und der Verbindungsstring verschlüsselt übergeben werden.
disabledAlgorithms (Optional) Durch Kommas getrennte Algorithmen zum Deaktivieren. Wenn dieser Wert auf none gesetzt ist, wird kein Algorithmus deaktiviert. Seien Sie vorsichtig, da die standardmäßig deaktivierten Algorithmen entweder Sicherheitslücken oder Leistungsprobleme haben. Beispiel: SSLv3, RC4.
extraFilesToStage Durch Kommas getrennte Cloud Storage-Pfade oder Secret Manager-Secrets für Dateien, die im Worker bereitgestellt werden sollen. Diese Dateien werden im Verzeichnis /extra_files in jedem Worker gespeichert. Beispiel: gs://<my-bucket>/file.txt,projects/<project-id>/secrets/<secret-id>/versions/<version-id>.

Vorlage "JDBC für BigQuery" ausführen

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. Der regionale Standardendpunkt 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 JDBC to BigQuery template aus.
  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 jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Jdbc_to_BigQuery \
    --region REGION_NAME \
    --parameters \
driverJars=DRIVER_PATHS,\
driverClassName=DRIVER_CLASS_NAME,\
connectionURL=JDBC_CONNECTION_URL,\
query=SOURCE_SQL_QUERY,\
outputTable=PROJECT_ID:DATASET.TABLE_NAME,
bigQueryLoadingTemporaryDirectory=PATH_TO_TEMP_DIR_ON_GCS,\
connectionProperties=CONNECTION_PROPERTIES,\
username=CONNECTION_USERNAME,\
password=CONNECTION_PASSWORD,\
KMSEncryptionKey=KMS_ENCRYPTION_KEY

Dabei gilt:

  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-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: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • DRIVER_PATHS: Die kommagetrennten Cloud Storage-Pfade der JDBC-Treiber
  • DRIVER_CLASS_NAME: Der Name der Treiberklasse
  • JDBC_CONNECTION_URL: Die JDBC-Verbindungs-URL
  • SOURCE_SQL_QUERY: Die SQL-Abfrage, die in der Quelldatenbank ausgeführt werden soll
  • DATASET: Ihr BigQuery-Dataset und ersetzen Sie TABLE_NAME durch Ihren BigQuery-Tabellennamen
  • PATH_TO_TEMP_DIR_ON_GCS: Der Cloud Storage-Pfad zum temporären Verzeichnis
  • CONNECTION_PROPERTIES: JDBC-Verbindungsattribute, falls erforderlich
  • CONNECTION_USERNAME: Der Nutzername der JDBC-Verbindung
  • CONNECTION_PASSWORD: Das JDBC-Verbindungspasswort
  • KMS_ENCRYPTION_KEY: Der Cloud KMS-Verschlüsselungsschlüssel

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/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Jdbc_to_BigQuery
{
   "jobName": "JOB_NAME",
   "parameters": {
       "driverJars": "DRIVER_PATHS",
       "driverClassName": "DRIVER_CLASS_NAME",
       "connectionURL": "JDBC_CONNECTION_URL",
       "query": "SOURCE_SQL_QUERY",
       "outputTable": "PROJECT_ID:DATASET.TABLE_NAME",
       "bigQueryLoadingTemporaryDirectory": "PATH_TO_TEMP_DIR_ON_GCS",
       "connectionProperties": "CONNECTION_PROPERTIES",
       "username": "CONNECTION_USERNAME",
       "password": "CONNECTION_PASSWORD",
       "KMSEncryptionKey":"KMS_ENCRYPTION_KEY"
   },
   "environment": { "zone": "us-central1-f" }
}

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • DRIVER_PATHS: Die kommagetrennten Cloud Storage-Pfade der JDBC-Treiber
  • DRIVER_CLASS_NAME: Der Name der Treiberklasse
  • JDBC_CONNECTION_URL: Die JDBC-Verbindungs-URL
  • SOURCE_SQL_QUERY: Die SQL-Abfrage, die in der Quelldatenbank ausgeführt werden soll
  • DATASET: Ihr BigQuery-Dataset und ersetzen Sie TABLE_NAME durch Ihren BigQuery-Tabellennamen
  • PATH_TO_TEMP_DIR_ON_GCS: Der Cloud Storage-Pfad zum temporären Verzeichnis
  • CONNECTION_PROPERTIES: JDBC-Verbindungsattribute, falls erforderlich
  • CONNECTION_USERNAME: Der Nutzername der JDBC-Verbindung
  • CONNECTION_PASSWORD: Das JDBC-Verbindungspasswort
  • KMS_ENCRYPTION_KEY: Der Cloud KMS-Verschlüsselungsschlüssel

Java Database Connectivity (JDBC) für Pub/Sub

Die Vorlage „Java Database Connectivity (JDBC) für Pub/Sub“ ist eine Batchpipeline, die Daten aus der JDBC-Quelle aufnimmt und die resultierenden Datensätze als JSON-String in ein bereits vorhandenes Pub/Sub-Thema schreibt.

Voraussetzungen für diese Pipeline:

  • Die JDBC-Quelle muss vorhanden sein, bevor die Pipeline ausgeführt wird.
  • Das Cloud Pub/Sub-Output-Thema muss vor der Pipelineausführung vorhanden sein.

Vorlagenparameter

Parameter Beschreibung
driverClassName Der Name der JDBC-Treiberklasse. z. B. com.mysql.jdbc.Driver.
connectionUrl Der URL-String für die JDBC-Verbindung. Beispiel: jdbc:mysql://some-host:3306/sampledb. Kann als String übergeben werden, der Base64-codiert und dann mit einem Cloud KMS-Schlüssel verschlüsselt wird.
driverJars Durch Kommas getrennte Cloud Storage-Pfade für JDBC-Treiber. z. B. gs://your-bucket/driver_jar1.jar,gs://your-bucket/driver_jar2.jar.
username (Optional) Der Nutzername, der für die JDBC-Verbindung verwendet werden soll. Kann als Base64-codierter String übergeben werden, der mit einem Cloud KMS-Schlüssel verschlüsselt ist.
password (Optional) Das Passwort für die JDBC-Verbindung. Kann als Base64-codierter String übergeben werden, der mit einem Cloud KMS-Schlüssel verschlüsselt ist.
connectionProperties [Optional] Attributstring für die JDBC-Verbindung. Format des Strings muss [propertyName=property;]* sein. Beispiel: unicode=true;characterEncoding=UTF-8.
query Die Abfrage, die in der Quelle zur Extraktion der Daten ausgeführt wird. Beispiel: select * from sampledb.sample_table.
outputTopic Das Pub/Sub-Thema, in dem veröffentlicht werden soll, im Format projects/<project>/topics/<topic>.
KMSEncryptionKey [Optional] Cloud KMS-Verschlüsselungsschlüssel zur Entschlüsselung des Nutzernamens, Passworts und Verbindungsstrings. Wenn der Cloud KMS-Schlüssel übergeben wird, müssen der Nutzername, das Passwort und der Verbindungsstring verschlüsselt übergeben werden.
extraFilesToStage Durch Kommas getrennte Cloud Storage-Pfade oder Secret Manager-Secrets für Dateien, die im Worker bereitgestellt werden sollen. Diese Dateien werden im Verzeichnis /extra_files in jedem Worker gespeichert. Beispiel: gs://<my-bucket>/file.txt,projects/<project-id>/secrets/<secret-id>/versions/<version-id>.

Vorlage „Java Database Connectivity (JDBC) für Pub/Sub“ ausführen

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. Der regionale Standardendpunkt 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 JDBC to Pub/Sub template aus.
  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 jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/flex/Jdbc_to_PubSub \
    --region REGION_NAME \
    --parameters \
driverClassName=DRIVER_CLASS_NAME,\
connectionURL=JDBC_CONNECTION_URL,\
driverJars=DRIVER_PATHS,\
username=CONNECTION_USERNAME,\
password=CONNECTION_PASSWORD,\
connectionProperties=CONNECTION_PROPERTIES,\
query=SOURCE_SQL_QUERY,\
outputTopic=OUTPUT_TOPIC,\
KMSEncryptionKey=KMS_ENCRYPTION_KEY

Dabei gilt:

  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-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: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • DRIVER_CLASS_NAME: Der Name der Treiberklasse
  • JDBC_CONNECTION_URL: Die JDBC-Verbindungs-URL
  • DRIVER_PATHS: Die kommagetrennten Cloud Storage-Pfade der JDBC-Treiber
  • CONNECTION_USERNAME: Der Nutzername der JDBC-Verbindung
  • CONNECTION_PASSWORD: Das JDBC-Verbindungspasswort
  • CONNECTION_PROPERTIES: JDBC-Verbindungsattribute, falls erforderlich
  • SOURCE_SQL_QUERY: Die SQL-Abfrage, die in der Quelldatenbank ausgeführt werden soll
  • OUTPUT_TOPIC: Pub/Sub, in dem veröffentlicht werden soll
  • KMS_ENCRYPTION_KEY: Der Cloud KMS-Verschlüsselungsschlüssel

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
{
   "jobName": "JOB_NAME",
   "parameters": {
       "driverClassName": "DRIVER_CLASS_NAME",
       "connectionURL": "JDBC_CONNECTION_URL",
       "driverJars": "DRIVER_PATHS",
       "username": "CONNECTION_USERNAME",
       "password": "CONNECTION_PASSWORD",
       "connectionProperties": "CONNECTION_PROPERTIES",
       "query": "SOURCE_SQL_QUERY",
       "outputTopic": "OUTPUT_TOPIC",
       "KMSEncryptionKey":"KMS_ENCRYPTION_KEY"
   },
   "environment": { "zone": "us-central1-f" },
}

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • DRIVER_CLASS_NAME: Der Name der Treiberklasse
  • JDBC_CONNECTION_URL: Die JDBC-Verbindungs-URL
  • DRIVER_PATHS: Die kommagetrennten Cloud Storage-Pfade der JDBC-Treiber
  • CONNECTION_USERNAME: Der Nutzername der JDBC-Verbindung
  • CONNECTION_PASSWORD: Das JDBC-Verbindungspasswort
  • CONNECTION_PROPERTIES: JDBC-Verbindungsattribute, falls erforderlich
  • SOURCE_SQL_QUERY: Die SQL-Abfrage, die in der Quelldatenbank ausgeführt werden soll
  • OUTPUT_TOPIC: Pub/Sub, in dem veröffentlicht werden soll
  • KMS_ENCRYPTION_KEY: Der Cloud KMS-Verschlüsselungsschlüssel

Apache Cassandra für Cloud Bigtable

Die Vorlage „Apache Cassandra für Cloud Bigtable“ kopiert eine Tabelle von Apache Cassandra nach Cloud Bigtable. Diese Vorlage erfordert eine minimale Konfiguration und repliziert die Tabellenstruktur in Cassandra so genau wie möglich in Cloud Bigtable.

Die Vorlage "Apache Cassandra für Cloud Bigtable" eignet sich für Folgendes:

  • Migration einer Apache Cassandra-Datenbank, wenn kurze Ausfallzeiten akzeptabel sind.
  • Regelmäßige Replikation von Cassandra-Tabellen in Cloud Bigtable für globale Bereitstellungszwecke.

Voraussetzungen für diese Pipeline:

  • Die Bigtable-Zieltabelle muss vorhanden sein, bevor Sie die Pipeline ausführen.
  • Netzwerkverbindung zwischen Dataflow-Workern und Apache Cassandra-Knoten.

Typkonvertierung

Die Vorlage „Apache Cassandra für Cloud Bigtable“ konvertiert Apache Cassandra-Datentypen automatisch in Cloud Bigtable-Datentypen.

Die meisten Primitiven werden in Cloud Bigtable und Apache Cassandra auf die gleiche Weise dargestellt. Die folgenden Primitiven werden jedoch anders dargestellt:

  • Date und Timestamp werden in DateTime-Objekte konvertiert
  • UUID wird konvertiert in String
  • Varint wird konvertiert in BigDecimal

Apache Cassandra unterstützt nativ auch komplexere Typen wie Tuple, List, Set und Map. Tupel werden von dieser Pipeline nicht unterstützt, da es in Apache Beam keinen entsprechenden Typ gibt.

In Apache Cassandra können Sie beispielsweise eine Spalte vom Typ List mit dem Namen „mylist“ und Werte wie die in der folgenden Tabelle haben:

row mylist
1 (a,b,c)

Die Pipeline erweitert die Listenspalte in drei verschiedene Spalten (in Cloud Bigtable als Spaltenqualifizierer bezeichnet). Der Name der Spalten lautet „mylist“, aber die Pipeline hängt den Index des Elements in der Liste an, z. B. „mylist [0]“.

row mylist[0] mylist[1] mylist[2]
1 a b c

Die Pipeline verarbeitet die Sätze wie Listen, fügt jedoch ein Suffix hinzu, das angibt, ob die Zelle ein Schlüssel oder ein Wert ist.

row mymap
1 {"first_key":"first_value","another_key":"different_value"}

Nach der Transformation wird die Tabelle so angezeigt:

row mymap[0].key mymap[0].value mymap[1].key mymap[1].value
1 first_key first_value another_key different_value

Primärschlüssel-Konvertierung

In Apache Cassandra wird ein Primärschlüssel mithilfe der Datendefinitionssprache definiert. Der Primärschlüssel ist entweder einfach, zusammengesetzt oder mit Clustering-Spalten kombiniert. Cloud Bigtable unterstützt die manuelle Erstellung von Zeilenschlüsseln, die lexikografisch in einem Byte-Array angeordnet sind. Die Pipeline sammelt automatisch Informationen zum Schlüsseltyp und erstellt basierend auf Best Practices zum Erstellen von Zeilenschlüsseln basierend auf mehreren Werten automatisch einen Schlüssel.

Vorlagenparameter

Parameter Beschreibung
cassandraHosts Die Hosts der Apache Cassandra-Knoten in einer durch Kommas getrennten Liste.
cassandraPort (Optional) Der TCP-Port, um Apache Cassandra auf den Knoten zu erreichen (standardmäßig 9042).
cassandraKeyspace Der Apache Cassandra-Schlüsselbereich, in dem sich die Tabelle befindet.
cassandraTable Die zu kopierende Apache Cassandra-Tabelle.
bigtableProjectId Die Google Cloud-Projekt-ID der Bigtable-Instanz, in die die Apache Cassandra-Tabelle kopiert wird.
bigtableInstanceId Die Bigtable-Instanz-ID, in die die Apache Cassandra-Tabelle kopiert werden soll.
bigtableTableId Der Name der Bigtable-Tabelle, in die die Apache Cassandra-Tabelle kopiert werden soll.
defaultColumnFamily Optional: Der Name der Spaltenfamilie der Bigtable-Tabelle (standardmäßig default).
rowKeySeparator (Optional) Das Trennzeichen zum Erstellen des Zeilenschlüssels (standardmäßig #).

Vorlage „Apache Cassandra für Cloud Bigtable“ ausführen

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. Der regionale Standardendpunkt 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 Cassandra to Cloud Bigtable template aus.
  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 jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Cassandra_To_Cloud_Bigtable \
    --region REGION_NAME \
    --parameters \
bigtableProjectId=BIGTABLE_PROJECT_ID,\
bigtableInstanceId=BIGTABLE_INSTANCE_ID,\
bigtableTableId=BIGTABLE_TABLE_ID,\
cassandraHosts=CASSANDRA_HOSTS,\
cassandraKeyspace=CASSANDRA_KEYSPACE,\
cassandraTable=CASSANDRA_TABLE

Dabei gilt:

  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-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: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • BIGTABLE_PROJECT_ID: Ihre Projekt-ID, in der sich Cloud Bigtable befindet
  • BIGTABLE_INSTANCE_ID: Die Cloud Bigtable-Instanz-ID.
  • BIGTABLE_TABLE_ID: Der Name Ihres Cloud Bigtable-Tabellennamens
  • CASSANDRA_HOSTS: Apache Cassandra-Hostliste. Wenn mehrere Hosts angegeben sind, folgen Sie der Anleitung zum Maskieren von Kommas.
  • CASSANDRA_KEYSPACE: Der Apache Cassandra-Schlüsselbereich, in dem sich die Tabelle befindet.
  • CASSANDRA_TABLE: Die Apache Cassandra-Tabelle, die migriert werden soll

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/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Cassandra_To_Cloud_Bigtable
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "BIGTABLE_PROJECT_ID",
       "bigtableInstanceId": "BIGTABLE_INSTANCE_ID",
       "bigtableTableId": "BIGTABLE_TABLE_ID",
       "cassandraHosts": "CASSANDRA_HOSTS",
       "cassandraKeyspace": "CASSANDRA_KEYSPACE",
       "cassandraTable": "CASSANDRA_TABLE"
   },
   "environment": { "zone": "us-central1-f" }
}

Dabei gilt:

  • PROJET_ID: die Cloud-Projekt-ID, in der 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • BIGTABLE_PROJECT_ID: Ihre Projekt-ID, in der sich Cloud Bigtable befindet
  • BIGTABLE_INSTANCE_ID: Die Cloud Bigtable-Instanz-ID.
  • BIGTABLE_TABLE_ID: Der Name Ihres Cloud Bigtable-Tabellennamens
  • CASSANDRA_HOSTS: Apache Cassandra-Hostliste. Wenn mehrere Hosts angegeben sind, folgen Sie der Anleitung zum Maskieren von Kommas.
  • CASSANDRA_KEYSPACE: Der Apache Cassandra-Schlüsselbereich, in dem sich die Tabelle befindet.
  • CASSANDRA_TABLE: Die Apache Cassandra-Tabelle, die migriert werden soll

Migration von MongoDB zu BigQuery

Die Vorlage "MongoDB zu BigQuery" ist eine Batchpipeline, die Dokumente aus MongoDB liest und gemäß dem Parameter userOption in BigQuery schreibt.

Voraussetzungen für diese Pipeline

  • Das BigQuery-Ziel-Dataset muss vorhanden sein.
  • Die MongoDB-Quellinstanz muss über die Dataflow-Worker-Maschinen zugänglich sein.

Vorlagenparameter

Parameter Beschreibung
mongoDbUri MongoDB-Verbindungs-URI im Format mongodb+srv://:@.
database Datenbank in MongoDB, aus der die Sammlung gelesen werden soll. Beispiel: my-db.
collection Name der Sammlung in der MongoDB-Datenbank. Beispiel: my-collection.
outputTableSpec BigQuery-Tabelle, in die Daten geschrieben werden sollen. Beispiel: bigquery-project:dataset.output_table.
userOption FLATTEN oder NONE. FLATTEN vereinfacht die Dokumente auf die erste Ebene. NONE speichert das gesamte Dokument als JSON-String.

Vorlage "MongoDB für BigQuery" ausführen

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. Der regionale Standardendpunkt 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 MongoDB to BigQuery template aus.
  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 beta dataflow flex-template run JOB_NAME \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --template-file-gcs-location=gs://dataflow-templates/VERSION/flex/MongoDB_to_BigQuery \
    --parameters \
outputTableSpec=OUTPUT_TABLE_SPEC,\
mongoDbUri=MONGO_DB_URI,\
database=DATABASE,\
collection=COLLECTION,\
userOption=USER_OPTION

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der Sie den Dataflow-Job ausführen möchten
  • JOB_NAME: ein eindeutiger Jobname Ihrer Wahl
  • REGION_NAME: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • OUTPUT_TABLE_SPEC: Der Name Ihrer BigQuery-Zieltabelle.
  • MONGO_DB_URI: Ihr MongoDB-URI.
  • DATABASE: Ihre MongoDB-Datenbank.
  • COLLECTION: Ihre MongoDB-Sammlung.
  • USER_OPTION: FLATTEN oder NONE.

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
{
   "launch_parameter": {
      "jobName": "JOB_NAME",
      "parameters": {
          "inputTableSpec": "INPUT_TABLE_SPEC",
          "mongoDbUri": "MONGO_DB_URI",
          "database": "DATABASE",
          "collection": "COLLECTION",
          "userOption": "USER_OPTION"
      },
      "containerSpecGcsPath": "gs://dataflow-templates/VERSION/flex/MongoDB_to_BigQuery",
   }
}

Dabei gilt:

  • PROJECT_ID: die Cloud-Projekt-ID, in der Sie den Dataflow-Job ausführen möchten
  • JOB_NAME: ein eindeutiger Jobname Ihrer Wahl
  • LOCATION: der regionale Endpunkt, an dem Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • 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/latest/
    • Den Versionsnamen wie 2021-09-20-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates/.
  • OUTPUT_TABLE_SPEC: Der Name Ihrer BigQuery-Zieltabelle.
  • MONGO_DB_URI: Ihr MongoDB-URI.
  • DATABASE: Ihre MongoDB-Datenbank.
  • COLLECTION: Ihre MongoDB-Sammlung.
  • USER_OPTION: FLATTEN oder NONE.