Dataplex unterstützt die Planung der Ausführung von benutzerdefiniertem Code, entweder als einmalig, regelmäßig oder on demand. On-Demand ist in Vorschau 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 den Code mit serverloser Spark-Verarbeitung und einem integrierten serverlosen Planer.
Terminologie
- Aufgabe
- Eine Dataplex-Aufgabe stellt die gewünschte Arbeit dar Dataplex nach einem Zeitplan ausführen soll. Es enthält Ihren Code, Ihre Parameter und den Zeitplan.
- Job
Ein Job stellt eine einzelne Ausführung einer Dataplex-Aufgabe dar. Für Wenn z. B. eine Aufgabe für eine tägliche Ausführung geplant ist, jeden Tag einen Job erstellen.
Für Jobs, die am oder nach dem 10. Mai 2023 erstellt wurden, wird im Feld Trigger der Wert den Ausführungstrigger-Typ des Jobs.
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 verwenden.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 bei Bedarf 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.
Hinweise
die Dataproc API aktivieren
Privaten Google-Zugriff aktivieren für Ihr Netzwerk und Subnetzwerk. Privaten Google-Zugriff im Netzwerk aktivieren die Sie mit Dataplex-Aufgaben verwenden. Wenn Sie kein Netzwerk angeben oder ein Subnetzwerk beim Erstellen der Dataplex-Aufgabe Dataplex verwendet das Standard-Subnetzwerk und Sie müssen Folgendes aktivieren Privater Google-Zugriff für das Standard-Subnetzwerk.
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.
Dataproc-Worker-Rolle Berechtigung für das Projekt, in dem Sie die Aufgabe ausführen.
Wenn die Aufgabe Dataproc lesen oder aktualisieren muss mit dem Lake verknüpft ist, benötigt das Dienstkonto den Dataproc Metastore Viewer oder Bearbeiter haben. 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, in dem der Dataplex-Lake eingerichtet ist.
Wenn die Aufgabe ein Spark SQL-Job ist, benötigen Sie einen Cloud Storage-Administrator Berechtigungen 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 Dataplex-Lake-Dienstkonto Berechtigungen zur Verwendung des Dienstkonto. Sie finden den Dataplex-Lake-Dienst. auf der Seite Lake Details 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.Prüfen Sie, ob das Dienstkonto die erforderlichen
storage.objects.get
hat Berechtigung für den Cloud Storage-Bucket, in dem dieser Code gespeichert ist Artefakte.
Spark-Task (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 Namen für die Aufgabe an.
Erstellen Sie eine ID für Ihre Aufgabe.
Wählen Sie im Abschnitt Task configuration (Aufgabenkonfiguration) für Type (Typ) die Option Spark oder PySpark:
Geben Sie die relevanten 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 das Feld Pflichtfelder.
Klicken Sie auf Weiter.
Optional: Ressourcen anpassen und Weitere 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 Standort 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, in die extrahiert werden sollen
Arbeitsverzeichnis jedes Executors. Unterstützte Dateitypen:
.jar , .tar , .tar.gz
.tgz und .zip .
|
--spark-file-uris |
Optional: Cloud Storage-URIs von Dateien, die im Arbeitsverzeichnis jedes Executors. |
--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 beträgt. Wenn batch-max-executors-count größer als
batch-executors-count , dann aktiviert Dataplex
Autoscaling.
|
--container-image-java-jars |
Optional: Eine Liste der Java-JARS, die dem Klassenpfad hinzugefügt werden sollen. Gültige Eingabe
enthält 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 dürfen nur eine der folgenden Optionen verwenden: --vpc-sub-network-name
oder --vpc-network-name .
|
--trigger-type |
Triggertyp der benutzerdefinierten Aufgabe. Folgende Werte sind zulässig: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: Der Zeitpunkt 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 Task ausgeführt.
nach dem Senden, wenn der Triggertyp ON_DEMAND ist, oder
nach dem angegebenen Zeitplan, wenn der Triggertyp ist
RECURRING .
|
--trigger-disabled |
Optional: Verhindert die Ausführung der Aufgabe. Dieser Parameter muss
die bereits ausgeführten Aufgaben abbrechen, sondern den
RECURRING Aufgaben.
|
--trigger-max-retires |
Optional: Die Anzahl der Wiederholungsversuche, bevor der Vorgang abgebrochen wird. Wert festlegen auf null, damit eine fehlgeschlagene Aufgabe nie wiederholt wird. |
--trigger-schedule |
Cron-Zeitplan für Aufgaben regelmäßig auszuführen. |
--description |
Optional: Beschreibung der Aufgabe. |
--display-name |
Optional: Anzeigename der Aufgabe. |
--labels |
Optional: Liste der hinzuzufügenden KEY=VALUE -Labelpaare. |
--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ührungsargumenten. 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, verweisen Sie auf
bis zum Escaping.Falls key-value - und Positionsargumente übergeben werden
zusammen verwenden, wird TASK_ARGS als letztes Argument übergeben.
|
--execution-service-account |
Dienstkonto zum Ausführen einer Aufgabe. |
--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 nicht angegeben ist, wird ein Standard-Container-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-Task planen
gcloud
Führen Sie zum Planen einer Spark SQL-Aufgabe 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 Pfad zum Inhalt des SQL-Skripts.
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:--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
So erstellen Sie eine Aufgabe: APIs Explorer verwenden.
Aufgabe überwachen
Console
Rufen Sie in der Google Cloud Console die Dataplex-Seite auf:
Rufen Sie die Ansicht Process (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 aus (Batches). So rufen Sie die Ausführungslogs eines Dataplex-Jobs auf: diese Schritte:
Rufen Sie die Job-ID von 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 von dem vorherigen Befehl ausführen:
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 in Dataplex können Sie die Aufgaben planen, Aufgaben löschen oder einen laufenden Job abbrechen. In der folgenden Tabelle listet die gcloud CLI-Befehle für diese Aktionen auf.
Aktion | gcloud CLI-Befehl |
---|---|
Aufgabenzeitplan 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
- Siehe Dataproc-Vorlagen.
- Testen Sie eine vordefinierte Vorlage, um Daten schrittweise aus Dataplex Cloud Storage-Assets zu BigQuery zu verschieben.
- Weitere Informationen finden Sie unter Warnungen und Benachrichtigungen für Dataplex-Aufgaben einrichten.