Ich möchte Ihnen die Auswertung des Berichts von Igor Strykhar aus dem Jahr 2017 'ClickHouse – visuelle und schnelle Datenanalyse in Tabix' vorstellen.
Web-Oberfläche für ClickHouse im Projekt Tabix.
Hauptfunktionen:
- Arbeitet direkt mit ClickHouse aus dem Browser, ohne dass zusätzliche Software installiert werden muss.
- Query-Editor mit Syntaxhervorhebung.
- Autovervollständigung von Befehlen.
- Werkzeuge zur grafischen Analyse der Abfrageausführung.
- Farbschemata zur Auswahl.



Ich bin technischer Direktor von СМИ2. Wir sind ein Nachrichtenaggregator für den Nachrichtenaustausch. Wir speichern viele Daten, die wir von unseren Partnern erhalten und in ClickHouse registrieren – etwa 30.000 Anfragen pro Sekunde.
Das sind zum Beispiel Daten wie:
- Klicks auf Nachrichten.
- Impressionen von Nachrichten im Aggregator.
- Impressionen unserer Banner im Netzwerk.
- Und wir registrieren Ereignisse von unserem eigenen Zähler, ähnlich wie Yandex.Metrica. Das ist unsere eigene Mikroanalyse.

Wir hatten vor ClickHouse ein sehr turbulentes Leben. Wir hatten große Schwierigkeiten, diese Daten irgendwo zu lagern und sie zu analysieren.
Das Leben vor ClickHouse – infiniDB
Das erste, was wir hatten, war infiniDB. Es hat bei uns 4 Jahre gehalten. Wir haben es nur mit Mühe zum Laufen gebracht.
- Sie unterstützt keine Clusterbildung oder Sharding. Solche intelligenten Funktionen waren nicht standardmäßig integriert.
- Sie hatte Probleme beim Laden von Daten. Es gab nur ein spezifisches Konsolenwerkzeug, das nur CSV-Dateien laden konnte, und das auf eine sehr unklare Weise.
- Die Datenbank ist einsträngig. Man konnte entweder schreiben oder lesen. Aber sie erlaubte die Verarbeitung großer Datenmengen.
- Und sie hatte noch einen interessanten Workaround. Jede Nacht musste der Server neu gestartet werden, sonst funktionierte er nicht.
Sie lief bis Ende 2016 bei uns, als wir vollständig auf ClickHouse umgestiegen sind.
Das Leben vor ClickHouse — Cassandra
Da infiniDB einsträngig war, haben wir entschieden, dass wir eine mehrsträngige Datenbank benötigen, in der wir viele Streams gleichzeitig schreiben können.
Wir haben viele interessante Dinge ausprobiert. Dann haben wir beschlossen, Cassandra auszuprobieren. Mit Cassandra lief alles hervorragend. 10.000 Anfragen pro Sekunde beim Schreiben. 2.000 Anfragen beim Lesen.
Aber auch sie hatte ihre eigenen Herausforderungen. Einmal im Monat oder alle zwei Monate kam es zu einer Desynchronisierung der Datenbank. Dann musste man aufstehen und Cassandra reparieren. Wir haben die Server nacheinander neu gestartet. Und alles lief dann reibungslos und schön.
Das Leben vor ClickHouse – Druid
Dann verstanden wir, dass wir noch mehr Daten schreiben mussten. Im Jahr 2016 begannen wir, Druid zu erkunden.
Druid ist eine Open-Source-Datenbank, die in Java geschrieben wurde. Sie ist sehr spezifisch. Sie eignete sich gut für Clickstream, wenn wir einen Ereignisstrom speichern und dann Aggregationen oder analytische Berichte erstellen mussten.
Druid hatte die Version 0.9.X.
Die Einrichtung der Datenbank selbst ist sehr komplex. Das ist eine Herausforderung der Infrastruktur. Um sie zu installieren, waren viele Hardwarekomponenten erforderlich, und jede Hardware hatte ihre eigene spezifische Rolle.
Um Daten in sie zu laden, musste man eine Art Magie anwenden. Es gibt ein Open-Source-Projekt namens Tranquility, das bei uns im Datenfluss Daten verloren hat. Als wir Daten hochluden, hat es sie verloren.
Irgendwie haben wir damit begonnen, es zu implementieren. Wir waren wie Igel, die sich stachen, aber weiterhin den Kaktus aßen, und haben die Implementierung vorangetrieben. Wir haben etwa einen Monat gebraucht, um die gesamte Infrastruktur dafür vorzubereiten. Das heißt, Server zu bestellen, Rollen zu konfigurieren und die vollständige Automatisierung der Bereitstellung durchzuführen. Das bedeutet, dass im Falle eines Ausfalls des Clusters automatisch ein zweites Cluster gestartet wird.

