SQL-Skripts und Notebooks planen

Durch das Planen von SQL-Skripts und Notebooks können Sie die Assets operationalisieren, die in der Workbench zur Datenexploration (Explore) erstellt wurden.

Durch die Planung eines SQL-Skripts oder Notebooks wird eine Dataplex-Aufgabe erstellt, die zu einer vorab festgelegten Zeit, einmal oder regelmäßig ausgeführt wird. Bei jeder Ausführung wird ein Job erstellt, der die Metadaten der Ausführung erfasst, z. B. Start- und Endzeit der Ausführung, den Ausführungsstatus, Logs und generierte Ausgaben.

Wenn eine Ausführung für ein geplantes SQL-Skript oder ein Notebook ausgelöst wird, wird die aktuelle Version des Notebooks oder SQL-Skripts ausgeführt. Wenn Sie also ein Notebook oder ein SQL-Skript planen und später seinen Inhalt aktualisieren, spiegelt sich die Aktualisierung auch in den geplanten Ausführungen des Notebooks oder SQL-Skripts wider.

Kosten

Geplante SQL-Skripts und geplante Notebooks lösen die Jobausführung mit Dataproc Serverless aus. Die Nutzungen werden nach dem Dataproc-Preismodell berechnet und unter Dataproc und nicht unter Dataplex aufgeführt.

Hinweise

Prüfen und erfüllen Sie die Voraussetzungen, die in den folgenden Dokumenten beschrieben sind:

Wenn ein SQL-Skript oder ein Notebook-Zeitplan die BigQuery API verwendet, müssen Sie dem Dienstkonto die Rolle „Service Usage-Nutzer“ (roles/serviceusage.serviceUsageConsumer) gewähren.

Bekannte Einschränkungen

  • Beim Planen eines Notebooks mit der Google Cloud Console sind zusätzliche Python-Pakete, die in der ausgewählten Umgebung konfiguriert sind, zur Laufzeit für das geplante Notebook nicht verfügbar. Damit sie zur Laufzeit verfügbar sind, müssen Sie einen Notebook-Zeitplan erstellen, der auf ein Container-Image mit den erforderlichen zusätzlichen Paketen verweist. Weitere Informationen finden Sie unter Notebooks mit benutzerdefinierten Paketen planen.

  • Die Verwendung der Google Cloud Console zum Verweisen auf benutzerdefinierte Container-Images beim Planen von Notebooks wird nicht unterstützt. Verwenden Sie stattdessen die gcloud CLI.

  • Sie können einen Zeitplan nach dem Erstellen nicht mehr bearbeiten. Wenn Sie die Zeitplanparameter aktualisieren möchten, müssen Sie den Zeitplan mit den neuen Parametern neu erstellen.

  • Sie können keine bestimmte Version eines SQL-Skripts oder Notebooks zur Verwendung in einem Zeitplan definieren. Wenn der Zeitplan ausgelöst wird, wird die aktuelle Version des SQL-Skripts oder Notebooks verwendet.

  • Beim Planen von SQL-Skripts und Notebooks mit der Google Cloud Console wird das Standard-Subnetzwerk verwendet. Verwenden Sie die gcloud CLI, um ein anderes Netzwerk oder Subnetzwerk anzugeben.

Lesen Sie außerdem die Informationen zu bekannten Einschränkungen beim explorativen Analysetool.

Zeitpläne für SQL-Skripts erstellen und verwalten

Laufzeitkonfiguration für geplante SQL-Skripts

Wenn ein SQL-Script geplant wird, wird es als Dataplex-Aufgabe ausgeführt. Wenn ein Zeitplan mit der Google Cloud Console erstellt wird, werden die entsprechenden Aufgabenlaufzeitparameter für geplante SQL-Skripts aus der Umgebung dieses SQL-Skripts basierend auf der folgenden Zuordnung übernommen:

Parameter für Umgebungskonfiguration Konfigurationsparameter für geplante SQL-Skriptaufgabe
Größe des primären Laufwerks Container-Image / Properties:
   spark.dataproc.driver.disk.size
   spark.dataproc.executor.disk.size
