ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Ich lade Sie ein, die Transkription des Berichts 2017 von Igor Strychar «ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix» zur Kenntnis zu nehmen.

Web-Interface fĂŒr ClickHouse im Projekt Tabix.
Hauptfunktionen:

  • Arbeitet direkt mit ClickHouse ĂŒber den Browser, ohne die Notwendigkeit, zusĂ€tzliche Software zu installieren;
  • Abfrage-Editor mit Syntax-Hervorhebung;
  • Automatische VervollstĂ€ndigung von Befehlen;
  • Werkzeuge zur grafischen Analyse der AbfrageausfĂŒhrung;
  • Farbthemen zur Auswahl.
    ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar


Video abspielen

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Ich bin Technischer Direktor von СМИ2. Wir sind ein Nachrichten-Aggregator. Wir speichern viele Daten, die wir von unseren Partnern erhalten und in ClickHouse registrieren – etwa 30.000 Abfragen pro Sekunde.

Das sind solche Daten wie:

  • Klicks auf Nachrichten.
  • Anzeigen von Nachrichten im Aggregator.
  • Anzeigen von Bannern in unserem Netzwerk.
  • Und wir registrieren Ereignisse mit unserem eigenen ZĂ€hler, Ă€hnlich wie Yandex.Metrica. Das ist unsere eigene Mikroanalyse.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Wir hatten ein sehr turbulentes Leben vor ClickHouse. Wir hatten große Schwierigkeiten, diese Daten irgendwo zu speichern und sie irgendwie zu analysieren.

Das Leben vor ClickHouse — infiniDB

Das Erste, was wir hatten, war infiniDB. Sie hielt 4 Jahre bei uns aus. Wir haben sie mit MĂŒhe gestartet.

  • Sie unterstĂŒtzt keine Clusterbildung oder Sharding. Solche anspruchsvollen Dinge waren standardmĂ€ĂŸig nicht vorinstalliert.
  • Sie hatte Schwierigkeiten beim Laden von Daten. Nur ein spezifisches Konsolenwerkzeug, das nur CSV-Dateien laden konnte und das auf eine sehr unklare Weise.
  • Die Datenbank ist einthreadig. Man konnte entweder schreiben oder lesen. Aber sie konnte eine große Datenmenge verarbeiten.
  • Und sie hatte einen interessanten Workaround. Jede Nacht musste der Server neu gestartet werden, sonst funktionierte er nicht.

Sie lief bis Ende 2016, als wir vollstÀndig auf ClickHouse umgestiegen sind.

Das Leben vor ClickHouse — Cassandra

Da infiniDB einthreadig war, entschieden wir, dass wir eine Art mehrthreadige Datenbank benötigen, in der wir sehr viele Threads gleichzeitig schreiben können.

Wir haben viele interessante Dinge ausprobiert. Dann haben wir beschlossen, Cassandra auszuprobieren. Mit Cassandra lief bei uns alles gut. 10.000 Abfragen pro Sekunde bei der Einspeisung. Etwa 2.000 Abfragen beim Lesen.

Aber auch sie hatte ihre Eigenarten. Einmal im Monat oder alle zwei Monate kam es zu einer Desynchronisation der Datenbank. Und wir mussten aufstehen und Cassandra reparieren. Wir starteten die Server nacheinander neu. Und dann lief alles reibungslos und schön.

Das Leben vor ClickHouse – Druid

Dann haben wir verstanden, dass wir noch mehr Daten schreiben mĂŒssen. Im Jahr 2016 begannen wir, Druid zu betrachten.

Druid ist eine Open-Source-Datenbank, die in Java geschrieben ist. Sehr spezifisch. Und es passte zu Clickstream, wenn wir einen Ereignisstream speichern mĂŒssen und anschließend Aggregationen durchfĂŒhren oder analytische Berichte erstellen.

Druid hatte die Version 0.9.X.

Die Datenbank selbst ist sehr schwer einzurichten. Das ist eine Herausforderung in der Infrastruktur. Um sie einzurichten, musste man eine Menge Hardware bereitstellen. Und jede Hardware hatte ihre eigene spezielle Rolle.

Um Daten in sie zu laden, musste man eine Art Magie anwenden. Es gibt ein Open-Source-Projekt – Tranquility, welches bei uns Daten im Stream verlor. Jedes Mal, wenn wir Daten in es luden, gingen sie verloren.