Doch dann geschah ein Wunder. Ich war im Urlaub und meine Kollegen schickten mir einen Link zu , in dem die Entscheidung von Yandex angekündigt wurde, ClickHouse zu öffnen. Ich sagte, lasst es uns ausprobieren.
Und innerhalb von nur 2 Tagen haben wir ein Test-Cluster für ClickHouse bereitgestellt. Wir begannen, Daten darin zu laden. Im Vergleich zu infiniDB ist das einfach, im Vergleich zu Druid ist es einfach. Im Vergleich zu Cassandra ist es ebenfalls einfach. Denn Daten aus PHP in Cassandra zu laden, ist alles andere als einfach.

Was haben wir erreicht? Eine hohe Performance in der Geschwindigkeit. Eine hohe Performance in der Datenspeicherung. Das heißt, es wird viel weniger Speicherplatz benötigt. ClickHouse ist schnell, es ist sehr schnell im Vergleich zu anderen Produkten.

Beim Start, als Yandex ClickHouse als Open Source veröffentlichte, gab es nur einen Konsolen-Client. In unserem Unternehmen, СМИ2, haben wir beschlossen, einen nativen Web-Client zu entwickeln, um die Möglichkeit zu haben, eine Seite im Browser zu öffnen, eine Anfrage zu schreiben und das Ergebnis zu erhalten, da wir viele Abfragen erstellt haben. Es ist schwierig, in der Konsole zu schreiben. So haben wir unsere erste Version erstellt.

Irgendwo gegen Ende letzten Jahres tauchten auch externe Werkzeuge zur Arbeit mit ClickHouse auf. Dazu gehören Werkzeuge wie:
- .
- .
- . (Jetzt )
- .
- .
Ich werde einige dieser Tools betrachten, d.h. die, mit denen ich gearbeitet habe.

Ein gutes Tool, aber für Druid. Als wir Druid eingeführt haben, habe ich SuperSet ausprobiert. Mir hat es gefallen. Für Druid funktioniert es sehr schnell.
Für ClickHouse ist es nicht geeignet. Es funktioniert zwar, aber es kann nur grundlegende Abfragen wie: SELECT event, GROUP BY event bearbeiten. Es unterstützt die komplexere Syntax von ClickHouse nicht.

Das nächste Werkzeug – Apache Zeppelin. Es ist ein gutes und interessantes Tool. Es funktioniert. Es unterstützt Notizbücher, Dashboards und Variablen. Ich weiß, dass jemand aus der ClickHouse-Community es verwendet.
Allerdings gibt es keine Unterstützung für die ClickHouse-Syntax, d. h. man muss Abfragen entweder in der Konsole oder an einem anderen Ort schreiben. Anschließend sollten Sie überprüfen, ob alles funktioniert. Das ist einfach unpraktisch. Die Unterstützung für Dashboards hingegen ist ausgezeichnet.

Das nächste Werkzeug ist Redash.IO. Redash wird online gehostet. Das heißt, im Gegensatz zu den vorherigen Tools muss es nicht installiert werden. Es handelt sich um ein Dashboard-Tool mit der Möglichkeit, Daten aus verschiedenen Datenquellen zu konsolidieren. Das bedeutet, dass Sie Daten aus ClickHouse, MySQL, PostgreSQL und anderen Datenbanken exportieren können.

Erst letzten Monat (im März 2017) wurde die Unterstützung in Grafana eingeführt. Wenn Sie in Grafana Berichte, zum Beispiel über den Zustand Ihrer Hardware oder über bestimmte Metriken erstellen, können Sie jetzt direkt ähnliche Diagramme oder Panels mit Daten aus ClickHouse erstellen. Das ist sehr praktisch und wir nutzen es bei uns. So können Anomalien erkannt werden. Wenn also etwas passiert und eine Hardware ausfällt oder überlastet wird, können Sie die Ursache nachsehen, sofern diese Daten rechtzeitig in ClickHouse eingegeben wurden.