Anzahl von Knoten Batch-/Executors-Anzahl
Höchstanzahl von Knoten Batch-/Maximale Anzahl der Executors
Image-Version Nicht übernommen
JAR-Dateien Container-Image / Java-JARS
Python-Pakete Nicht übernommen
Zusätzliche Attribute Container-Image/-Properties

SQL-Script planen

Console

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

    Dataplex-Explore aufrufen

  2. Wählen Sie ein SQL-Skript aus, das Sie planen möchten. Wählen Sie dazu ein einzelnes SQL-Skript aus der Liste Spark SQL-Skripts aus oder öffnen Sie ein SQL-Skript im Spark SQL-Editor.

  3. Klicken Sie im Menü Zeitplan auf Zeitplan erstellen.

  4. Geben Sie im Feld Name des Zeitplans einen Namen für die geplante Instanz ein.

  5. Wählen Sie im Abschnitt Zeitplanoptionen aus, ob das SQL-Skript
    nur einmal oder regelmäßig ausgeführt werden soll:

    1. Wenn Sie Einmal ausführen auswählen, geben Sie mithilfe der Optionen im Startmenü an, ob das SQL-Skript sofort oder zu einem geplanten Zeitpunkt ausgeführt werden soll. Geben Sie für eine geplante Ausführung das Startdatum und die Ausführungszeit an.

    2. Wenn Sie Wiederholen auswählen, geben Sie an, ob Sie das SQL-Skript täglich, wöchentlich, monatlich oder nach einem benutzerdefinierten Zeitplan ausführen möchten, der mit einem Cron-Ausdruck angegeben wird. Geben Sie außerdem das Startdatum und die Laufzeit für die erste geplante Ausführung an.

  6. Führen Sie im Bereich Ziel für Ergebnisse die folgenden Schritte aus:

    1. Klicken Sie im Feld Name des Ausgabeordners auf Durchsuchen und wählen Sie einen Ordner in einem Cloud Storage-Bucket aus, in dem die Skriptausgaben gespeichert werden sollen.

    2. Klicken Sie auf Auswählen.

    3. Wählen Sie das Script-Ausgabeformat aus. Die unterstützten Formate sind CSV, JSON, ORC und Parquet.

  7. Wählen Sie im Bereich Anmeldedaten für das geplante Skript ein Dienstkonto aus dem Menü Nutzerkonto aus.

  8. Klicken Sie auf Schedule (Planen).

gcloud

Informationen zum Planen von SQL-Skripts mit der gcloud CLI finden Sie unter SparkSQL-Aufgabe planen.

REST

Erstellen Sie eine Aufgabe mit dem API Explorer.

Zeitpläne für SQL-Scripts verwalten

Console

Liste aller SQL-Skriptzeitpläne öffnen

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

  2. Klicken Sie auf den Tab Geplante Abfragen, um die Liste der SQL-Skriptzeitpläne aufzurufen.

Liste aller Zeitpläne für ein bestimmtes SQL-Script öffnen

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

  2. Wählen Sie das erforderliche SQL-Script aus.

  3. Klicken Sie im Menü Zeitplan auf Zeitpläne ansehen.

    Der Tab Geplante Abfragen wird mit einer Liste von SQL-Skriptzeitplänen geöffnet, die nach dem ausgewählten SQL-Skript gefiltert sind.

Details eines SQL-Skriptzeitplans ansehen

  1. Wechseln Sie zum Tab Geplante Abfragen und wählen Sie den erforderlichen SQL-Skriptzeitplan aus.

  2. Klicken Sie auf den Tab Details, um die Details des Zeitplans des SQL-Skripts und eine Vorschau des Inhalts des geplanten SQL-Skripts anzusehen.

SQL-Skriptzeitplan aktivieren und deaktivieren

  1. Wechseln Sie zum Tab Geplante Abfragen und wählen Sie den erforderlichen SQL-Skriptzeitplan aus.

  2. Klicken Sie auf Deaktivieren, um einen aktiven SQL-Skriptzeitplan zu deaktivieren.

  3. Klicken Sie auf Aktivieren, um einen inaktiven SQL-Skriptzeitplan zu aktivieren.

