Interaktive Notebooks mit GitHub-Kompatibilität Das können Kajero, BeakerX und Jupyter

Autor / Redakteur: Thomas Joos / Nico Litzel

Mit Kajero erhalten Data Scientists eine Open-Source-Notebook-Lösung auf Basis von Javascript. Die Einträge können über GitHub weitergegeben werden. Kajero bietet die Unterstützung für zahlreiche Graphen, D3, NVD3 und Jutsu.

Firma zum Thema

Ws können bekannte Notebook-Lösungen wie Jupyter oder Kajero?
Ws können bekannte Notebook-Lösungen wie Jupyter oder Kajero?
(Bild: gemeinfrei / Pixabay )

Kajero kann Daten aus verschiedenen Quellen erhalten und dabei auch Daten umstrukturieren. Dazu wird die Open Source Library Reshaper verwendet. Kajero ist relativ leicht zu beherrschen und Anwender können in kurzer Zeit Notebooks erstellen. Das Problem an Kajero ist, dass hier aktuell nicht mehr weiterentwickelt wird. Dennoch setzen viele Datenwissenschaftler auf das Tool, da hier Notebooks schnell erstellt und recht einfach bearbeitet werden können. Mit dem Quellcode können Programmierer darüber hinaus sicher noch Einiges verbessern.

Jupyter

Über die Weboberfläche kann mit „New“ ein neues Notebook erstellt werden. Neben Java und JavaScript stehen hier auch Clojure, Groovy, Kotlin, Python, SQL und Scala zur Verfügung. Werden parallel mehrere Notebooks erstellt, öffnet BeakerX für jedes Notebook eine eigene Registerkarte. Administratoren können über die Browser-Sitzung auch ein Terminal-Fenster für den BeakerX-Container öffnen, um Erweiterungen zu installieren oder Fehler zu beheben.
Über die Weboberfläche kann mit „New“ ein neues Notebook erstellt werden. Neben Java und JavaScript stehen hier auch Clojure, Groovy, Kotlin, Python, SQL und Scala zur Verfügung. Werden parallel mehrere Notebooks erstellt, öffnet BeakerX für jedes Notebook eine eigene Registerkarte. Administratoren können über die Browser-Sitzung auch ein Terminal-Fenster für den BeakerX-Container öffnen, um Erweiterungen zu installieren oder Fehler zu beheben.
(Bild: T. Joos)

Eine Alternative zu Kajero stellt die bekannte Notebook-Lösung Jupyter dar. Durch die Verwendung von BeakerX mit Jupyter lassen sich viele, interessante Möglichkeiten schaffen. BeakerX unterstützt JVM, Spark und bietet eine polyglotte Programmierung. Tabellen, Formulare und Diagramme können interaktiv gestaltet werden. Zusätzlich zu den JavaScript-APIs in BeakerX kann hier auch Python genutzt werden. BeakerX bietet darüber hinaus den Vorteil, auch als Docker-Container betrieben zu werden.

Jupyter-Notebooks mit BeakerX
Jupyter-Notebooks mit BeakerX
(Bild: T. Joos)

Zunächst widmen wir uns den Möglichkeiten von Kajero. Die Notebooks in Kajero sind jederzeit editierbar, auch während des Lesens. Kajero-Notebooks sind Markdown-Dokumente mit angehängtem Skript. Daher sind die Notebooks sehr leicht lesbar. Die Notebooks werden im Browser gerendert, es ist kein Backend erforderlich. Daher können die Notebooks auch sehr leicht geteilt werden, zum Beispiel für GitHub.

Notebooks mit Kajero erstellen

Im NPM-Paket von Kajero sind einige Tools enthalten, mit denen sich leere Notebooks erstellen lassen. Allerdings ist die Editierbarkeit von vorhandenen Notebooks nicht in jedem Fall notwendig, als dass ein neues Notebook erstellt wird. Vorhandene Notebooks können jederzeit angepasst werden. Während der Bearbeitung können auch Datenquellen hinzugefügt oder Quellen entfernt werden.

