Voilà vs. Panel

Ein großer Unterschied zwischen Panel und Voilà besteht in der Verarbeitung der Notebooks: Voilà baut direkt auf dem Notebookformat auf und übernimmt die gesamte Ausgabe in das Voilà-Dashboard, während in Panel die Ausgabe einer Notebook-Zelle explizit als Panel-Objekt deklariert werden muss. Voilà hat daher den Vorteil, dass bestehende Notizbücher unverändert verwendet werden können. Wenn jedoch nicht alle Notebook-Zellen in das Dashboard übernommen werden sollen, müssen zwei ähnliche Notebooks gepflegt werden – eines für Literate Programming und eines für das Dashboard. Soll in einem Dashboard jedoch die umgekehrte Pyramide für das Storytelling verwendet werden, sind in beiden Fällen zwei Notebooks erforderlich.

Skalierbarkeit

Voilà und Panel basieren auf Tornado, aber sie unterscheiden sich dadurch, dass Voilà für jede Person einen neuen Jupyter-Kernel startet, während der Bokeh-Server mehrere Personen mit demselben Python-Prozess bedient. Dieser Unterschied hat im Wesentlichen zwei Auswirkungen:

  • Der Overhead pro Person für ein Dashboard ist beim Bokeh-Server viel geringer als bei Voilà: Nachdem die Bibliotheken importiert sind, fällt nur noch ein winziger Overhead für die Erstellung jeder neuen Session an. Für eine Session, die pandas und Matplotlib importiert, beträgt der Overhead pro Benutzer ca. 75 MB, und die Anzahl der Personen, die ein Voilà-Server für eine bestimmte Anwendung verarbeiten kann, verringert. Auch sind die Start- und Datenzugriffszeiten meist langsamer.

  • Da sich ein Bokeh-Server einen einzigen Prozess für mehrere Sessions teilt, können Daten oder Verarbeitungen gegebenenfalls auch zwischen den verschiedenen Sessions geteilt werden.

Multi-Page-App

Voilà ist nicht für mehrseitige Anwendungen konzipiert während Panel mehrere Optionen bietet für die Erstellung von mehrseitigen Apps bietet, einschließlich Pipelines und Übersichtsseite mit einer Sammlung unabhängiger Dashboards und Apps.

Autorisierung und Authentifizierung

Üblicherweise sollte das Dashboard nicht für die Authentifizierung und Autorisierung verwendet werden, sondern an einen Dienst delegiert werden. ContainDS Dashboards ist ein Beispiel für eine JupyterHub-Erweiterung, die dies Dashboard-unabhängig tut. Authentifizierung und Autorisierung kann mit einem der folgenden Tools auch über einen Webserver erfolgen:

Wenn ihr dennoch die Dashboarding-Bibliothek die Authentifizierung machen lassen wollt, gibt es einige Optionen unterschiedlicher Reife:

  • Panel basiert auf Bokeh, das Authentifizierung bietet, und Panel wird mit einer Reihe von OAuth-Anbietern ausgeliefert, z.B. GitHub, GitLab und Azure.

  • Voilà kann die Authentifizierung von JupyterHub wiederverwenden.

BI-Tool

Sowohl Voilà wie auch Panel setzen Programmierkenntnisse voraus, um Dashboards erstellen zu können. Das auf Panel aufbauende Lumen bietet jedoch eine vielversprechend BI-ähnliche Benutzeroberfläche.