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.



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.

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.

Aber dann geschah ein Wunder. Ich war im Urlaub, und meine Kollegen schickten mir einen Link zu , 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.

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.

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.

Und etwa gegen Ende letzten Jahres begannen externe Werkzeuge fĂŒr die Arbeit mit ClickHouse aufzutauchen. Dazu gehören Werkzeuge wie:
- .
- .
- . (Jetzt )
- .
- .
Ich werde einige dieser Werkzeuge betrachten, d. h. die, mit denen ich gearbeitet habe.

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.

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.

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.

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.

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.

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.

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.

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

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

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.

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.

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) )

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) )
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.

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.

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.

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.

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.

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

Man kann Histogramme zeichnen.

Man kann dies in eine Matrix von Diagrammen aufteilen.

Man kann eine Heatmap erstellen.

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.

Das NĂ€chste ist Treemap.


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.

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.

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.

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.

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.

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.

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
- Herunterladen
- Entpacken, das Verzeichnis kopieren
buildin nginx root_path - nginx konfigurieren
Quelle: habr.com

