Kurs
Jupyter Notebooks sind ein fester Bestandteil jedes Data-Science-Workflows – so sehr, dass sie für Unternehmen wie Netflix unverzichtbar sind. Die browserbasierte Arbeitsumgebung in Kombination mit einem reproduzierbaren Dokumentformat hat sie zur Standardwahl von Millionen Data Scientists und Forschenden weltweit gemacht. Jupyter verfügt über eine starke internationale Community aus nahezu allen Ländern der Welt. Aus der Community stammen auch zahlreiche entwickelte Kernel.
JupyterLab ist die Benutzeroberfläche der nächsten Generation für Project Jupyter und bietet alle vertrauten Bausteine des klassischen Jupyter Notebooks wie Notebook, Terminal, Texteditor, Dateibrowser, reichhaltige Ausgaben usw. Anders als die klassischen Notebooks liefert JupyterLab all diese Funktionen in einer flexiblen und leistungsfähigen Oberfläche. Die Grundidee von JupyterLab ist, alle Bausteine aus dem klassischen Notebook – plus neue Funktionen – unter einem Dach zu vereinen.

JupyterLab mit Arbeitsbereich, in dem Notebooks, Textdateien, Terminals und Notebook-Ausgaben miteinander interagieren können.
Lass uns JupyterLab zunächst installieren und starten.
Installation
JupyterLab lässt sich mit conda, pip oder pipenv installieren.
conda install -c conda-forge jupyterlab
or
pip install jupyterlab
or
pipenv install jupyterlab
pipenv shell
Weitere Details findest du in der offiziellen Installationsdokumentation.
JupyterLab starten
Du kannst Jupyter einfach mit folgendem Befehl in der Konsole starten:
jupyter lab
JupyterLab öffnet sich automatisch im Browser mit einer Oberfläche ähnlich der unten gezeigten. Das bedeutet, alles ist bereit und du kannst loslegen.

Der Hauptarbeitsbereich ist der Ort, an dem die eigentliche Arbeit stattfindet. Er umfasst Notebooks, Dokumente, Konsolen, Terminals usw. Doppelklicke einfach auf eine Datei oder ziehe sie in diesen Bereich, um zu starten.
Werde SQL-zertifiziert
SQL-Interface für JupyterLab

Meist liegen die Daten, mit denen wir arbeiten, in Datenbanken. Eine Kernaufgabe von Data Scientists ist es, Daten aus Datenbanken abzurufen und zu analysieren. Daher ist eine nahtlose Verbindung zwischen SQL-Datenbanken und Jupyter Notebook/Lab ideal, um Daten einfacher und effizienter zu beziehen und zu bearbeiten. Diese Anbindung lässt sich auf zwei Arten erreichen:
1. Mit der IPython SQL Magic-Erweiterung
Magic Commands sind praktische Funktionen in Jupyter Notebooks, die häufige Aufgaben in der Datenanalyse vereinfachen. Mit %lsmagic bekommst du eine Übersicht aller verfügbaren Magics.
Die Erweiterung IPython SQL magic ermöglicht es, SQL-Abfragen direkt in Codezellen zu schreiben und die Ergebnisse sofort in pandas DataFrames einzulesen (Quelle). Das funktioniert sowohl in den klassischen Notebooks als auch im modernen JupyterLab.
SQL-Modul im Notebook installieren
!pip install ipython-sql
SQL-Modul laden
%load_ext sql
Der obige Magic-Befehl lädt die ipython-sql-Erweiterung. Wir können uns mit jeder Datenbank verbinden, die von SQLAlchemy unterstützt wird. Hier verbinden wir uns mit einer SQLite-Datenbank. Gib folgenden Befehl in eine Codezelle ein:
%sql sqlite://
Wenn die Ausgabe ‘Connected: @None' lautet, ist die Verbindung hergestellt.
- Datenbank erstellen
Zum Schluss legen wir eine Demotabelle namens EMPLOYEE an, um die Funktion zu zeigen.
%%sql
CREATE TABLE EMPLOYEE(firstname varchar(50),lastname varchar(50));
INSERT INTO EMPLOYEE VALUES('Tom','Mitchell');
INSERT INTO EMPLOYEE VALUES('Jack','Ryan');
Jetzt können wir Abfragen auf unserer Datenbank ausführen.
%sql SELECT * from EMPLOYEE;
----------------------------------
* sqlite://
Done.
Die obige Abfrage liefert folgende Tabelle.