Ich fand es sehr umständlich, in diesen Tools oder in der Konsole zu arbeiten. Daher entschloss ich mich, unser erstes Interface weiterzuentwickeln und lieh mir die Idee von EventSQL, SeperSet und Zeppelin.

Was war gewünscht? Wir wollten Grafiken erhalten, einen verbesserten Editor implementieren und Unterstützung für Wörterbuch-Vorschläge realisieren. Denn ClickHouse hat eine großartige Funktion – die Wörterbücher. Aber der Umgang mit Wörterbüchern ist kompliziert, da man das Format der gespeicherten Werte im Kopf behalten muss, also ob es sich um eine Zahl oder einen String handelt usw. Da wir häufig Wörterbücher in ihren verschiedenen Varianten verwenden, war es ziemlich schwierig, Abfragen zu schreiben.

Es sind 3 Monate seit der Veröffentlichung unserer ersten Version vergangen. Ich habe etwa 330 Commits in den geschlossenen Branch gemacht und dabei entstand Tabix.
Im Gegensatz zur vorherigen Version, die ClickHouse-Frontend hieß, entschied ich mich, ihm einen einfachen Namen zu geben. Und so entstand Tabix.
Was ist neu?
Es erstellt Grafiken. Unterstützt die SQL-Syntax von ClickHouse. Gibt Vorschläge zu Funktionen und kann noch vieles mehr.

So sieht das Gesamtschema von Tabix aus. Links ist der Baum dargestellt. In der Mitte befindet sich der Abfrage-Editor. Und unten – das Ergebnis dieser Abfrage.

Als Nächstes zeige ich, wie der Abfrage-Editor funktioniert.

Hier wird die Auto-Vervollständigung für die Tabelle automatisch aktiviert und schlägt entsprechend Vorschläge für die Felder und Funktionen vor. Wenn Sie Strg + Eingabetaste drücken, wird die Abfrage ausgeführt oder schlägt mit einem Fehler fehl. Die einfachste Abfrage wird an Tabix gesendet und Sie erhalten das Ergebnis, d. h. Sie können schnell mit ClickHouse arbeiten.

Wie ich bereits erwähnt habe, sind Dictionaries eine sehr interessante Sache, mit der wir viel arbeiten. Sie haben uns ermöglicht, viele Dinge umzusetzen. Zum Beispiel speichern wir in den Dictionaries alle Städte. Wir speichern die Stadt-ID, den Stadtnamen sowie die Breiten- und Längengrade. In der Datenbank speichern wir nur die Stadt-ID. Dadurch sind wir in der Lage, die Daten stark zu komprimieren.

Es scheint eine einfache Sache zu sein, aber in ClickHouse ist es sehr hilfreich. Da ClickHouse nur geschachtelte Joins unterstützt, wächst die Abfrage sowohl in der Tiefe als auch in der Breite erheblich. Und wenn eine Klammer eröffnet wird und ein langes Ausdruck folgt, hilft das Zusammenklappen der Abfrage, die Lesbarkeit zu erleichtern. Denn wenn die Abfrage 200-300 Zeilen lang ist und in der Breite enorm ist, ist das Zusammenklappen der Abfrage eine große Erleichterung, um einen bestimmten Punkt zu finden oder ihn zu lokalisieren.
Objektdiagramm, Mehrfachabfragen und Tabs (Video 13:46) )

Als Nächstes zeige ich das Diagramm und die Tabs. Links befindet sich das Diagramm, oben können mehrere Tabs erstellt werden. Die Tabs fungieren wie Arbeitsbereiche. Sie können mehrere Tabs erstellen und jeden nach Belieben benennen. Es ist wie ein Mini-System zur Erstellung von Berichten.
Die Tabs werden automatisch gespeichert. Wenn Sie den Browser neu starten oder ihn schließen oder Tabix öffnen, bleibt alles erhalten.
Hotkey – praktisch (Video 14:39) )
Es gibt Hotkeys und davon genug. Ich habe einige hiervon als Beispiel aufgelistet. Diese dienen zum Wechseln der Tabs, zum Ausführen einer Abfrage oder zum Ausführen mehrerer Abfragen.

