Doping für die Analytik: Warum sollten Sie auf Apache Zeppelin achten?

Früher oder später kommt jeder zur Analyse von Daten. In großen Multiplayer-Spielen (und auch im Einzelspielermodus) ohne dies ist es nirgendwo anders. Wie viele Benutzer bevorzugen den neuen Modus? Wo liegen die Schwachstellen der Monetarisierung? wo man Spieleentwickler beobachten kann, um die Beteiligung der Spieler zu erhöhen; und noch eine Million Dinge - alles wird gezählt. Und all dies wirkt sich auf die Entscheidungen aus, die Entwickler dann treffen.

Sie implementieren Analysen jedoch auf unterschiedliche Weise: Jemand kauft Lösungen von Drittanbietern (einfach, aber unflexibel), jemand schreibt für sich selbst (lang und teuer), während jemand nur einige grundlegende Metriken von Programmierern berücksichtigt und sich nicht darum kümmert.

Daher werde ich über ein Tool sprechen, das für alle nützlich sein wird. Diejenigen, die gerade erst mit der Erstellung von Analysen beginnen, können ein System „vom Knie“ von Grund auf neu erstellen, und Unternehmen mit vorgefertigten Lösungen können ihren Ansatz „verbessern“.

Es geht um Apache Zeppelin . Dies ist eine multifunktionale interaktive Shell, mit der Sie verschiedene Datenquellen abfragen, die Ergebnisse verarbeiten und visualisieren können.

Ein ziemlich nahes Analogon ist das Jupyter-Notizbuch, aber Zeppelin ist etwas besser auf die Arbeit mit Datenbanken abgestimmt. Es verwendet das Konzept der "Interpreter" - Plugins, die ein Backend für eine Sprache und / oder Datenbank bereitstellen.

Zeppelin sieht für den Benutzer wie Jupyter aus wie eine Reihe von Notizbuchdateien, die aus Absätzen bestehen, in denen Anforderungen geschrieben und ausgeführt werden. Mit integrierten Visualisierern kann ein Laptop mit einer Reihe von Abfragen problemlos in ein vollwertiges Daten-Dashboard umgewandelt werden.



Wir werden uns nicht absichtlich mit Installations- und Konfigurationsproblemen befassen. Dies finden Sie sowohl in der Dokumentation auf der Site als auch im Netzwerk. Dort finden Sie mehrere Tutorials für verschiedene Datenbanken. Der Zweck des Artikels besteht darin, über die Benutzerseite des Problems, interessante Anwendungen des Tools (einschließlich der nicht offensichtlichsten) und die Vorteile zu sprechen, die Analysten daraus ziehen können, unabhängig davon, welche Lösung sie bereits verwenden.

Als Beispiel möchte ich Ihnen erklären, warum wir es in Pixonic verwenden (nur dann, wenn das Unternehmen bereits über ein eigenes produktives Analysesystem verfügt).

Also, lass uns in Ordnung gehen.

Allesfresser Zeppelin


Verschiedene Datenquellen kombinieren - in einem Dashboard
- einer der Hauptvorteile. Als Teil der Standardassembly ist eine beeindruckende Reihe von Interpreten enthalten (für NoSQL- und relationale Datenbanken).

In der Praxis ergibt dies Folgendes:

  1. Die meisten Unternehmen mit vorhandenen Datenbanken und Analysesystemen können es "out of the box" verwenden (soweit dies für ein Open-Source-Produkt gilt, heh). Enthusiasten mit exotischeren Datenbanken können den Dolmetscher selbst schreiben, da es einen Artikel auf der Produktwebsite gibt.
  2. Auf Wunsch können kleine Unternehmen ihr Analysesystem ausschließlich aus der Datenbank und Zeppelin als Schnittstelle erstellen.
  3. Wie die Erfahrung mit der Kommunikation mit Kollegen zeigt, können Daten für viele aus verschiedenen Quellen stammen und in verschiedenen Datenbanken gespeichert werden (le-e-gashi!). Jemand kann zusätzliche Analysedienste von Drittanbietern verwenden. Dementsprechend haben Analysten manchmal die Aufgabe, untereinander „Freunde“ einer solchen Menagerie zu finden. Mit Zeppelin können Sie für jeden Absatz in einem Notizbuch einen eigenen Interpreter verwenden, mit dem Sie die Ergebnisse von Abfragen an verschiedenen Stellen an verschiedenen Stellen anzeigen können.



Zeppelin + Python / R.