Aber irgendwie haben wir begonnen, es zu implementieren. Wir waren wie Igel, die sich stachen, aber weiterhin den Kaktus assen, und haben es eingefĂŒhrt. Wir benötigten etwa einen Monat, um die gesamte Infrastruktur dafĂŒr vorzubereiten. D. h. Server zu bestellen, Rollen zu konfigurieren und eine vollstĂ€ndige Automatisierung der Bereitstellung durchzufĂŒhren. Das heißt, im Falle eines Cluster-Ausfalls sollte automatisch ein zweiter Cluster bereitgestellt werden.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Aber dann geschah ein Wunder. Ich war im Urlaub, und meine Kollegen schickten mir einen Link zu habr, wo es heißt, dass Yandex beschlossen hat, ClickHouse zu öffnen. Ich sagte, dass wir es ausprobieren sollten.

Und innerhalb von nur 2 Tagen haben wir einen Testcluster von ClickHouse bereitgestellt. Wir begannen, Daten in ihn zu laden. Im Vergleich zu InfiniDB ist das einfach, im Vergleich zu Druid ist das einfach. Verglichen mit Cassandra ist es ebenfalls einfach. Denn wenn man Daten aus PHP in Cassandra lÀdt, ist das nicht einfach.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Was haben wir erhalten? Leistung in der Geschwindigkeit. Leistung in der Datenspeicherung. D. h. es wird viel weniger Speicherplatz benötigt. ClickHouse ist schnell, es ist sehr schnell im Vergleich zu anderen Produkten.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Beim Start, als Yandex ClickHouse als Open-Source veröffentlichte, gab es nur einen Konsolen-Client. Wir in unserem Unternehmen, СМИ2, beschlossen, einen nativen Web-Client zu erstellen, damit man eine Seite im Browser öffnen, eine Abfrage schreiben und das Ergebnis erhalten kann, denn wir begannen, viele Anfragen zu schreiben. In der Konsole zu schreiben, ist schwierig. Und wir haben unsere erste Version erstellt.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Und etwa gegen Ende letzten Jahres begannen externe Werkzeuge fĂŒr die Arbeit mit ClickHouse aufzutauchen. Dazu gehören Werkzeuge wie:

Ich werde einige dieser Werkzeuge betrachten, d. h. die, mit denen ich gearbeitet habe.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Ein gutes Tool, aber fĂŒr Druid. Als wir Druid implementierten, habe ich SuperSet ausprobiert. Mir hat es gefallen. Es funktioniert sehr schnell mit Druid.

FĂŒr ClickHouse eignet es sich nicht. D. h. es startet, funktioniert, aber kann nur einfache Abfragen wie: SELECT event, GROUP BY event verarbeiten. Es unterstĂŒtzt nicht die komplexere ClickHouse-Syntax.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Das nĂ€chste Tool ist Apache Zeppelin. Das ist eine gute und interessante Sache. Es funktioniert. Es unterstĂŒtzt Notizen, Dashboards und Variablen. Ich weiß, dass einige aus der ClickHouse-Community es verwenden.

