Apache Beam-Notebooks mit dem interaktiven Runner entwickeln

Führen Sie die folgenden Aufgaben mit dem interaktiven Apache Beam-Runner mit JupyterLab-Notebooks aus:

  • Pipelines iterativ entwickeln.
  • Pipelinegraph überprüfen.
  • Einzelne PCollections in einem REPL-Workflow (Read-Eval-Print-Loop) parsen.

Apache Beam-Notebooks werden über von Nutzern verwaltete Vertex AI Workbench-Notebooks bereitgestellt. Mit diesem Dienst werden virtuelle Notebooks gehostet, die in den neuesten Data-Science-Frameworks und Frameworks für maschinelles Lernen vorinstalliert sind. Dataflow unterstützt nur nutzerverwaltete Notebookinstanzen.

Dieser Leitfaden konzentriert sich auf die von Apache Beam-Notebooks eingeführten Features, zeigt jedoch nicht, wie ein Notebook erstellt wird. Weitere Informationen über Apache Beam finden Sie im Apache Beam-Programmierhandbuch.

Unterstützung und Einschränkungen

  • Apache Beam-Notebooks unterstützen nur Python.
  • Auf diesen Notebooks ausgeführte Apache Beam-Pipelinesegmente werden in einer Testumgebung und nicht mit einem Apache Beam-Produktions-Runner ausgeführt. Zum Starten der Notebooks im Dataflow-Dienst exportieren Sie die in Ihrem Apache Beam-Notebook erstellten Pipelines. Weitere Informationen finden Sie unter Dataflow-Jobs aus einer in Ihrem Notebook erstellten Pipeline starten.

Hinweise

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine and Notebooks APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Compute Engine and Notebooks APIs.

    Enable the APIs

Bevor Sie Ihre Apache Beam-Notebookinstanz erstellen, aktivieren Sie zusätzliche APIs für Pipelines, die andere Dienste wie Pub/Sub verwenden.

Wenn nicht angegeben, wird die Notebookinstanz vom Compute Engine-Standarddienstkonto mit der IAM-Projektbearbeiterrolle ausgeführt. Wenn das Projekt explizit die Rollen des Dienstkontos beschränkt, müssen Sie dafür sorgen, dass es weiter ausreichende Berechtigungen zum Ausführen der Notebooks hat. Wenn Sie beispielsweise aus einem Pub/Sub-Thema lesen, wird implizit ein Abo erstellt und Ihr Dienstkonto muss eine IAM-Pub/Sub-Bearbeiterrolle haben. Im Gegensatz dazu ist für das Lesen aus einem Pub/Sub-Abo nur eine IAM-Rolle als Pub/Sub-Abonnent erforderlich.

Löschen Sie die erstellten Ressourcen nach Abschluss dieses Leitfadens, um weitere Kosten zu vermeiden. Weitere Informationen finden Sie unter Bereinigen.

Apache Beam-Notebookinstanz starten

  1. Rufen Sie in der Google Cloud Console die Dataflow-Seite Workbench auf.

    Zur Workbench

  2. Achten Sie darauf, dass Sie sich auf dem Tab Nutzerverwaltete Notebooks befinden.

  3. Klicken Sie in der Symbolleiste auf Neu erstellen.

  4. Wählen Sie im Bereich Umgebung unter Umgebung die Option Apache Beam aus.

  5. Optional: Wenn Sie Notebooks auf einer GPU ausführen möchten, wählen Sie im Bereich Maschinentyp einen Maschinentyp aus, der GPUs unterstützt, und wählen Sie dann NVIDIA GPU-Treiber automatisch installieren aus. Weitere Informationen finden Sie unter GPU-Plattformen.

  6. Wählen Sie im Bereich Netzwerk ein Subnetzwerk für die Notebook-VM aus.

  7. Optional: Wenn Sie eine benutzerdefinierte Notebookinstanz einrichten möchten, finden Sie weitere Informationen unter Nutzerverwaltete Notebookinstanz mit bestimmten Attributen erstellen.

  8. Klicken Sie auf Erstellen. Dataflow Workbench erstellt eine neue Apache Beam-Notebookinstanz.

  9. Nachdem die Notebookinstanz erstellt wurde, wird der Link JupyterLab öffnen aktiviert. Klicken Sie auf OPEN JUPYTERLAB (JUPYTERLAB ÖFFNEN).

Optional: Abhängigkeiten installieren

