Dataplex unterstützt die Planung der Ausführung von benutzerdefiniertem Code, entweder als einmalig, regelmäßig oder on demand. On-Demand ist in Vorabversion und ist nur über der API erstellen. Sie können Transformationen von Kundendaten mit Spark (Java) PySpark (auf Spark Version 3.2 beschränkt) oder Spark SQL. Dataplex führt den Code mit serverloser Spark-Verarbeitung und einem integrierten serverlosen Scheduler aus.
Terminologie
- Aufgabe
- Eine Dataplex-Aufgabe stellt die Arbeit dar, die Sie von Dataplex nach einem Zeitplan ausführen lassen möchten. Es enthält Ihren Code, Ihre Parameter und den Zeitplan.
- Job
Ein Job stellt eine einzelne Ausführung einer Dataplex-Aufgabe dar. Wenn eine Aufgabe beispielsweise täglich ausgeführt werden soll, erstellt Dataplex jeden Tag einen Job.
Bei Jobs, die am oder nach dem 10. Mai 2023 erstellt wurden, wird im Feld Trigger der Typ des Ausführungstriggers des Jobs angezeigt.
Im Folgenden sind die Triggertypen für die Jobausführung aufgeführt:
RUN_REQUEST: Gibt an, dass der Job aufgrund des Aufrufs der
RunTask
API ausgeführt wurde.TASK_CONFIG: Gibt an, dass der Job aufgrund des
TriggerSpec
Konfiguration der Aufgabe.
Planungsmodi
Dataplex unterstützt die folgenden Planungsmodi:
- Einmal ausführen
- Mit diesem Modus können Sie eine Aufgabe nur einmal ausführen. Sie können ihn ausführen, sofort oder zu einem festgelegten Zeitpunkt in der Zukunft. Wenn Sie die Task ausführen sofort beginnen, kann es bis zu zwei Minuten dauern, bis die Ausführung beginnt.
- Nach einem Zeitplan ausführen
- Mit diesem Modus können Sie die Aufgabe wiederholt ausführen. Unterstützte Wiederholungen sind „Täglich“, „Wöchentlich“, „Monatlich“ oder „Benutzerdefiniert“.
- On demand ausführen
Verwenden Sie diesen Modus, um eine zuvor erstellte Aufgabe bei Bedarf auszuführen. Ausführung nach Bedarf wird nur vom
RunTask
API. Wenn Ihr Job auf Abruf ausgeführt wird, verwendet Dataplex vorhandene Parameter, um einen Job zu erstellen. Sie können denExecutionSpec
angeben. und die Labels zum Ausführen des Jobs.
Hinweis
die Dataproc API aktivieren
Aktivieren Sie den privaten Google-Zugriff für Ihr Netzwerk und Subnetzwerk. Privaten Google-Zugriff im Netzwerk aktivieren die Sie mit Dataplex-Aufgaben verwenden. Wenn Sie beim Erstellen der Dataplex-Aufgabe kein Netzwerk oder Subnetzwerk angeben, verwendet Dataplex das Standard-Subnetzwerk. Sie müssen dann den privaten Google-Zugriff für das Standard-Subnetzwerk aktivieren.
Erstellen Sie ein Dienstkonto. A Dienstkonto ist erforderlich, um Dataplex-Aufgaben zu planen. 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 wird verarbeitet.
Berechtigung Dataproc-Arbeiterrolle für das Projekt, in dem Sie die Aufgabe ausführen.
Wenn die Aufgabe die dem Data Lake zugeordnete Dataproc Metastore-Instanz lesen oder aktualisieren muss, benötigt das Dienstkonto die Rolle Dataproc Metastore-Betrachter oder ‑Bearbeiter. Diese Rolle muss in dem Projekt gewährt werden, in dem Dataplex Lake eingerichtet ist.
Wenn es sich bei der Aufgabe um einen Spark SQL-Job handelt, müssen Sie dem Dienstkonto die Dataplex-Entwicklerrolle. Diese Rolle muss im Projekt gewährt werden, in dem der Dataplex-Lake eingerichtet ist.
Wenn es sich bei der Aufgabe um einen Spark SQL-Job handelt, benötigen Sie Cloud Storage-Administratorberechtigungen für den Bucket, in den die Ergebnisse geschrieben werden.
Zum Planen und Ausführen von Spark SQL- und benutzerdefinierten Spark-Aufgaben benötigen Sie folgende Berechtigungen: Dataplex-Metadatenleser (
roles/dataplex.metadataReader
) Dataplex-Betrachter (roles/dataplex.viewer
), und Dataproc Metastore-Metadatennutzer (roles/metastore.metadataUser
) IAM-Rollen für Ihr Dienstkonto.
Gewähren Sie dem Nutzer, der den Job sendet, die Rolle „Dienstkontonutzer“ (
roles/iam.serviceAccountUser
) für das Dienstkonto. Eine Anleitung finden Sie unter Zugriff auf Dienstkonten verwalten.Gewähren Sie dem Data Lake-Dienstkonto Berechtigungen zur Verwendung des Dienstkontos. Sie finden das Dataplex-Lake-Dienstkonto auf der Seite Details zum Data Lake in der Google Cloud Console.
Wenn sich das Projekt mit Ihrem Dataplex-Lake unterscheidet aus dem Projekt, in dem die Aufgabe ausgeführt werden soll, Dataplex Lake-Dienstkonto Dataproc-Bearbeiter in dem Sie die Aufgabe ausführen.
Erforderliche Codeartefakte (JARs, Python oder SQL-Skriptdateien) einfügen oder archivierte Dateien (
.jar
,.tar
,.tar.gz
,.tgz
,.zip
) in einem Cloud Storage-Pfad.Das Dienstkonto muss die erforderliche
storage.objects.get
-Berechtigung für den Cloud Storage-Bucket haben, in dem diese Codeartefakte gespeichert werden.
Spark-Aufgabe (Java oder Python) planen
Console
Rufen Sie in der Google Cloud Console die Dataplex-Seite auf:
Rufen Sie die Ansicht Process (Prozess) auf.
Klicken Sie auf Aufgabe erstellen.
Klicken Sie unter Benutzerdefinierte Spark-Aufgabe erstellen auf Aufgabe erstellen.
Wählen Sie einen Dataplex-Lake aus.
Geben Sie einen Aufgabennamen an.
Erstellen Sie eine ID für Ihre Aufgabe.
Wählen Sie im Abschnitt Task-Konfiguration unter Typ die Option Spark oder PySpark aus.
Geben Sie die entsprechenden Argumente ein.
Geben Sie im Feld Dienstkonto ein Nutzerdienstkonto ein, das von Ihrem benutzerdefinierten Spark-Task, die ausgeführt werden kann.
Klicken Sie auf Weiter.
Optional: Zeitplan festlegen: Wählen Sie Einmal ausführen oder Wiederholen aus. Füllen Sie die Felder Pflichtfelder.
Klicken Sie auf Weiter.
Optional: Ressourcen anpassen und Zusätzliche Einstellungen hinzufügen
Klicken Sie auf Erstellen.
gcloud
Sie können eine Spark-Aufgabe (Java / Python) mit der gcloud CLI planen. . In der folgenden Tabelle sind die erforderlichen und optionalen Parameter für verwenden:
Parameter | Beschreibung |
---|---|
--lake |
Die Lake-ID für die Lake-Ressource des Dataplex-Dienstes. |
--location |
Der Speicherort des Dataplex-Dienstes. |
--spark-main-class |
Die Hauptklasse der Fahrer. Die Datei jar , die
enthält, muss sich die Klasse im Standard-CLASSPATH befinden.
|
--spark-main-jar-file-uri |
Der Cloud Storage-URI der Datei jar , die den Inhalt
der Hauptklasse.
|
--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 abgelegt werden sollen. |
--batch-executors-count |
Optional: Die Gesamtzahl der Job-Executors. Der Standardwert liegt bei 2. |
--batch-max-executors-count |
Optional: Die maximale Anzahl von konfigurierbaren Executors. Standardeinstellung
Wert 1.000 ist. Wenn batch-max-executors-count größer als batch-executors-count ist, wird in Dataplex das Autoscaling aktiviert.
|
--container-image-java-jars |
Optional: Eine Liste der Java-JARS, die dem Klassenpfad hinzugefügt werden sollen. Zu den gültigen Eingaben gehören Cloud Storage-URIs zu Jar-Binärdateien. Beispiel: gs://bucket-name/my/path/to/file.jar .
|
--container-image-properties |
Optional: Attributschlüssel, die in einem prefix:property angegeben werden
Format.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. Von
Standardmäßig verwendet Dataplex das VPC-Netzwerk
im Projekt mit dem Namen Default . Sie dürfen nur eines der folgenden Formate verwenden: --vpc-network-name oder --vpc-sub-network-name .
|
--vpc-sub-network-name |
Optional: Das VPC-Subnetzwerk, in dem der Job ausgeführt wird.
Sie müssen nur eine der beiden Optionen --vpc-sub-network-name oder --vpc-network-name verwenden.
|
--trigger-type |
Triggertyp der vom Nutzer angegebenen Aufgabe. Mögliche Werte:ON_DEMAND : Die Aufgabe wird kurz nach der Aufgabe einmal ausgeführt.
Erstellung.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
koordiniert. Beispiel: „2017-01-15T01:30:00Z“ codiert 01:30 UTC auf
15. Januar 2017. Wenn dieser Wert nicht angegeben ist, wird die Aufgabe nach dem Einreichen ausgeführt, wenn der Triggertyp ON_DEMAND ist, oder gemäß dem angegebenen Zeitplan, wenn der Triggertyp RECURRING ist.
|
--trigger-disabled |
Optional: Verhindert die Ausführung der Aufgabe. Mit diesem Parameter werden die bereits laufenden Aufgaben nicht abgebrochen, sondern die RECURRING -Aufgaben werden vorübergehend deaktiviert.
|
--trigger-max-retires |
Optional: Die Anzahl der Wiederholungsversuche, bevor der Vorgang abgebrochen wird. Legen Sie den Wert auf „0“, 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-Paare. Sie können eine durch Kommas getrennte Liste von Schlüssel/Wert-Paaren als Ausführungsargumente übergeben. Um Positionsargumente zu übergeben, setzen Sie den Schlüssel auf
TASK_ARGS und legen Sie den Wert auf einen kommagetrennten String von
alle Positionsargumente enthält. Wenn Sie ein anderes Trennzeichen als ein Komma verwenden möchten, lesen Sie den Hilfeartikel Escaping.Falls key-value - und Positionsargumente übergeben werden
zusammen verwenden, 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 Joblaufzeitumgebung. Wenn keine Angabe erfolgt, wird ein Standardcontainer-Image verwendet. |
--kms-key |
Optional: Der für die Verschlüsselung zu verwendende Cloud KMS-Schlüssel 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
So erstellen Sie eine Aufgabe: APIs Explorer verwenden.
Spark SQL-Aufgabe planen
gcloud
Um eine Spark SQL-Aufgabe zu planen, führen Sie denselben gcloud CLI-Befehl wie in die Aufgabe Spark-Aufgabe planen (Java oder Python) 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 Inhalt des SQL-Scripts sein.
Entweder spark-sql-script oder
spark-sql-script-file ist erforderlich. |
--execution-args |
Für Spark SQL-Aufgaben sind die folgenden Argumente obligatorisch 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
Console
Rufen Sie in der Google Cloud Console die Dataplex-Seite auf:
Rufen Sie die Ansicht Prozess auf.
Auf dem Tab Aufgaben finden Sie eine Liste von Aufgaben, die nach Aufgabenvorlagen gefiltert sind. Typen.
Klicken Sie in der Spalte Name auf eine Aufgabe, die Sie aufrufen möchten.
Klicken Sie auf die Job-ID der Aufgabe, die Sie ansehen möchten.
Die Dataproc-Seite wird im Google Cloud Console, in der Sie die Monitoring- und Ausgabedetails ansehen können
gcloud
In der folgenden Tabelle sind die gcloud CLI-Befehle für das Monitoring aufgeführt für Ihre Aufgaben.
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 führt Jobs in Dataproc Serverless (Batches) aus. So rufen Sie die Ausführungslogs eines Dataplex-Jobs auf: diese Schritte:
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 mit der Job-ID aus, die Sie durch Ausführen des vorherigen Befehls erhalten haben:
gcloud beta dataproc batches wait --project=<project-name> --region=<location> <job-id>
REST
Für eine Aufgabe get
oder list
oder Job,
APIs Explorer verwenden.
Zeitplan verwalten
In der Google Cloud Console können Sie in Dataplex 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 |
---|---|
Zeitplan für Aufgaben 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.
- Testen Sie eine vordefinierte Vorlage, um Daten schrittweise von Dataplex Cloud Storage-Assets zu BigQuery zu verschieben.
- Weitere Informationen finden Sie unter Benachrichtigungen für Dataplex-Aufgaben einrichten.