Was ein Notebook ist
Ein Jupyter-Notebook ist ein Dokument, das Code, dessen Ausgabe und
erläuternden Text in einer Datei zusammenhält und zellenweise ausgeführt wird. Die Datei trägt die Endung
.ipynb und enthält beides: Eingabe und die zuletzt erzeugte Ausgabe. Genau darin liegt der Nutzen
für Analytics – eine Auswertung und ihre Begründung stehen nebeneinander – und genau daraus folgen zwei Probleme: der Zustand der Laufzeit und die Reihenfolge der Zellen.
Drei Begriffe, die auseinandergehalten werden müssen
- Notebook – die Datei. Sie liegt bei Colab in Google Drive und enthält Zellen und deren letzte Ausgabe.
- Laufzeit (englisch runtime) – die virtuelle Maschine, auf der der Code ausgeführt wird. Sie gehört Google, wird zugeteilt und wieder eingezogen.
- Kernel – der Python-Prozess in dieser Laufzeit, der die Variablen im Arbeitsspeicher hält. Er ist es, den ein „Sitzung neu starten“ beendet.
Wer diese drei verwechselt, kann die Fehlermeldungen nicht deuten, die entstehen, wenn eines von ihnen verschwindet.
Colab ist eine von Google gehostete Jupyter-Umgebung. Die Notebooks liegen in Google Drive, die
Rechenleistung stellt Google. Es gibt Alternativen mit demselben Dateiformat: Jupyter lokal installiert,
Deepnote, Kaggle Notebooks, ein hochschuleigener JupyterHub. Ein .ipynb wechselt zwischen ihnen
ohne Umbau – die Datei ist der gemeinsame Nenner, nicht die Plattform.
Hinweis. Bei den in dieser Lernumgebung gezeigten Tools handelt es sich um eine Auswahl – diese ist weder als Empfehlung noch als Werbung zu verstehen. Colab steht hier, weil es ohne Installation und ohne Kosten auskommt; alles Gelernte gilt gleichermaßen für jede andere Jupyter-Umgebung.
Inbetriebnahme
Voraussetzung ist ein Google-Konto; installiert wird nichts. Prüfen Sie zuerst, ob Ihr Hochschulkonto Colab freigibt – das entscheidet die Konfiguration der Hochschule, nicht Google. Ist der Dienst dort gesperrt, lesen Sie vor dem Ausweichen auf ein privates Konto den Abschnitt zum Datenschutz weiter unten.
Schritt 5 verdient eine Bemerkung: Der Hardwarebeschleuniger ist verlockend, aber für
pandas nutzlos. Eine Grafikkarte beschleunigt das Training neuronaler Netze, nicht das Gruppieren
einer Tabelle. Wer sie „vorsichtshalber“ anfordert, verbraucht ein knappes Kontingent für nichts.
Zustand: der eigentliche Stoff
Die Laufzeit ist eine virtuelle Maschine, die Ihnen geliehen wird. Sie endet – bei Untätigkeit nach etwa neunzig Minuten, spätestens nach bis zu zwölf Stunden, und sofort, wenn Sie den Browser-Tab schließen. Dabei verschwindet alles, was in ihr lag. Was im Einzelnen verschwindet, hängt davon ab, ob nur der Kernel neu startet, die Laufzeit gelöscht wird oder der Tab morgen wieder aufgeht.
| Was | Sitzung neu starten | Laufzeit trennen und löschen | Tab schließen, morgen wieder öffnen |
|---|---|---|---|
| Das Notebook (Code und Text) | bleibt | bleibt | bleibt (liegt in Drive) |
| Variablen im Arbeitsspeicher | weg | weg | weg |
Dateien unter /content/ |
bleiben | weg | weg |
Mit pip installierte Pakete |
bleiben | weg | weg |
Dateien unter /content/drive/MyDrive/ |
bleiben | bleiben | bleiben |
| Die im Notebook gespeicherten Ausgaben | bleiben sichtbar, sind aber nicht mehr „lebend“ | bleiben sichtbar | bleiben sichtbar |
Die Falle: sichtbare Ausgabe ohne lebende Variable
Wenn Sie ein Notebook morgen wieder öffnen, sehen Sie alle Tabellen und Diagramme von
gestern – sie stehen in der Datei. Der DataFrame, aus dem sie entstanden sind, existiert
allerdings nicht mehr. Die nächste Zelle, die df benutzt, scheitert mit
NameError: name 'df' is not defined, obwohl df zwei Zellen weiter oben scheinbar
gefüllt ist. Dagegen hilft ein Reflex: Laufzeit → Alle
ausführen, bevor irgendetwas anderes versucht wird.
Die Reihenfolge der Zellen
Ein Notebook hat zwei Reihenfolgen: die, in der die Zellen im Dokument stehen, und die, in der
sie ausgeführt wurden. Die zweite steht in den eckigen Klammern links neben jeder Code-Zelle:
[1], [2], [17]. Weichen die beiden voneinander ab, ist das Ergebnis
von einer Vorgeschichte abhängig, die im Dokument nicht steht.
Der Prüfsatz
Ein Notebook ist genau dann brauchbar, wenn es nach Sitzung neu starten und Alle ausführen fehlerfrei von oben nach unten durchläuft und dasselbe Ergebnis liefert. Alles andere ist ein Arbeitsstand, kein Ergebnis. Diese Prüfung dauert eine Minute und gehört vor jede Abgabe – sie ist das Analogon zur Frage aus der Vorlesung, ob ein Untersuchungsdesign nachvollziehbar, transparent und reproduzierbar ist.
Zwei Gewohnheiten, die das erleichtern: Alle import-Anweisungen und
%pip install-Zeilen stehen in der ersten Zelle. Und Zellen, die etwas verändern – Spalten
umbenennen, Werte ersetzen, Zeilen entfernen –, sind so geschrieben, dass ein zweiter Durchlauf nichts kaputt
macht. df = df.drop(columns=["x"]) scheitert beim zweiten Mal;
df = df.drop(columns=["x"], errors="ignore") nicht.
Daten hineinbekommen
Drei Wege, mit sehr unterschiedlichen Eigenschaften. Der erste ist für die Lehre der beste, weil er ohne Zutun reproduzierbar ist: Wer das Notebook öffnet, hat auch die Daten.
Was beim Einbinden von Drive tatsächlich passiert
Der Bestätigungsdialog gibt Colab Zugriff auf das gesamte Drive des angemeldeten Kontos, nicht nur auf einen Ordner. Für eine Übung mit synthetischen Daten ist das unproblematisch. Für ein privates Konto mit Steuerunterlagen und Bewerbungsschreiben ist es eine Entscheidung, die man bewusst treffen sollte – und die man umgehen kann, indem man die Datei einfach hochlädt.
Zugangsdaten
In Lab 03 und Lab 05 verbinden Sie sich mit der Datenbank hotel. Das Notebook des Projekts liest
seine Verbindungs-URL aus dem Secrets-Panel (Name HOTEL_DB_URL) – auch das Kennwort der Leserolle
steht in keiner Code-Zelle, obwohl es im README des Repos öffentlich ist. Ein Notebook, das Sie nach GitHub speichern, nimmt seinen
Inhalt mit – und der Schlüssel steht dann dauerhaft in der Versionsgeschichte, wo ihn Suchmaschinen und
automatische Prüfwerkzeuge finden.
Die Regel für den ganzen Kurs, in einem Satz: Kein Geheimnis in einer Datei, die
weitergegeben wird. Bei Colab heißt das Secrets-Panel, bei einem lokalen Projekt eine
.env-Datei, die in .gitignore steht, bei einem Container eine Umgebungsvariable.
Drei Werkzeuge, ein Grundsatz.
Notebook und Repository
Colab kann ein Notebook direkt aus einem GitHub-Repository öffnen und auch dorthin zurückspeichern. Der Weg hinein läuft über eine URL, die man sich merken kann, weil sie nur den Anfang der GitHub-Adresse ersetzt.
Ein Colab-Speichervorgang nach GitHub erzeugt einen gewöhnlichen Commit – samt
allen Zellausgaben. Das bläht das Repository auf, macht jeden Unterschied unlesbar und kann Daten
preisgeben, die in einer df.head()-Ausgabe stehen. Das Gegenmittel: vor dem Speichern
Bearbeiten → Alle Ausgaben löschen – so liegt auch das Notebook der Fallstudie im Repository
swrobuts/hotel, ohne Ausgaben.
Grenzen, Kosten, Datenschutz
Kostet nichts und garantiert nichts. Es gibt keinen Anspruch auf eine bestimmte Hardware; der Zugang zu Grafikkarten ist ausdrücklich stark eingeschränkt. Die Laufzeit endet bei Untätigkeit und spätestens nach bis zu zwölf Stunden. Wer eine Rechnung braucht, die zu einem bestimmten Zeitpunkt fertig ist, plant nicht mit dem kostenlosen Kontingent.
Die bezahlten Stufen rechnen mit einem Guthaben aus Recheneinheiten; ist es verbraucht, gelten wieder die Regeln der kostenlosen Nutzung. Für die Übungen dieses Kurses ist keine bezahlte Stufe nötig. Das befristete kostenlose Hochschulangebot von Google gilt ausdrücklich nur für Einrichtungen in den USA und steht deutschen Hochschulen nicht offen.
Laufzeiten und Drive liegen bei Google in den USA. Jede hochgeladene Datei mit Personenbezug ist damit eine Übermittlung in ein Drittland. Für die Übungen dieses Kurses ist das ohne Belang, weil ausschließlich synthetische Daten verwendet werden – und genau deshalb wird das so gehandhabt.
Echte Kunden-, Personal- oder Studierendendaten, auch aus Praxisprojekten und Abschlussarbeiten. Wer für eine Arbeit mit Unternehmensdaten rechnen muss, klärt das vorab mit dem Unternehmen und weicht auf eine lokale Installation oder eine hochschuleigene Umgebung aus. Das ist keine Formalie: Der Betrieb einer Auswertung ist eine Verarbeitung, und die braucht eine Rechtsgrundlage.
Colab schlägt Code vor und sendet dazu Kontext an Google. In Grundlagenveranstaltungen lässt sich das je Notebook abschalten – aus demselben Grund, aus dem man in einer Klausur keinen Taschenrechner mit gespeicherten Formeln zulässt: Der Übungsgewinn liegt im Selbstschreiben.
„Sitzung abgestürzt nach Verwendung des gesamten RAM“ ist eine Größenangabe: Der Arbeitsspeicher der Laufzeit war voll. Gegenmittel in dieser Reihenfolge: nur benötigte Spalten lesen
(usecols=), Datentypen setzen (dtype=), in Abschnitten lesen
(chunksize=). Erst danach lohnt der Gedanke an mehr Hardware.
Übungen
Fünf Übungen. Zwei davon sind Checklisten, die Sie in Colab selbst abarbeiten – dafür brauchen Sie ein zweites Browserfenster. Die drei anderen prüfen, ob das Modell von Laufzeit und Zustand sitzt.
Zusammenfassung
- Notebook, Laufzeit und Kernel sind drei verschiedene Dinge. Die Datei bleibt, die Maschine wird eingezogen, der Prozess mit den Variablen endet.
- Sichtbare Ausgabe ist kein Beweis für eine lebende Variable. Der erste Handgriff nach dem Öffnen eines alten Notebooks ist Alle ausführen.
- Ein Notebook ist brauchbar, wenn es nach einem Neustart von oben nach unten fehlerfrei durchläuft. Diese Prüfung dauert eine Minute und gehört vor jede Abgabe.
- Was überleben soll, gehört nach Drive oder wird per URL gelesen;
/content/verschwindet mit der Laufzeit. - Zugangsdaten gehören ins Secrets-Panel, nie in eine Code-Zelle. Ein Speichern nach GitHub nimmt den Inhalt des Notebooks samt Ausgaben mit.
- Kostenlose Nutzung heißt: keine garantierte Hardware, keine garantierte Laufzeit. Für Rechnungen mit Termin ist das keine Grundlage.