Apache Beam-Notebooks enthalten bereits Connector-Abhängigkeiten für Apache Beam und Google Cloud. Wenn Ihre Pipeline benutzerdefinierte Connectors oder benutzerdefinierte PTransforms enthält, die von Drittanbieterbibliotheken abhängen, installieren Sie diese nach dem Erstellen einer Notebookinstanz. Weitere Informationen finden Sie unter Abhängigkeiten installieren in der Dokumentation zu nutzerverwalteten Notebooks.

Beispiel-Apache Beam-Notebooks

Nachdem Sie eine nutzerverwaltete Notebookinstanz erstellt haben, öffnen Sie sie in JupyterLab. Auf dem Tab Dateien in der JupyterLab-Seitenleiste enthält der Ordner Beispiele Beispielnotebooks. Weitere Informationen zur Arbeit mit JupyterLab-Dateien finden Sie im JupyterLab-Nutzerhandbuch unter Dateien verwenden.

Folgende Notebooks sind verfügbar:

  • Word Count
  • Streaming Word Count
  • Streaming NYC Taxi Ride Data
  • Apache Beam SQL in Notebooks mit Vergleichen zu Pipelines
  • Apache Beam SQL in Notebooks mit dem Dataflow Runner
  • Apache Beam SQL in Notebooks
  • Dataflow Word Count
  • Interaktives Flink im großen Maßstab
  • RunInference
  • GPUs mit Apache Beam verwenden
  • Daten visualisieren

Der Ordner Anleitungen enthält weitere Anleitungen zu den Grundlagen von Apache Beam. Folgende Anleitungen sind verfügbar:

  • Grundlegende Vorgänge
  • Elementartige Vorgänge
  • Zusammenfassungen
  • Windows
  • E/A-Vorgänge
  • Streaming
  • Abschließende Übungen

Diese Notebooks enthalten erläuternden Text und kommentierte Codeblöcke, damit Sie die Konzepte und die API-Nutzung von Apache Beam besser verstehen. Die Anleitungen enthalten auch Übungen, mit denen Sie die Konzepte üben können.

In den folgenden Abschnitten wird Beispielcode aus dem Notebook „Streaming Word Count“ verwendet. Die Code-Snippets in diesem Leitfaden und die Angaben im Notebook „Streaming Word Count“ können geringfügige Diskrepanzen aufweisen.

Eine Notebook-Instanz erstellen

Wählen Sie unter Datei > Neu > Notebook den Kernel Apache Beam 2.22 oder höher aus.

Apache Beam-Notebooks basieren auf dem Masterzweig des Apache Beam SDK. Dies bedeutet, dass die neueste Version des Kernels, die auf der Notebook-Benutzeroberfläche angezeigt wird, möglicherweise der neuesten Releaseversion des SDK voraus ist.

Apache Beam ist auf Ihrer Notebookinstanz installiert. Fügen Sie daher die Module interactive_runner und interactive_beam bei Ihrem Notebook ein.

import apache_beam as beam
from apache_beam.runners.interactive.interactive_runner import InteractiveRunner
import apache_beam.runners.interactive.interactive_beam as ib

Wenn Ihr Notebook andere Google APIs verwendet, fügen Sie die folgenden Importanweisungen hinzu:

from apache_beam.options import pipeline_options
from apache_beam.options.pipeline_options import GoogleCloudOptions
import google.auth

Interaktivitätsoptionen festlegen

Mit dem folgenden Befehl wird festgelegt, wie lange der InteractiveRunner Daten aus einer unbegrenzten Quelle erfasst. In diesem Beispiel ist die Dauer auf 10 Minuten eingestellt.

ib.options.recording_duration = '10m'

Sie können das Limit der Aufzeichnungsgröße (in Byte) für eine unbegrenzte Quelle auch mit dem Attribut recording_size_limit ändern.

# Set the recording size limit to 1 GB.
ib.options.recording_size_limit = 1e9

Weitere Interaktivitätsoptionen finden Sie in der interactive_beam.options-Klasse.

Pipeline erstellen

Initialisieren Sie die Pipeline mit einem InteractiveRunner-Objekt.

options = pipeline_options.PipelineOptions(flags={})

# Set the pipeline mode to stream the data from Pub/Sub.
options.view_as(pipeline_options.StandardOptions).streaming = True

# Set the project to the default project in your current Google Cloud environment.
# The project is used to create a subscription to the Pub/Sub topic.
_, options.view_as(GoogleCloudOptions).project = google.auth.default()

