Contact
QR code for the current URL

Story Box-ID: 1178966

DataIntelligence GmbH Siemensstraße 8a 61352 Bad Homburg, Germany http://www.dataintelligence.de
Contact Mr Dipl.-Ing. Michael Beth +49 6172 483129

Durchstarten mit Datenvisualisation in Apache Superset

In nur einem Tag von der Einrichtung zum Proof of Concept (PoC)

(PresseBox) (Bad Homburg, )
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 plugin\plugin-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

Website Promotion

Website Promotion
The publisher indicated in each case (see company info by clicking on image/title or company info in the right-hand column) is solely responsible for the stories above, the event or job offer shown and for the image and audio material displayed. As a rule, the publisher is also the author of the texts and the attached image, audio and information material. The use of information published here is generally free of charge for personal information and editorial processing. Please clarify any copyright issues with the stated publisher before further use. In case of publication, please send a specimen copy to service@pressebox.de.
Important note:

Systematic data storage as well as the use of even parts of this database are only permitted with the written consent of unn | UNITED NEWS NETWORK GmbH.

unn | UNITED NEWS NETWORK GmbH 2002–2024, All rights reserved

The publisher indicated in each case (see company info by clicking on image/title or company info in the right-hand column) is solely responsible for the stories above, the event or job offer shown and for the image and audio material displayed. As a rule, the publisher is also the author of the texts and the attached image, audio and information material. The use of information published here is generally free of charge for personal information and editorial processing. Please clarify any copyright issues with the stated publisher before further use. In case of publication, please send a specimen copy to service@pressebox.de.