Beim Speichern des Notebooks nach Änderungen kann ein neues Notebook erstellt und gleich als Markdown exportiert werden. Auch das Exportieren zu HTML ist möglich. Ebenfalls möglich ist das Teilen von Notizbüchern als Gist auf Github. Dabei wird auch eine URL erstellt, mit der Anwender über das Internet auf Notebooks zugreifen können.

Skripte in Kajero-Notebooks ausführen

In Kajero können auch JavaScript-Befehle in den Notebooks gespeichert werden. Die Befehle werden ausgeführt, sobald im Notebook auf den Play-Button geklickt wird. Es gibt auch die Möglichkeit, Code automatisch ausführen zu lassen, wenn das Notebook geöffnet wird. Codeblöcke können so konfiguriert werden, dass nicht der Code angezeigt wird, sondern nur das Ergebnis der Befehle. Neben den weitreichenden Möglichkeiten mit Javascript zu arbeiten, kann Kajero die Daten auch visualisieren.

Anwender können im Editor JSON-Datenquellen steuern. Die Quellen werden verbunden, sobald das Notebook geöffnet wird. Alle Daten in allen Quellen können in den einzelnen Codeblöcken im Notebook genutzt werden. Dazu steht das data-Objekt zur Verfügung. Mit Reshaper können Daten umstrukturiert werden, damit sie einem bestimmten Schema zugeordnet werden können. Auch die Reshaper-Library steht als Open Source zur Verfügung.

Graphen mit Kajero erstellen – D3, NVD3 und Jutsu

Kajero ermöglicht das Erstellen von Graphen auf Basis der Daten und der Codeblöcke in den Notebooks. Mit der Library D3 können interaktive Graphen erstellt werden, auch innerhalb der einzelnen Codeblöcke. Wer komplexere Graphen erstellt werden sollen, dem steht in Kajero auch NVD3 zur Verfügung. Auch diese Bibliothek ist bereits in Kajero integriert.

Wer wenig Erfahrung in der Programmierung von Graphen hat, kann in Kajero auch auf Jutsu setzen. Die Bibliothek ist sehr leicht bedienbar und nutzt parallel Reshaper und Smolder. Mit Jutsu können auch unerfahrene Anwender leicht Graphen erstellen.

Notebooks mit BeakerX

BeakerX bietet zahlreiche Erweiterungsmöglichkeiten und Kernels für Notebooks auf Basis von Jupyter. Auch hier kann in Notebooks mit JavaScript gearbeitet werden, aber auch mit Python und anderen Möglichkeiten. BeakerX kann recht einfach als Docker-Container in Betrieb genommen werden:

docker run -p 8888:8888 beakerx/beakerx

Der Befehl lädt die notwendigen Dateien direkt aus dem Docker-Hub. Nach der Inbetriebnahme des Containers erfolgt die Anmeldung mit der URL und einem Token, zum Beispiel:

http://localhost:8888/?token=3242c696986x986x986986as96x9x69as6d98a69x69y696sa

Die Stärken von BeakerX liegen auch in der effektiven Erstellung von Graphen. Außerdem können auch hier Notebooks über das Internet veröffentlicht werden. Mit interaktiven Tabellen ist das Suchen, Sortieren, Filtern, Formatieren, Ausblenden und Exportieren in CSV oder die Zwischenablage möglich. Dadurch die Daten aus den Notebooks auch direkt in Tabellenkalkulationen genutzt werden. BeakerX ermöglicht das Erstellen von interaktiven Notebooks mit Datentabellen-Widgets. Diese ermöglichen das Sortieren, Filtern, Formatieren und interaktive Plotten mit Zeitreihenunterstützung. Auch Echtzeit-Optionen sind möglich. Natürlich können auch Standard-Diagramme wie Histogramme oder Streudiagramme eingebunden werden. Neben der flexiblen Quellen-Anbindung kann in BeakerX auch mit Spark gearbeitet werden. Der Vorteil bei diesen ganzen Funktionen besteht schlussendlich darin, dass sich der komplette Inhalt eines Notebooks in BeakerX ebenfalls als Gist in GitHub veröffentlicht werden kann.

(ID:47016668)

Über den Autor

 Thomas Joos

Thomas Joos

Freiberuflicher Autor und Journalist