p = beam.Pipeline(InteractiveRunner(), options=options)

Daten lesen und visualisieren

Das folgende Beispiel zeigt eine Apache Beam-Pipeline, die ein Abo für das angegebene Pub/Sub-Thema erstellt und aus dem Abo liest.

words = p | "read" >> beam.io.ReadFromPubSub(topic="projects/pubsub-public-data/topics/shakespeare-kinglear")

Die Pipeline zählt die Wörter nach Fenstern aus der Quelle. Sie erstellt feste Fensteraufrufe mit einer Dauer von jeweils 10 Sekunden pro Fenster.

windowed_words = (words
   | "window" >> beam.WindowInto(beam.window.FixedWindows(10)))

Nachdem die Daten im Fenstermodus angezeigt werden, werden die Wörter pro Fenster gezählt.

windowed_word_counts = (windowed_words
   | "count" >> beam.combiners.Count.PerElement())

Die Methode show() visualisiert die resultierende PCollection im Notebook.

ib.show(windowed_word_counts, include_window_info=True)

Die show-Methode, die eine PCollection in Tabellenform visualisiert.

Sie können die Ergebnismenge von show() beschränken, indem Sie zwei optionale Parameter festlegen: n und duration.

  • Legen Sie n fest, um die Ergebnismenge auf maximal n Elemente zu beschränken, z. B. 20. Wenn n nicht festgelegt ist, werden standardmäßig die neuesten Elemente aufgelistet, die bis zum Ende der Quellaufzeichnung erfasst wurden.
  • Legen Sie duration fest, um die Ergebnismenge auf eine bestimmte Anzahl von Sekunden zu begrenzen, beginnend ab dem Start der Quellaufzeichnung. Wenn duration nicht festgelegt ist, werden standardmäßig alle Elemente bis zum Ende der Aufzeichnung aufgelistet.

Wenn beide optionalen Parameter festgelegt sind, wird show() gestoppt, wenn einer der beiden Grenzwerte erreicht ist. Im folgenden Beispiel gibt show() höchstens 20 Elemente zurück, die auf Grundlage der ersten 30 Sekunden Daten aus den aufgezeichneten Quellen berechnet werden.

ib.show(windowed_word_counts, include_window_info=True, n=20, duration=30)

Zum Aufrufen von Visualisierungen Ihrer Daten übergeben Sie visualize_data=True an die show()-Methode. Sie können mehrere Filter auf Ihre Visualisierungen anwenden. Mit der folgenden Visualisierung können Sie nach Label und Achse filtern:

Die show-Methode zur Visualisierung einer PCollection als umfangreiche Gruppe von filterbaren UI-Elementen.

Um die Wiedergabefähigkeit beim Prototyping von Streamingpipelines zu gewährleisten, verwenden die Aufrufe der show()-Methode die erfassten Daten standardmäßig wieder. Wenn Sie dieses Verhalten ändern und die Methode show() immer neue Daten abrufen lassen möchten, legen Sie interactive_beam.options.enable_capture_replay = False fest. Wenn Sie Ihrem Notebook eine zweite unbegrenzte Quelle hinzufügen, werden die Daten der vorherigen unbegrenzten Quelle verworfen.

Eine weitere hilfreiche Visualisierung in Apache Beam-Notebooks ist ein Pandas DataFrame. Im folgenden Beispiel werden die Wörter zuerst in Kleinbuchstaben umgewandelt und dann die Häufigkeit jedes Worts berechnet.

windowed_lower_word_counts = (windowed_words
   | beam.Map(lambda word: word.lower())
   | "count" >> beam.combiners.Count.PerElement())

Die collect()-Methode stellt die Ausgabe in einem Pandas-DataFrame bereit.

ib.collect(windowed_lower_word_counts, include_window_info=True)

Die collect-Methode, die eine PCollection in einem Pandas DataFrame darstellt.

Das Bearbeiten und wiederholte Ausführen einer Zelle ist eine gängige Praxis in der Notebookentwicklung. Wenn Sie eine Zelle in einem Apache Beam-Notebook bearbeiten und neu ausführen, macht die Zelle die beabsichtigte Aktion des Codes in der ursprünglichen Zelle nicht rückgängig. Wenn eine Zelle beispielsweise einer Pipeline ein PTransform hinzufügt, wird durch das wiederholte Ausführen dieser Zelle der Pipeline ein zusätzliches PTransform hinzugefügt. Wenn Sie den Status löschen möchten, starten Sie den Kernel neu und führen Sie die Zellen noch einmal aus.

