Daten mit Vorlagen verarbeiten

Dataplex bietet auf Dataflow basierende Vorlagen für gängige Datenverarbeitungsaufgaben wie Datenaufnahme, -verarbeitung und -verwaltung. In diesem Leitfaden wird beschrieben, wie Sie Datenverarbeitungsvorlagen konfigurieren und ausführen.

Hinweise

Dataplex-Vorlagen basieren auf Dataflow. Aktivieren Sie die Dataflow APIs, bevor Sie Vorlagen verwenden.

Dataflow APIs aktivieren

Notes

  • Alle Vorlagen unterstützen gängige Dataflow-Pipelineoptionen.

  • Dataplex nutzt Datenpipelines, um die durch die Vorlagen definierten Aufgaben zu planen.

  • Auf der Google Cloud Console-Seite Dataplex werden nur Aufgaben angezeigt, die Sie über Dataplex planen.

Vorlage: Rohdaten in kuratierte Daten umwandeln

Mit der Konvertierungsvorlage für das Dataplex-Dateiformat werden Daten in einem Dataplex-Cloud Storage-Asset oder eine Liste von Dataplex-Entitäten, die im CSV- oder JSON-Format gespeichert sind, in Daten im Parquet- oder Avro-Format in einem anderen Dataplex-Asset konvertiert. Das Partitionslayout bleibt bei der Konvertierung erhalten. Auch die Komprimierung der Ausgabedateien wird unterstützt.

Vorlagenparameter

Parameter Beschreibung
inputAssetOrEntitiesList Das Dataplex-Asset oder die Dataplex-Entitäten, die die Eingabedateien enthalten. Dieser Parameter muss das Format haben: projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> oder projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/entities/<entity1-name>,projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/entities/<entity 2 name>...
outputFileFormat Das Ausgabedateiformat in Cloud Storage. Dieser Parameter muss das Format PARQUET oder AVRO haben.
outputAsset Der Name des Dataplex-Assets, das den Cloud Storage-Bucket enthält, in dem die Ausgabedateien gespeichert werden. Dieser Parameter muss das Format projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> haben. Sie finden die outputAsset in der Google Cloud Console auf dem Dataplex-Asset-Tab Details.
outputFileCompression Optional: Die Komprimierung der Ausgabedatei. Der Standardwert für diesen Parameter ist SNAPPY. Andere Werte für den Parameter können UNCOMPRESSED, SNAPPY, GZIP oder BZIP2 sein. BZIP2 wird für PARQUET-Dateien nicht unterstützt.
writeDisposition Optional: Gibt die Aktion an, die ausgeführt wird, wenn eine Zieldatei bereits vorhanden ist. Der Standardwert für diesen Parameter ist SKIP. Damit werden nur Dateien verarbeitet, die im Zielverzeichnis nicht vorhanden sind. Andere Werte für den Parameter sind OVERWRITE (vorhandene Dateien überschreiben) oder FAIL (es wird nichts verarbeitet und es wird ein Fehler ausgegeben, wenn mindestens eine Zieldatei bereits vorhanden ist).
updateDataplexMetadata

Optional: Gibt an, ob Dataplex-Metadaten für die neu erstellten Entitäten aktualisiert werden. Der Standardwert für diesen Parameter ist false.

Wenn diese Option aktiviert ist, kopiert die Pipeline das Schema automatisch aus der Quell- in die Dataplex-Zielentitäten. Die automatisierte Dataplex-Erkennung wird dann nicht für sie ausgeführt. Verwenden Sie dieses Flag, wenn das Schema der Quelldaten (Rohdaten) von Dataplex verwaltet wird.

Führen Sie die Vorlage aus.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Dataplex auf:

    Zu Dataplex

  2. Rufen Sie die Ansicht Prozess auf.

  3. Klicken Sie auf Aufgabe erstellen.

  4. Klicken Sie unter In ausgewählte Formate konvertieren auf Aufgabe erstellen.

  5. Wählen Sie einen Dataplex-Lake aus.

  6. Geben Sie einen Namen für die Aufgabe an.

  7. Wählen Sie eine Region für die Aufgabenausführung aus.

  8. Geben Sie die erforderlichen Parameter ein.

  9. Klicken Sie auf Weiter.

gcloud

Ersetzen Sie Folgendes:

