Zum Hauptinhalt springen

Systemanforderungen

LÄMMkom Analyse folgt dem Coasti-Format für Content-Produkte.

Als BI-Tool kommt enweder Apache Superset oder Board zum Einsatz.

Die folgende Spezifikation fokusiert sich größtenteils auf Apache Superset.

Übersicht

Abbildung 1: Übersicht der Datenflüsse

Für LÄMMkom Analyse fließen Daten durch drei Server (beginnend unten in der Abbildung):

  • LISSA-Server (enthält die Datenbank mit LISSA-Rohdaten)
  • Backend-Server (transformiert Daten in die BI-Darstellung)
  • Frontend-Server (stellt BI-Daten für Endanwender:innen bereit)

Diese Trennung erfolgt bewusst, und hat folgende Vorteile:

  • Der für den operativen Betrieb benötigte LISSA-Server bleibt von der BI-Lösung weitestgehend unberührt. Benötigte Daten werden während der Ingestion kopiert.
  • So finden alle rechenintensiven Transformationen ausschließlich auf dem Backend-Server statt.
  • Das schont sowohl den LISSA-Server, als auch den Frontend-Server. Beide sind relevant für das Nutzungserlebnis der Endanwender:innen.
  • Daten sind isoliert: der Frontend-Server hat nur Zugriff auf seine Kopie der BI-Daten. Der Backend-Server erzeugt die BI-Daten, und übergibt sie an den Frontend-Server, hat aber selbst nur Zugriff auf seine eigene eingeschränkte Kopie der LISSA-Rohdaten. Die Datenströme zwischen den Servern sind gerichtet und beschränkt, so kann der Frontend-Server z.b. weder eigenständig eine neue Kopie vom Backend-Server laden, noch auf den LISSA-Server zugreifen.

Hardware Mindestanforderungen

Backend-ServerFrontend-Server SupersetFrontend-Server Board
BetriebssystemUbuntu 24.04 LTSUbuntu 24.04 LTSWindows Server 2019
Prozessorkerne444
Arbeitsspeicher16 GB16 GB16 GB
Speicherplatz150 GB50 GB200 GB

Da Board derzeit noch keine Linux-Umgebung unterstützt, wird derzeit ein Windows-Host benötigt, wenn Board als BI-Frontend zum Einsatz kommt. Für Apache Superset und die Extract-Transform-Load (ETL) Berechnungen auf Backend-Server werden Docker Container verwendet, und es werden Linux-Hosts benötigt.

Datenabruf vom Quellsystem (LISSA-Server)

Für das Bereitstellen von Daten aus LÄMMkom LISSA für Auswertungen in BI-Systemen wird eine direkter Lesezugriff auf die Quelltabellen benötigt. Die Quelltabellen liegen entweder auf einer Progress-, Oracle- oder MSSQL-Datenbank.

Unter Nutzung der erstellten Zugänge werden nächtlich alle benötigten Daten von LÄMMkom Analyse abgerufen. Read-only Berechtigungen sind ausreichend, es werden keine Daten auf dme LISSA-Server bearbeitet.

Progress als Quelldatenbank

Für den Zugriff auf Progress muss Lämmerzahl im Vorweg in Progress einen SQL-Broker für die ODBC-Verbindung bereit stellen, und eine entsprechende Benutzer:in anlegen, welche auf alle LISSA-Tabellen Zugriff hat.

Oracle als Quelldatenbank

Bei Nutzung von Oracle als Quellsystem ist eine Benutzer:in mit Leserechten erforderlich.

Mit nachfolgendem Befehl lässt sich eine solche „ReadOnly“-Benutzer:in anlegen. Der Zugriff lässt sich aber auch auf einzelne benötigte Tabellen limitieren.

CREATE USER ro_linkfish
IDENTIFIED BY ~sichereskennwort~
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;

GRANT CREATE SESSION to ro_linkfish
CREATE ROLE ro_LISSA;

