Dataplex Universal Catalog unterstützt die Planung der Ausführung von benutzerdefiniertem Code, entweder als einmaliger Lauf, nach einem regelmäßigen Zeitplan oder auf Anfrage. On-Demand ist in der Vorschau verfügbar und nur über die API. Sie können Transformationen von Kundendaten mit Spark (Java), PySpark (beschränkt auf Spark-Version 3.2) oder Spark SQL planen. In Dataplex Universal Catalog wird der Code mit serverloser Spark-Verarbeitung und einem integrierten serverlosen Scheduler ausgeführt.
Terminologie
- Aufgabe
- Eine Dataplex Universal Catalog-Aufgabe stellt die Arbeit dar, die Dataplex Universal Catalog nach einem Zeitplan ausführen soll. Sie kapselt Ihren Code, Ihre Parameter und den Zeitplan.
- Job
Ein Job stellt einen einzelnen Lauf einer Dataplex Universal Catalog-Aufgabe dar. Wenn eine Aufgabe beispielsweise für die tägliche Ausführung geplant ist, wird in Dataplex Universal Catalog jeden Tag ein Job erstellt.
Bei Jobs, die am oder nach dem 10. Mai 2023 erstellt wurden, wird im Feld Trigger der Auslösetyp für die Jobausführung angezeigt.
Es gibt die folgenden Trigger-Typen für die Jobausführung:
RUN_REQUEST: Gibt an, dass der Job aufgrund des Aufrufs der
RunTask
API ausgeführt wurde.TASK_CONFIG: Gibt an, dass der Job aufgrund der
TriggerSpec
-Konfiguration der Aufgabe ausgeführt wurde.
Planungsmodi
Dataplex Universal Catalog unterstützt die folgenden Planungsmodi:
- Einmal ausführen
- Verwenden Sie diesen Modus, um Ihre Aufgabe nur einmal auszuführen. Sie können die Ausführung sofort oder zu einem festgelegten Zeitpunkt in der Zukunft starten. Wenn Sie die Aufgabe sofort ausführen, kann es trotzdem bis zu zwei Minuten dauern, bis die Ausführung beginnt.
- Nach einem Zeitplan ausführen
- In diesem Modus wird die Aufgabe in regelmäßigen Abständen ausgeführt. Unterstützte Wiederholungen sind „Täglich“, „Wöchentlich“, „Monatlich“ oder „Benutzerdefiniert“.
- On demand ausführen
In diesem Modus können Sie eine zuvor erstellte Aufgabe bei Bedarf ausführen. Der On-Demand-Modus wird nur von der
RunTask
API unterstützt. Wenn Ihr Job auf Anfrage ausgeführt wird, verwendet Dataplex Universal Catalog vorhandene Parameter, um einen Job zu erstellen. Sie können dieExecutionSpec
-Argumente und die Labels angeben, um den Job auszuführen.
Hinweise
die Dataproc API aktivieren
Aktivieren Sie den privaten Google-Zugriff für Ihr Netzwerk und Subnetzwerk. Aktivieren Sie den privaten Google-Zugriff für das Netzwerk, das Sie für Dataplex Universal Catalog-Aufgaben verwenden. Wenn Sie beim Erstellen der Dataplex Universal Catalog-Aufgabe kein Netzwerk oder Subnetzwerk angeben, verwendet Dataplex Universal Catalog das Standardsubnetzwerk. Sie müssen den privater Google-Zugriff für das Standardsubnetzwerk aktivieren.
Erstellen Sie ein Dienstkonto. Zum Planen von Dataplex Universal Catalog-Aufgaben ist ein Dienstkonto erforderlich. Das Dienstkonto muss zu dem Projekt gehören, in dem Sie die Aufgaben ausführen. Das Dienstkonto muss die folgenden Berechtigungen haben:
Zugriff auf die BigQuery- und Cloud Storage-Daten, die verarbeitet werden.
Berechtigung für die Dataproc Worker-Rolle für das Projekt, in dem Sie die Aufgabe ausführen.
Wenn für die Aufgabe die mit dem Lake verknüpfte Dataproc Metastore-Instanz gelesen oder aktualisiert werden muss, benötigt das Dienstkonto die Rolle Dataproc Metastore-Betrachter oder -Bearbeiter. Diese Rolle muss in dem Projekt gewährt werden, in dem der Dataplex Universal Catalog-Lake eingerichtet ist.
Wenn es sich bei der Aufgabe um einen Spark SQL-Job handelt, müssen Sie dem Dienstkonto die Rolle „Dataplex Universal Catalog Developer“ zuweisen. Diese Rolle muss in dem Projekt gewährt werden, in dem der Dataplex Universal Catalog-Lake eingerichtet ist.
Wenn es sich bei der Aufgabe um einen Spark SQL-Job handelt, benötigen Sie Administratorberechtigungen für Cloud Storage für den Bucket, in den die Ergebnisse geschrieben werden.
Damit Sie Spark SQL- und benutzerdefinierte Spark-Aufgaben planen und ausführen können, müssen Ihrem Dienstkonto die IAM-Rollen „Dataplex Universal Catalog Metadata Reader“ (
roles/dataplex.metadataReader
), „Dataplex Universal Catalog Viewer“ (roles/dataplex.viewer
) und „Dataproc Metastore Metadata User“ (roles/metastore.metadataUser
) zugewiesen sein.
Weisen Sie dem Nutzer, der den Job einreicht, die Rolle „Dienstkontonutzer“ (
roles/iam.serviceAccountUser
) für das Dienstkonto zu. Eine Anleitung finden Sie unter Zugriff auf Dienstkonten verwalten.Gewähren Sie dem Dienstkonto des Dataplex Universal Catalog-Lake Berechtigungen zur Verwendung des Dienstkontos. Das Dienstkonto des Dataplex Universal Catalog-Lake finden Sie in der Google Cloud Console auf der Seite Lake-Details.
Wenn sich das Projekt mit Ihrem Dataplex Universal Catalog-Lake von dem Projekt unterscheidet, in dem die Aufgabe ausgeführt werden soll, weisen Sie dem Dienstkonto des Dataplex Universal Catalog-Lake die Dataproc Editor-Rolle für das Projekt zu, in dem Sie die Aufgabe ausführen.
Platzieren Sie die erforderlichen Code-Artefakte (JAR-, Python- oder SQL-Scriptdateien) oder archivierten Dateien (
.jar
,.tar
,.tar.gz
,.tgz
,.zip
) in einem Cloud Storage-Pfad.Achten Sie darauf, dass das Dienstkonto die erforderliche
storage.objects.get
-Berechtigung für den Cloud Storage-Bucket hat, in dem diese Code-Artefakte gespeichert sind.
Spark-Aufgabe (Java oder Python) planen
Konsole
Rufen Sie in der Google Cloud Console die Dataplex Universal Catalog-Seite Verarbeiten auf.
Klicken Sie auf Aufgabe erstellen.
Klicken Sie unter Benutzerdefinierte Spark-Aufgabe erstellen auf Aufgabe erstellen.
Wählen Sie einen Dataplex Universal Catalog-Lake aus.
Geben Sie einen Namen für die Aufgabe an.
Erstellen Sie eine ID für Ihre Aufgabe.
Wählen Sie im Abschnitt Task-Konfiguration für Typ die Option Spark oder PySpark aus.
Geben Sie die entsprechenden Argumente ein.
Geben Sie im Feld Dienstkonto ein Nutzerdienstkonto ein, mit dem Ihr benutzerdefinierter Spark-Task ausgeführt werden kann.
Klicken Sie auf Weiter.
Optional: Zeitplan festlegen: Wählen Sie Einmal ausführen oder Wiederholen aus. Füllen Sie die Pflichtfelder aus.
Klicken Sie auf Weiter.
Optional: Ressourcen anpassen und Zusätzliche Einstellungen hinzufügen.
Klicken Sie auf Erstellen.
gcloud
Sie können einen Spark-Task (Java / Python) mit dem gcloud CLI-Befehl planen. In der folgenden Tabelle sind die erforderlichen und optionalen Parameter aufgeführt, die Sie verwenden können:
Parameter | Beschreibung |
---|---|
--lake |
Die Lake-ID für die Lake-Ressource des Dataplex Universal Catalog-Dienstes. |
--location |
Der Standort des Dataplex Universal Catalog-Dienstes. |
--spark-main-class |
Die Hauptklasse des Treibers. Die jar -Datei, die die Klasse enthält, muss sich im Standard-CLASSPATH befinden.
|
--spark-main-jar-file-uri |
Der Cloud Storage-URI der jar -Datei, die die Hauptklasse enthält.
|
--spark-archive-uris |
Optional: Cloud Storage-URIs von Archiven, die in das Arbeitsverzeichnis jedes Executors extrahiert werden sollen. Unterstützte Dateitypen:
.jar , .tar , .tar.gz ,
.tgz und .zip .
|
--spark-file-uris |
Optional: Cloud Storage-URIs von Dateien, die im Arbeitsverzeichnis jedes Executors platziert werden sollen. |
--batch-executors-count |
Optional: Die Gesamtzahl der Job-Executors. Der Standardwert liegt bei 2. |
--batch-max-executors-count |
Optional: Die maximale Anzahl an konfigurierbaren Executors. Der Standardwert ist 1.000. Wenn batch-max-executors-count größer als batch-executors-count ist, wird in Dataplex Universal Catalog die automatische Skalierung aktiviert.
|
--container-image-java-jars |
Optional: Eine Liste von Java-JAR-Dateien, die dem Klassenpfad hinzugefügt werden sollen. Gültige Eingaben sind Cloud Storage-URIs zu JAR-Binärdateien. Beispiel: gs://bucket-name/my/path/to/file.jar .
|
--container-image-properties |
Optional: Property-Schlüssel im Format prefix:property .Beispiel: core:hadoop.tmp.dir .Weitere Informationen finden Sie unter Clusterattribute. |
--vpc-network-tags |
Optional: Eine Liste der Netzwerk-Tags, die auf den Job angewendet werden sollen. |
--vpc-network-name |
Optional: Das Virtual Private Cloud-Netzwerk, in dem der Job ausgeführt wird. Standardmäßig verwendet Dataplex Universal Catalog das VPC-Netzwerk mit dem Namen Default im Projekt. Sie müssen entweder --vpc-network-name oder --vpc-sub-network-name verwenden.
|
--vpc-sub-network-name |
Optional: Das VPC-Subnetzwerk, in dem der Job ausgeführt wird.
Sie müssen entweder --vpc-sub-network-name oder --vpc-network-name verwenden.
|
--trigger-type |
Triggertyp der vom Nutzer angegebenen Aufgabe. Folgende Werte sind zulässig:ON_DEMAND : Der Task wird kurz nach der Erstellung einmal ausgeführt.RECURRING : Die Aufgabe wird regelmäßig nach einem Zeitplan ausgeführt.
|
--trigger-start-time |
Optional: Die Uhrzeit der ersten Ausführung der Aufgabe. Das Format ist `{year}-{month}-{day}T{hour}:{min}:{sec}Z`, wobei die Zeitzone UTC ist. Beispiel: „2017-01-15T01:30:00Z“ steht für 01:30 UTC am 15. Januar 2017. Wenn dieser Wert nicht angegeben ist, wird die Aufgabe nach dem Einreichen ausgeführt, wenn der Triggertyp ON_DEMAND ist, oder nach dem angegebenen Zeitplan, wenn der Triggertyp RECURRING ist.
|
--trigger-disabled |
Optional: Verhindert die Ausführung der Aufgabe. Mit diesem Parameter werden die bereits ausgeführten Aufgaben nicht abgebrochen, sondern die RECURRING -Aufgaben werden vorübergehend deaktiviert.
|
--trigger-max-retires |
Optional: Die Anzahl der Wiederholungsversuche, bevor abgebrochen wird. Setzen Sie den Wert auf null, damit eine fehlgeschlagene Aufgabe nie wiederholt wird. |
--trigger-schedule |
Cron-Zeitplan für die regelmäßige Ausführung von Aufgaben. |
--description |
Optional: Beschreibung der Aufgabe. |
--display-name |
Optional: Anzeigename der Aufgabe. |
--labels |
Optional: Liste der hinzuzufügenden Labelpaare KEY=VALUE . |
--execution-args |
Optional: Die Argumente, die an die Aufgabe übergeben werden sollen. Argumente können eine Mischung aus Schlüssel/Wert-Paaren sein. Sie können eine durch Kommas getrennte Liste von Schlüssel/Wert-Paaren als Ausführungsargumente übergeben. Wenn Sie Positionsargumente übergeben möchten, legen Sie den Schlüssel auf TASK_ARGS und den Wert auf einen kommagetrennten String mit allen Positionsargumenten fest. Wenn Sie ein anderes Trennzeichen als ein Komma verwenden möchten, lesen Sie den Abschnitt Escaping.Wenn key-value und Positionsargumente zusammen übergeben werden, wird TASK_ARGS als letztes Argument übergeben.
|
--execution-service-account |
Dienstkonto, das zum Ausführen einer Aufgabe verwendet werden soll. |
--max-job-execution-lifetime |
Optional: Die maximale Dauer, bevor die Jobausführung abläuft. |
--container-image |
Optional: Benutzerdefiniertes Container-Image für die Job-Laufzeitumgebung. Wenn nichts angegeben ist, wird ein Standard-Container-Image verwendet. |
--kms-key |
Optional: Der Cloud KMS-Schlüssel, der für die Verschlüsselung verwendet werden soll, im Format:projects/{project_number}/locations/{location_id}/keyRings/{key-ring-name}/cryptoKeys/{key-name}
|
Java-Beispiel:
glcoud dataplex tasks create --project=<project-name> --location=<location> --lake=<lake-id> --trigger-type=ON_DEMAND –spark-main-jar-file-uri=<gcs location to java file> --execution-service-account=<service-account-email> --trigger-start-time=<timestamp after which job starts ex. 2099-01-01T00:00:00Z> --labels=key1=value1,key2=value3,key3=value3 --execution-args=arg1=value1,arg2=value3,arg3=value3 <task-id>
PySpark-Beispiel:
gcloud dataplex tasks create --project=<project-name> --location=<location> --lake=<lake-id> --trigger-type=RECURRING --trigger-schedule=<Cron schedule https://en.wikipedia.org/wiki/Cron> --spark-python-script-file=<gcs location to python script> --execution-service-account=<service-account-email> --execution-args=^::^arg1=value1::arg2=value2::TASK_ARGS="pos-arg1, pos-arg2" <task-id>
REST
Verwenden Sie den APIs Explorer, um eine Aufgabe zu erstellen.
Spark SQL-Aufgabe planen
gcloud
Wenn Sie einen Spark SQL-Task planen möchten, führen Sie denselben gcloud CLI-Befehl wie unter Spark-Task (Java oder Python) planen aus, jedoch mit den folgenden zusätzlichen Parametern:
Parameter | Beschreibung |
---|---|
--spark-sql-script |
Der SQL-Abfragetext. Entweder spark-sql-script oder spark-sql-script-file ist erforderlich. |
--spark-sql-script-file |
Ein Verweis auf eine Abfragedatei. Dieser Wert kann der Cloud Storage-URI der Abfragedatei oder der Pfad zum SQL-Skriptinhalt sein.
Entweder spark-sql-script oder spark-sql-script-file ist erforderlich. |
--execution-args |
Für Spark SQL-Aufgaben sind die folgenden Argumente erforderlich und müssen als Positionsargumente übergeben werden:--output_location, <GCS uri of the output directory> --output_format, <output file format> .Unterstützte Formate sind CSV-Datei, JSON-Datei, Parquet und ORC. |
gcloud dataplex tasks create --project=<project-name> --location=<location> --lake=<lake-id> --execution-service-account=<service-account-email> --trigger-type=ON_DEMAND --spark-sql-script=<sql-script> --execution-args=^::^TASK_ARGS="--output_location, <gcs folder location>, --output_format, json" <sql-task-id>
REST
Verwenden Sie den APIs Explorer, um eine Aufgabe zu erstellen.
Aufgabe überwachen
Konsole
Rufen Sie in der Google Cloud Console die Dataplex Universal Catalog-Seite Verarbeiten auf.
Auf dem Tab Aufgaben finden Sie eine Liste von Aufgaben, die nach Typ der Aufgabenvorlage gefiltert sind.
Klicken Sie in der Spalte Name auf eine beliebige Aufgabe, die Sie aufrufen möchten.
Klicken Sie auf die Job-ID der Aufgabe, die Sie aufrufen möchten.
Die Dataproc-Seite wird in derGoogle Cloud Console geöffnet. Dort können Sie die Monitoring- und Ausgabedetails ansehen.
gcloud
In der folgenden Tabelle sind die gcloud CLI-Befehle zum Überwachen Ihrer Aufgaben aufgeführt.
Aktion | gcloud CLI-Befehl |
---|---|
Aufgaben auflisten | gcloud dataplex tasks list --project=<project-name> --location=<location> --lake=<lake-id> |
Aufgabendetails ansehen | gcloud dataplex tasks describe --project=<project-name> --location=<location> --lake=<lake-id> <task-id> |
Jobs einer Aufgabe auflisten | gcloud dataplex tasks jobs list --project=<project-name> --location=<location> --lake=<lake-id> --task=<task-id> |
Jobdetails ansehen | gcloud dataplex tasks jobs describe --project=<project-name> --location=<location> --lake=<lake-id> --task=<task-id> <job-id> |
Dataplex Universal Catalog führt Jobs in Dataproc Serverless (Batches) aus. So rufen Sie die Ausführungsprotokolle eines Dataplex Universal Catalog-Jobs auf:
Rufen Sie die Job-ID für Dataproc Serverless (Batches) ab. Führen Sie folgenden Befehl aus:
gcloud dataplex tasks jobs describe --project=<project-name> --location=<location> --lake=<lake-id> --task=<task-id> <job-id>
Sehen Sie sich die Protokolle an. Führen Sie den folgenden Befehl aus und verwenden Sie dabei die Job-ID, die Sie durch Ausführen des vorherigen Befehls erhalten haben:
gcloud beta dataproc batches wait --project=<project-name> --region=<location> <job-id>
REST
Wenn Sie eine Aufgabe oder einen Job get
oder list
möchten, verwenden Sie den APIs Explorer.
Zeitplan verwalten
In der Google Cloud Console können Sie im Dataplex Universal Catalog den Zeitplan einer Aufgabe bearbeiten, eine Aufgabe löschen oder einen laufenden Job abbrechen. In der folgenden Tabelle sind die gcloud CLI-Befehle für diese Aktionen aufgeführt.
Aktion | gcloud CLI-Befehl |
---|---|
Aufgabentermin bearbeiten | gcloud dataplex tasks update --project=<project-name> --location=<location> --lake=<lake-id> --trigger-schedule=<updated-schedule> <task-id> |
Aufgaben löschen | gcloud dataplex tasks delete --project=<project-name> --location=<location> --lake=<lake-id> <task-id> |
Job abbrechen | gcloud dataplex tasks jobs cancel --project=<project-name> --location=<location> --lake=<lake-id> --task=<task-id> <job-id> |
Nächste Schritte
- Weitere Informationen finden Sie unter Dataproc-Vorlagen.
- Mit einer vorgefertigten Vorlage können Sie Daten inkrementell aus Dataplex Universal Catalog Cloud Storage-Assets nach BigQuery verschieben.
- Weitere Informationen finden Sie unter Benachrichtigungen für Dataplex Universal Catalog-Aufgaben einrichten.