Zeppelin ist nicht nur eine Weboberfläche für verschiedene Datenbanken, sondern kann auch als interaktive Shell für die Ausführung von Skripten in Programmiersprachen fungieren. Es enthält Interpreter für R und Python, daher kann es durchaus eine Alternative zu den üblichen RStudio und Jupyter sein. Ja, es bietet weniger Funktionen als spezialisierte IDEs (zum Beispiel gibt es keine automatische Substitution), aber dies wird durch die Vorteile kompensiert, die wir unten diskutieren werden.

In Verbindung mit demselben Python erhöht sich die Leistung von Zeppelin um ein Vielfaches: Hier können Sie Daten über API von Diensten von Drittanbietern abrufen (siehe vorherigen Absatz) und Daten zusätzlich zu regulären Datenbankabfragen verarbeiten sowie diese Prozesse automatisieren. Zeppelin unterstützt das Aktualisieren von Dashboards nach Krone ohne unnötige Gesten (auch hier zeigt ein kurzer Blick auf die Entscheidungen der Kollegen, dass diese scheinbar triviale Aufgabe manchmal auf sehr listige Weise gelöst werden muss). Nun, für die Süße: Es hat ein eingebautes Versionskontrollsystem - primitiv, aber ausreichend für die meisten Analyseaufgaben.

Wir im Unternehmen verwenden Python zusammen mit AppMetr (internes Analysesystem) aktiv für die komplexe Datenverarbeitung. Die Idee, Zeppelin auszuprobieren, tauchte daher speziell in Bezug auf unsere Skripte auf. Wir sahen darin ein Potenzial, eine Reihe von Routinen zu vereinfachen, die sich beispielsweise auf die Visualisierung der Ergebnisse beziehen.

Visualisieren Sie alles auf der Welt - mit einem Klick


Zeppelin kann die in einem Absatz angezeigten Daten in Form mehrerer grundlegender Visualisierer anzeigen, die nach dem Prinzip der Zusammenfassungsdiagramme arbeiten: In der Benutzeroberfläche werden Felder ausgewählt, auf denen die Achsen aufgebaut werden und wie die angezeigten Werte aggregiert werden. Die resultierenden Diagramme sind anklickbar und erleichtern das Anzeigen von Daten in verschiedenen Abschnitten.

Diese scheinbar bescheidene Funktionalität deckt bis zu 95% der Aufgaben von Analysten bei der Visualisierung von Ergebnissen ab. Sie können den endlosen Export von Downloads nach Excel nur zur grafischen Darstellung stoppen und sogar beängstigende Wörter wie matplotlib, bokeh und ggplot2 vergessen - die Ergebnisse von Skripten werden mit wenigen Klicks auch zu Grafiken.

Bei komplexeren Visualisierungen können die Namen der Grafikbibliotheken jedoch wieder gespeichert werden. Zeppelin verfügt über eine integrierte Integration in die beliebtesten Grafikbibliotheken für Python und R:



Zusammenarbeit und Schnittstellenkonfiguration


Zeppelin kann lokal arbeiten und einfach als Analysetool verwendet werden. Wenn Sie es jedoch auf einem Server bereitstellen, können Sie es in einen Unternehmensanalysedienst mit Autorisierung über LDAP und Zugriffseinstellungen verwandeln, wenn Sie dies wünschen. Abhängig von den Anforderungen an die Analyse kann es als Dashboard für Projektmetriken sowie als allgemeines Repository für Skripte und Downloads oder beispielsweise als Bereich für die Zusammenarbeit von Analysten dienen. Ein schöner Bonus: In Confluence müssen keine Dateien ausgetauscht oder ein neues Dock gestartet werden. Sie können einfach den Link zum Dashboard löschen.

In diesem Zusammenhang spielen die Flexibilität bei der Anpassung der Benutzeroberfläche und die Möglichkeit, einfache Formulare für die Eingabe von Werten zu generieren, eine wichtige Rolle. Natürlich fühlen sich Analysten beim Anblick von SQL-Abfragen und R-Code wohl, aber dies kann unvorbereitete Benutzer in einen Stupor versetzen. Daher können Sie im Zeppelin-Dashboard den Code ausblenden (was beispielsweise für Jupyter ein Problem darstellt), Felder für die Eingabe von Datumsangaben und anderen sich ändernden Parametern erstellen und dem Kunden ein übersichtliches und verständliches Formular geben.