Vorhandenen SQL-Skriptzeitplan löschen

  1. Wechseln Sie zum Tab Geplante Abfragen und wählen Sie den erforderlichen SQL-Skriptzeitplan aus.

  2. Klicken Sie auf Löschen, um einen vorhandenen SQL-Skriptzeitplan endgültig zu löschen.

Logs ansehen und SQL-Skriptzeitplan verwalten

  1. Wechseln Sie zum Tab Geplante Abfragen und wählen Sie den erforderlichen SQL-Skriptzeitplan aus.

  2. Klicken Sie auf den Tab Jobs und dann auf die Job-ID der geplanten SQL-Skriptausführung, die Sie ansehen möchten.

  3. Klicken Sie auf Logs ansehen, um die Logs für das ausgewählte geplante SQL-Skript aufzurufen, das in Cloud Logging ausgeführt wird.

  4. Klicken Sie auf die Dataproc-Batch-ID, um die Dataproc-Seite in der Google Cloud Console zu öffnen. Rufen Sie die Details der entsprechenden Dataproc Serverless-Sitzung auf.

  5. Klicken Sie neben dem Label Ausgabe auf In Cloud Storage verwalten, um die Seite „Cloud Storage“ in der Google Cloud Console zu öffnen. Rufen Sie die Details des entsprechenden Cloud Storage-Buckets auf, der die Ausgabe der SQL-Skriptausführung enthält.

gcloud

Informationen zum Überwachen geplanter SQL-Skripts mit der gcloud CLI finden Sie unter Tasks überwachen auf dem Tab gcloud.

Informationen zum Verwalten geplanter SQL-Skripts mit der gcloud CLI finden Sie unter Zeitplan verwalten auf dem Tab gcloud.

REST

Informationen zum Überwachen geplanter SQL-Skripts mit REST finden Sie im Artikel Tasks überwachen auf dem Tab REST.

Informationen zum Verwalten geplanter SQL-Skripts mit REST finden Sie unter Zeitplan verwalten auf dem Tab REST.

Ausgabe eines geplanten SQL-Skripts

Die Ausgaben aus jeder Ausführung eines geplanten SQL-Skripts werden an dem von Ihnen angegebenen Speicherort für den Cloud Storage-Ordner in der folgenden Struktur gespeichert:

CLOUD_STORAGE_FOLDER_LOCATION/projects/PROJECT_ID/locations/LOCATION_ID/lakes/LAKE_ID/tasks/TASK_ID/JOB_ID/QUERY_NUMBER

Zeitpläne für Notebooks erstellen und verwalten

Laufzeitkonfiguration für geplante Notebooks

Wenn ein Notebook geplant ist, wird es als Dataplex-Aufgabe ausgeführt. Wenn ein Zeitplan mit der Google Cloud Console erstellt wird, werden die entsprechenden Aufgabenlaufzeitparameter für geplante Notebooks anhand der folgenden Zuordnung aus der Umgebung dieses Notebooks übernommen:

Parameter für Umgebungskonfiguration Konfigurationsparameter für geplante Notebook-Aufgabe
Größe des primären Laufwerks Container-Image / Properties:
   spark.dataproc.driver.disk.size
   spark.dataproc.executor.disk.size
Anzahl von Knoten Batch-/Executors-Anzahl
Höchstanzahl von Knoten Batch-/Maximale Anzahl der Executors
Image-Version Nicht übernommen
JAR-Dateien Container-Image / Java-JARS
Python-Pakete Nicht übernommen
Zusätzliche Attribute Container-Image/-Properties

Notebooks mit benutzerdefinierten Paketen planen

