Datenvisualisierung/Dashboards

TheOneGuy

Newbie
Registriert
Juli 2024
Beiträge
6
Hallo alle zusammen,

Ich programmiere kleine Tools für meine Arbeitskollegen rund um Themen wie Datenvisualisierung, Datenauswertung, automatisierte Vorgänge, SQL-Abfragen etc. wie z.B. "Wir haben hier 200 Messdateien und brauchen eine bestimmten Wert daraus", "Wir brauchen Werteverläufe aus 1000 Messdateien und das täglich per Knopfdruck" oder "Wir müssen die Daten mit den von Server XY verknüpfen, unserer Programm kann das aber nicht".

Der Einfachheit halber erledige ich das mit VBA in Excel oder mit AutoIt V3 (Danke an unsere IT).

Nun zu meinem Anliegen:
Ich habe eine Excel, welche 24/7 läuft mit einem Werteverlauf-Diagramm, welches sich alle paar Minuten aktualisiert.
Von Excel möchte ich aber weg für dieses Tool und suche daher eine Möglichkeit, das ganze mit einer anderen Open Source Datenvisualisierung/Dashboard/Diagrammdarstellung umzusetzen (Am besten als EXE kompilieren, welche dann auf dem Windows-Rechner läuft).

Bei AutoIT bin ich nicht wirklich fündig geworden, die Möglichkeiten zur GUI sind da eher beschränkt und Charts mit UDFs wie z.B. GrapgGDIPlus waren nicht zufriedenstellend.

Bevorzugt würde ich in Richtung Python gehen, müsste mich dort aber erst einarbeiten. Aber zwecks GUI/Datenvisualisierung über folgendes bei meiner Recherche gestoßen:
  • QT mit PyQT bzw. PySide
  • Plotly
  • Candela

Vielleicht hat ja einer von euch noch einen Tipp/Rat, mit welchen Mitteln ich das umsetzen könnte.
Noch als Hinweis: Ich bin kein Vollblut-Programmierer, sondern komme aus dem Bereich Elektrotechnik/Automatisierungstechnik.

Danke im Voraus.
 
Für sowas habe ich mal zum Ausprobieren Node-RED benutzt. Damit kann man sich ein Dashboard basteln und es im Hintergrund mit wenig Code, da weitestgehend grafisch programmiert, mit Daten füllen. Die Community liefert viele automatisierte Nodes, durch die man zB sowas wie einen Excel-Import mit wenigen Klicks erledigt hat.

Gibt sicherlich noch andere und möglicherweise bessere Tools dafür, aber du kannst es dir ja mal angucken.
 
Hi,

Am besten als EXE kompilieren, welche dann auf dem Windows-Rechner läuft

wäre da eine kleine Webseite / Applikation nicht eine sinnvolle Lösung? Stichwort: client-unabhängig.

Ich denke da an eine kleine Webseite, Backend stellt Daten bereit, sowas wie Chart.JS holt die Daten ab und stellt sie dar.

Wäre das eine Idee?

VG,
Mad
 
  • Gefällt mir
Reaktionen: Raijin
Dashboards oder Report kann man prima mit Microsoft Power BI machen. Das kann auch deine Excel-Tabelle auslesen. Im Prinzip ist Power BI eine Art getunte Pivot-Tabelle.
Das Ganze läuft lokal oder von einem Server aus.

Alternativ kann man auch eine Webseite zusammenklicken, die alle möglichen Daten darstellt. Machbar ist das bspw. mit Saltcorn: https://saltcorn.com/
Eine Webseite hat den Vorteil, dass man nirgends etwas installieren muss (vom Server mal abgesehen) und auch keiner an deinen Skripten und Dateien rumpfuschen kann.

Da ich früher auch mal in der Reporting- und Datenanalyseabteilung einer Firma gearbeitet habe, kann ich dir nur empfehlen, von Excel und VBA weg zu migrieren. Excel ist super um man schnell ein paar kleinere Sachen auszuwerten, aber es ist einfach nicht dafür gedacht, als Datenbank und Reportgenerator zu dienen. Der Feature Creep sorgt dafür, dass man irgendwann dort ankommt. Mein kompliziertestes VBA-Skript lief damals 25 Minuten. Nachdem ich das in C# nachprogrammiert habe, lief die gleiche Aufgabe in <5 Sekunden durch.
 
Wenn du mit Python Arbeiten willst, lies dich in Plotly, bzw. Dash ein. Dazu noch pandas und numpy zum Daten einlesen und aufbereiten.

Mit Plotly kannst du statische Bilder bzw. html Dateien erzeugen, die deine Diagramme enthalten. Vorteil dadurch ist, dass du in der HTML Datei auch nachher nochmal scrollen und Zoomen kannst. Das neue "Bild" kann der User wieder als Bild exportieren.

