Log in to leave a comment
No posts yet
Wenn Sie als Einzelentwickler darauf warten, dass das Budget für ein kostenpflichtiges BI-Tool genehmigt wird, und sich schließlich entscheiden, Dashboards selbst in Ihre Pipeline zu integrieren, ist Redash die realistischste Alternative. Es reicht jedoch nicht aus, nur Abfrageergebnisse zu visualisieren. In dem Moment, in dem schwere Aggregationsabfragen die Produktions-DB lähmen oder sensible Kundendaten auf einem mit dem Marketing-Team geteilten Dashboard exponiert werden, öffnet sich das Tor zur Hölle. Hier sind konkrete Konfigurationsmethoden zusammengefasst, um Stabilität auf Enterprise-Niveau zu erreichen und gleichzeitig das Infrastrukturbudget zu schonen.
Es kommt in frühen Startups häufig vor, dass Analyse-Abfragen die Ursache für Service-Ausfälle sind. Es ist riskant, Abfragen mit komplexen Joins jedes Mal direkt auf der Produktions-DB auszuführen. Mit der Query Results Data Source (QRDS) von Redash können Sie die Last physisch vom Produktionsserver trennen. QRDS funktioniert so, dass die Quelldaten in die interne SQLite-Engine von Redash verschoben und dort verarbeitet werden.
In der Praxis lässt sich die DB-Last selbst bei Spezifikationen auf AWS t3.medium-Niveau durch den Einsatz von QRDS um mehr als 80 % reduzieren. Aktivieren Sie zunächst QRDS in den Datenquelleneinstellungen. Schreiben Sie eine schwere Aggregationsabfrage, merken Sie sich deren ID-Nummer und rufen Sie diese in einem anderen Abfragefenster im Format SELECT * FROM cached_query_123 auf. Die Struktur sorgt dafür, dass die Produktions-DB nur ein einziges Mal abgefragt wird und Dashboard-Nutzer lediglich die gecachten Ergebnisse sehen.
Ein wichtiger Punkt dabei ist das Management der Background-Worker. Ein Celery-Worker verbraucht bei der Verarbeitung von Abfrageergebnissen normalerweise etwa 200 MB bis 400 MB Speicher. Wenn die Anzahl der wartenden Abfragen unter dem Pfad /status.json kontinuierlich ansteigt, müssen Sie den WORKERS_COUNT anpassen. Seien Sie vorsichtig: Wenn Sie nur die Anzahl der Worker erhöhen, während der Speicher knapp ist, wird die Instanz abstürzen.
Datenaustausch ist ein zweischneidiges Schwert. Wenn Sie dem Marketing- oder Planungsteam Berechtigungen erteilen, müssen Sie unbedingt eine separate View Only-Gruppe erstellen und zuweisen. Es hat Priorität zu verhindern, dass diese versehentlich Abfragen ändern oder die Tabellenstruktur durchsuchen.
Um Sicherheitsvorfälle von vornherein auszuschließen, erstellen Sie auf der Ebene der DB-Engine ein neues Read-only-Konto, das nur über SELECT-Berechtigungen verfügt. Definieren Sie anschließend Views, in denen sensible Informationen wie E-Mail-Adressen oder Telefonnummern mit der SQL-Funktion CONCAT maskiert werden (z. B. jo**@gm****.com). Redash wird nur mit diesen Views verbunden. Analysten erhalten so die benötigten statistischen Werte, können aber niemals die Originaldaten einsehen.
Externe Angriffe werden über Nginx-Einstellungen abgewehrt. Es gehört zum Standard, jeglichen Zugriff außerhalb der festen Unternehmens-IP und des internen VPN-Bereichs mit der Direktive deny all zu blockieren. Zusätzlich verhindert das Aktivieren der Umgebungsvariable REDASH_DISABLE_PUBLIC_URLS, dass ohne Wissen des Administrators öffentliche URLs erstellt werden, über die Daten nach außen abfließen könnten.
Dashboards sind nicht nur dann sinnvoll, wenn man sie gerade ansieht. Wenn bestimmte Kennzahlen einen Schwellenwert überschreiten, sollte das System von sich aus Meldung machen. Durch die Verknüpfung der Redash Alert-Funktion mit einem Slack-Webhook können Entwickler sofort eingreifen, wenn beispielsweise die Zahlungsfehlerrate steigt oder Serverfehler auftreten.
Wenn Sie {{ALERT_NAME}} und {{QUERY_RESULT_VALUE}} in das Vorlagenformat der Benachrichtigung aufnehmen, können Sie den Ernst der Lage allein durch die Slack-Nachricht sofort einschätzen. Mit diesem System wird die Zeit von der Fehlererkennung bis zum Beginn des Debuggings mehr als halbiert.
Wenn Sie jedoch bei jeder kleinsten Änderung Benachrichtigungen senden, werden diese aufgrund von „Alarm-Müdigkeit“ letztlich ignoriert. Nutzen Sie die Einstellung Just Once, damit Benachrichtigungen nur gesendet werden, wenn ein Wert zum ersten Mal den Schwellenwert überschreitet und wenn er wieder in den Normalbereich zurückkehrt. Es ist zudem komfortabel, in die Abfrage Logik einzubauen, die anstelle von Absolutwerten die Steigerungsrate im Vergleich zur Vorstunde berechnet; so müssen Schwellenwerte bei wachsendem Service nicht jedes Mal manuell angepasst werden.
Wenn Sie täglich ein bis zwei Stunden mit einfachen Datenextraktionsanfragen verschwenden, ist das ein Zeichen dafür, dass Sie Abfrageparameter nicht richtig nutzen. Durch das Einfügen von Ausdrücken wie {{ date_range }} in die Abfrage erscheint oben im Dashboard ein Widget zur Datumsauswahl. Ermöglichen Sie es nicht-technischen Abteilungen, Daten selbst zu extrahieren, indem sie den Zeitraum eigenständig anpassen.
Um Abfragefehler durch Tippfehler zu vermeiden, wird der Typ Dropdown List empfohlen. Für Daten, die sich häufig ändern (wie Produktlisten), können Sie eine Query Based Dropdown List verknüpfen, damit die Liste automatisch aktuell bleibt.
Aus Sicherheitsgründen sollte auf Texteingabetypen verzichtet werden. Da diese als Einfallstor für SQL-Injection-Angriffe dienen können, erlaubt Redash dies nur eingeschränkt für Nutzer mit Administratorrechten. Für Dashboards allgemeiner Nutzer ist es sicherer, nur Datumswähler oder Dropdowns bereitzustellen, bei denen nur validierte Werte ausgewählt werden können. Wenn Sie eine solche Umgebung schaffen, gewinnen Entwickler Zeit, um sich auf die Implementierung der Kernlogik zu konzentrieren.