Für interaktive Notebooks können Sie beim Konfigurieren einer Umgebung mit Dataplex benutzerdefinierte Python-Pakete angeben, die in Nutzersitzungen für die Umgebung installiert werden sollen. Wenn ein solches Notebook geplant ist, sind die in seiner Umgebung konfigurierten benutzerdefinierten Python-Pakete zur Laufzeit für das geplante Notebook nicht verfügbar und die Standardlaufzeitumgebung enthält nur die Komponenten der Dataproc Serverless Spark-Laufzeitversion 1.0. Damit benutzerdefinierte Python-Pakete zur Laufzeit für geplante Notebooks verfügbar sind, müssen Sie ein benutzerdefiniertes Container-Image mit den erforderlichen benutzerdefinierten Paketen bereitstellen.

Das Angeben eines benutzerdefinierten Container-Images beim Planen eines Notebooks über die Google Cloud Console wird nicht unterstützt. Verwenden Sie stattdessen die gcloud CLI. Weitere Informationen finden Sie unter Notebook planen.

Wenn Sie ein Notebook mit einer Umgebung planen, in der benutzerdefinierte Pakete konfiguriert sind, wird die folgende Warnung angezeigt:

Selected environment  has additional Python packages configured.
These packages will not be available in the default runtime for the scheduled notebook
when scheduling in the Console. To make the required additional Python packages
available in the runtime, please create Notebook Schedule using gcloud command
instead, referencing a container image with required additional packages.

Benutzerdefiniertes Container-Image für geplante Notebooks erstellen

Informationen zum Erstellen eines Container-Images für geplante Notebooks und zum Installieren der erforderlichen benutzerdefinierten Python-Pakete im Dockerfile des Container-Images finden Sie unter Benutzerdefiniertes Container-Image für Dataproc Serverless for Spark erstellen.

Prüfen Sie, ob Sie die folgenden Conda-Pakete im Container-Image installiert haben:

  • gcsfs
  • google-cloud-bigquery
  • google-cloud-storage
  • google-auth
  • ipykernel
  • papermill

Öffnen Sie das Container-Image-Dockerfile und führen Sie die folgenden Schritte aus, um die gcloud-Komponenten in einem Container-Image zu installieren:

  1. Fügen Sie das Paket google-cloud-sdk der Liste der zu installierenden Conda-Pakete hinzu.

  2. Fügen Sie nach dem Installationsschritt der Conda-Pakete die folgenden Zeilen hinzu:

    # (Optional) Installing gcloud components
    RUN gcloud components install alpha beta bq gsutil
    

Notebook planen

Console

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

    Dataplex-Explore aufrufen

  2. Wählen Sie ein Notebook aus, das Sie planen möchten, indem Sie entweder ein einzelnes Notebook in der Ansicht Notebooks auswählen oder ein Notebook auf der Detailseite des Notebooks öffnen.

  3. Klicken Sie im Menü Zeitplan auf Zeitplan erstellen.

  4. Geben Sie im Feld Name des Zeitplans einen Namen für die geplante Instanz ein.

  5. Wählen Sie im Abschnitt Zeitplanoptionen aus, ob das Notebook nur einmal oder regelmäßig ausgeführt werden soll:

    1. Wenn Sie Einmal ausführen auswählen, geben Sie mithilfe der Optionen im Startmenü an, ob das Notebook sofort oder zu einem geplanten Zeitpunkt ausgeführt werden soll. Geben Sie für eine geplante Ausführung das Startdatum und die Ausführungszeit an.

    2. Wenn Sie Wiederholen auswählen, geben Sie an, ob Sie das Notebook täglich, wöchentlich, monatlich oder nach einem benutzerdefinierten Zeitplan ausführen möchten, der mit dem Cron-Ausdruck angegeben wird. Geben Sie außerdem das Startdatum und die Laufzeit für die erste geplante Ausführung an.

  6. Wählen Sie im Abschnitt Ziel für Ergebnisse einen Speicherort aus, an dem die Notebook-Ausgabe gespeichert werden soll:

    1. Klicken Sie im Feld Name des Ausgabeordners auf Durchsuchen und wählen Sie einen Ordner in einem Cloud Storage-Bucket aus, in dem die Notebook-Ausgabe gespeichert werden soll.

    2. Klicken Sie auf Auswählen.

    3. Wählen Sie das Script-Ausgabeformat aus. Die unterstützten Formate sind CSV, JSON, ORC und Parquet.

  7. Wählen Sie im Bereich Geplante Notebook-Anmeldedaten ein Dienstkonto aus dem Menü Nutzerkonto aus.

  8. Fügen Sie im Abschnitt Parameter Ausführungsparameter für das Notebook als Schlüssel/Wert-Paare hinzu. Klicken Sie dazu auf Neu hinzufügen.

  9. Klicken Sie auf Schedule (Planen).

