Mit Notebooks arbeiten

In dieser Anleitung werden verschiedene Aufgaben im Zusammenhang mit Cloud Datalab-Notebooks beschrieben.

Versionsverwaltung

Wenn Sie datalab create VM-instance-name zum ersten Mal ausführen, wird in das Projekt ein datalab-notebooks namens Cloud Source Repository eingefügt, das nachfolgend als "Cloud-Remote-Repository" bezeichnet wird. Dies ist ein Remote-Repository für das Git-Repository /content/datalab/notebooks, das im Docker-Container erstellt wurde, der in Ihrer Cloud Datalab-VM-Instanz ausgeführt wird (nachfolgend als "Cloud Datalab-VM-Repository" bezeichnet). Sie können das Cloud-Remote-Repository in der Google Cloud Console auf der Seite Repositories durchsuchen.

Sie können die Notebooks im Cloud Datalab-VM-Repository mit Git oder Ungit verwalten.

Ungit im Browser verwenden

Der Cloud Datalab-Container enthält den webbasierten Git-Client Ungit. Sie können damit Commits zum Cloud Datalab-VM-Repository durchführen und Notebooks mit Push von der Benutzeroberfläche des Cloud Datalab-Browsers zum Cloud-Remote-Repository übertragen.

Um Ungit im Cloud Datalab-Repository /content/datalab/notebooks zu öffnen, wählen Sie rechts oben in der Google Cloud Datalab-Menüleiste das Repository-Symbol aus.

Im Cloud Datalab-VM-Repository wird daraufhin ein Browserfenster geöffnet.

Notebook zum Cloud-Remote-Repository hinzufügen:

  1. Wechseln Sie im Browserfenster des Cloud Datalab-Notebooks zum Ordner /datalab/notebooks.

  2. Wählen Sie das Symbol "+ Notebook", um im Ordner /datalab/notebooks ein neues Notebook zu öffnen.

    1. Fügen Sie dem Notebook eine oder mehrere Zellen hinzu.
    2. Benennen Sie das Notebook um. Klicken Sie dazu in der Menüleiste auf "Unbenanntes Notebook" und ändern Sie den Namen in "Neues Notebook".
    3. Wählen Sie Notebook → Speichern und Prüfpunkt (Strg+S) aus oder warten Sie, bis das Notebook automatisch gespeichert wird.
  3. Kehren Sie zum Browserfenster des Cloud Datalab-Notebooks zurück. Klicken Sie auf das Ungit-Symbol, um eine Ungit-Browserseite zu öffnen (siehe Ungit in Ihrem Browser verwenden). Nachdem Sie einen Commit-Titel angegeben haben, kann New Notebook.ipynb per Commit an das Cloud Datalab-VM-Repository übertragen werden.

  4. Nachdem Sie das Notebook per Commit übertragen haben, senden Sie es per Push von der Ungit-Browserseite zum Cloud-Remote-Repository datalab-notebooks.

Git über die Befehlszeile verwenden

Statt Ungit zur Versionsverwaltung über die Cloud Datalab-UI zu verwenden (siehe Ungit im Browser verwenden), können Sie eine SSH-Verbindung zur Cloud Datalab-VM herstellen. Dann führen Sie Git über ein Terminal aus, das auf Ihrer VM oder in Cloud Shell ausgeführt wird. Dabei gehen Sie so vor:

  1. Stellen Sie eine SSH-Verbindung zur Cloud Datalab-VM mit dem Befehlszeilentool gcloud oder mit der Cloud Console her:

    gcloud-Befehl

    Führen Sie den folgenden Befehl aus, nachdem Sie project-id, zone und instance-name eingefügt haben.
    gcloud compute --project project-id ssh 
    --zone zone instance-name

    Konsole/SHELL

    Maximieren Sie im Abschnitt VM-Instanzen der Cloud Console das Menü SSH rechts neben der Zeile für die Cloud Datalab-VM. Wählen Sie dann gcloud-Befehl anzeigen aus.
    Das gcloud-Befehlszeilenfenster wird geöffnet. Kopieren Sie den darin angezeigten gcloud-SSH-Befehl und fügen Sie ihn zur Ausführung in ein lokales Terminal ein.
  2. Wenn Sie eine SSH-Verbindung zur Cloud Datalab-VM hergestellt haben, führen Sie den Befehl sudo docker ps aus, um die Container-ID des in der VM ausgeführten Cloud Datalab-Docker-Image aufzulisten. Kopieren Sie die Container-ID, die mit dem Befehl /datalab/run.sh und dem Namen datalab_datalab-server verknüpft ist.
    docker ps
    CONTAINER ID  ...    COMMAND   ...   ...   NAMES
    ...
    b228e3392374   ...   "/datalab/run.sh" ... datalab_datalab-server-...
    ...
    
  3. Öffnen Sie mit der Container-ID aus dem vorangegangenen Schritt eine interaktive Shell-Sitzung innerhalb des Containers.
    docker exec -it container-id bash
    ...
    root@datalab-server-vm-name:/#
    
  4. Wechseln Sie im Container zum Verzeichnis /content/datalab/notebooks:
    cd /content/datalab/notebooks
    
    Dies ist das Stammverzeichnis des Git-Repositorys der Cloud Datalab-VM. Von hier aus können Sie Git-Befehle ausführen.
    git status
    On branch master
    nothing to commit, working directory clean
    

Notebooks aus der Cloud Datalab-VM kopieren