Ich zeige Ihnen, wie man mit dem Ergebnis arbeitet. Wir senden eine Anfrage. Hier zeichne ich sin, cos und tg. Es ist möglich, das Ergebnis hervorzuheben, d.h. eine typische Karte für eine Spalte zu erstellen. Man kann positive oder negative Werte hervorheben oder einfach ein bestimmtes Element der Tabelle farblich gestalten. Das ist praktisch, wenn die Tabelle riesig ist und man mit den Augen eine Anomalie finden muss. Wenn ich nach Anomalien gesucht habe, habe ich bestimmte Zeilen oder Elemente grün oder rot markiert.

Es gibt viele interessante Dinge dort. Zum Beispiel, wie man Markdown in Redmine kopiert. Wenn man das Ergebnis irgendwohin kopieren muss, ist das sehr praktisch. Man kann einfach den Bereich auswählen, „Copy to Redmine“ sagen und es wird in Redmine Markdown kopiert oder es wird eine Anfrage erstellt.

Als nächstes kommt die Optimierung von Abfragen. Einmal habe ich vergessen, das Feld „date“ anzugeben. Mein Abfrage in ClickHouse wurde nicht sehr, sehr schnell, aber schnell, d. h. unter einer Sekunde, verarbeitet. Als ich sah, wie viele Zeilen er durchläuft, wurde mir mulmig. Wir schreiben an einem Tag nicht so viele Zeilen in diese Tabelle. Ich begann, die Abfrage zu analysieren und bemerkte, dass ich an einer Stelle das Datum ausgelassen hatte. Das bedeutet, ich habe vergessen anzugeben, dass ich die Daten nicht aus der gesamten Tabelle, sondern für einen bestimmten Zeitraum benötige.
In Tabix gibt es den Reiter „Stats“, der die gesamte Historie der gesendeten Anfragen speichert, d. h. dort kann man sehen, wie viele Zeilen von dieser Abfrage gelesen wurden und wie lange sie gedauert hat. Das ermöglicht eine Optimierung.
Auf dem Ergebnis der Abfrage kann man eine Pivot-Tabelle erstellen. Sie haben eine Abfrage in ClickHouse gesendet und einige Daten erhalten. Diese Daten können Sie dann mit der Maus ziehen und eine Pivot-Tabelle erstellen.

Eine weitere interessante Sache ist das Erstellen von Grafiken. Angenommen, wir haben eine solche Abfrage: für sin, cos von 0 bis 299. Um sie zu zeichnen, müssen Sie den Reiter „Draw“ auswählen, und Sie erhalten das Diagramm mit Ihren sin und cos.

Es ist möglich, dies auf verschiedene Achsen zu verteilen, d.h. zwei Diagramme nebeneinander zu zeichnen. Eine Reihe für das erste und eine für das zweite Diagramm zu schreiben.

Es ist möglich, Histogramme zu zeichnen.

Es kann in eine Matrix von Diagrammen unterteilt werden.

Eine Heatmap kann erstellt werden.

Ein Wärme-Kalender kann erstellt werden. Übrigens ist das eine sehr nützliche Funktion, wenn man Anomalien über das Jahr hinweg analysieren möchte, d.h. um entweder Spitzen oder Rückgänge zu erkennen. Diese Datenvisualisierung hat mir dabei geholfen.

Das nächste ist die Treemap.


Sankeys sind ein interessantes Diagramm. Es kann entweder als Streamgraph oder als River bezeichnet werden. Ich nenne es River. Es ermöglicht ebenfalls die Suche nach Anomalien. Es ist sehr praktisch. Ich empfehle, es zur Analyse zu verwenden.

Eine weitere interessante Funktion ist die Darstellung einer dynamischen Karte. Wenn in Ihrer Datenbank Breiten- und Längengrad sowie beispielsweise das Ziel gespeichert sind, wie bei Lkw-Transporte oder Flugreisen, dann können Routen zu diesen Zielen gezeichnet werden. Zudem können die Geschwindigkeit und die Größe dieser Objekte, in die sie fliegen, festgelegt werden.
Das Problem mit dieser Karte ist, dass sie nur eine Weltkarte zeichnet, ohne Detailansicht.

