Knowledge Catalog (ehemals Dataplex Universal Catalog) bietet Vorlagen, die auf Dataflow basieren, um gängige Datenverarbeitungsaufgaben wie Datenaufnahme, -verarbeitung und -lebenszyklusverwaltung auszuführen. In dieser Anleitung wird beschrieben, wie Sie Datenverarbeitungsvorlagen konfigurieren und ausführen.
Hinweis
Knowledge Catalog-Vorlagen basieren auf Dataflow. Aktivieren Sie die Dataflow APIs, bevor Sie Vorlagen verwenden.
Wichtige Hinweise:
Alle Vorlagen unterstützen gängige Dataflow-Pipelineoptionen.
Knowledge Catalog verwendet Datenpipelines um die in den Vorlagen definierten Aufgaben zu planen.
Aufgaben, die Sie über Knowledge Catalog planen, werden in der Google Cloud Console nur auf der Seite Knowledge Catalog angezeigt.
Vorlage: Rohdaten in ausgewählte Daten konvertieren
Mit der Knowledge Catalog-Vorlage zur Konvertierung von Dateiformaten werden Daten in einem Knowledge Catalog Cloud Storage-Asset oder eine Liste von Knowledge Catalog-Entitäten, die im CSV- oder JSON-Format gespeichert sind, in einem anderen Knowledge Catalog-Asset in das Parquet- oder Avro-Format konvertiert. Das Partitionierungslayout bleibt bei der Konvertierung erhalten. Außerdem wird die Komprimierung der Ausgabedateien unterstützt.
Vorlagenparameter
| Parameter | Beschreibung |
|---|---|
inputAssetOrEntitiesList |
Das Knowledge Catalog-Asset oder die Knowledge Catalog-Entitäten, die
enthalten die Eingabedateien. Dieser Parameter muss das folgende 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 folgende Format haben: PARQUET oder AVRO. |
outputAsset |
Der Name des Knowledge Catalog-Assets, das den
Cloud Storage-Bucket enthält, in dem Ausgabedateien gespeichert werden. Dieser
Parameter muss das folgende Format haben: projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name>. Sie finden das
outputAsset in der Google Cloud Console auf dem
Tab Details des Knowledge Catalog-Assets. |
outputFileCompression |
Optional: Die Komprimierung der Ausgabedatei. Der Standardwert für diesen
Parameter ist SNAPPY. Weitere mögliche Werte für den Parameter sind
UNCOMPRESSED, SNAPPY, GZIP oder
BZIP2. 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 nicht im
Zielverzeichnis vorhanden sind. Weitere mögliche Werte für den Parameter sind
OVERWRITE (alle vorhandenen Dateien überschreiben) oder FAIL
(nichts verarbeiten und einen Fehler erzeugen, wenn mindestens eine Zieldatei
bereits vorhanden ist). |
updateDataplexMetadata |
Optional: Gibt an, ob Knowledge Catalog-Metadaten für die
neu erstellten Entitäten aktualisiert werden sollen. Der Standardwert für diesen Parameter ist
Wenn diese Option aktiviert ist, kopiert die Pipeline automatisch das Schema von der Quelle in die Ziel-Knowledge Catalog-Entitäten und die automatische Knowledge Catalog-Erkennung wird für diese nicht ausgeführt. Verwenden Sie dieses Flag, wenn das Schema der Quelldaten (Rohdaten) von Knowledge Catalog verwaltet wird. |
Führen Sie die Vorlage aus.
Console
Rufen Sie in der Google Cloud Console die Seite Verarbeiten von Knowledge Catalog auf.
Klicken Sie auf Aufgabe erstellen.
Klicken Sie unter In ausgewählte Formate konvertieren auf Aufgabe erstellen.
Wählen Sie einen Knowledge Catalog-Lake aus.
Geben Sie einen Namen für die Aufgabe an.
Wählen Sie eine Region für die Ausführung der Aufgabe aus.
Füllen Sie die erforderlichen Parameter aus.
Klicken Sie auf Weiter.
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-REGION_NAME/latest/flex/Dataplex_File_Format_Conversion_Preview \ --parameters \ inputAssetOrEntitiesList=INPUT_ASSET_OR_ENTITIES_LIST,\ outputFileFormat=OUTPUT_FILE_FORMAT,\ outputAsset=OUTPUT_ASSET
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 Knowledge Catalog output asset ID
REST
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",
}
}
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 Knowledge Catalog output asset ID
Vorlage: Daten aus einem BigQuery-Asset in ein Cloud Storage-Asset verlagern
Mit der Knowledge Catalog-Vorlage „BigQuery zu Cloud Storage“ werden Daten aus einem Knowledge Catalog-BigQuery-Asset in ein Knowledge Catalog-Cloud Storage-Asset in einem Knowledge Catalog-kompatiblen Layout und Format kopiert. Sie können ein BigQuery-Dataset oder eine Liste von BigQuery-Tabellen angeben, die kopiert werden sollen. Für zusätzliche Flexibilität können mit der Vorlage Daten kopiert werden, die älter als ein bestimmtes Änderungsdatum sind. Außerdem können Daten nach dem Kopieren optional aus BigQuery gelöscht werden.
Beim Kopieren partitionierter Tabellen aus BigQuery in Cloud Storage gilt Folgendes:
- Mit der Vorlage werden Hive-ähnliche Partitionen im Cloud Storage-Bucket erstellt.
In BigQuery darf der Hive-ähnliche Partitionierungsschlüssel nicht mit einer vorhandenen Spalte übereinstimmen. Mit der Option
enforceSamePartitionKeykönnen Sie entweder einen neuen Partitionierungsschlüssel erstellen oder den gleichen Partitionierungsschlüssel beibehalten, aber die vorhandene Spalte umbenennen. - Bei der Erstellung einer BigQuery-Tabelle (und einer Tabelle in Dataproc Metastore) wird der Partitionstyp von Knowledge Catalog Discovery als
stringregistriert. Dies kann sich auf Ihre vorhandenen Partitionsfilter auswirken.
Die Anzahl der Tabellen und Partitionen, die in einem einzelnen Vorlagendurchlauf transformiert werden können, ist auf etwa 300 begrenzt. Die genaue Anzahl hängt von der Länge der Tabellennamen und anderen Faktoren ab.
Vorlagenparameter
| Parameter | Beschreibung |
|---|---|
sourceBigQueryDataset |
Das BigQuery-Dataset, aus dem Daten verlagert werden sollen. Dieser Parameter
muss entweder einen Knowledge Catalog-Assetnamen 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 Knowledge Catalog-Assetname für den Cloud Storage-Bucket
in den Daten verlagert werden sollen. Dieser Parameter muss das folgende Format haben:
projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name>. |
tables |
Optional: Eine durch Kommas getrennte Liste der BigQuery-Tabellen, die verlagert werden sollen. Wenn keine Liste angegeben ist, werden alle Tabellen verlagert. Tabellen müssen nur mit ihrem Namen angegeben werden (kein Projekt- oder Dataset-Präfix). Bei Tabellennamen wird die Groß-/Kleinschreibung berücksichtigt. |
exportDataModifiedBeforeDateTime |
Optional: Mit diesem Parameter können Sie Daten verschieben, die älter als dieses Datum (und
die optionale Uhrzeit) sind. Bei partitionierten BigQuery-Tabellen werden
Partitionen verschoben, die zuletzt vor diesem Datum/dieser Uhrzeit geändert wurden. Bei nicht partitionierten
Tabellen werden sie verschoben, wenn sie zuletzt vor diesem Datum/dieser Uhrzeit geändert wurden. Wenn nicht
angegeben, werden alle Tabellen/Partitionen verschoben. Datum und Uhrzeit werden standardmäßig in der
Standardzeitzone geparst. Optionale Suffixe Z und
+HH:mm werden jedoch unterstützt. Dieser Parameter muss das Format
YYYY-MM-DD oder YYYY-MM-DDTHH:mm:ss oder
YYYY-MM-DDTHH:mm:ss+03:00 haben.
Relative Datums-/Uhrzeitangaben
werden ebenfalls unterstützt und müssen 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 möglicher Wert für den
Parameter ist AVRO. |
fileCompression |
Optional: Die Komprimierung der Ausgabedatei. Der Standardwert für diesen
Parameter ist SNAPPY. Weitere mögliche Werte für den Parameter sind
UNCOMPRESSED, SNAPPY, GZIP oder
BZIP2. 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 nur Partitionen, deren Partitions-ID mit diesem regulären Ausdruck übereinstimmt. Wenn kein Wert angegeben ist, werden standardmäßig alle Partitionen verarbeitet. |
writeDisposition |
Optional: Gibt die Aktion an, die ausgeführt wird, wenn eine Zieldatei
bereits vorhanden ist, d. h., wenn eine oder mehrere Tabellen/Partitionen bereits vorab verlagert wurden.
Der Standardwert für diesen Parameter ist SKIP,
damit werden nur Tabellen/Partitionen verarbeitet, die noch nicht
vorab verlagert wurden. Weitere mögliche Werte für den Parameter sind
OVERWRITE (alle vorhandenen Dateien überschreiben) oder FAIL
(nichts verarbeiten und einen Fehler erzeugen, wenn mindestens eine Zieldatei
bereits vorhanden ist). |
enforceSamePartitionKey |
Optional: Gibt an, ob derselbe Partitionierungsschlüssel erzwungen werden soll. Aufgrund einer BigQuery-Einschränkung kann der Partitionierungsschlüssel (im Dateipfad) in einer partitionierten externen Tabelle nicht denselben Namen wie eine der Spalten in der Datei haben. Wenn dieser Parameter auf „true“ gesetzt ist (Standardwert), wird der Partitionierungsschlüssel der Zieldatei auf den ursprünglichen Namen der Partitionierungsspalte gesetzt und die Spalte in der Datei wird umbenannt. Wenn der Parameter auf „false“ gesetzt ist, wird der Partitionierungsschlüssel umbenannt. Wenn die ursprüngliche Tabelle beispielsweise nach einer Spalte mit dem Namen
Wenn |
updateDataplexMetadata |
Optional: Gibt an, ob Knowledge Catalog-Metadaten für die
neu erstellten Entitäten aktualisiert werden sollen. Der Standardwert für diesen Parameter ist
Wenn diese Option aktiviert ist, kopiert die Pipeline automatisch das Schema von der Quelle in die Ziel-Dataplex-Entitäten und die automatische Knowledge Catalog-Erkennung wird für diese nicht ausgeführt. Verwenden Sie dieses Flag, wenn Sie das Schema der BigQuery-Quelltabelle verwalten. |
Führen Sie die Vorlage aus.
Console
Rufen Sie in der Google Cloud Console die Seite Verarbeiten von Knowledge Catalog auf.
Klicken Sie auf Aufgabe erstellen.
Klicken Sie unter Von BQ- in GCS-Assets verlagern auf Aufgabe erstellen.
Wählen Sie einen Knowledge Catalog-Lake aus.
Geben Sie einen Namen für die Aufgabe an.
Wählen Sie eine Region für die Ausführung der Aufgabe aus.
Füllen Sie die erforderlichen Parameter aus.
Klicken Sie auf Weiter.
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-REGION_NAME/latest/flex/Dataplex_BigQuery_to_GCS_Preview \ --parameters \ sourceBigQueryDataset=SOURCE_ASSET_NAME_OR_DATASET_ID,\ destinationStorageBucketAssetName=DESTINATION_ASSET_NAME
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 Knowledge Catalog asset name for the source BigQuery dataset, or the dataset ID DESTINATION_ASSET_NAME: your Knowledge Catalog asset name for the destination Cloud Storage bucket
REST
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",
}
}
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 Knowledge Catalog asset name for the source BigQuery dataset, or the dataset ID DESTINATION_ASSET_NAME: your Knowledge Catalog asset name for the destination Cloud Storage bucket REGION_NAME: region in which to run the job
Andere Google Cloudoder benutzerdefinierte Dataflow-Vorlagen planen
Mit Knowledge Catalog können Sie alle von Google Cloud-bereitgestellten Dataflow-Vorlagen oder Ihre benutzerdefinierte Dataflow-Vorlage in der Console planen und überwachen.
Zeitplan
Console
Rufen Sie in der Google Cloud Console die Seite Verarbeiten von Knowledge Catalog auf.
Klicken Sie auf Aufgabe erstellen.
Klicken Sie unter Dataflow-Pipeline erstellen auf Dataflow-Pipeline erstellen.
Wählen Sie einen Knowledge Catalog-Lake aus.
Geben Sie einen Namen für die Aufgabe an.
Wählen Sie eine Region für die Ausführung der Aufgabe aus.
Wählen Sie eine Dataflow-Vorlage aus.
Füllen Sie die erforderlichen Parameter aus.
Klicken Sie auf Weiter.
Überwachen
Console
Rufen Sie in der Google Cloud Console die Seite Verarbeiten von Knowledge Catalog auf.
Klicken Sie auf Dataflow-Pipelines.
Filtern Sie nach Lake oder Pipelinename.