SQL-Skripts und Notebooks planen

Durch die Planung von SQL-Skripts und Notebooks können Sie die Assets operationalisieren, die in der Workbench für die Datenerkundung (Erkunden) erstellt wurden.

Beim Planen eines SQL-Skripts oder Notebooks wird eine Dataplex-Aufgabe erstellt, die zu einem bestimmten Zeitpunkt, einmal oder regelmäßig ausgeführt wird. Bei jeder Ausführung wird ein Job erstellt die die Ausführungsmetadaten wie Start- und Endzeit der Ausführung, Ausführung Status, 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 wird. Wenn Sie also ein Notebook oder SQL-Script aktualisieren und später seinen Inhalt aktualisieren, wird die Aktualisierung auch im geplanten Ausführungen des Notebooks oder SQL-Skripts.

Kosten

Geplante SQL-Skripts und geplante Notebooks lösen die Jobausführung mit Dataproc Serverless aus. Die Nutzung wird gemäß dem Dataproc-Preismodell berechnet in Dataproc statt unter Dataplex.

Hinweise

Prüfen und erfüllen Sie die in den folgenden Dokumenten beschriebenen Voraussetzungen:

Wenn ein SQL-Skript oder ein Notebookzeitplan die BigQuery API verwendet, müssen Sie den Dienstkonto die Rolle „Service Usage-Nutzer“ (roles/serviceusage.serviceUsageConsumer) haben.

Bekannte Einschränkungen

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

  • Mit der Google Cloud Console auf benutzerdefinierten Container verweisen Images beim Planen von Notebooks nicht unterstützt. Verwenden Sie stattdessen die gcloud CLI.

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

  • Sie können keine bestimmte Version eines SQL-Skripts oder -Notebooks zur Verwendung in einen Zeitplan. Beim Auslösen des Zeitplans wird die aktuelle Version des SQL-Skripts oder Notebooks verwendet.

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

Lesen Sie außerdem die bekannten Einschränkungen des explorativen Analysetools.

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

Laufzeitkonfiguration für geplante SQL-Skripts

Wenn ein SQL-Script geplant ist, wird es als Dataplex-Aufgabe ausgeführt. Beim Erstellen eines Zeitplans mit der Google Cloud Console werden die entsprechenden Laufzeitparameter der Aufgabe für geplante SQL-Abfragen Skripts aus der Umgebung dieses SQL-Skripts auf Basis der folgende Zuordnung:

Konfigurationsparameter für die Umgebung Konfigurationsparameter der geplanten SQL-Skriptaufgabe
Größe des primären Laufwerks Container-Image / Properties:
spark.dataproc.driver.disk.size
spark.dataproc.executor.disk.size
Anzahl von Knoten Anzahl der Batch-/Executors
Maximale Anzahl von Knoten Batch-/Max. 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.

    Zur Dataplex-Funktion „Entdecken“

  2. Wählen Sie das SQL-Skript aus, das Sie planen möchten, indem Sie 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 ausgeführt werden soll. nur einmal oder regelmäßig:

    1. Wenn Sie Einmal ausführen auswählen, geben Sie an, ob Sie das SQL-Skript sofort ausführen möchten. oder zu einem bestimmten Zeitpunkt mit den Optionen im Start-Menü. Bei einer geplanten Ausführung geben das Startdatum und die Laufzeit 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, der mit einem Cron-Ausdruck angegeben wird Außerdem geben das Startdatum und die Laufzeit für die erste geplante Ausführung an.

  6. Führen Sie im Abschnitt Destination for results (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, in dem die Skriptausgaben gespeichert werden sollen.

    2. Klicken Sie auf Auswählen.

    3. Wählen Sie das Skriptausgabeformat aus. Unterstützte Formate sind CSV, JSON, ORC und Parquet.

  7. Wählen Sie im Bereich Anmeldedaten für geplantes Skript im Menü Dienstkontonutzer ein Dienstkonto aus.

  8. Klicken Sie auf Schedule (Planen).

gcloud

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

<ph type="x-smartling-placeholder">
</ph>

REST

Verwenden Sie den API Explorer, um eine Aufgabe zu erstellen.

Zeitpläne für SQL-Skripts 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-Skript öffnen

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

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

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

    Der Tab Geplante Abfragen wird mit einer Liste der gefilterten SQL-Skriptpläne geöffnet. durch das ausgewählte SQL-Skript.

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 SQL-Skriptzeitplans und eine des geplanten SQL-Skriptinhalts.

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 den Zeitplan eines inaktiven SQL-Skripts 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 dauerhaft zu löschen.

Logs ansehen und SQL-Script-Zeitplan 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-Abfrage. das Sie sich ansehen möchten.

  3. Klicken Sie auf Logs ansehen, um die Logs für den ausgewählten geplanten SQL-Code 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 serverlosen Dataproc-Sitzung auf.

  5. Klicken Sie neben dem Label Ausgabe auf In Cloud Storage verwalten, um die Cloud Storage-Seite zu öffnen. in der Google Cloud Console. Auf die Details des entsprechenden Cloud Storage zugreifen Bucket mit der Ausgabe der SQL-Skriptausführung.

gcloud

Informationen zum Monitoring geplanter SQL-Skripts mit der gcloud CLI Weitere Informationen finden Sie auf dem Tab gcloud im Artikel Task überwachen.

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

REST

Informationen zum Monitoring geplanter SQL-Skripts mit REST finden Sie auf dem Tab REST in Überwachen Sie Ihre Aufgabe.

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

Ausgabe eines geplanten SQL-Skripts

Die Ausgabe bei jeder Ausführung eines geplanten SQL-Skripts wird am Speicherort gespeichert. für den Cloud Storage-Ordner angegeben, und zwar in der folgenden Struktur:

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. Beim Erstellen eines Zeitplans mit der Google Cloud Console wird die entsprechende Aufgabenlaufzeit Parameter für geplante Notebooks werden aus der Umgebung dieses Notebooks übernommen. basierend auf der folgenden Zuordnung:

Konfigurationsparameter für die Umgebung Konfigurationsparameter der geplanten Notebook-Aufgabe
Größe des primären Laufwerks Container-Image / Properties:
spark.dataproc.driver.disk.size
spark.dataproc.executor.disk.size
Anzahl von Knoten Anzahl der Batch-/Executors
Maximale Anzahl von Knoten Batch-/Max. 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

Gehen Sie bei der Konfiguration einer Umgebung für interaktive Notebooks so vor: Mit Dataplex können Sie benutzerdefinierte Python-Pakete angeben, die installiert werden sollen in Nutzersitzungen, die für die Umgebung bereitgestellt wurden. Wenn ein solches Notizbuch geplant ist, Die benutzerdefinierten Python-Pakete, die in ihrer Umgebung konfiguriert sind, sind zur Laufzeit nicht für den geplantes Notebook 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, ein benutzerdefiniertes Container-Image mit den erforderlichen benutzerdefinierten Paketen bereitstellen

Benutzerdefiniertes Container-Image beim Planen eines Notebooks mit der Google Cloud Console angeben wird nicht unterstützt. Verwenden Sie stattdessen die gcloud CLI. Weitere Informationen Weitere Informationen finden Sie unter Notebook planen.

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

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 Installation der erforderlichen benutzerdefinierten Python-Pakete im Dockerfile des Container-Images finden Sie unter Erstellen Sie ein benutzerdefiniertes Container-Image für Dataproc Serverless for Spark.

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

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

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

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

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

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

Notebook planen

Console

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

    Zur Dataplex-Funktion „Entdecken“

  2. Wählen Sie ein Notebook aus, für das Sie einen Zeitplan erstellen möchten. Wählen Sie dazu entweder Über die Ansicht Notebooks oder durch Öffnen eines Notebooks auf der Detailseite des Notebooks

  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 Sie das Notebook ausführen möchten nur einmal oder regelmäßig:

    1. Wenn Sie Einmal ausführen auswählen, geben Sie an, ob Sie das Notebook sofort ausführen möchten oder zu einem bestimmten Zeitpunkt mit den Optionen im Start-Menü. Bei einer geplanten Ausführung geben das Startdatum und die Laufzeit an.

    2. Wenn Sie Wiederholen auswählen, geben Sie an, ob Sie das Notebook täglich, wöchentlich oder monatlich oder nach einem benutzerdefinierten Zeitplan, 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. Wählen Sie im Abschnitt Ziel für Ergebnisse einen Ort aus, an dem Sie dass die Notebook-Ausgabe gespeichert werden soll:

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

    2. Klicken Sie auf Auswählen.

    3. Wählen Sie das Skriptausgabeformat aus. Unterstützte Formate sind CSV, JSON, ORC und Parquet.

  7. Wählen Sie im Abschnitt Geplante Notebook-Anmeldedaten im Menü Nutzerdienstkonto ein Dienstkonto aus.

  8. Fügen Sie im Bereich Parameter Ausführungsparameter für das Notebook als Schlüssel/Wert-Paar hinzu. Paare, indem Sie auf Hinzufügen klicken.

  9. Klicken Sie auf Schedule (Planen).

gcloud

Führen Sie den in Spark-Aufgabe planen (Java oder Python) planen beschriebenen gcloud CLI-Befehl aus. mit den folgenden zusätzlichen Parametern:

Parameter Beschreibung
--notebook Pfad zum Notebookinhalt für das Eingabenotebook. Die Ausführungsargumente sind zugänglich als Umgebungsvariablen. Beispiel: TASK_key=value.
Hinweis: In der gcloud-Referenzdokumentation zum Planen von Notebooks als Aufgaben wird dass der Wert für den Parameter --notebook der Cloud Storage-URI der Notebook-Datei. Dies wird nicht unterstützt. Sie müssen nur den Pfad zum Notebook angeben Inhalt für den Parameter --notebook.
--notebook-archive-uris Cloud Storage-URIs von Archiven, die in das Arbeitsverzeichnis jedes einzelnen Archivs extrahiert werden sollen Executor. Die unterstützten Dateitypen sind JAR, tar, tar.gz, tgz und zip.
--notebook-file-uris Cloud Storage-URIs von Dateien, die im Arbeitsverzeichnis jedes Executors abgelegt werden sollen.
Rechenressourcen, die bei Verwendung von Dataproc Serverless für eine Aufgabe erforderlich sind
--notebook-batch-executors-count Anzahl der Job-Executors.
--notebook-batch-max-executors-count Maximale Anzahl konfigurierbarer Executors.
Wenn notebook-batch-max-executors-count größer als notebook-batch-executors-count ist, ist Autoscaling aktiviert.
Container-Image-Laufzeitkonfiguration
--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. Gültige Eingabe sind Cloud Storage-URIs für JAR-Binärdateien. Beispiel: gs://BUCKET_NAME/my/path/to/file.jar.
--notebook-container-image-properties Die für Daemon-Konfigurationsdateien festzulegenden Attribute.
Attributschlüssel werden im Format prefix:property angegeben. Beispiel::
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-Netzwerkkennung. Sie können höchstens einen der folgenden Werte angeben.
--notebook-vpc-network-name Das Cloud-VPC-Netzwerk, in dem der Job ausgeführt wird. Standardmäßig hat das Cloud-VPC-Netzwerk Der Standardwert innerhalb des Projekts wird 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 wird als TASK_ARGS übergeben.
--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

Verwenden Sie den API Explorer, um eine Aufgabe zu erstellen.

Notebookzeitpläne verwalten

Console

Liste aller Notebookzeitplä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 gefilterter Notebook-Zeitpläne geöffnet. ausgewählten Notebooks.

Details eines Notebookzeitplans ansehen

  1. Wechseln Sie zum Tab Geplante Notebooks und wählen Sie den erforderlichen Notebookzeitplan aus.

  2. Klicken Sie auf Details zum Zeitplan des Notebooks und sehen Sie sich eine Vorschau des geplanten Notebookinhalts an.

Notebookzeitplan aktivieren und deaktivieren

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

  2. Klicken Sie auf Deaktivieren, um einen aktiven Notebookzeitplan zu deaktivieren.

  3. Klicken Sie auf Aktivieren, um einen Zeitplan für inaktive Notebooks zu aktivieren.

Vorhandenen Notebookzeitplan löschen

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

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

Logs ansehen und Notebookzeitplan verwalten

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

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

  3. Sehen Sie sich im Abschnitt Vorschau der Ausgabe die Ausgabe der Notebookausführung an.

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

  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 serverlosen Dataproc-Sitzung auf.

  6. Klicken Sie neben dem Label Ausgabe auf In Cloud Storage verwalten, um die Cloud Storage-Seite zu öffnen. in der Google Cloud Console. Auf die Details des entsprechenden Cloud Storage zugreifen Bucket mit der Ausgabe der Notebookausführung.

gcloud

Informationen zum Monitoring geplanter Notebooks mit der gcloud CLI Weitere Informationen finden Sie auf dem Tab gcloud im Artikel Task überwachen.

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

REST

Informationen zum Monitoring geplanter Notebooks mit REST finden Sie auf dem Tab REST in Überwachen Sie Ihre Aufgabe.

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

Ausgabe eines geplanten Notebooks

Die Ausgabe bei jeder Ausführung eines geplanten Notebooks wird am Standort gespeichert für den Cloud Storage-Ordner angegeben, und zwar in der folgenden Struktur:

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

Nächste Schritte