Ich habe daraufhin Google Maps hinzugefügt. Wenn Sie die Breiten- und Längengrade speichern, können Sie das Ergebnis auf Google Maps darstellen, jedoch ohne Unterstützung für Flugzeuge.
Die grundlegenden Funktionen zur Arbeit mit dem Ergebnis und der Anfrage in Tabix haben wir besprochen.

Der nächste Punkt ist die Analyse Ihres ClickHouse-Servers. Es gibt eine separate Registerkarte "Metriken", auf der Sie die Größe der gespeicherten Daten für jede Spalte einsehen können. Im Screenshot sehen Sie, dass das Feld "referrer" etwa 730 Gb benötigt. Wenn wir auf dieses Feld verzichten, sparen wir drei Shards mit jeweils 700 GB, also insgesamt etwa 2 TB, die wir nicht benötigen.
Wir haben auch das Feld "request_id", das wir als Zeichenkette speichern. Wenn wir jedoch beginnen, es numerisch zu speichern, wird dieses Feld erheblich komprimiert.
Hier wird ebenfalls die Serverkonfiguration und die Liste der Knoten Ihres Clusters angezeigt.

Die nächste Registerkarte sind die Metriken. Diese werden in Echtzeit von ClickHouse abgerufen und ermöglichen es einfach, den Zustand des Servers zu analysieren und zu verstehen, was damit geschieht. Dies ersetzt jedoch nicht vollständig Grafana. Es ist nötig, um eine schnelle Analyse durchzuführen.

Der nächste Tab sind die Prozesse. Damit kann man nachvollziehen, was auf dem Server passiert. Zu verstehen, was dort vor sich geht. Ich hatte eine Anfrage, die bei jedem Lesevorgang 200 GB in Anspruch nahm. Das habe ich durch diese Schnittstelle herausgefunden. Ich habe sie aufgefangen und angepasst, und es sind jetzt etwa 30 GB, also hat sich die Leistung erheblich verbessert.

