Das Open-Source-Projekt Apache Superset der Apache Foundation (ASF) ist eine moderne Business-Intelligence Software mit umfassenden Möglichkeiten zur Datenanalyse und Visualisierung. Das Projekt wurde im Januar 2021 in die Riege der Top-Level Projekte der ASF aufgenommen [1]. Mit Apache Superset lassen sich mit dem „no-code visualisation builder“ sehr schnell moderne Dashboards erstellen.

Die Installation ist am einfachsten unter Docker, Kubernetes oder mit PyPi möglich. Letzteres enthält für das Frontend nur die nach dem Build kompilierten Elemente. Nachträgliche Änderungen oder Weiterentwicklungen lassen sich damit nicht und nur schwierig realisieren.

Wir haben uns deshalb für eine Installation von Grund auf aus den Sourcen entschieden. Sie funktioniert für diverse Unix/Linux-Distributionen und Mac OS. Die Einrichtung erfolgt mit dem Python package manager pip und nodejs. Allerdings gibt es beim Build der Applikation eine Reihe nicht vorhersehbarer Hürden, für die leider in der Dokumentation [2] die entscheidenden Hinweise fehlen.

Nach einiger Recherche gelang uns aber die erfolgreiche Einrichtung unter RHEL 8.7 und auch unter Debian/Ubuntu. Dieser Blogbeitrag soll dabei unterstützen die Einrichtungshürden von Apache Superset zu überwinden und einen besseren Start zu ermöglichen.

Vor der Installation – Vorbereitung mit python und nodejs

Diese Anleitung bezieht sich auf die Apache Superset Version 2.1.0 unter RedHat 8.7. Generell ist es ratsam der ständig aktualisierten offiziellen Dokumentation zur Einrichtung zu folgen, um auf dem neuesten Stand zu sein. Die dort aufgelisteten benötigten Softwarepakete müssen installiert werden. Bezüglich Python ist jedoch unbedingt die Version 3.8 zu installieren:

  sudo yum install python38
  sudo yum install python38-devel
  sudo yum install python38-pip
  sudo yum install python38-wheel

NodeJS wird in Version 16 benötigt. Installiert wird diese Version beispielsweise als AppStream Modul mit folgendem Befehl:

  sudo dnf module install nodejs:16

Danach erstellt man ein Python Virtual Environment wie in der Dokumentation beschrieben und aktiviert es. Abweichend zur Dokumentation werden einige Module in speziellen Versionen benötigt:

  pip install sqlparse==’0.4.3′
  pip install pillow
  pip install marshmallow-enum

Jetzt sind die Vorbereitungen abgeschlossen und die eigentliche Installation von Apache Superset kann beginnen.

Installation Superset mit python

Zunächst muss die aktuelle Version, in unserem Fall 2.1.0, in das oben erstellte Python Virtual Environment herunter geladen und entpackt werden:

  cd venv
  wget https://dist.apache.org/…
  tar -xvzf apache-superset-2.1.0-source.tar.gz
  cd apache-superset-2.1.0rc3

Jetzt kann die Installation gestartet werden:

  pip install -e .

Diese sollte nach den obigen Ergänzungen und Einrichtung der passenden Python Version 3.8 und Aktualisierung von pip3.8 im Virtual Environment erfolgreich durchlaufen.

Konfiguration von Superset

Als nächstes muss die Superset Konfigurationsdatei editiert werden:

  cd ../bin
  nano superset_config.py

Hier werden die URL zur mitgelieferten SQLite Demo-Datenbank, der Schlüssel für die session cookies und Verschlüsselung in der Datenbank sowie optionale Sprachen angepasst:

  SECRET_KEY = ‚your-supersecret-password-123‘
  SQLALCHEMY_DATABASE_URI = ’sqlite://///home//username//venv//superset.db‘
  LANGUAGES = {
      ‚de‘: {‚flag‘: ‚de‘, ’name‘: ‚Deutsch‘},
      ‚en‘: {‚flag‘: ‚us‘, ’name‘: ‚English‘},
  }

Einrichtung und Konfiguration der Superset Demo-Datenbank

Für die mitgelieferte Demo-Datenbank sind zunächst eine Initialisierung und die Einrichtung eines Admin-User notwendig, bevor die Beispieldaten geladen werden:

cd ../apache-superset-2.1.0rc3/
export FLASK_APP=superset
superset db upgrade
superset fab create-admin