Willst du eine graphische Oberfläche dazu, kannst du mit Dash arbeiten. Dash wird auch von Plotly entwickelt, und da kannst du dann in python per HTML in python eigene Dashboards bzw. Websites erstellen. Da musst du, bzw. der User dann einfach die URL im browser aufrufen.

Für den Einstieg würde ich tkinter (Python gui framework) und Plotly empfehlen. Das Programm läuft als Konsolenanwendung, und wenn user-input benötigt wird öffnet sich ein tkinter Fenster (Messagebox, Dateibrowser etc) und zum Schluss werden die verarbeiteten Daten in einen Ordner ausgespuckt (Dynamisches Diagramm als HTML, statisches Diagramm als Bild, und ggf. die verarbeitete Datei)

Dash ist an sich viel mächtiger, und erfordert auch mehr Einarbeitung, bietet dafür aber auch die Möglichkeit alles zentral als Serveranwendung laufen zu lassen. Dadurch dass alles im Browser läuft kannst du darin auch dein GUI in "html" und css programmieren. Der Vorteil mit Plotly und Dash ist auch, dass du den Plotly Code, sollte er mal laufen, sehr Einfach nach Dash portieren kannst
 
Wenn das ganze auf einem Server laufen und über einen Webbrowser bedient werden kann/darf, dann würde
ich dir "Grafana" für die Visualisierung empfehlen.
Um die Daten vor der Visualisierung zu bearbeiten, verknüpfen, usw., wäre so etwas wie "Apache NiFi" gut geeignet. Damit kannst du die Daten aus allen möglichen Quellen aggregieren und diese in weiteren Datenbanken hinterlegen, auf welche Grafana dann zugreifen kann.

Apache NiFi ist kostenlos, läuft auf einem Server und lässt sich ebenso über einen Webbrowser bedienen.
Als Alternative zu Grafana gäbe es auch noch "Apache Superset" https://superset.apache.org
 
Vielen Dank für die Vorschläge, die werde ich mir mal in Ruhe durchschauen.
Ich werde leider Lösungen, die entsprechend auf einem Server laufen, nicht durch unsere IT durchbekommen.

Was ich noch am Anfang hätte vermerken sollen: Ich hole Daten per SQL von 2 oder noch mehr Datenbanken und verknüpfe diese miteinander, bevor ich sie im Diagramm darstelle.

Unsere IT ist da eher vom Typ "Verwalter" mit 3 Antworten: Geht nicht. Gibt es nicht. Haben wir nicht.
Und selbst bei ihren zuständigen Hauptthemen muss man alles vorkauen und ständig hinterherlaufen, sonst kommt am Ende nichts Gescheites raus.

Oder 1 Jahr Bewilligung und danach 1 bis 2 Jahre Umsetzung für eine Software-Aufgabe. 😒
 
@TheOneGuy
Es ist ja nicht die IT, die das absegnen muss, sondern die Geschäftsleitung, oder? ;-)
Wenn du der sagst, dass du für die Erfüllung deiner Aufgabe Tool x und Tool y benötigst und das gut darlegen kannst, dann muss dein IT-"Verwalter" springen. Und du musst dich dann nicht ihm gegenüber rechtfertigen sondern er der GF.

Wenn die Daten per SQL kommen, ist das perfekt. Alle hier genannten Anwendungen können darauf zugreifen.
 
  • Gefällt mir
Reaktionen: Raijin
Am besten probierst du mal alle Vorschläge aus bzw schaust dir dazu vielleicht auch nur ein paar Videos an, um einen Eindruck zu bekommen.

Wenn du dann einen Favoriten hast, kannst du dich ja mal an einem rudimentären Prototypen versuchen - der muss ja nicht gleich alle Features bieten, sondern einfach nur als Demonstration mit Dummy Daten herhalten. Damit gehst du dann zu deinem Vorgesetzten und wenn er das gut findet, bekommt die IT eine Order, das möglich zu machen.

Wichtig ist dabei aber, dass du vorbereitet bist und deinen Plan selbstbewusst präsentieren kannst.

Für solche Zwecke sind serverbasierte Anwendungen prädestiniert. Wenn du das quasi wegen der IT als exe Anwendung durchziehen möchtest, bedenke nicht nur die Installation auf allen Mitarbeiter-PCs, sondern auch deren Update, wenn ein Bug auftaucht oder du die Funktion erweitern möchtest. Das kann ein echter Pain In The Ass sein, wenn man das von Hand auf x Systemen ausrollen muss...
 
Zurück
Oben