Danke! Und das ist OpenSource.
Ich habe fertig. Und übrigens, das ist OpenSource, es ist kostenlos und du musst es nicht einmal herunterladen. Öffne es einfach im Browser und alles wird funktionieren.
Fragen
Igor, was kommt als Nächstes? Wohin wirst du dieses Tool weiterentwickeln?
Es wird ein Dashboard geben, d. h. möglicherweise wird ein Dashboard hinzugefügt. Integration mit anderen Datenbanken. Das habe ich gemacht, aber noch nicht in OpenSource veröffentlicht. Das sind MySQL und möglicherweise PostgreSQL. Das heißt, man wird aus Tabix Anfragen nicht nur an ClickHouse, sondern auch an andere Tools senden können.
Es ist offensichtlich, dass ein enormes Maß an Arbeit geleistet wurde. Es ist eine ziemlich vollständige Idee entstanden. Im Browser umgesetzt, anscheinend um umständliche Lösungen auf verschiedenen Achsen zu vermeiden und alles schnell zusammenzustellen. Ich habe gehört, dass ihr an php Sie arbeiten, deshalb ist es am einfachsten, einfach im Browser etwas einzugeben, und es wird überall funktionieren. Daran besteht kein Zweifel. Die Frage ist, wie viel tatsächlich geschaffen wurde. Wie viele Personen haben daran gearbeitet? Und wie lange hat es gedauert? Denn maßgeschneiderte Werkzeuge verfügen normalerweise nicht über ein so umfangreiches Funktionsspektrum.
Von Sommer bis Herbst hat eine Person aus unserem Team daran gearbeitet. Das war die erste Version. Danach habe ich 330 Commits allein gemacht. Das, was Sie sehen, haben mein Kollege und ich zur Hälfte erstellt. In drei Monaten habe ich größtenteils von der ersten Version bis zur letzten allein gearbeitet. Aber ich kenne mich sehr schlecht mit Javascript aus. Das war mein einziges und hoffentlich letztes Projekt mit Javascript, an dem ich gearbeitet habe. Es wurde mir übergeben, ich habe hineingeschaut – oh Schreck. Aber ich wollte das Produkt wirklich fertigstellen, und hier ist das Ergebnis.
Vielen Dank für den Vortrag! Das ist ein hervorragendes Werkzeug. S Tableau haben Sie verglichen?
Danke. Deshalb habe ich es Tabix genannt, da die ersten Buchstaben übereinstimmen.
Weil Sie konkurrieren?
Es werden viele Investitionen fließen, wir werden konkurrieren.
Wie schlagen Sie vor, es internen Analysten zu verkaufen, dass dieses Werkzeug vollständig ersetzen wird *Tableau*? Какие будут аргументы?
Funktioniert nativ mit ClickHouse. Ich habe Tableau ausprobiert, aber dort kann man die Unterstützung für Wörterbücher und Ähnliches nicht schreiben. Ich weiß, wie die Leute mit Tabix arbeiten. Sie schreiben eine Anfrage, exportieren sie als CSV und laden sie in BI hoch. Und dort machen sie dann irgendetwas. Aber ich kann mir kaum vorstellen, wie sie das machen, denn das ist ein grafisches Tool. Es kann maximal 5.000 Zeilen, höchstens 6.000 Zeilen exportieren, aber nicht mehr, sonst hält der Browser das nicht aus.
Das heißt, es gibt einige ernsthafte Einschränkungen hinsichtlich des Datenvolumens, oder?
Ja. Ich kann mir nicht vorstellen, dass Sie 10.000 Zeilen auf dem Bildschirm des Browsers anzeigen möchten. Warum?
Es wird angenommen, dass dies eine Schnittstelle für eine schnelle Datenansicht ist? Um ein wenig zu navigieren?
Ja, um schnell zu sehen, wie es funktioniert und einfach eine Zusammenfassungsgrafik zu erstellen. Und dann irgendwohin zu übergeben. Wir haben unser eigenes Reporting-System, aus dem ich einfach diese Anfrage nehme. Zeichne in Tabix und sende es an unser Reporting.
Und noch eine Frage. Kohortenanalyse?
Wenn es Wünsche gibt, fügen wir sie hinzu.
Als wir gerade anfingen, ClickHouse zu verwenden, wie lange hat die Implementierung gedauert und die Überführung in den Produktionszustand? ClickHouse und in den Produktionszustand bringen? production status?
Wie gesagt, haben wir das Test-Cluster in sehr kurzer Zeit implementiert. Innerhalb von zwei Tagen haben wir es bereitgestellt und dann noch ein paar Wochen getestet. Bis wir in die Produktionsphase gingen, hat es etwa drei Monate gedauert. Wir hatten unser eigenes ETL, also ein Tool zur Datenerfassung, das in alles schreiben konnte, was möglich war. Es kann in MongoDB, Cassandra, MySQL schreiben. Es war einfach, ihm beizubringen, in ClickHouse zu schreiben. Unsere Infrastruktur war bereit für eine schnelle Implementierung. Nach etwa drei Monaten haben wir mit der Entsorgung der ersten Komponenten begonnen. Nach sechs Monaten haben wir komplett auf alles andere verzichtet. Es blieb nur ClickHouse übrig.
Igor, vielen Dank für den Vortrag. Mir hat die Funktionalität zur Erstellung von Routen auf Karten sehr gut gefallen. Ist eine Integration mit Yandex.Maps geplant, insbesondere mit benutzerdefinierten Yandex-Karten?
Ich habe versucht, mich anstelle von Google Maps zu integrieren, aber ich habe kein dunkles Thema auf Yandex.Maps gefunden. Ich habe einen Punkt vergessen. Lass mich zurückspulen, um das zu ergänzen.
Die Folie – Google-Karte. Dort gibt es den Befehl „DRAW_GMAPS“, der die Karte zeichnet. Es gibt den Befehl „DRAW_YMAPS“, das heißt, es kann eine Yandex-Karte zeichnen. Tatsächlich befindet sich unter diesem Befehl Javascript, das heißt, die Daten, die Sie aus ClickHouse erhalten, können an das Javascript übergeben werden, das Sie hier schreiben. So haben Sie einen Bereich, wo es gezeichnet werden soll. Sie können jedes Diagramm zeichnen, das heißt, jedes Diagramm, eine Karte, Sie können Ihre eigene Komponente zeichnen. Ich hatte zuvor eine andere Bibliothek für die Zeichnung der Diagramme.
Das heißt, gibt es dort ein Werkzeug zur Anpassung der Anzeige-Funktionalität?
Alle möglichen. Man kann diese Punkte nehmen und in anderen Farben gestalten, zum Beispiel nicht rot, sondern blau oder grün.
Danke für den Vortrag! Sie hatten eine Folie, auf der alternative Werkzeuge für Anfragen dargestellt waren. ClickHouse für den Aufbau von Dashboards, analytischen Berichten. Soweit ich verstanden habe, war das zu dem Zeitpunkt, als Sie angefangen haben zu arbeiten mit ClickHouse, für diese Werkzeuge wurden keine Adapter geschrieben. Mich interessiert, warum Sie Ihr eigenes Werkzeug entwickeln möchten, anstatt einen Adapter für ein bereits verfügbares Werkzeug zu schreiben? Ich denke, die Anpassung eines Testeditors sollte schnell gehen. Warum haben Sie sich entschieden, so viel Arbeit zu investieren?
Hier gibt es einen interessanten Punkt – ich bin der technische Direktor und kein Data Scientist. Zu dem Zeitpunkt, als wir begannen, Druid einzuführen, hatte ich auf meinem Roadmap etwa 50 % Aufgaben – lass uns dies berechnen oder dies analysieren. Es stellte sich heraus, dass wir ClickHouse implementierten. Ich begann schnell zu bauen, zu rechnen und mein Roadmap rasch abzuschließen. Zu dem Zeitpunkt bemerkte ich, dass mir das Wissen über Data Science und Datenvisualisierung fehlte. Tabix ist eine Art Hausaufgabe für mich, um Datenvisualisierung zu lernen. Ich schaute, wie ich Zeppelin erweitern könnte. Ich habe eine leichte Abneigung gegen dessen Programmierung. Redash habe ich gesehen, wie ich es erweitern könnte, aber ich fand dort keinen geeigneten Editor. Auch SuperSet ist in einer Sprache geschrieben, die ich nicht besonders mag. Deshalb entschied ich mich, selbst etwas zu entwickeln, und das ist das Ergebnis.
Igor, akzeptieren Sie den Pull Request?
Ja.
Vielen Dank für den Vortrag! Ich habe zwei Fragen. Erstens – Sie sprechen nicht sehr positiv über JavaScript. Haben Sie in reinem JavaScript programmiert oder nutzen Sie einen Framework?
Besser in reinem JavaScript.
Welcher Framework ist es dann?
Angular.
Verstehe. Und die zweite Frage. Haben Sie auch R und *Shiny**?*
Betrachtet. Ich habe ein wenig damit herumgespielt.
Man hätte auch einfach einen Adapter schreiben können.
Den gibt es. Ich glaube, die Community hat ihn gemacht, aber, wie ich auf die vorherige Frage geantwortet habe, wollte ich es selbst ausprobieren.
*Nein, bezüglich der Visualisierung, da gibt es etwas.
Sie sagen, es gibt so ein Teil und es wird Ihnen ein Diagramm zeichnen. Ich habe ein Buch über Datenvisualisierung aufgeschlagen. Und dachte: „Lass mich versuchen, diese Daten zu visualisieren. Ich werde es selbst schreiben, damit es die Daten darstellt“. Und ich habe begonnen, das Verständnis für die Datenbereitstellung zu vertiefen. Wenn ich ein fertiges Komponent genommen hätte, hätte ich persönlich schlechter gelernt, wie man es benutzt, d.h. genau die Visualisierung. Aber ansonsten – ja, R hat mir gefallen, aber ich habe das Buch 'R für Dummies' noch nicht gelesen.
Danke!
Einfache Frage. Gibt es Möglichkeiten, schnell eine Tabelle oder ein Diagramm zu exportieren?
Man kann es in CSV oder in Excel exportieren.
Keine Daten, sondern eine fertige Tabelle, ein fertiges Diagramm? Zum Beispiel, um es dem Management zu präsentieren.
Es gibt einen Button „Exportieren“ und einen Button „Diagramm als PNG oder JPG exportieren“.
Danke!
P.S. Kurzanleitung zur Installation von tabix.
- Herunterladen
- Entpacken, das Verzeichnis kopieren
buildin den nginx root_path - nginx konfigurieren
Quelle: habr.com