gcloud

Führen Sie den gcloud CLI-Befehl aus, der unter Spark (Java oder Python)-Aufgabe planen beschrieben ist, mit den folgenden zusätzlichen Parametern:

Parameter Beschreibung
--notebook Pfad zu einem Notebookinhalt für das Eingabe-Notebook. Die Ausführungsargumente sind als Umgebungsvariablen zugänglich. Beispiel: TASK_key=value.
Hinweis: In der gcloud-Referenzdokumentation zum Planen von Notebooks als Aufgaben wird erwähnt, dass der Wert für den Parameter --notebook der Cloud Storage-URI der Notebook-Datei sein kann. Dies wird nicht unterstützt. Sie müssen den Pfad zu Notebook-Inhalt nur für den Parameter --notebook angeben.
--notebook-archive-uris Cloud Storage-URIs der Archive, die in das Arbeitsverzeichnis jedes Executors extrahiert werden sollen. Unterstützte Dateitypen sind JAR, tar, tar.gz, tgz und zip.
--notebook-file-uris Google Cloud Storage-URIs von Dateien, die im Arbeitsverzeichnis jedes Executors platziert werden sollen.
Bei Verwendung von Dataproc Serverless für eine Aufgabe erforderliche Rechenressourcen
--notebook-batch-executors-count Anzahl der Job-Executors.
--notebook-batch-max-executors-count Maximal konfigurierbare Executors.
Wenn notebook-batch-max-executors-count größer als notebook-batch-executors-count ist, wird Autoscaling aktiviert.
Laufzeitkonfiguration des Container-Images
--notebook-container-image Optional: Benutzerdefiniertes Container-Image für den Job.
--notebook-container-image-java-jars 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.
--notebook-container-image-properties Die Attribute, die für Daemon-Konfigurationsdateien festgelegt werden sollen.
Property-Schlüssel werden im Format prefix:property angegeben, z. B. :
core:hadoop.tmp.dir.
Weitere Informationen finden Sie unter Clusterattribute.
Cloud-VPC-Netzwerk, das zum Ausführen der Infrastruktur verwendet wird
--notebook-vpc-network-tags Liste der Netzwerk-Tags, die auf den Job angewendet werden sollen.
Die Cloud VPC-Netzwerk-ID. Sie können höchstens eine der folgenden Optionen angeben.
--notebook-vpc-network-name Das Cloud VPC-Netzwerk, in dem der Job ausgeführt wird. Standardmäßig wird das Cloud VPC-Netzwerk „Default“ im Projekt verwendet.
--notebook-vpc-sub-network-name Das Cloud VPC-Subnetzwerk, in dem der Job ausgeführt wird.
Speicherort für Notebook-Ausgaben
--execution-args Für Notebook-Aufgaben ist das folgende Argument obligatorisch und muss als TASK_ARGS übergeben werden.
--execution-args=^::^TASK_ARGS="--output_location,CLOUD_STORAGE_URI_OF_OUTPUT_DIRECTORY"

Das folgende Beispiel zeigt den Befehl gcloud, der zum Planen von Notebooks verwendet wird:

gcloud dataplex tasks create sample-task --project=sample-project --location=us-central1 --lake=my-lake --trigger-type=ON_DEMAND --notebook="projects/my-project-id/locations/us-central1/lakes/my-lake/content/my-notebook.ipynb" --execution-service-account=associated-service-account@sample-project.iam.gserviceaccount.com  --execution-args=^::^TASK_ARGS="--output_location,gs://my-bucket/Demo" --notebook-batch-executors-count=2 --notebook-batch-max-executors-count=5 --notebook-container-image=container-image --notebook-container-image-java-jars=java-jar1,java-jar-2