Daten mit dem interaktiven Beam-Inspektor visualisieren

Es kann ein Störfaktor sein, die Daten einer PCollection zu untersuchen, indem Sie show() und collect() kontinuierlich aufrufen, insbesondere wenn die Ausgabe einen Großteil des Speicherplatzes auf Ihrem Bildschirm belegt und die Suche im Notebook erschwert. Eventuell möchten Sie auch mehrere PCollections nebeneinander vergleichen, um zu prüfen, ob eine Transformation wie beabsichtigt funktioniert. Beispiel: Ein PCollection durchläuft eine Transformation und erzeugt die andere. Für diese Anwendungsfälle ist der interaktive Beam-Inspektor eine gute Lösung.

Der interaktive Beam-Inspektor wird als JupyterLab-Erweiterung apache-beam-jupyterlab-sidepanel bereitgestellt, die im Apache Beam-Notebook vorinstalliert ist. Mit der Erweiterung können Sie den Status der mit jeder PCollection verknüpften Pipelines und Daten interaktiv prüfen, ohne explizit show() oder collect() aufzurufen.

Es gibt drei Möglichkeiten, den Inspektor zu öffnen:

  • Klicken Sie in der oberen Menüleiste von JupyterLab auf Interactive Beam. Suchen Sie im Drop-down-Menü Open Inspector und klicken Sie darauf, um den Inspektor zu öffnen.

    Grafik: Inspektor über das Menü öffnen

  • Verwenden Sie die Launcher-Seite. Wenn keine Launcher-Seite geöffnet ist, klicken Sie auf File -> New Launcher, um sie zu öffnen. Suchen Sie auf der Launcher-Seite nach Interactive Beam und klicken Sie auf Open Inspector, um den Inspektor zu öffnen.

    Grafik: Inspektor über Launcher-Seite öffnen

  • Verwenden Sie die Befehlspalette. Klicken Sie in der JupyterLab-Menüleiste auf View > Activate Command Palette. Suchen Sie im Dialogfeld nach Interactive Beam, um alle Optionen der Erweiterung aufzulisten. Klicken Sie auf Open Inspector, um den Inspektor zu öffnen.

    Grafik: Inspektor über die Befehlspalette öffnen

Wenn der Inspektor geöffnet werden soll, gehen Sie so vor:

  • Wenn genau ein Notebook geöffnet ist, stellt der Inspektor automatisch eine Verbindung zu diesem her.

  • Wenn kein Notebook geöffnet ist, wird ein Dialogfeld angezeigt, in dem Sie einen Kernel auswählen können.

  • Wenn mehrere Notebooks geöffnet sind, wird ein Dialogfeld angezeigt, in dem Sie die Notebooksitzung auswählen können.

    Grafik: Notebook auswählen, zu dem eine Verbindung hergestellt werden soll

Es wird empfohlen, mindestens ein Notebook zu öffnen und einen Kernel dafür auszuwählen, bevor Sie den Inspektor öffnen. Wenn Sie einen Inspektor mit einem Kernel öffnen, bevor Sie ein Notebook öffnen, müssen Sie später beim Öffnen eines Notebooks zum Herstellen einer Verbindung zum Inspektor eine Interactive Beam Inspector Session unter Use Kernel from Preferred Session auswählen. Ein Inspektor und ein Notebook sind verbunden, wenn sie dieselbe Sitzung verwenden, nicht verschiedene Sitzungen, die vom selben Kernel erstellt wurden. Wenn Sie denselben Kernel aus Start Preferred Kernel auswählen, wird eine neue Sitzung erstellt, die unabhängig von vorhandenen Sitzungen geöffneter Notebooks oder Inspektoren ist.

Sie können mehrere Inspektoren für ein geöffnetes Notebook öffnen und die Inspektoren anordnen. Dazu ziehen Sie deren Tabs und legen sie frei im Arbeitsbereich ab.

Öffnen Sie zwei Inspektoren und ordnen Sie diese nebeneinander an.

Die Seite „Inspector“ wird automatisch aktualisiert, wenn Sie Zellen im Notebook ausführen. Auf der Seite werden Pipelines und im verbundenen Notebook definierte PCollections aufgelistet. PCollections sind nach den Pipelines organisiert, zu denen sie gehören, und Sie können sie minimieren, indem Sie auf die Headerpipeline klicken.