Aber es gibt keine UnterstĂŒtzung fĂŒr die ClickHouse-Syntax, d. h. man muss die Abfragen entweder in der Konsole oder irgendwo anders schreiben. Dann muss man ĂŒberprĂŒfen, ob das alles funktioniert. Das ist einfach unpraktisch. Aber die UnterstĂŒtzung fĂŒr Dashboards ist gut.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Das nÀchste Tool ist Redash.IO. Redash wird im Internet gehostet. D. h. im Gegensatz zu den vorherigen Tools muss man es nicht installieren. Es handelt sich um ein Dashboard mit der Möglichkeit, Daten aus verschiedenen Datenquellen zu konsolidieren. D. h. Sie können Daten aus ClickHouse, MySQL, PostgreSQL und anderen Datenbanken exportieren.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Vor etwa einem Monat (im MĂ€rz 2017) wurde die UnterstĂŒtzung in Grafana eingefĂŒhrt. Wenn Sie Berichte in Grafana erstellen, zum Beispiel ĂŒber den Zustand Ihrer Hardware oder verschiedene Metriken, können Sie jetzt dasselbe Diagramm oder ein Panel direkt aus den ClickHouse-Daten erstellen. Das ist sehr praktisch, und wir nutzen es in unserem Unternehmen. Es ermöglicht, Anomalien zu finden. D. h. wenn etwas passiert und eine Hardware ausfĂ€llt oder unter Stress steht, kann man die Ursache sehen, wenn diese Daten in ClickHouse erfasst wurden.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Ich fand es sehr unbequem, in diesen Tools oder in der Konsole zu schreiben. Also beschloss ich, unser erstes Interface weiterzuentwickeln. Ich habe mir die Idee von EventSQL, SeperSet und Zeppelin abgeschaut.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Was wollte ich? Ich wollte Grafiken bekommen, einen verbesserten Editor und UnterstĂŒtzung fĂŒr eine Vorschlagswörterbuchimplementierung. Denn ClickHouse hat eine großartige Funktion – die WörterbĂŒcher. Aber mit den WörterbĂŒchern ist es schwierig zu arbeiten, weil man den Format der gespeicherten Werte im Kopf haben muss, d. h. ob es eine Zahl oder ein String ist usw. Da wir WörterbĂŒcher oft in ihren verschiedenen Varianten verwenden, war es oft schwierig, Abfragen zu schreiben.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Drei Monate nach dem Release unserer ersten Version habe ich etwa 330 Commits in den geschlossenen Branch gemacht, und es entstand Tabix.

Im Gegensatz zur vorherigen Version, die ClickHouse-Frontend hieß, habe ich entschieden, ihr einen einfachen Namen zu geben. So entstand Tabix.

Was ist neu?

Es erstellt Diagramme. UnterstĂŒtzt die SQL-Syntax von ClickHouse. Bietet VorschlĂ€ge zu Funktionen und kann noch vieles mehr.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

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

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Als nÀchstes zeige ich, wie der Abfrage-Editor funktioniert.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Hier hat die automatische VervollstĂ€ndigung fĂŒr die Tabelle funktioniert und bietet entsprechend VorschlĂ€ge fĂŒr die Felder. Außerdem VorschlĂ€ge zu Funktionen. Wenn man Strg + Eingabetaste drĂŒckt, wird die Abfrage ausgefĂŒhrt oder es gibt einen Fehler. Die einfachste Abfrage wird an Tabix gesendet und das Ergebnis wird erhalten, d.h. man kann schnell mit ClickHouse arbeiten.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

WörterbĂŒcher sind, wie ich bereits sagte, eine sehr interessante Sache, mit der wir viel arbeiten. Sie haben es uns ermöglicht, viele Dinge zu realisieren. Zum Beispiel speichern wir in den WörterbĂŒchern alle StĂ€dte. Wir speichern die ID der Stadt und den Namen der Stadt, deren Breite und LĂ€nge. In der Datenbank speichern wir nur die ID der Stadt. Dementsprechend komprimieren wir die Daten erheblich.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Das mag einfach erscheinen, aber in ClickHouse hilft es sehr interessant. Da ClickHouse nur verschachtelte Joins unterstĂŒtzt, wĂ€chst die Abfrage sowohl nach unten als auch in der Breite erheblich. Und wenn eine Klammer geöffnet wird und ein langes Ausdruck folgt, hilft eine sehr einfache Sache wie das Zusammenklappen der Abfrage, mit der Abfrage selbst leichter zu arbeiten. Denn wenn die Abfrage 200-300 Zeilen umfasst und in der Breite sehr groß ist, ist das Zusammenklappen der Abfrage eine große Erleichterung, um einen bestimmten Punkt zu finden oder ihn zu lokalisieren.

Objektbaum, Multi-Abfragen und Tabs (Video 13:46) https://youtu.be/w1-XsL3nbRg?t=826)

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Als nĂ€chstes zeige ich den Baum und die Tabs. Links – der Baum, oben kann man mehrere Tabs erstellen. Tabs sind 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 laden oder schließen oder Tabix öffnen, bleibt alles erhalten.

Tastenkombinationen – praktisch (Video 14:39) https://youtu.be/w1-XsL3nbRg?t=879)