BEGIN
FOR x IN (SELECT * FROM dba_tables WHERE owner='pub') LOOP
EXECUTE IMMEDIATE 'GRANT SELECT ON pub.' || x.table_name || ' TO ro_LISSA';
END LOOP;
END;

GRANT ro_LISSA TO ro_linkfish;

Netzwerk-Verbindungen

  • Zugriff auf Quelldaten: Zum nächtlichen Datenabruf wird der Zugriff auf den LISSA-Server benötigt. Die Port- und Netzwerk-Freigaben sind von der Datenbank abhängig. In der Regel:
    • Vom Backend-Server zum LISSA-Server
    • MSSQL: 1433 TCP
    • Progress: 14011 TCP
    • Oracle: 1521 TCP
  • Zum Übertragen der aufbreiteten BI-Daten wird eine SSH/rsync Verbindung benötigt:
    • Vom Backend-Server zum Frontend-Server
    • SSH: 22 TCP
  • Für das Reporting der Nachtläufe an linkFISH Jobcontrol wird Email Zugang benötigt:
    • Vom Backend-Server zum on-prem Mail-Server
    • Port abhängig von lokaler Konfiguration, üblich sind 25, 465, 587
  • Für den Zugriff der Endanwender:innen auf die BI Dashboards muss der Frontend-Server erreichbar sein:
    • Von LAN zu Frontend-Server
    • HTTP: 80 TCP/UDP
    • HTTPS: 443 TCP/UDP
  • Für die Erreichbarkeit des Frontend-Servers werden eine Domain-Weiterleitung sowie SSL-Zertifikate benötigt.
    • Weiterleitung der gewünschten Domain, innerhalb des LAN zu Frontend-Server
    • Mit on-prem CA signiertes SSL-Zertifkat (fullchain.pem, private_key.pem)
  • Während der Installation oder Wartung:
    • Für den Zeitraum der Installation von LÄMMkom Analyse wird eine Internetverbindung benötigt, um Quellpakete zu installieren. Nach abgschlossener Installation funktionieren alle Systeme offline.
      • Uplink von Backend-Server und Frontend-Server
    • Wartungs-Zugriff
      • Vom Jump-Host (e.g. TeamViewer) auf Backend- und Frontend-Server
      • SSH: 22 TCP
      • HTTP: 80 TCP/UDP
      • HTTP: 8088 TCP/UDP
      • HTTPS: 443 TCP/UDP

Freigeschaltete Domains

Auch mit eingeschränktem Internet-Zugang ist eine Installation möglich. Mintestens die folgenden Domains müssen erreichbar sein:

# Docker
auth.docker.io
registry-1.docker.io
index.docker.io
dseasb33srnrn.cloudfront.net
production.cloudflare.docker.com

# Superset: headless chrome, selenium
dl.google.com
storage.googleapis.com

# Python
pythonhosted.org
files.pythonhosted.org
python.org
pypi.python.org
pypi.org

# linkFISH Connectr, ODBC Treiber
packages.microsoft.com
share.coasti.org

Ich würde schreiben "alle modernen Browser werden unterstützt", die Sektion entfernen, und ggf auf Supersets oder Board Spec verlinken.

Alternative Installations-Szenarien

This is for board:

Option nur ein einzelner Windows Server

  • Wenn Duckdb: keine Netwerk mehr nötig
  • Falls andere Datenbank (DB):
    • Netzwerk Zugriffe vom Frontend- und Backend-Server zu dem DB-Server
    • Port- und Netzwerk-Freigaben vom DB-Server abhängig. In der Regel:
      • MSSQL: 1433 TCP
      • PostgreSQL: 5432 TCP

Warum Duckdb:

  • kein extra Database-Server nötig, nur eine einzelne Datei zu verwalten
  • Performance
  • keine Netzwerk / Firewall-Einstellungen nötig
  • Isolation: keine Mischung von unseren Daten mit anderen Daten
  • Frontend hat nur Zugriff auf Frontend-Daten -->