Wir haben die Erfahrung gemacht, dass das Laden der Beispieldaten abbricht, weil in einigen Fällen die Anzahl der Datensätze zu groß angesetzt ist. Deshalb muss die Chunksize in einigen Dateien auf 1 geändert werden:

  sed -i ’s/chunksize=500/chunksize=1/g‘ $(find ~/superset/apache-superset-2.1.0rc3/superset/examples/. -maxdepth 1 -type f)

  sed -i ’s/chunksize=50/chunksize=1/g‘ $(find ~/superset/apache-superset-2.1.0rc3/superset/examples/. -maxdepth 1 -type f)

  sed -i ’s/CHUNKSIZE = 512/CHUNKSIZE=1/g‘ $(find ~/superset/apache-superset-2.1.0rc3/superset/datasets/commands/importers/v1/. -maxdepth 1 -type f)

Die Bespieldaten können nun geladen werden:

  superset init
  superset load_examples

Build des Superset Frontend

Jetzt muss noch das Frontend erstellt werden. Dabei kam es zu einem Fehler beim Download des nodejs-Moduls „puppeteer“. Daher ist folgende Definition wichtig, ohne die der npm build Prozess sonst abbricht:

  # Build javascript assets
  cd superset-frontend
  # skip faulty puppeteer download
  # https://devdocs.io/…
  export PUPPETEER_SKIP_DOWNLOAD=true

Jetzt wird das Frontend gebaut:

  npm ci
  npx update-browserslist-db@latest
  # try to install currencyformatter.js into pluginplugin-chart-handlebars
  npm install currencyformatter.js –save
  npm run build

Fertig! – Start des Superset Servers

Nachdem das Frontend erstellt ist, kann der Superset Server gestartet werden. Der Port (im Beispiel 8088) und die IP (im Beispiel 127.0.0.1) können angepasst werden. Um Superset von außerhalb des Hosts erreichbar zu machen, sollte der Server natürlich nicht an localhost (127.0.0.1) gebunden werden.

  cd ..
  superset run -p 8088 -h 127.0.0.1 –with-threads –reload –debugger

Es kann vorkommen das Firewallregeln den Zugriff auf die Superset Instanz verhindern, im besonderem bei neu eingerichteten virtuellen Maschinen. Daher ist es sinnvoll, entsprechende Firewall Regeln zu definieren:

  sudo firewall-cmd –zone=public –permanent –add-service=http
  sudo firewall-cmd –zone=public –permanent –add-port 8088/tcp
  sudo firewall-cmd –reload

Mit den oben beschriebenen Hinweisen zur Installation von Apache Superset steht eine moderne Open Source Business-Intelligence Umgebung mit umfassenden Möglichkeiten zur Datenanalyse und Visualisierung zur Verfügung.

Gerne übernehmen wir auch die Ersteinrichtung vor Ort oder Remote gemeinsam mit Ihnen. Profitieren Sie von unserer langjährigen Erfahrung mit analytischen Applikationen und Datenintegration.  Kontaktieren Sie uns für ein unverbindliches Gespräch oder lassen Sie uns gemeinsam über die Umsetzung Ihrer fachlichen Anforderungen für einen ersten Business Case sprechen.

Quellen:

[1] https://news.apache.org/foundation/entry/the-apache-software-foundation-announces70
[2] https://superset.apache.org/docs/installation/installing-superset-from-scratch

Firmenkontakt und Herausgeber der Meldung:

DataIntelligence GmbH
Siemensstraße 8a
61352 Bad Homburg
Telefon: +49 (6172) 483129
http://www.dataintelligence.de

Ansprechpartner:
Dipl.-Ing. Michael Beth
Geschäftsführer
Telefon: +49 (6172) 483-129
E-Mail: info@DataIntelligence.de
Für die oben stehende Pressemitteilung ist allein der jeweils angegebene Herausgeber (siehe Firmenkontakt oben) verantwortlich. Dieser ist in der Regel auch Urheber des Pressetextes, sowie der angehängten Bild-, Ton-, Video-, Medien- und Informationsmaterialien. Die United News Network GmbH übernimmt keine Haftung für die Korrektheit oder Vollständigkeit der dargestellten Meldung. Auch bei Übertragungsfehlern oder anderen Störungen haftet sie nur im Fall von Vorsatz oder grober Fahrlässigkeit. Die Nutzung von hier archivierten Informationen zur Eigeninformation und redaktionellen Weiterverarbeitung ist in der Regel kostenfrei. Bitte klären Sie vor einer Weiterverwendung urheberrechtliche Fragen mit dem angegebenen Herausgeber. Eine systematische Speicherung dieser Daten sowie die Verwendung auch von Teilen dieses Datenbankwerks sind nur mit schriftlicher Genehmigung durch die United News Network GmbH gestattet.

counterpixel