JOB_NAME: a job name of your choice
PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
INPUT_ASSET_OR_ENTITIES_LIST: path to your JDBC drivers
OUTPUT_FILE_FORMAT: your output file format in Cloud Storage
OUTPUT_ASSET: your Dataplex output asset ID

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-REGION_NAME/latest/flex/Dataplex_File_Format_Conversion_Preview \
--parameters \
inputAssetOrEntitiesList=INPUT_ASSET_OR_ENTITIES_LIST,\
outputFileFormat=OUTPUT_FILE_FORMAT,\
outputAsset=OUTPUT_ASSET

REST API

Ersetzen Sie Folgendes:

PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
JOB_NAME: a job name of your choice
INPUT_ASSET_OR_ENTITIES_LIST: path to your JDBC drivers
OUTPUT_FILE_FORMAT: your output file format in Cloud Storage
OUTPUT_ASSET: your Dataplex output asset ID

Senden Sie eine HTTP-POST-Anfrage:

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION_NAME/flexTemplates:launch
{
  "launch_parameter": {
    "jobName": "JOB_NAME",
    "parameters": {
        "inputAssetOrEntitiesList": "INPUT_ASSET_OR_ENTITIES_LIST",
        "outputFileFormat": "OUTPUT_FILE_FORMAT",
        "outputAsset": "OUTPUT_ASSET",
    },
    "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_File_Format_Conversion_Preview",
 }
}

Vorlage: Daten von einem BigQuery-Asset einem Cloud Storage-Asset zuweisen

Mit der Vorlage „Dataplex BigQuery für Cloud Storage“ werden Daten aus einem Dataplex-BigQuery-Asset in einem Dataplex-Cloud Storage-Asset in einem Dataplex-kompatiblen Layout und Format in ein Dataplex-Cloud Storage-Asset kopiert. Sie können ein BigQuery-Dataset oder eine Liste von BigQuery-Tabellen angeben, die kopiert werden sollen. Für zusätzliche Flexibilität ermöglicht die Vorlage das Kopieren von Daten, die älter als ein angegebenes Änderungsdatum sind, und ermöglicht das optionale Löschen von Daten aus BigQuery nach einer erfolgreichen Kopie.

Beim Kopieren partitionierter Tabellen aus BigQuery nach Cloud Storage erstellt die Vorlage Hive-ähnliche Partitionen im Cloud Storage-Bucket. Beim Schreiben in Cloud Storage erstellt die Vorlage einen neuen Partitionsschlüssel, indem sie das Suffix _pid an die vorhandene Partitionsspalte anfügt. Dies ist erforderlich, um auf die Daten in BigQuery als externe Tabelle zuzugreifen. Derzeit kann der Partitionsschlüssel im Hive-Stil nicht mit dem einer vorhandenen Spalte identisch sein. Daher hat die kopierte Tabelle, wenn sie aus BigQuery als externe Tabelle angesehen wird, eine zusätzliche Spalte für den Partitionsschlüssel. Die übrigen Daten bleiben unverändert.

Beim Kopieren partitionierter Tabellen aus BigQuery in Cloud Storage:

  • Die Vorlage erstellt Partitionen im Hive-Stil im Cloud Storage-Bucket. Derzeit kann der Hive-Partitionsschlüssel in BigQuery nicht mit dem einer vorhandenen Spalte identisch sein. Sie können die Option enforceSamePartitionKey verwenden, um entweder einen neuen Partitionsschlüssel zu erstellen oder den gleichen Partitionsschlüssel zu behalten, aber die vorhandene Spalte umzubenennen.
  • Dataplex Discovery registriert den Partitionstyp beim Erstellen einer BigQuery-Tabelle (und einer Tabelle in Dataproc Metastore) als string. Dies kann sich auf Ihre vorhandenen Partitionsfilter auswirken.

Die Anzahl der Tabellen und Partitionen, die in einer einzelnen Vorlagenausführung transformiert werden können, ist auf etwa 300 begrenzt. Die genaue Zahl hängt von der Länge der Tabellennamen und anderen Faktoren ab.

Vorlagenparameter