Es gibt Tastenkombinationen, und es gibt ziemlich viele. Hier habe ich einige von ihnen als Beispiel aufgefĂŒhrt. Das ist das Wechseln der Tabs, die AusfĂŒhrung einer Abfrage oder das AusfĂŒhren mehrerer Abfragen.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Ich zeige Ihnen, wie man mit den Ergebnissen arbeitet. Wir senden eine Anfrage. Hier zeichne ich sin, cos und tg. Man kann das Ergebnis hervorheben, d. h. eine typisierte Karte auf die Spalte zeichnen. Man kann positive oder negative Werte hervorheben. Oder einfach ein spezifisches Element der Tabelle einfĂ€rben. Das ist praktisch, wenn die Tabelle riesig ist und man mit den Augen nach einer Anomalie suchen muss. Wenn ich nach Anomalien suchte, habe ich bestimmte Zeilen und Elemente grĂŒn oder rot hervorgehoben.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

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

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Als nĂ€chstes – die Optimierung der Anfragen. Ich habe einmal vergessen, das Feld „date“ anzugeben. Und meine Anfrage in ClickHouse wurde nicht sehr, sehr schnell bearbeitet, aber schnell, d. h. in weniger als einer Sekunde. Als ich sah, wie viele Zeilen sie durchlief, wurde mir angst und bange. An einem Tag schreiben wir nicht so viele Zeilen in diese Tabelle. Ich begann, die Anfrage zu analysieren und sah, dass ich an einer Stelle das Datum ĂŒbersehen hatte. Das heißt, ich hatte vergessen anzugeben, dass ich die Daten nicht fĂŒr die gesamte Tabelle, sondern fĂŒr einen bestimmten Zeitraum benötige.

In Tabix gibt es die Registerkarte „Stats“, in der die gesamte Historie der gesendeten Anfragen gespeichert ist, d. h. dort kann man sehen, wie viele Zeilen von dieser Anfrage gelesen wurden und wie viel Zeit sie benötigte. Das ermöglicht eine Optimierung.

Man kann ĂŒber den Ergebnissen der Anfrage eine Pivot-Tabelle erstellen. Sie haben eine Anfrage in ClickHouse gesendet und einige Daten erhalten. Und dann kann man diese Daten mit der Maus ziehen und eine Pivot-Tabelle erstellen.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Eine weitere interessante Sache ist die Erstellung von Diagrammen. Angenommen, wir haben diese Anfrage: auf sin, cos von 0 bis 299. Um es darzustellen, mĂŒssen Sie die Registerkarte „Draw“ auswĂ€hlen, und Sie erhalten ein Diagramm mit Ihren sin und cos.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Man kann dies auf verschiedene Achsen aufteilen, d. h. man kann gleichzeitig zwei Diagramme nebeneinander zeichnen. Eine Anweisung schreiben und die zweite.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Man kann Histogramme zeichnen.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Man kann dies in eine Matrix von Diagrammen aufteilen.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Man kann eine Heatmap erstellen.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Man kann einen WĂ€rmekalender erstellen. Übrigens ist das eine sehr nĂŒtzliche Sache, wenn man Anomalien ĂŒber das Jahr analysieren muss, d. h. entweder Spitzen oder RĂŒckgĂ€nge finden. Diese Datenvisualisierung hat mir dabei geholfen.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Das NĂ€chste ist Treemap.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Sankeys – ein interessantes Diagramm. Es ist entweder Streamgraphs oder River. Aber ich nenne es River. Es ermöglicht ebenfalls, nach Anomalien zu suchen. Es ist sehr benutzerfreundlich. Ich empfehle, es zur Suche zu verwenden.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Eine weitere interessante Sache ist die Erstellung einer dynamischen Karte. Wenn in Ihrer Datenbank Breiten- und LĂ€ngengrade sowie beispielsweise ein Ziel gespeichert sind, können Sie Routen zu diesen Zielen darstellen, sei es fĂŒr den Land- oder Lufttransport. Außerdem kann man dort Geschwindigkeit und GrĂ¶ĂŸe dieser Objekte angeben, in die sie ankommen.

Das Problem mit dieser Karte ist, dass sie nur die Weltkarte zeichnet, ohne Detailgenauigkeit.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

SpĂ€ter habe ich Google Maps hinzugefĂŒgt. Wenn Sie Breiten- und LĂ€ngengrade speichern, können Sie das Ergebnis auf Google Maps darstellen, allerdings ohne UnterstĂŒtzung fĂŒr kleine Flugzeuge.