In unserem Unternehmen sind viele Prozesse an die Analyse gebunden. Daher müssen verschiedene Abteilungen regelmäßig eine bestimmte Entladung durchführen, z. B. die Bilanztabelle anhand der neuesten Daten neu berechnen. Skripte wurden für solche Dinge schon lange geschrieben, aber jemand anderes muss sie ausführen. Haben Sie jemals versucht, 20 Spieledesignern die Verwendung von Jupyter beizubringen? Infolgedessen haben wir dieses Problem elegant gelöst, indem wir die Skripte nach Zeppelin verschoben haben, wo DGs beispielsweise die benötigten Daten durch einfaches Klicken auf eine einzelne Schaltfläche abrufen können. Oder nicht einer:



In diesem Moment ist es sehr wichtig, dass die gesamte Vorbereitung und Konfiguration der Schnittstelle ausschließlich von den Analysten selbst durchgeführt wird, ohne dass Programmierer (oder, Gott bewahre, UX-Gräben) einbezogen werden.

Vorteile paralleler Prozesse


Zeppelin arbeitet in mehreren Prozessen, aus denen sich ein interessanter Bonus ergibt - Sie können eine separate Python-Instanz für jeden Laptop und für jeden Benutzer ausführen. Ohne knifflige Einstellungen können Sie also mehrere umfangreiche Verarbeitungsskripte parallel ausführen - einfach auf verschiedenen Laptops - und weiterarbeiten, ohne auf den Abschluss zu warten. Dies funktioniert auch im Fall einer lokalen Kopie. Bei der Bereitstellung auf einem Server ist es möglich, einen Teil der Berechnungen von lokalen Computern im Allgemeinen zu übernehmen und sie auf dem Server auszuführen.



Einbetten von Absätzen in Websites



Wenn Sie Zeppelin auf dem Server bereitgestellt haben, können Sie einen Link zu einem Ihrer Absätze (mit Abfrageergebnissen oder einem Diagramm) abrufen und als Iframe auf der Site veröffentlichen (dies erfolgt ganz einfach, die Site verfügt über ein Tutorial). In der Praxis müssen Analysten selten einige Ergebnisse auf externen Ressourcen veröffentlichen, aber es kann sehr praktisch sein, Visualisierer zu internen Diensten hinzuzufügen (in derselben Konfluenz). So können Sie Berichte erstellen, in denen sich interaktive Formulare und Visualisierer direkt im Text befinden.

Selbstbeschreibende Berichte


Mit der Markdown-Unterstützung können Sie Dashboards zusätzlich zu Grafiken und Tabellen Absätze mit formatiertem Text hinzufügen. Als Ergebnis können Sie visuelle Berichte mit Beschreibungen erstellen, in denen der Benutzer die Daten zu einem Problem sofort sehen, alles in den Diagrammen anzeigen und die Interpretation der Ergebnisse von Analysten lesen kann. Im Gegensatz zu Jupyter, das auch Markdown-Unterstützung bietet, erstellt Zeppelin interaktive Formulare und visualisiert Ergebnisse viel schneller. Das Ergebnis ist genauer und für den Endbenutzer zugänglich, was wichtig ist.

Somit ist es eine schnelle und klare Alternative zur üblichen Analystenforschung. In der Regel ist die Arbeit der Analysten wie folgt strukturiert: Die Analysten erhalten die Aufgabe, einige Aspekte des Spiels zu untersuchen. Sie bereiten Daten vor, testen Hypothesen, visualisieren unterstützende Ergebnisse, beispielsweise mit Diagrammen, und schreiben einen Bericht (z. B. im Zusammenfluss). Dies ist ein korrekter, aber ziemlich sorgfältiger Prozess. In unserem Fall können Sie ohne Zeitverlust einen Laptop mit genau diesen Entladungen und Skripten skizzieren, die Ergebnisse sofort mit Grafiken veranschaulichen und Ihre Schlussfolgerungen in den nächsten Absätzen beschreiben:



Natürlich hat Zeppelin etwas zu schelten, es funktioniert immer noch nicht immer stabil (es ist immer noch Open Source), die Weboberfläche verbraucht viel RAM, jemandem fehlen möglicherweise die Funktionen einer vollwertigen IDE. Es gibt jedoch bereits eine Reihe interessanter Anwenderfälle, in denen dies nützlich sein kann - da es definitiv die Aufmerksamkeit von Analysten verdient ( und je größer die Community, desto besser kann es in Zukunft werden ).

Für kleine Unternehmen kann es das Hauptwerkzeug werden, da Sie der Datenbank ein vollständiges Analysesystem hinzufügen können. Für größere Unternehmen mit einem vorhandenen Analyse-Toolkit - eine nützliche Ergänzung, die das Hauptsystem nicht ersetzt, aber mehrere nützliche Vorteile bietet.

Source: https://habr.com/ru/post/de414921/


All Articles