Für die Elemente in der Pipeline und der PCollections-Liste rendert der Inspektor mit einem Klick die entsprechenden Visualisierungen auf der rechten Seite:

  • Wenn es sich um eine PCollection handelt, werden die Daten des Inspektors (dynamisch, wenn die Daten noch für unbegrenzte PCollections eingehen) mit zusätzlichen Widgets gerendert, um die Visualisierung nach dem Klicken auf die Schaltfläche APPLY zu optimieren.

    Grafik: Seite „Inspector“

    Da der Inspektor und das geöffnete Notebook dieselbe Kernel-Sitzung haben, blockieren sie sich gegenseitig. Wenn das Notebook beispielsweise mit der Ausführung von Code beschäftigt ist, wird der Inspektor erst aktualisiert, wenn das Notebook diese Ausführung abgeschlossen hat. Wenn Sie umgekehrt Code direkt in Ihrem Notebook ausführen möchten, während der Inspektor dynamisch eine PCollection visualisiert, müssen Sie auf die Schaltfläche STOP klicken, um die Visualisierung zu beenden und den Kernel vorzeitig für das Notebook freizugeben.

  • Wenn es sich um eine Pipeline handelt, zeigt der Inspektor das Pipelinediagramm an.

    Grafik: Seite „Inspector“

Möglicherweise sind anonyme Pipelines vorhanden. Diese Pipelines haben PCollections, auf die Sie zugreifen können, aber die Hauptsitzung verweist nicht mehr auf sie. Beispiel:

p = beam.Pipeline()
pcoll = p | beam.Create([1, 2, 3])

p = beam.Pipeline()

Im vorherigen Beispiel werden eine leere Pipeline p und eine anonyme Pipeline erstellt, die eine PCollection pcoll enthält. Mit pcoll.pipeline können Sie auf die anonyme Pipeline zugreifen.

Sie können zwischen der Pipeline und der PCollection-Liste wechseln, um Speicherplatz für umfangreiche Visualisierungen zu sparen. Grafik: Linke Liste mit Toggel

Aufzeichnungsstatus einer Pipeline verstehen

Neben Visualisierungen können Sie auch den Aufzeichnungsstatus für eine oder alle Pipelines in der Notebookinstanz prüfen. Rufen Sie dazu describe auf.

# Return the recording status of a specific pipeline. Leave the parameter list empty to return
# the recording status of all pipelines.
ib.recordings.describe(p)

Die Methode describe() enthält folgende Details:

  • Gesamtgröße aller Aufzeichnungen für die Pipeline auf dem Laufwerk (in Byte)
  • Startzeit des Hintergrundaufzeichnungsjobs (in Sekunden seit Unix-Epoche)
  • Aktueller Pipelinestatus des Hintergrundaufzeichnungsjobs
  • Python-Variable für die Pipeline

Dataflow-Jobs aus einer in Ihrem Notebook erstellten Pipeline starten

  1. Optional: Starten Sie den Kernel neu, starten Sie alle Zellen neu und prüfen Sie die Ausgabe, bevor Sie Ihr Notebook zum Ausführen von Dataflow-Jobs verwenden. Wenn Sie diesen Schritt überspringen, können sich verborgene Status im Notebook auf die Jobgrafik im Pipelineobjekt auswirken.
  2. Aktivieren Sie die Dataflow API.
  3. Fügen Sie die folgende Importanweisung hinzu:

    from apache_beam.runners import DataflowRunner
    
  4. Übergeben Sie Ihre Pipelineoptionen.

    # Set up Apache Beam pipeline options.
    options = pipeline_options.PipelineOptions()
    
    # Set the project to the default project in your current Google Cloud
    # environment.
    _, options.view_as(GoogleCloudOptions).project = google.auth.default()
    
    # Set the Google Cloud region to run Dataflow.
    options.view_as(GoogleCloudOptions).region = 'us-central1'
    
    # Choose a Cloud Storage location.
    dataflow_gcs_location = 'gs://<change me>/dataflow'
    
    # Set the staging location. This location is used to stage the
    # Dataflow pipeline and SDK binary.
    options.view_as(GoogleCloudOptions).staging_location = '%s/staging' % dataflow_gcs_location
    
    # Set the temporary location. This location is used to store temporary files
    # or intermediate results before outputting to the sink.
    options.view_as(GoogleCloudOptions).temp_location = '%s/temp' % dataflow_gcs_location
    
    # If and only if you are using Apache Beam SDK built from source code, set
    # the SDK location. This is used by Dataflow to locate the SDK
    # needed to run the pipeline.
    options.view_as(pipeline_options.SetupOptions).sdk_location = (
        '/root/apache-beam-custom/packages/beam/sdks/python/dist/apache-beam-%s0.tar.gz' %
        beam.version.__version__)
    

    Sie können die Parameterwerte anpassen. Sie können beispielsweise den Wert region von us-central1 ändern.

  5. Führen Sie die Pipeline mit DataflowRunner aus. Mit diesem Schritt wird der Job im Dataflow-Dienst ausgeführt.

    runner = DataflowRunner()
    runner.run_pipeline(p, options=options)
    

    p ist ein Pipelineobjekt aus dem Schritt Pipeline erstellen.