Die grundlegenden Funktionen zur Arbeit mit dem Ergebnis und der Abfrage in Tabix haben wir besprochen.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Das nĂ€chste ist die Analyse Ihres ClickHouse-Servers. Es gibt einen separaten Tab „Metriken“, in dem Sie die GrĂ¶ĂŸe der gespeicherten Daten fĂŒr jede Spalte sehen können. Auf dem Screenshot ist zu sehen, dass das Feld „referrer“ bei uns etwa 730 GB benötigt. Wenn wir auf dieses Feld verzichten, sparen wir drei Shards Ă  700 GB, also etwa 2 TB, die wir nicht benötigen.

Auch haben wir ein Feld „request_id“, das wir als Zeichenfolge speichern. Wenn wir jedoch damit beginnen, es numerisch zu speichern, wird dieses Feld erheblich komprimiert.

Hier wird auch die Serverkonfiguration und die Liste der Knoten Ihres Clusters angezeigt.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Der nĂ€chste Tab sind die Metriken. Diese werden in Echtzeit von ClickHouse abgerufen und ermöglichen eine Analyse des Serverzustands, um zu verstehen, was mit ihm passiert. Das ist kein Ersatz fĂŒr ein vollstĂ€ndiges Grafana. Es dient dazu, eine schnelle Analyse durchzufĂŒhren.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Der nÀchste Tab sind die Prozesse. Anhand dieser kann man verstehen, was auf dem Server vor sich geht. Ich hatte eine Abfrage, die bei jedem Lesevorgang 200 GB verbrauchte. Ich habe das dank dieser Schnittstelle gesehen, habe sie gefunden und angepasst. Am Ende waren es etwa 30 GB, also eine dramatische Leistungsverbesserung.

ClickHouse – visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar

Danke! Und das ist Open Source.

Ich bin fertig. Übrigens ist das Open Source, es ist kostenlos und Sie mĂŒssen nichts herunterladen. Öffnen Sie es im Browser, und es wird alles funktionieren.

Fragen

Igor, was kommt als NĂ€chstes? Wohin wirst du dieses Tool weiterentwickeln?

In Zukunft wird es ein Dashboard geben, d. h. möglicherweise wird ein Dashboard entstehen. Integration mit anderen Datenbanken. Das habe ich gemacht, aber noch nicht in OpenSource veröffentlicht. Das ist MySQL und möglicherweise PostgreSQL. Das heißt, man kann aus Tabix nicht nur Anfragen an ClickHouse senden, sondern auch an andere Tools.

Es ist zu sehen, dass eine riesige Menge Arbeit geleistet wurde. Es ist eine recht vollstĂ€ndige Idee entstanden. Im Browser wurde es anscheinend gemacht, um EinschrĂ€nkungen auf verschiedenen Achsen zu vermeiden und schnell alles zusammenzustellen. Ich habe gehört, dass Sie an php arbeiten, daher ist es am einfachsten, alles im Browser zusammenzustellen, und es wird ĂŒberall funktionieren. Dazu gibt es keine Fragen. Die Frage ist: Dort wurde wirklich viel gemacht. Wie viele Menschen haben daran gearbeitet? Und wie viel Zeit hat das alles in Anspruch genommen? Denn Werkzeuge, die fĂŒr sich selbst erstellt werden, haben normalerweise nicht so viel FunktionalitĂ€t.

Von Sommer bis Herbst hat ein Mitglied unseres Teams alleine daran gearbeitet. Das war die erste Version. Dann habe ich 330 Commits alleine gemacht. Was Sie sehen, haben wir mit einem Kollegen gemeinsam gemacht. In 3 Monaten habe ich den Großteil von der ersten Version bis zur letzten alleine gemacht. Aber ich kenne mich sehr schlecht mit Javascript aus. Das war mein einziges und ich hoffe, mein letztes Projekt in Javascript, an dem ich gearbeitet habe. Es ist mir zugefallen, ich habe geschaut – oh, schrecklich. Aber ich wollte das Produkt unbedingt fertigstellen und das ist dabei herausgekommen.

Vielen Dank fĂŒr den Bericht! Das ist ein hervorragendes Tool. Wurde es mit Tableau verglichen?

Danke. Deshalb habe ich es Tabix genannt, weil die ersten Buchstaben ĂŒbereinstimmen.