Parameter Beschreibung
sourceBigQueryDataset Das BigQuery-Dataset, aus dem Daten gestaffelt werden sollen. Dieser Parameter sollte entweder einen Dataplex-Asset-Namen im Format projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> oder eine BigQuery-Dataset-ID im Format projects/<name>/datasets/<dataset-id> enthalten.
destinationStorageBucketAssetName Der Dataplex-Asset-Name für den Cloud Storage-Bucket, auf den Daten gestaffelt werden sollen. Dieser Parameter muss das Format projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> haben.
tables Optional: Eine durch Kommas getrennte Liste von BigQuery-Tabellen. Wenn keine Liste angegeben ist, werden alle Tabellen abgestuft. Tabellen sollten nur anhand ihres Namens angegeben werden (kein Projekt-/Dataset-Präfix) und unterscheiden zwischen Groß- und Kleinschreibung.
exportDataModifiedBeforeDateTime Optional: Verwenden Sie diesen Parameter, um Daten zu verschieben, die älter sind als dieses Datum (und optional die Zeit). Verschieben Sie bei partitionierten BigQuery-Tabellen die zuletzt geänderten Partitionen vor diesem Datum bzw. dieser Uhrzeit. Bei nicht partitionierten Tabellen verschieben Sie die Tabelle, wenn sie vor diesem Datum bzw. dieser Uhrzeit zuletzt geändert wurde. Wenn keine Angabe erfolgt, werden alle Tabellen/Partitionen verschoben. Datum und Uhrzeit werden standardmäßig in der Standardzeitzone geparst. Die optionalen Suffixe Z und +HH:mm werden jedoch unterstützt. Dieser Parameter muss das Format YYYY-MM-DD, YYYY-MM-DDTHH:mm:ss oder YYYY-MM-DDTHH:mm:ss+03:00 haben. Relatives Datum/Uhrzeit wird ebenfalls unterstützt und muss das Format -PnDTnHnMn.nS haben (muss mit -P beginnen, was eine Zeit in der Vergangenheit angibt).
fileFormat Optional: Das Ausgabedateiformat in Cloud Storage. Der Standardwert für diesen Parameter ist PARQUET. Ein weiterer Wert für den Parameter kann AVRO sein.
fileCompression Optional: Die Komprimierung der Ausgabedatei. Der Standardwert für diesen Parameter ist SNAPPY. Andere Werte für den Parameter können UNCOMPRESSED, SNAPPY, GZIP oder BZIP2 sein. BZIP2 wird für PARQUET-Dateien nicht unterstützt.
deleteSourceData Optional: Gibt an, ob Quelldaten nach einem erfolgreichen Export aus BigQuery gelöscht werden sollen. Mögliche Werte sind true oder false. Der Standardwert für diesen Parameter ist false.
partitionIdRegExp Optional: Verarbeiten Sie Partitionen, deren Partitions-ID nur diesem regulären Ausdruck entspricht. Wenn kein Wert angegeben ist, verarbeitet dieser Parameter standardmäßig alle.
writeDisposition Optional: Gibt die Aktion an, die ausgeführt wird, wenn eine Zieldatei bereits vorhanden ist, d. h., eine oder mehrere Tabellen/Partitionen sind bereits vorab gestaffelt. Der Standardwert für diesen Parameter ist SKIP. Dies signalisiert, dass nur die Tabellen/Partitionen verarbeitet werden sollen, die nicht bereits vorab gestaffelt waren. Andere Werte für den Parameter sind OVERWRITE (vorhandene Dateien überschreiben) oder FAIL (es wird nichts verarbeitet und es wird ein Fehler ausgegeben, wenn mindestens eine Zieldatei bereits vorhanden ist).
enforceSamePartitionKey

Optional: Gibt an, ob der gleiche Partitionsschlüssel erzwungen werden soll. Aufgrund einer BigQuery-Einschränkung ist es nicht möglich, dass der Partitionsschlüssel (im Dateipfad) in einer partitionierten externen Tabelle denselben Namen wie eine der Spalten in der Datei hat. Ist dieser Parameter auf „true“ gesetzt (Standardwert), wird der Partitionsschlüssel der Zieldatei auf den Namen der ursprünglichen Partitionsspalte festgelegt und die Spalte in der Datei wird umbenannt. Bei „false“ wird der Partitionsschlüssel umbenannt.

Wenn die Originaltabelle beispielsweise nach einer Spalte mit den Namen TS und enforceSamePartitionKey=true partitioniert ist, lautet der Zieldateipfad gs://<bucket>/TS=<partition ID>/<file> und die Spalte wird in der Datei in TS_pkey umbenannt. So können vorhandene Abfragen für dieselben Partitionen in der alten oder der neuen Tabelle ausgeführt werden.