Ein Beispiel zur Durchführung dieser Konvertierung in einem interaktiven Notebook finden Sie im Dataflow-Notebook „Word Count“ in Ihrer Notebookinstanz.

Alternativ können Sie Ihr Notebook als ausführbares Skript exportieren, die generierte .py-Datei mithilfe der vorherigen Schritte ändern und dann Ihre Pipeline im Dataflow-Dienst bereitstellen.

Notebook speichern

Von Ihnen erstellte Notebooks werden lokal in Ihrer ausgeführten Notebookinstanz gespeichert. Wenn Sie die Notebookinstanz zurücksetzen oder während der Entwicklung herunterfahren, werden diese neuen Notebooks beibehalten, solange sie im Verzeichnis /home/jupyter erstellt werden. Wenn eine Notebookinstanz jedoch gelöscht wird, werden diese Notebooks auch gelöscht.

Zur Beibehaltung der Notebooks für die zukünftige Verwendung laden Sie sie lokal auf Ihre Workstation herunter, speichern Sie sie in GitHub oder exportieren Sie sie in ein anderes Dateiformat.

Notebook auf zusätzlichen nichtflüchtigen Speichern speichern

Wenn Sie Ihre Arbeit, z. B. Notebooks und Scripts, auf verschiedenen Notebookinstanzen beibehalten möchten, können Sie sie auf einem nichtflüchtigen Speicher speichern.

  1. Erstellen oder hängen Sie einen nichtflüchtigen Speicher an. Folgen Sie der Anleitung zur Verwendung von ssh, um eine Verbindung zur VM der Notebookinstanz herzustellen und Befehle in der geöffneten Cloud Shell auszugeben.

  2. Beachten Sie das Verzeichnis, in dem der nichtflüchtige Speicher bereitgestellt ist, z. B. /mnt/myDisk.

  3. Bearbeiten Sie die VM-Details der Notebookinstanz, um einen Eintrag zum Custom metadata hinzuzufügen: Schlüssel – container-custom-params. Wert: -v /mnt/myDisk:/mnt/myDisk. Grafik: Zusätzliche Metadaten, erforderlich zum Binden des bereitgestellten nichtflüchtigen Speichers

  4. Klicken Sie auf Speichern.

  5. Setzen Sie die Notebookinstanz zurück, um diese Änderungen zu aktualisieren. Grafik: Notebookinstanz zurücksetzen

  6. Klicken Sie nach dem Zurücksetzen auf JupyterLab öffnen. Es kann einige Zeit dauern, bis die JupyterLab-Benutzeroberfläche verfügbar ist. Wenn die Benutzeroberfläche angezeigt wird, öffnen Sie ein Terminal und führen den folgenden Befehl aus: ls -al /mnt. Das Verzeichnis /mnt/myDisk sollte aufgelistet sein. Volumenbindung auflisten

Jetzt können Sie Ihre Arbeit im Verzeichnis /mnt/myDisk speichern. Auch wenn die Notebookinstanz gelöscht wird, ist der nichtflüchtige Speicher unter Ihrem Projekt noch vorhanden. Sie können diesen nichtflüchtigen Speicher dann anderen Notebookinstanzen hinzufügen.

Bereinigen

Nachdem Sie die Verwendung der Apache Beam-Notebookinstanz abgeschlossen haben, bereinigen Sie die in Google Cloud erstellten Ressourcen, indem Sie die Notebookinstanz herunterfahren.

Nächste Schritte