Konkurrenzen gibt es?

Es wird viele Investitionen geben, wir werden konkurrieren.

Wie schlagen Sie vor, es internen Analysten zu verkaufen, wenn dieses Tool vollstĂ€ndig ersetzt *Tableau*?? КаĐșОД Đ±ŃƒĐŽŃƒŃ‚ Đ°Ń€ĐłŃƒĐŒĐ”ĐœŃ‚Ń‹?

Es funktioniert nativ mit ClickHouse. Ich habe Tableau ausprobiert, aber dort kann man keine UnterstĂŒtzung fĂŒr WörterbĂŒcher und dergleichen schreiben. Ich weiß, wie die Leute mit Tabix arbeiten. Sie schreiben eine Abfrage, exportieren sie in CSV und laden sie in BI hoch. Und dort machen sie dann etwas. Aber ich kann mir kaum vorstellen, wie sie das tun, weil es sich um ein grafisches Tool handelt. Es kann maximal 5.000 Zeilen exportieren, höchstens 6.000 Zeilen, aber nicht mehr, sonst hĂ€lt der Browser nicht durch.

Das heißt, es gibt ernsthafte EinschrĂ€nkungen hinsichtlich des Datenvolumens, richtig?

Ja. Ich kann mir nicht vorstellen, dass Sie 10.000 Zeilen in eine Tabelle laden möchten, um sie auf dem Bildschirm des Browsers anzuzeigen. Warum?

Es wird vorausgesetzt, dass dies eine Schnittstelle fĂŒr eine schnelle Ansicht von Daten ist? Um ein wenig zu spielen und zu drehen?

Ja, schnell ansehen, wie es funktioniert und einfach ein zusammenfassendes Diagramm erstellen. Und dann irgendwohin ĂŒbergeben. Wir haben unser eigenes Reporting-System, aus dem ich einfach diese Anfrage entnehme. Ich zeichne in Tabix und sende sie an unser Reporting.

Und noch eine Frage. Kohortenanalyse?

Wenn es WĂŒnsche gibt, fĂŒgen wir sie hinzu.

Als wir anfingen, es zu nutzen. ClickHouse, wie lange hat die Implementierung gedauert? ClickHouse und die Übergabe an den Produktionszustand?

Wie ich bereits gesagt habe, haben wir den Testcluster in sehr kurzer Zeit implementiert. Wir haben ihn in zwei Tagen eingerichtet. Und noch ein paar Wochen haben wir ihn getestet. Und bis zur Produktion haben wir etwa drei Monate gebraucht. Aber wir hatten unser eigenes ETL, d.h. ein Tool zum Schreiben von Daten. Und es hat in alles Mögliche geschrieben. Es kann in MongoDB, Cassandra, MySQL schreiben. Ihn zu lehren, in ClickHouse zu schreiben, war einfach. Wir hatten die Infrastruktur fĂŒr eine schnelle Implementierung bereit. Nach etwa drei Monaten haben wir den ersten Baustein ausgegliedert. Nach sechs Monaten haben wir vollstĂ€ndig auf alles andere verzichtet. Übrig blieb nur ClickHouse.

Igor, vielen Dank fĂŒr den Vortrag. Mir hat die Funktion zur Erstellung von Pfaden auf Karten sehr gut gefallen. Ist eine Integration mit Yandex.Karten, insbesondere mit benutzerdefinierten Yandex.Karten, geplant?

Ich habe versucht, anstelle von Google Maps zu integrieren, aber ich habe kein dunkles Thema auf Yandex.Karten gefunden. Ich habe einen Teil nicht erklĂ€rt. Ich werde zurĂŒckspulen, um zu ergĂ€nzen.

Folie – Google Maps. Dort gibt es den Befehl „DRAW_GMAPS“, der die Karte zeichnet. Es gibt den Befehl „DRAW_YMAPS“, d.h. der kann eine Yandex-Karte erstellen. Und tatsĂ€chlich steckt hinter diesem Befehl Javascript, d.h. die Daten, die Sie aus ClickHouse erhalten, können an das Javascript ĂŒbertragen werden, das Sie hier schreiben. Und am Ende haben Sie ein Gebiet, in dem es gezeichnet werden soll. Sie können jedes Diagramm zeichnen, d.h. jedes Diagramm, Karte, Sie können Ihr eigenes Komponent zeichnen. Ich hatte vorher eine andere Bibliothek zur Zeichnung der Grafiken selbst.