Mit dem Befehl gcloud compute scp können Sie Dateien aus der Cloud Datalab-VM-Instanz kopieren. Beispiel: Sie möchten den Inhalt des Verzeichnisses datalab/notebooks der Cloud Datalab-VM in ein Verzeichnis instance-name-notebooks auf dem lokalen Computer kopieren. In diesem Fall ersetzen Sie instance-name durch den Namen der Cloud Datalab-VM und führen dann den im Folgenden aufgeführten Befehl aus. Wenn das Verzeichnis instance-name-notebooks nicht vorhanden ist, wird es erstellt.

gcloud compute scp --recurse \
  datalab@instance-name:/mnt/disks/datalab-pd/content/datalab/notebooks \
  instance-name-notebooks

Cloud Datalab-Sicherung

Cloud Datalab-Instanzen erstellen in regelmäßigen Abständen Sicherungen des Nutzerinhalts in einem Google Cloud Storage-Bucket im Projekt des Nutzers, damit der Nutzerinhalt bei einem fehlerhaften oder gelöschten VM-Laufwerk nicht versehentlich verloren geht. Standardmäßig speichert eine Cloud Datalab-Instanz den gesamten Nutzerinhalt auf einer zugeordneten Festplatte und das Sicherungsdienstprogramm wird im Stamm dieser Festplatte ausgeführt. Der Sicherungsjob wird in Abständen von zehn Minuten ausgeführt. Er erstellt eine ZIP-Datei der ganzen Festplatte, vergleicht sie mit der letzten Sicherungs-ZIP-Datei, lädt die ZIP-Datei hoch, wenn zwischen den beiden Dateien ein Unterschied besteht und wenn genügend Zeit zwischen den neuen Änderungen und der letzten Sicherung vergangen ist. Cloud Datalab lädt die Sicherungsdateien in Google Cloud Storage hoch.

Cloud Datalab behält die letzten zehn stündlichen Sicherungen, sieben täglichen Sicherungen und 20 wöchentlichen Sicherungen bei und löscht ältere Sicherungsdateien, um Speicherplatz zu sparen. Wenn Sie Sicherungen deaktivieren möchten, fügen Sie dem Befehl datalab create das Flag --no-backups hinzu, wenn Sie eine Cloud Datalab-Instanz erstellen.

Der Name jeder Sicherungsdatei besteht aus der VM-Instanzzone, dem Instanznamen, dem Pfad des Notebooksicherungsverzeichnisses innerhalb der Instanz, dem Zeitstempel und einem Tag für stündliche, tägliche oder wöchentliche Sicherung. Standardmäßig versucht Cloud Datalab den Sicherungspfad $project_id.appspot.com/datalab_backups zu erstellen. Wenn dieser Pfad nicht erstellt werden kann oder wenn der Nutzer keine ausreichenden Berechtigungen hat, wird versucht, einen Pfad $project_id/datalab_backups zu erstellen. Wenn dieser Versuch fehlschlägt, können keine Sicherungen in Google Cloud Storage gespeichert werden.

Sicherungen wiederherstellen

Zur Wiederherstellung einer Sicherung wählt der Nutzer die Sicherungsdatei in Google Cloud Storage aus, indem er VM-Zone, VM-Name, Notebookverzeichnis und den für Menschen lesbaren Zeitstempel prüft.

Pfad für Beispielsicherungsdatei: gs://myproject/datalab-backups/us-central1-b/datalab0125/content/daily-20170127102921 /tmp/backup0127.zip

Diese Beispielsicherung wurde für die VM datalab0125 in Zone us-central1-b erstellt und enthält den gesamten Inhalt unter dem /content-Verzeichnis des Notebooks. Sie wurde als täglicher Sicherungspunkt am 01/27/2017 um 10:29:21 erstellt.

Eine Sicherungs-ZIP-Datei kann aus dem Browser oder mit dem Tool gsutil heruntergeladen werden, das im Rahmen der Google Cloud-SDK-Installation installiert wird.

  • Wenn Sie den Browser verwenden möchten, öffnen Sie die Google Cloud Console und wählen dort im Navigationsmenü die Option Storage aus. Suchen Sie den Cloud Datalab-Sicherungs-Bucket, wählen Sie dann die ZIP-Datei aus und laden Sie sie auf die Festplatte herunter.

  • Führen Sie gsutil cp gs://backup_path destination_path aus, um mit gsutil die Sicherungsdatei herunterzuladen. Beispiel: Zum Sichern und Extrahieren der oben beschriebenen Beispiel-ZIP-Datei führen Sie folgenden Befehl aus:

    gsutil cp 
    gs://myproject/datalab-backups/us-central1-b/datalab0125/content/daily-20170127102921
    /tmp/backup0127.zip
    unzip -q /tmp/backup0127.zip -d /tmp/restore_location/

Mit Daten arbeiten

Cloud Datalab kann auf Daten zugreifen, die an einem der folgenden Orte gespeichert sind:

  • Google Cloud Storage: Auf Dateien und Verzeichnisse in Cloud Storage kann programmgesteuert mit den datalab.storage-APIs zugegriffen werden (siehe die Notebookanleitung /datalab/docs/tutorials/Storage/Storage APIs.ipynb).

  • BigQuery: Tabellen und Ansichten können mit SQL und datalab.bigquery-APIs abgefragt werden (siehe die Notebookanleitung datalab/docs/tutorials/BigQuery/BigQuery/BigQuery APIs.ipynb).

  • Lokales Dateisystem im nichtflüchtigen Speicher: Sie können Dateien erstellen oder in das Dateisystem im nichtflüchtigen Speicher kopieren, der an die Cloud Datalab-VM angehängt ist.

Wenn die Daten an einem anderen Ort gespeichert sind – lokal oder in einer anderen Cloud –, können Sie sie mit dem gsutil-Tool oder mit dem Cloud Storage Transfer Service in Cloud Storage übertragen.