REST

Erstellen Sie eine Aufgabe mit dem API Explorer.

Notebook-Zeitpläne verwalten

Console

Liste aller Notebook-Zeitpläne öffnen

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

  2. Klicken Sie auf den Tab Geplante Notebooks, um die Liste der SQL-Skriptzeitpläne aufzurufen.

Liste aller Zeitpläne für ein bestimmtes Notebook öffnen

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

  2. Wählen Sie das erforderliche Notebook aus.

  3. Klicken Sie im Menü Zeitplan auf Zeitpläne ansehen.

    Der Tab Geplante Abfragen wird mit einer Liste von Notebook-Zeitplänen geöffnet, die nach dem ausgewählten Notebook gefiltert sind.

Details eines Notebook-Zeitplans ansehen

  1. Wechseln Sie zum Tab Geplante Notebooks und wählen Sie den erforderlichen Notebook-Zeitplan aus.

  2. Klicken Sie auf die Details-Details des Notebook-Zeitplans und eine Vorschau des geplanten Notebook-Inhalts.

Notebook-Zeitplan aktivieren und deaktivieren

  1. Wechseln Sie zum Tab Geplantes Notebook und wählen Sie den erforderlichen Notebook-Zeitplan aus.

  2. Klicken Sie auf Deaktivieren, um einen aktiven Notebook-Zeitplan zu deaktivieren.

  3. Klicken Sie auf Aktivieren, um einen Zeitplan für einen inaktiven Notebook-Zeitplan zu aktivieren.

Vorhandenen Notebook-Zeitplan löschen

  1. Wechseln Sie zum Tab Geplantes Notebook und wählen Sie den erforderlichen Notebook-Zeitplan aus.

  2. Klicken Sie auf Löschen, um einen vorhandenen Notebook-Zeitplan endgültig zu löschen.

Logs ansehen und Notebook-Zeitplan verwalten

  1. Wechseln Sie zum Tab Geplantes Notebook und wählen Sie den erforderlichen Notebook-Zeitplan aus.

  2. Klicken Sie auf den Tab Jobs und dann auf die Job-ID der geplanten Notebook-Ausführung, die Sie ansehen möchten.

  3. Prüfen Sie im Abschnitt Vorschau der Ausgabe die Ausgabe der Notebook-Ausführung.

  4. Klicken Sie auf Logs ansehen, um die Logs für die ausgewählte geplante Notebookausführung in Cloud Logging aufzurufen.

  5. Klicken Sie auf die Dataproc-Batch-ID, um die Dataproc-Seite in der Google Cloud Console zu öffnen. Rufen Sie die Details der entsprechenden Dataproc Serverless-Sitzung auf.

  6. Klicken Sie neben dem Label Ausgabe auf In Cloud Storage verwalten, um die Seite „Cloud Storage“ in der Google Cloud Console zu öffnen. Rufen Sie die Details des entsprechenden Cloud Storage-Buckets auf, der die Ausgabe der Notebook-Ausführung enthält.

gcloud

Informationen zum Überwachen geplanter Notebooks mit der gcloud CLI finden Sie auf dem Tab gcloud unter Tasks überwachen.

Informationen zum Verwalten geplanter Notebooks mit der gcloud CLI finden Sie unter Zeitplan verwalten auf dem Tab gcloud.

REST

Informationen zum Überwachen geplanter Notebooks mit REST finden Sie auf dem Tab REST im Artikel Tasks überwachen.

Informationen zum Verwalten geplanter Notebooks mit REST finden Sie auf dem Tab REST unter Zeitplan verwalten.

Ausgabe eines geplanten Notebooks

Die Ausgabe aus jeder Ausführung eines geplanten Notebooks wird an dem von Ihnen angegebenen Speicherort für den Cloud Storage-Ordner in der folgenden Struktur gespeichert:

CLOUD_STORAGE_FOLDER_LOCATION/projects/PROJECT_ID/locations/LOCATION_ID/lakes/LAKE_ID/tasks/TASK_ID/JOB_ID/QUERY_NUMBER

Nächste Schritte