Das heißt, da gibt es ein Werkzeug zur Anpassung der Anzeige-FunktionalitĂ€t?

Jede. Man kann diese Punkte nehmen und umfĂ€rben, sie nicht rot, sondern blau oder grĂŒn machen.

Vielen Dank fĂŒr den Vortrag! Sie hatten eine Folie, auf der alternative Werkzeuge fĂŒr Anfragen vorgestellt wurden. ClickHouse zum Erstellen von Dashboards, analytischen Berichten. So habe ich verstanden, dass zum Zeitpunkt, als Sie mit der Arbeit begonnen haben, ClickHouse, fĂŒr diese Instrumente wurden keine Adapter geschrieben. Ich frage mich, warum Sie Ihr eigenes Werkzeug entwickeln wollten, anstatt einen Adapter fĂŒr ein bereits vorhandenes Werkzeug zu schreiben? Ich denke, es wĂ€re schnell, den Testeditor zu optimieren. Warum haben Sie sich entschieden, so viel Arbeit zu leisten?

Hier gibt es einen interessanten Punkt – ich bin technischer Direktor und kein Data Scientist. Als wir mit der Implementierung von Druid begannen, hatte ich in meiner Roadmap etwa 50 % der Aufgaben – lass uns das hier oder das da berechnen oder analysieren. Und so kam es, dass wir ClickHouse implementiert haben. Ich begann, alles schnell aufzubauen und zu berechnen und schloss meine Roadmap schnell ab. Zu diesem Zeitpunkt merkte ich, dass mir das Wissen ĂŒber Data Science und Datenvisualisierung fehlte. Tabix ist eine Art meine Hausaufgabe zum Erlernen der Datenvisualisierung. Ich habe mir ĂŒberlegt, wie man Zeppelin ergĂ€nzen kann. Ich habe eine leichte Abneigung gegen dessen Programmierung. Ich habe Redash angesehen, wie man es ergĂ€nzen kann, aber mir fehlte ein ordentlicher Editor. Und SuperSet ist auch in einer Sprache geschrieben, die ich nicht besonders mag. Deshalb habe ich beschlossen, etwas Eigenes zu entwickeln, und das ist das Ergebnis.

Igor, akzeptieren Sie Pull Requests?

Ja.

Vielen Dank fĂŒr den Vortrag! Und zwei Fragen. Die erste – Sie Ă€ußern sich nicht sehr lobend ĂŒber Javascript. Haben Sie mit reinem Javascript oder doch mit einem Framework gearbeitet?*

Lieber mit purem Javascript.

Welches Framework dann?

Angular.

Verstehe. Und die zweite Frage. Haben Sie in Betracht gezogen R und *Shiny**?*

Ich habe darĂŒber nachgedacht. Ich habe damit experimentiert.

Man hÀtte auch einfach einen Adapter schreiben können.

Den gibt es. Soweit ich weiß, hat die Community ihn gemacht, aber wie ich bereits auf die vorherige Frage geantwortet habe, wollte ich selbst damit experimentieren.

*Nein, bezĂŒglich der Visualisierung, da gibt es welche.

Sie sagen, dass es so etwas gibt, und es wird Ihnen ein Diagramm zeichnen. Ich habe ein Buch ĂŒber Datenvisualisierung geöffnet und dachte: ‚Lass es mich versuchen, diese Daten zu visualisieren. Ich werde selbst schreiben, um die Daten darzustellen.‘ Und ich begann, besser zu verstehen, wie man Daten prĂ€sentiert. Wenn ich ein fertiges Modul verwendet hĂ€tte, hĂ€tte ich persönlich schlechter gelernt, wie man es nutzt, also gerade in der Visualisierung. Aber so – 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 in CSV oder Excel exportieren.

Nicht die Daten, sondern eine fertige Tabelle, ein fertiges Diagramm? Zum Beispiel, um es dem Chef zu zeigen.

Es gibt einen Button „Exportieren“ und einen Button „Grafik als png, als jpg exportieren“.

Danke!

P.S. Mini-Anleitung zur Installation von tabix

Quelle: habr.com

60GB SSD 8Gb DDR4