- Mit einer bestehenden Datenbank arbeiten
Wir können uns auch mit einer bestehenden Datenbank über die Magic-Funktion verbinden. In diesem Tutorial nutzen wir die Datenbank SQL_SAFI (Studying African Farmer-led Irrigation (SAFI) database). "Das SAFI Project erforscht Anbaumethoden und Bewässerungssysteme von Landwirtinnen und Landwirten in Tansania und Mosambik. Der Datensatz besteht aus Umfragedaten zu Haushalten und Landwirtschaft" (Quelle). Du kannst ihn hier herunterladen.
#Specifying the path of the database
%sql sqlite:////Users/Parul/Desktop/SQL_SAFI.sqlite
-----------------------------------------------------------
'Connected: @/Users/Parul/Desktop/SQL_SAFI.sqlite'
Die Anweisung oben öffnet die Datenbank SQL_SAFI.sqlite, die unter folgendem Pfad liegt: Users/Parul/Desktop. Lass uns die Tabelle Crops auswählen und ihren Inhalt anzeigen.
%sql select * from Crops

Anzeige der ersten Zeilen der Tabelle Crops
%sql select * from Crops where D_curr_crop = "maize" AND ID <= 3;

Das Ergebnis lässt sich auch in einen pandas DataFrame umwandeln:
result = %sql select * from Crops where D_curr_crop = "maize" AND ID <= 3;
dataframe = result.DataFrame()

dataframe.info()

2. Die jupyterlab-sql-Erweiterung
Bevor wir weitermachen, kurz ein Überblick zu Jupyter-Erweiterungen allgemein.
JupyterLab-Erweiterungen
Erweiterungen gehören zu den nützlichsten Features von JupyterLab und verbessern die Nutzererfahrung spürbar. JupyterLab selbst ist im Kern erweiterbar – Notebook, Terminal und Editor sind jeweils Erweiterungen.
"JupyterLab-Erweiterungen sind npm-Pakete (das Standard-Paketformat in der JavaScript-Entwicklung)" (Quelle). Sie erlauben es, JupyterLab mit neuen Themes, Viewern, Tastenkürzeln, erweiterten Einstellungen und vielem mehr anzupassen. Auf GitHub gibt es viele Community-Erweiterungen. Suche nach dem Thema jupyterlab-extension, um Erweiterungen zu finden.
Für die Installation von JupyterLab-Erweiterungen brauchst du Node.js. Das kannst du entweder über die Website oder wie folgt installieren.
conda install -c conda-forge nodejs
or
brew install node #for MacOS users
Die jupyterlab-sql-Erweiterung fügt JupyterLab eine SQL-Oberfläche hinzu. Das bringt vor allem zwei Vorteile:
- SQL-Tabellen lassen sich per Point-and-Click erkunden.
- Tabellen können mit eigenen Abfragen gelesen und bearbeitet werden.
Mehr dazu findest du im offiziellen GitHub-Repository.
Installation
Installiere jupyterlab-sql in dieser Reihenfolge:
pip install jupyterlab_sql
jupyter serverextension enable jupyterlab_sql --py --sys-prefix
jupyter lab build
Starte anschließend alle laufenden Jupyter-Server neu.
Wichtig: jupyterlab-sql funktioniert nur mit Python 3.5 oder höher.
Erste Schritte
Nach dem Neustart von JupyterLab erscheint im Launcher ein neues SQL-Symbol.

Das bedeutet, alles ist korrekt installiert und du kannst deine Instanz mit einer Datenbank verbinden.
Verbindung
Für die Verbindung zur Datenbank brauchst du eine gültige Datenbank-URL. jupyterlab-sql wurde umfassend mit SQLite-, PostgreSQL- und MySQL-Datenbanken getestet (Quelle). Folge dem SQLAlchemy-Guide zu Datenbank-URLs. Beispiele:
postgres://localhost:5432/postgres
postgres://username:password@localhost:5432/postgres
mysql://localhost/employees
sqlite://
sqlite:///myfile.db
Verbinden wir uns mit der bestehenden SQL_SAFI-Datenbank, die wir zuvor verwendet haben. Klicke im Launcher auf das SQL-Symbol und gib die Datenbank-URL ein. Drücke Enter, um die Verbindung herzustellen.

Sobald die Datenbank verbunden ist, siehst du alle Tabellen in der Datenbank.


Außerdem kannst du eigene SQL-Abfragen schreiben, um gezielt Daten aus den Tabellen zu ziehen.
Fazit
SQL und JupyterLab zusammen heben deine Datenanalyse auf das nächste Level. Die jupyter-sql-Schnittstelle macht es extrem einfach, SQL-Server mit dem Jupyter-Ökosystem zu verbinden und Daten direkt darin zu nutzen – ohne die Jupyter-Oberfläche zu verlassen.
Wenn du mehr über SQL lernen willst, schau dir den DataCamp-Kurs Data-Driven Decision Making in SQL an.
Sieh dir auch unser Tutorial Remote Python and R in SQL an.
