{"id":73358,"date":"2020-03-09T08:42:14","date_gmt":"2020-03-09T05:42:14","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/clickhouse-vizualno-bystryj-i-naglyadnyj-analiz-dannyh-v-tabix-igor-stryhar"},"modified":"2020-03-09T08:42:14","modified_gmt":"2020-03-09T05:42:14","slug":"clickhouse-vizualno-bystryj-i-naglyadnyj-analiz-dannyh-v-tabix-igor-stryhar","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/clickhouse-vizualno-bystryj-i-naglyadnyj-analiz-dannyh-v-tabix-igor-stryhar","title":{"rendered":"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong>Ich lade Sie ein, die Transkription des Berichts 2017 von Igor Strychar \u00abClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix\u00bb zur Kenntnis zu nehmen.<\/strong><\/p>\n<p><\/p>\n<p>Web-Interface f\u00fcr ClickHouse im Projekt Tabix.<br \/>\nHauptfunktionen:<\/p>\n<p><\/p>\n<ul>\n<li>Arbeitet direkt mit ClickHouse \u00fcber den Browser, ohne die Notwendigkeit, zus\u00e4tzliche Software zu installieren;<\/li>\n<li>Abfrage-Editor mit Syntax-Hervorhebung;<\/li>\n<li>Automatische Vervollst\u00e4ndigung von Befehlen;<\/li>\n<li>Werkzeuge zur grafischen Analyse der Abfrageausf\u00fchrung;<\/li>\n<li>Farbthemen zur Auswahl.<br \/>\n<img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/9d95cf5ceb5acc3a1301943165ca9225.png\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<center><div class=\"youtube-placeholder\" data-id=\"w1-XsL3nbRg\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/w1-XsL3nbRg\/hqdefault.jpg\" alt=\"Video abspielen\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/950e3d0a3ff10d267ae48e897f5cbdb6.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ich bin Technischer Direktor von \u0421\u041c\u04182. Wir sind ein Nachrichten-Aggregator. Wir speichern viele Daten, die wir von unseren Partnern erhalten und in ClickHouse registrieren \u2013 etwa 30.000 Abfragen pro Sekunde.<\/p>\n<p><\/p>\n<p>Das sind solche Daten wie:<\/p>\n<p><\/p>\n<ul>\n<li>Klicks auf Nachrichten.<\/li>\n<li>Anzeigen von Nachrichten im Aggregator.<\/li>\n<li>Anzeigen von Bannern in unserem Netzwerk.<\/li>\n<li>Und wir registrieren Ereignisse mit unserem eigenen Z\u00e4hler, \u00e4hnlich wie Yandex.Metrica. Das ist unsere eigene Mikroanalyse. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/8f5a7af9fef04a51fed29279557c3b64.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Wir hatten ein sehr turbulentes Leben vor ClickHouse. Wir hatten gro\u00dfe Schwierigkeiten, diese Daten irgendwo zu speichern und sie irgendwie zu analysieren.<\/p>\n<p><\/p>\n<p><strong>Das Leben vor ClickHouse \u2014 infiniDB<\/strong><\/p>\n<p><\/p>\n<p>Das Erste, was wir hatten, war infiniDB. Sie hielt 4 Jahre bei uns aus. Wir haben sie mit M\u00fche gestartet. <\/p>\n<p><\/p>\n<ul>\n<li>Sie unterst\u00fctzt keine Clusterbildung oder Sharding. Solche anspruchsvollen Dinge waren standardm\u00e4\u00dfig nicht vorinstalliert. <\/li>\n<li>Sie hatte Schwierigkeiten beim Laden von Daten. Nur ein spezifisches Konsolenwerkzeug, das nur CSV-Dateien laden konnte und das auf eine sehr unklare Weise. <\/li>\n<li>Die Datenbank ist einthreadig. Man konnte entweder schreiben oder lesen. Aber sie konnte eine gro\u00dfe Datenmenge verarbeiten. <\/li>\n<li>Und sie hatte einen interessanten Workaround. Jede Nacht musste der Server neu gestartet werden, sonst funktionierte er nicht. <\/li>\n<\/ul>\n<p><\/p>\n<p>Sie lief bis Ende 2016, als wir vollst\u00e4ndig auf ClickHouse umgestiegen sind.<\/p>\n<p><\/p>\n<p><strong>Das Leben vor ClickHouse \u2014 Cassandra<\/strong><\/p>\n<p><\/p>\n<p>Da infiniDB einthreadig war, entschieden wir, dass wir eine Art mehrthreadige Datenbank ben\u00f6tigen, in der wir sehr viele Threads gleichzeitig schreiben k\u00f6nnen.<\/p>\n<p><\/p>\n<p>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. <\/p>\n<p><\/p>\n<p>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\u00f6n. <\/p>\n<p><\/p>\n<p><strong>Das Leben vor ClickHouse \u2013 Druid<\/strong><\/p>\n<p><\/p>\n<p>Dann haben wir verstanden, dass wir noch mehr Daten schreiben m\u00fcssen. Im Jahr 2016 begannen wir, Druid zu betrachten. <\/p>\n<p><\/p>\n<p>Druid ist eine Open-Source-Datenbank, die in Java geschrieben ist. Sehr spezifisch. Und es passte zu Clickstream, wenn wir einen Ereignisstream speichern m\u00fcssen und anschlie\u00dfend Aggregationen durchf\u00fchren oder analytische Berichte erstellen.<\/p>\n<p><\/p>\n<p>Druid hatte die Version 0.9.X. <\/p>\n<p><\/p>\n<p>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. <\/p>\n<p><\/p>\n<p>Um Daten in sie zu laden, musste man eine Art Magie anwenden. Es gibt ein Open-Source-Projekt \u2013 Tranquility, welches bei uns Daten im Stream verlor. Jedes Mal, wenn wir Daten in es luden, gingen sie verloren. <\/p>\n<p><\/p>\n<p>Aber irgendwie haben wir begonnen, es zu implementieren. Wir waren wie Igel, die sich stachen, aber weiterhin den Kaktus assen, und haben es eingef\u00fchrt. Wir ben\u00f6tigten etwa einen Monat, um die gesamte Infrastruktur daf\u00fcr vorzubereiten. D. h. Server zu bestellen, Rollen zu konfigurieren und eine vollst\u00e4ndige Automatisierung der Bereitstellung durchzuf\u00fchren. Das hei\u00dft, im Falle eines Cluster-Ausfalls sollte automatisch ein zweiter Cluster bereitgestellt werden. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/a8193aab09ab9cce3b69e3b84ce470dd.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Aber dann geschah ein Wunder. Ich war im Urlaub, und meine Kollegen schickten mir einen Link zu <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/yandex\/blog\/303282\/\">habr<\/a><\/noindex>, wo es hei\u00dft, dass Yandex beschlossen hat, ClickHouse zu \u00f6ffnen. Ich sagte, dass wir es ausprobieren sollten.<\/p>\n<p><\/p>\n<p>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\u00e4dt, ist das nicht einfach.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/0b4b6ea08f7f7037d0e26dbe3f33fa53.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Was haben wir erhalten? Leistung in der Geschwindigkeit. Leistung in der Datenspeicherung. D. h. es wird viel weniger Speicherplatz ben\u00f6tigt. ClickHouse ist schnell, es ist sehr schnell im Vergleich zu anderen Produkten. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/9ff5e2ac127be8813b5d5cec49dab73a.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Beim Start, als Yandex ClickHouse als Open-Source ver\u00f6ffentlichte, gab es nur einen Konsolen-Client. Wir in unserem Unternehmen, \u0421\u041c\u04182, beschlossen, einen nativen Web-Client zu erstellen, damit man eine Seite im Browser \u00f6ffnen, 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.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/a2569a45f9bf1b91815ca3dfa0eefcf3.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Und etwa gegen Ende letzten Jahres begannen externe Werkzeuge f\u00fcr die Arbeit mit ClickHouse aufzutauchen. Dazu geh\u00f6ren Werkzeuge wie:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/redash.io\/\">Redash.IO<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/zeppelin.apache.org\/\">Apache Zeppelin<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/airbnb\/incubator-superset\">Superset Airbnb<\/a><\/noindex>. (Jetzt <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/apache\/incubator-superset\">https:\/\/github.com\/apache\/incubator-superset<\/a><\/noindex>)<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/blog.jetbrains.com\/datagrip\/2018\/08\/15\/datagrip-2018-2-2-clickhouse-support-and-bugfixes\/\">Jetbrains IDE<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Vertamedia\/clickhouse-grafana\">Vertamedia\/clickhouse-grafana<\/a><\/noindex>. <\/li>\n<\/ul>\n<p><\/p>\n<p>Ich werde einige dieser Werkzeuge betrachten, d. h. die, mit denen ich gearbeitet habe. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/7b91bc29b1c04020b56c89621287e8c1.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ein gutes Tool, aber f\u00fcr Druid. Als wir Druid implementierten, habe ich SuperSet ausprobiert. Mir hat es gefallen. Es funktioniert sehr schnell mit Druid. <\/p>\n<p><\/p>\n<p>F\u00fcr ClickHouse eignet es sich nicht. D. h. es startet, funktioniert, aber kann nur einfache Abfragen wie: SELECT event, GROUP BY event verarbeiten. Es unterst\u00fctzt nicht die komplexere ClickHouse-Syntax.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/a708c787120de3db725a9bba4c8bd642.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Das n\u00e4chste Tool ist Apache Zeppelin. Das ist eine gute und interessante Sache. Es funktioniert. Es unterst\u00fctzt Notizen, Dashboards und Variablen. Ich wei\u00df, dass einige aus der ClickHouse-Community es verwenden. <\/p>\n<p><\/p>\n<p>Aber es gibt keine Unterst\u00fctzung f\u00fcr die ClickHouse-Syntax, d. h. man muss die Abfragen entweder in der Konsole oder irgendwo anders schreiben. Dann muss man \u00fcberpr\u00fcfen, ob das alles funktioniert. Das ist einfach unpraktisch. Aber die Unterst\u00fctzung f\u00fcr Dashboards ist gut. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/0c2afefc1504d14dd50f88459a652a1c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Das n\u00e4chste 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\u00f6glichkeit, Daten aus verschiedenen Datenquellen zu konsolidieren. D. h. Sie k\u00f6nnen Daten aus ClickHouse, MySQL, PostgreSQL und anderen Datenbanken exportieren. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/dc639fe6e9716c835d1fe0fdfaa300b8.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Vor etwa einem Monat (im M\u00e4rz 2017) wurde die Unterst\u00fctzung in Grafana eingef\u00fchrt. Wenn Sie Berichte in Grafana erstellen, zum Beispiel \u00fcber den Zustand Ihrer Hardware oder verschiedene Metriken, k\u00f6nnen 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\u00f6glicht, Anomalien zu finden. D. h. wenn etwas passiert und eine Hardware ausf\u00e4llt oder unter Stress steht, kann man die Ursache sehen, wenn diese Daten in ClickHouse erfasst wurden. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/0dd54a7633d25d0c924c2e6825028eb3.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>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.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/3252a09e0942428143336639aa399f4d.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Was wollte ich? Ich wollte Grafiken bekommen, einen verbesserten Editor und Unterst\u00fctzung f\u00fcr eine Vorschlagsw\u00f6rterbuchimplementierung. Denn ClickHouse hat eine gro\u00dfartige Funktion \u2013 die W\u00f6rterb\u00fccher. Aber mit den W\u00f6rterb\u00fcchern 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\u00f6rterb\u00fccher oft in ihren verschiedenen Varianten verwenden, war es oft schwierig, Abfragen zu schreiben.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/90a529b4fb5d03a6d61c89e00287b21d.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Drei Monate nach dem Release unserer ersten Version habe ich etwa 330 Commits in den geschlossenen Branch gemacht, und es entstand Tabix.<\/p>\n<p><\/p>\n<p>Im Gegensatz zur vorherigen Version, die ClickHouse-Frontend hie\u00df, habe ich entschieden, ihr einen einfachen Namen zu geben. So entstand Tabix.<\/p>\n<p><\/p>\n<p>Was ist neu?<\/p>\n<p><\/p>\n<p>Es erstellt Diagramme. Unterst\u00fctzt die SQL-Syntax von ClickHouse. Bietet Vorschl\u00e4ge zu Funktionen und kann noch vieles mehr.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/cd2bbb0c2c3e0fa2d2622bbd2aecdbc7.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>So sieht das Gesamtdiagramm von Tabix aus. Links befindet sich der Baum. In der Mitte \u2013 der Abfrage-Editor. Und unten \u2013 das Ergebnis dieser Abfrage.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/becf5df173220480e077ae8d8e0ebf3e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Als n\u00e4chstes zeige ich, wie der Abfrage-Editor funktioniert. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/d5ca1028922a12d5e6f133704d4c91a2.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hier hat die automatische Vervollst\u00e4ndigung f\u00fcr die Tabelle funktioniert und bietet entsprechend Vorschl\u00e4ge f\u00fcr die Felder. Au\u00dferdem Vorschl\u00e4ge zu Funktionen. Wenn man Strg + Eingabetaste dr\u00fcckt, wird die Abfrage ausgef\u00fchrt 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.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/74623f9f5030eb08523dc7269517a5d5.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>W\u00f6rterb\u00fccher sind, wie ich bereits sagte, eine sehr interessante Sache, mit der wir viel arbeiten. Sie haben es uns erm\u00f6glicht, viele Dinge zu realisieren. Zum Beispiel speichern wir in den W\u00f6rterb\u00fcchern alle St\u00e4dte. Wir speichern die ID der Stadt und den Namen der Stadt, deren Breite und L\u00e4nge. In der Datenbank speichern wir nur die ID der Stadt. Dementsprechend komprimieren wir die Daten erheblich.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/fa698b916b01a58f182003e6a15dfea0.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Das mag einfach erscheinen, aber in ClickHouse hilft es sehr interessant. Da ClickHouse nur verschachtelte Joins unterst\u00fctzt, w\u00e4chst die Abfrage sowohl nach unten als auch in der Breite erheblich. Und wenn eine Klammer ge\u00f6ffnet 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\u00df ist, ist das Zusammenklappen der Abfrage eine gro\u00dfe Erleichterung, um einen bestimmten Punkt zu finden oder ihn zu lokalisieren.<\/p>\n<p><\/p>\n<p>Objektbaum, Multi-Abfragen und Tabs (Video 13:46) <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/w1-XsL3nbRg?t=826\">https:\/\/youtu.be\/w1-XsL3nbRg?t=826<\/a><\/noindex>)<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/d43efecc6b0b395cdc17a3dd9db53400.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Als n\u00e4chstes zeige ich den Baum und die Tabs. Links \u2013 der Baum, oben kann man mehrere Tabs erstellen. Tabs sind wie Arbeitsbereiche. Sie k\u00f6nnen mehrere Tabs erstellen und jeden nach Belieben benennen. Es ist wie ein Mini-System zur Erstellung von Berichten.<\/p>\n<p><\/p>\n<p>Die Tabs werden automatisch gespeichert. Wenn Sie den Browser neu laden oder schlie\u00dfen oder Tabix \u00f6ffnen, bleibt alles erhalten.<\/p>\n<p><\/p>\n<p>Tastenkombinationen \u2013 praktisch (Video 14:39) <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/w1-XsL3nbRg?t=879\">https:\/\/youtu.be\/w1-XsL3nbRg?t=879<\/a><\/noindex>)<\/p>\n<p><\/p>\n<p>Es gibt Tastenkombinationen, und es gibt ziemlich viele. Hier habe ich einige von ihnen als Beispiel aufgef\u00fchrt. Das ist das Wechseln der Tabs, die Ausf\u00fchrung einer Abfrage oder das Ausf\u00fchren mehrerer Abfragen. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/27f3e6d0dbb4d1038bb551808b13d2ac.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>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\u00e4rben. 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\u00fcn oder rot hervorgehoben.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/af0c21073a1edd81e4d688f119ef7568.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>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, \u201eCopy to Redmine\u201c sagen und er kopiert es in Redmine Markdown oder erstellt eine Anfrage dort.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/43034a47b5ca31ee08e7721cc5f5159c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Als n\u00e4chstes \u2013 die Optimierung der Anfragen. Ich habe einmal vergessen, das Feld \u201edate\u201c 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 \u00fcbersehen hatte. Das hei\u00dft, ich hatte vergessen anzugeben, dass ich die Daten nicht f\u00fcr die gesamte Tabelle, sondern f\u00fcr einen bestimmten Zeitraum ben\u00f6tige.<\/p>\n<p><\/p>\n<p>In Tabix gibt es die Registerkarte \u201eStats\u201c, 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\u00f6tigte. Das erm\u00f6glicht eine Optimierung. <\/p>\n<p><\/p>\n<p>Man kann \u00fcber 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.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/0365df303eb55336eeb8a037cb118113.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>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\u00fcssen Sie die Registerkarte \u201eDraw\u201c ausw\u00e4hlen, und Sie erhalten ein Diagramm mit Ihren sin und cos. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/bdf00b9d6bffb907e88d2fdb7bfb16dc.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Man kann dies auf verschiedene Achsen aufteilen, d. h. man kann gleichzeitig zwei Diagramme nebeneinander zeichnen. Eine Anweisung schreiben und die zweite. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/efe77846e3f5f30a5d73e75be53d608a.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Man kann Histogramme zeichnen.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/e531aac548eca2eb9e30dac21f8876b8.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Man kann dies in eine Matrix von Diagrammen aufteilen.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/3404f87cee0e376df8ca62f03fc0fc7e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Man kann eine Heatmap erstellen. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/e15fe90c49bb850c821dab7492856b0b.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Man kann einen W\u00e4rmekalender erstellen. \u00dcbrigens ist das eine sehr n\u00fctzliche Sache, wenn man Anomalien \u00fcber das Jahr analysieren muss, d. h. entweder Spitzen oder R\u00fcckg\u00e4nge finden. Diese Datenvisualisierung hat mir dabei geholfen. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/08945df379d33aa73518ef10d02fe561.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Das N\u00e4chste ist Treemap.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/a7331b33b77e98ce85aff0316e3dcc76.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/5794844e8c1db71f1507cbdae67fedf6.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Sankeys \u2013 ein interessantes Diagramm. Es ist entweder Streamgraphs oder River. Aber ich nenne es River. Es erm\u00f6glicht ebenfalls, nach Anomalien zu suchen. Es ist sehr benutzerfreundlich. Ich empfehle, es zur Suche zu verwenden.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/483f363d93ba80dc9ac165ae083db585.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Eine weitere interessante Sache ist die Erstellung einer dynamischen Karte. Wenn in Ihrer Datenbank Breiten- und L\u00e4ngengrade sowie beispielsweise ein Ziel gespeichert sind, k\u00f6nnen Sie Routen zu diesen Zielen darstellen, sei es f\u00fcr den Land- oder Lufttransport. Au\u00dferdem kann man dort Geschwindigkeit und Gr\u00f6\u00dfe dieser Objekte angeben, in die sie ankommen.<\/p>\n<p><\/p>\n<p>Das Problem mit dieser Karte ist, dass sie nur die Weltkarte zeichnet, ohne Detailgenauigkeit.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/13f302e67e7f84dc85728204153d6377.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Sp\u00e4ter habe ich Google Maps hinzugef\u00fcgt. Wenn Sie Breiten- und L\u00e4ngengrade speichern, k\u00f6nnen Sie das Ergebnis auf Google Maps darstellen, allerdings ohne Unterst\u00fctzung f\u00fcr kleine Flugzeuge.<\/p>\n<p><\/p>\n<p>Die grundlegenden Funktionen zur Arbeit mit dem Ergebnis und der Abfrage in Tabix haben wir besprochen. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/849baa55e6865ab451b82f23fe6e5110.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Das n\u00e4chste ist die Analyse Ihres ClickHouse-Servers. Es gibt einen separaten Tab \u201eMetriken\u201c, in dem Sie die Gr\u00f6\u00dfe der gespeicherten Daten f\u00fcr jede Spalte sehen k\u00f6nnen. Auf dem Screenshot ist zu sehen, dass das Feld \u201ereferrer\u201c bei uns etwa 730 GB ben\u00f6tigt. Wenn wir auf dieses Feld verzichten, sparen wir drei Shards \u00e0 700 GB, also etwa 2 TB, die wir nicht ben\u00f6tigen. <\/p>\n<p><\/p>\n<p>Auch haben wir ein Feld \u201erequest_id\u201c, das wir als Zeichenfolge speichern. Wenn wir jedoch damit beginnen, es numerisch zu speichern, wird dieses Feld erheblich komprimiert. <\/p>\n<p><\/p>\n<p>Hier wird auch die Serverkonfiguration und die Liste der Knoten Ihres Clusters angezeigt. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/fa2a35c1af59b3f56059fcfb26571c6e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Der n\u00e4chste Tab sind die Metriken. Diese werden in Echtzeit von ClickHouse abgerufen und erm\u00f6glichen eine Analyse des Serverzustands, um zu verstehen, was mit ihm passiert. Das ist kein Ersatz f\u00fcr ein vollst\u00e4ndiges Grafana. Es dient dazu, eine schnelle Analyse durchzuf\u00fchren. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/7de741718ef19b81bd0f7f33dbed019e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Der n\u00e4chste 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.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/084b6131b189364f9e093792125649df.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Danke! Und das ist Open Source.<\/p>\n<p><\/p>\n<p>Ich bin fertig. \u00dcbrigens ist das Open Source, es ist kostenlos und Sie m\u00fcssen nichts herunterladen. \u00d6ffnen Sie es im Browser, und es wird alles funktionieren. <\/p>\n<p><\/p>\n<p>Fragen<\/p>\n<p><\/p>\n<p><em>Igor, was kommt als N\u00e4chstes? Wohin wirst du dieses Tool weiterentwickeln?<\/em><\/p>\n<p><\/p>\n<p>In Zukunft wird es ein Dashboard geben, d. h. m\u00f6glicherweise wird ein Dashboard entstehen. Integration mit anderen Datenbanken. Das habe ich gemacht, aber noch nicht in OpenSource ver\u00f6ffentlicht. Das ist MySQL und m\u00f6glicherweise PostgreSQL. Das hei\u00dft, man kann aus Tabix nicht nur Anfragen an ClickHouse senden, sondern auch an andere Tools.<\/p>\n<p><\/p>\n<p><em>Es ist zu sehen, dass eine riesige Menge Arbeit geleistet wurde. Es ist eine recht vollst\u00e4ndige Idee entstanden. Im Browser wurde es anscheinend gemacht, um Einschr\u00e4nkungen auf verschiedenen Achsen zu vermeiden und schnell alles zusammenzustellen. Ich habe geh\u00f6rt, dass Sie an<\/em> <em>php<\/em> <em>arbeiten, daher ist es am einfachsten, alles im Browser zusammenzustellen, und es wird \u00fcberall 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\u00fcr sich selbst erstellt werden, haben normalerweise nicht so viel Funktionalit\u00e4t.<\/em><\/p>\n<p><\/p>\n<p>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\u00dfteil 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 \u2013 oh, schrecklich. Aber ich wollte das Produkt unbedingt fertigstellen und das ist dabei herausgekommen.<\/p>\n<p><\/p>\n<p><em>Vielen Dank f\u00fcr den Bericht! Das ist ein hervorragendes Tool.<\/em> <em>Wurde es mit Tableau<\/em> <em>verglichen?<\/em><\/p>\n<p><\/p>\n<p>Danke. Deshalb habe ich es Tabix genannt, weil die ersten Buchstaben \u00fcbereinstimmen. <\/p>\n<p><\/p>\n<p><em>Konkurrenzen gibt es?<\/em><\/p>\n<p><\/p>\n<p>Es wird viele Investitionen geben, wir werden konkurrieren. <\/p>\n<p><\/p>\n<p><em>Wie schlagen Sie vor, es internen Analysten zu verkaufen, wenn dieses Tool vollst\u00e4ndig ersetzt<\/em> *Tableau*?<em>? \u041a\u0430\u043a\u0438\u0435 \u0431\u0443\u0434\u0443\u0442 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b?<\/em><\/p>\n<p><\/p>\n<p>Es funktioniert nativ mit ClickHouse. Ich habe Tableau ausprobiert, aber dort kann man keine Unterst\u00fctzung f\u00fcr W\u00f6rterb\u00fccher und dergleichen schreiben. <strong>Ich wei\u00df, wie die Leute mit Tabix arbeiten. Sie schreiben eine Abfrage, exportieren sie in CSV und laden sie in BI hoch.<\/strong> 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\u00f6chstens 6.000 Zeilen, aber nicht mehr, sonst h\u00e4lt der Browser nicht durch. <\/p>\n<p><\/p>\n<p><em>Das hei\u00dft, es gibt ernsthafte Einschr\u00e4nkungen hinsichtlich des Datenvolumens, richtig?<\/em><\/p>\n<p><\/p>\n<p>Ja. Ich kann mir nicht vorstellen, dass Sie 10.000 Zeilen in eine Tabelle laden m\u00f6chten, um sie auf dem Bildschirm des Browsers anzuzeigen. Warum? <\/p>\n<p><\/p>\n<p><em>Es wird vorausgesetzt, dass dies eine Schnittstelle f\u00fcr eine schnelle Ansicht von Daten ist? Um ein wenig zu spielen und zu drehen?<\/em><\/p>\n<p><\/p>\n<p>Ja, schnell ansehen, wie es funktioniert und einfach ein zusammenfassendes Diagramm erstellen. Und dann irgendwohin \u00fcbergeben. Wir haben unser eigenes Reporting-System, aus dem ich einfach diese Anfrage entnehme. Ich zeichne in Tabix und sende sie an unser Reporting. <\/p>\n<p><\/p>\n<p><em>Und noch eine Frage. Kohortenanalyse?<\/em><\/p>\n<p><\/p>\n<p>Wenn es W\u00fcnsche gibt, f\u00fcgen wir sie hinzu. <\/p>\n<p><\/p>\n<p><em>Als wir anfingen, es zu nutzen.<\/em> <em>ClickHouse, wie lange hat die Implementierung gedauert?<\/em> <em>ClickHouse<\/em> <em>und die \u00dcbergabe an<\/em> <em>den Produktionszustand?<\/em><\/p>\n<p><\/p>\n<p>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\u00f6gliche geschrieben. Es kann in MongoDB, Cassandra, MySQL schreiben. Ihn zu lehren, in ClickHouse zu schreiben, war einfach. Wir hatten die Infrastruktur f\u00fcr eine schnelle Implementierung bereit. Nach etwa drei Monaten haben wir den ersten Baustein ausgegliedert. Nach sechs Monaten haben wir vollst\u00e4ndig auf alles andere verzichtet. \u00dcbrig blieb nur ClickHouse.<\/p>\n<p><\/p>\n<p><em>Igor, vielen Dank f\u00fcr 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?<\/em><\/p>\n<p><\/p>\n<p>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\u00e4rt. Ich werde zur\u00fcckspulen, um zu erg\u00e4nzen. <\/p>\n<p><\/p>\n<p>Folie \u2013 Google Maps. Dort gibt es den Befehl \u201eDRAW_GMAPS\u201c, der die Karte zeichnet. Es gibt den Befehl \u201eDRAW_YMAPS\u201c, d.h. der kann eine Yandex-Karte erstellen. Und tats\u00e4chlich steckt hinter diesem Befehl Javascript, d.h. die Daten, die Sie aus ClickHouse erhalten, k\u00f6nnen an das Javascript \u00fcbertragen werden, das Sie hier schreiben. Und am Ende haben Sie ein Gebiet, in dem es gezeichnet werden soll. Sie k\u00f6nnen jedes Diagramm zeichnen, d.h. jedes Diagramm, Karte, Sie k\u00f6nnen Ihr eigenes Komponent zeichnen. Ich hatte vorher eine andere Bibliothek zur Zeichnung der Grafiken selbst.<\/p>\n<p><\/p>\n<p><em>Das hei\u00dft, da gibt es ein Werkzeug zur Anpassung der Anzeige-Funktionalit\u00e4t?<\/em><\/p>\n<p><\/p>\n<p>Jede. Man kann diese Punkte nehmen und umf\u00e4rben, sie nicht rot, sondern blau oder gr\u00fcn machen.<\/p>\n<p><\/p>\n<p><em>Vielen Dank f\u00fcr den Vortrag! Sie hatten eine Folie, auf der alternative Werkzeuge f\u00fcr Anfragen vorgestellt wurden.<\/em> <em>ClickHouse<\/em> <em>zum Erstellen von Dashboards, analytischen Berichten. So habe ich verstanden, dass zum Zeitpunkt, als Sie mit der Arbeit begonnen haben,<\/em> <em>ClickHouse, f\u00fcr diese Instrumente wurden keine Adapter geschrieben. Ich frage mich, warum Sie Ihr eigenes Werkzeug entwickeln wollten, anstatt einen Adapter f\u00fcr ein bereits vorhandenes Werkzeug zu schreiben? Ich denke, es w\u00e4re schnell, den Testeditor zu optimieren. Warum haben Sie sich entschieden, so viel Arbeit zu leisten?<\/em><\/p>\n<p><\/p>\n<p>Hier gibt es einen interessanten Punkt \u2013 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 \u2013 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 \u00fcber Data Science und Datenvisualisierung fehlte. Tabix ist eine Art meine Hausaufgabe zum Erlernen der Datenvisualisierung. Ich habe mir \u00fcberlegt, wie man Zeppelin erg\u00e4nzen kann. Ich habe eine leichte Abneigung gegen dessen Programmierung. Ich habe Redash angesehen, wie man es erg\u00e4nzen 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.<\/p>\n<p><\/p>\n<p><em>Igor, akzeptieren Sie Pull Requests?<\/em><\/p>\n<p><\/p>\n<p>Ja.<\/p>\n<p><\/p>\n<p><em>Vielen Dank f\u00fcr den Vortrag! Und zwei Fragen. Die erste \u2013 Sie \u00e4u\u00dfern sich nicht sehr lobend \u00fcber<\/em> Javascript. Haben Sie mit reinem Javascript oder doch mit einem Framework gearbeitet?*<\/p>\n<p><\/p>\n<p>Lieber mit purem Javascript.<\/p>\n<p><\/p>\n<p>Welches Framework dann?<\/p>\n<p><\/p>\n<p>Angular.<\/p>\n<p><\/p>\n<p><em>Verstehe. Und die zweite Frage. Haben Sie in Betracht gezogen<\/em> R <em>und<\/em> *<strong>Shiny**<\/strong>?*<\/p>\n<p><\/p>\n<p>Ich habe dar\u00fcber nachgedacht. Ich habe damit experimentiert. <\/p>\n<p><\/p>\n<p><em>Man h\u00e4tte auch einfach einen Adapter schreiben k\u00f6nnen.<\/em><\/p>\n<p><\/p>\n<p>Den gibt es. Soweit ich wei\u00df, hat die Community ihn gemacht, aber wie ich bereits auf die vorherige Frage geantwortet habe, wollte ich selbst damit experimentieren.<\/p>\n<p><\/p>\n<p>*Nein, bez\u00fcglich der Visualisierung, da gibt es welche.<\/p>\n<p><\/p>\n<p>Sie sagen, dass es so etwas gibt, und es wird Ihnen ein Diagramm zeichnen. Ich habe ein Buch \u00fcber Datenvisualisierung ge\u00f6ffnet und dachte: \u201aLass es mich versuchen, diese Daten zu visualisieren. Ich werde selbst schreiben, um die Daten darzustellen.\u2018 Und ich begann, besser zu verstehen, wie man Daten pr\u00e4sentiert. Wenn ich ein fertiges Modul verwendet h\u00e4tte, h\u00e4tte ich pers\u00f6nlich schlechter gelernt, wie man es nutzt, also gerade in der Visualisierung. Aber so \u2013 ja, R hat mir gefallen, aber ich habe das Buch \u201aR f\u00fcr Dummies\u2018 noch nicht gelesen. <\/p>\n<p><\/p>\n<p><em>Danke!<\/em><\/p>\n<p><\/p>\n<p><em>Einfache Frage. Gibt es M\u00f6glichkeiten, schnell eine Tabelle oder ein Diagramm zu exportieren?<\/em><\/p>\n<p><\/p>\n<p>Man kann in CSV oder Excel exportieren.<\/p>\n<p><\/p>\n<p><em>Nicht die Daten, sondern eine fertige Tabelle, ein fertiges Diagramm? Zum Beispiel, um es dem Chef zu zeigen.<\/em><\/p>\n<p><\/p>\n<p>Es gibt einen Button \u201eExportieren\u201c und einen Button \u201eGrafik als png, als jpg exportieren\u201c.<\/p>\n<p><\/p>\n<p><em>Danke!<\/em><\/p>\n<p><\/p>\n<p>P.S. Mini-Anleitung zur Installation von tabix<\/p>\n<p><\/p>\n<ul>\n<li>Herunterladen <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/smi2\/tabix.ui\/releases\">letzte Ver\u00f6ffentlichung<\/a><\/noindex><\/li>\n<li>Entpacken, das Verzeichnis kopieren <code>build<\/code> in nginx root_path<\/li>\n<li>nginx konfigurieren<\/li>\n<\/ul>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/491308\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 2017 \u0433\u043e\u0434\u0430 \u0418\u0433\u043e\u0440\u044c \u0421\u0442\u0440\u044b\u0445\u0430\u0440\u044c \u00abClickHouse \u2013 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0438 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Tabix\u00bb. \u0412\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f ClickHouse \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 Tabix. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438: \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 ClickHouse \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u0437 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430, \u0431\u0435\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u041f\u041e; \u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0441 \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u043e\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430; \u0410\u0432\u0442\u043e\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434; \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432; \u0426\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u0441\u0445\u0435\u043c\u044b \u043d\u0430 \u0432\u044b\u0431\u043e\u0440. \u042f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":73359,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-73358","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 2017 \u0433\u043e\u0434\u0430 \u0418\u0433\u043e\u0440\u044c \u0421\u0442\u0440\u044b\u0445\u0430\u0440\u044c \u00abClickHouse \u2013 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0438 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Tabix\u00bb. \u0412\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f ClickHouse \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 Tabix..\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/clickhouse-vizualno-bystryj-i-naglyadnyj-analiz-dannyh-v-tabix-igor-stryhar\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47ClickHouse \u2013 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0438 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Tabix. \u0418\u0433\u043e\u0440\u044c \u0421\u0442\u0440\u044b\u0445\u0430\u0440\u044c | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 2017 \u0433\u043e\u0434\u0430 \u0418\u0433\u043e\u0440\u044c \u0421\u0442\u0440\u044b\u0445\u0430\u0440\u044c \u00abClickHouse \u2013 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0438 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Tabix\u00bb. \u0412\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f ClickHouse \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 Tabix..\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/clickhouse-vizualno-bystryj-i-naglyadnyj-analiz-dannyh-v-tabix-igor-stryhar\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-03-09T05:42:14+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-09T05:42:14+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47ClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix. Igor Strikhary | ProHoster","description":"Ich empfehle, sich mit der Analyse des Berichts von Igor Strikhary 2017 \u201eClickHouse \u2013 visuell schnelle und anschauliche Datenanalyse in Tabix\u201c vertraut zu machen. Webschnittstelle f\u00fcr ClickHouse im Projekt Tabix..","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/clickhouse-vizualno-bystryj-i-naglyadnyj-analiz-dannyh-v-tabix-igor-stryhar","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47ClickHouse \u2013 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0438 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Tabix. \u0418\u0433\u043e\u0440\u044c \u0421\u0442\u0440\u044b\u0445\u0430\u0440\u044c | ProHoster","og:description":"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 2017 \u0433\u043e\u0434\u0430 \u0418\u0433\u043e\u0440\u044c \u0421\u0442\u0440\u044b\u0445\u0430\u0440\u044c \u00abClickHouse \u2013 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0438 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Tabix\u00bb. \u0412\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f ClickHouse \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 Tabix..","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/clickhouse-vizualno-bystryj-i-naglyadnyj-analiz-dannyh-v-tabix-igor-stryhar","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-03-09T05:42:14+00:00","article:modified_time":"2020-03-09T05:42:14+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"73358","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 18:34:26","updated":"2022-09-28 10:01:24","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/73358","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=73358"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/73358\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/73359"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=73358"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=73358"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=73358"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}