Wenn enforceSamePartitionKey=false, ist der Zieldateipfad gs://<bucket>/TS_pid=<partition ID>/<file>, aber der Spaltenname wird als TS in der Datei beibehalten.

updateDataplexMetadata

Optional: Gibt an, ob Dataplex-Metadaten für die neu erstellten Entitäten aktualisiert werden. Der Standardwert für diesen Parameter ist false.

Wenn diese Option aktiviert ist, kopiert die Pipeline das Schema automatisch aus der Quell- in die Dataplex-Zielentitäten. Die automatisierte Dataplex-Erkennung wird dann nicht für sie ausgeführt. Verwenden Sie dieses Flag, wenn Sie das Schema der BigQuery-Quelltabellen verwalten.

Führen Sie die Vorlage aus.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Dataplex auf:

    Zu Dataplex

  2. Rufen Sie die Ansicht Prozess auf.

  3. Klicken Sie auf Create Task (Aufgabe erstellen).

  4. Klicken Sie unter Tier from BQ to GCS Assets auf Create Task.

  5. Wählen Sie einen Dataplex-Lake aus.

  6. Geben Sie einen Namen für die Aufgabe an.

  7. Wählen Sie eine Region für die Aufgabenausführung aus.

  8. Geben Sie die erforderlichen Parameter ein.

  9. Klicken Sie auf Weiter.

gcloud

Ersetzen Sie Folgendes:

JOB_NAME: a job name of your choice
PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
SOURCE_ASSET_NAME_OR_DATASET_ID: your Dataplex asset
name for the source BigQuery dataset, or the dataset ID
DESTINATION_ASSET_NAME: your Dataplex asset name for
the destination Cloud Storage bucket

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-REGION_NAME/latest/flex/Dataplex_BigQuery_to_GCS_Preview \
--parameters \
sourceBigQueryDataset=SOURCE_ASSET_NAME_OR_DATASET_ID,\
destinationStorageBucketAssetName=DESTINATION_ASSET_NAME

REST API

Ersetzen Sie Folgendes:

PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
JOB_NAME: a job name of your choice
SOURCE_ASSET_NAME_OR_DATASET_ID: your Dataplex asset
name for the source BigQuery dataset, or the dataset ID
DESTINATION_ASSET_NAME: your Dataplex asset name for
the destination Cloud Storage bucket
REGION_NAME: region in which to run the job

Senden Sie eine HTTP-POST-Anfrage:

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION_NAME/flexTemplates:launch
{
 "launch_parameter": {
    "jobName": "JOB_NAME",
    "parameters": {
        "sourceBigQueryDataset": "SOURCE_ASSET_NAME_OR_DATASET_ID",
        "destinationStorageBucketAssetName": "DESTINATION_ASSET_NAME",
    },
    "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_BigQuery_to_GCS_Preview",
 }
}

Andere von Google Cloud bereitgestellte oder benutzerdefinierte Dataflow-Vorlagen planen

Mit Dataplex können Sie alle von Google Cloud bereitgestellten Dataflow-Vorlagen oder Ihre benutzerdefinierte Dataflow-Vorlage in der Console planen und überwachen.

Zeitplan

Console

  1. Rufen Sie in der Google Cloud Console die Seite Dataplex auf:

    Zu Dataplex

  2. Rufen Sie die Ansicht Prozess auf.

  3. Klicken Sie auf Create Task (Aufgabe erstellen).

  4. Klicken Sie unter Dataflow-Pipeline erstellen auf Dataflow-Pipeline erstellen.

  5. Wählen Sie einen Dataplex-Lake aus.

  6. Geben Sie einen Namen für die Aufgabe an.

  7. Wählen Sie eine Region aus, in der die Task ausgeführt werden soll.

  8. Wählen Sie eine Dataflow-Vorlage aus.

  9. Geben Sie die erforderlichen Parameter ein.

  10. Klicken Sie auf Weiter.

Überwachen

Console

  1. Rufen Sie in der Google Cloud Console die Seite Dataplex auf:

    Zu Dataplex

  2. Rufen Sie die Ansicht Prozess auf.

  3. Klicken Sie auf Dataflow-Pipelines.

  4. Nach Lake- oder Pipelinenamen filtern.