{"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\/da\/blog\/administrirovanie\/clickhouse-vizualno-bystryj-i-naglyadnyj-analiz-dannyh-v-tabix-igor-stryhar","title":{"rendered":"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong>Jeg vil gerne pr\u00e6sentere transkriptet af Igor Strikhar's pr\u00e6sentation fra 2017 \u00abClickHouse \u2013 visuel hurtig og overskuelig dataanalyse i Tabix\u00bb.<\/strong><\/p>\n<p><\/p>\n<p>Webgr\u00e6nsefladen til ClickHouse i projektet Tabix.<br \/>\nHovedfunktioner:<\/p>\n<p><\/p>\n<ul>\n<li>Fungerer med ClickHouse direkte fra browseren, uden behov for installation af ekstra software;<\/li>\n<li>Foresp\u00f8rgselseditor med syntaksfremh\u00e6vning;<\/li>\n<li>Automatisk fuldf\u00f8relse af kommandoer;<\/li>\n<li>V\u00e6rkt\u00f8jer til grafisk analyse af udf\u00f8relsesforesp\u00f8rgsler;<\/li>\n<li>Farveskemaer at v\u00e6lge imellem.<br \/>\n<img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" 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=\"Afspil video\" 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 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/950e3d0a3ff10d267ae48e897f5cbdb6.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Jeg er teknisk direkt\u00f8r for \u0421\u041c\u04182. Vi er en nyhedsudvekslingsaggregator. Vi gemmer mange data, som vi modtager fra vores partnere og registrerer dem i ClickHouse \u2013 omkring 30.000 foresp\u00f8rgsler per sekund.<\/p>\n<p><\/p>\n<p>Det drejer sig om data s\u00e5som:<\/p>\n<p><\/p>\n<ul>\n<li>Klik p\u00e5 nyheder.<\/li>\n<li>Visninger af nyheder i aggregatoren.<\/li>\n<li>Visninger af bannere i vores netv\u00e6rk.<\/li>\n<li>Og vi registrerer begivenheder fra vores egen t\u00e6ller, der ligner Yandex.Metrica. Det er vores egen mikroanalytik. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/8f5a7af9fef04a51fed29279557c3b64.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Vi havde et meget turbulente liv f\u00f8r ClickHouse. Vi k\u00e6mpede virkelig med at lagre disse data et eller andet sted og analysere dem.<\/p>\n<p><\/p>\n<p><strong>Livet f\u00f8r ClickHouse \u2013 infiniDB<\/strong><\/p>\n<p><\/p>\n<p>Det f\u00f8rste, vi havde, var infiniDB. Den var hos os i 4 \u00e5r. Vi lancerede den med vanskeligheder. <\/p>\n<p><\/p>\n<ul>\n<li>Den underst\u00f8tter ikke clustering eller sharding. Ingen af de smarte funktioner blev installeret som standard. <\/li>\n<li>Den har problemer med at indl\u00e6se data. Kun et specifikt kommandolinjev\u00e6rkt\u00f8j, der kun kunne indl\u00e6se CSV-filer og p\u00e5 en meget uklar m\u00e5de. <\/li>\n<li>Databasen var enkelttr\u00e5det. Man kunne kun skrive eller l\u00e6se. Men den kunne behandle store m\u00e6ngder data. <\/li>\n<li>Og den havde ogs\u00e5 en interessant l\u00f8sning. Hver nat skulle serveren genstartes, ellers fungerede den ikke. <\/li>\n<\/ul>\n<p><\/p>\n<p>Den fungerede for os indtil slutningen af 2016, da vi helt skiftede til ClickHouse.<\/p>\n<p><\/p>\n<p><strong>Livet f\u00f8r ClickHouse \u2013 Cassandra<\/strong><\/p>\n<p><\/p>\n<p>Da infiniDB var enkelttr\u00e5det, besluttede vi, at vi havde brug for en eller anden flertr\u00e5det database, hvor vi kunne skrive mange tr\u00e5de samtidig.<\/p>\n<p><\/p>\n<p>Vi pr\u00f8vede mange interessante ting. S\u00e5 besluttede vi at pr\u00f8ve Cassandra. Med Cassandra havde vi alt p\u00e5 plads. 10.000 foresp\u00f8rgsler per sekund til inds\u00e6ttelse. 2.000 foresp\u00f8rgsler cirka til l\u00e6sning. <\/p>\n<p><\/p>\n<p>Men den havde ogs\u00e5 sine interessante aspekter. En gang om m\u00e5neden eller hver anden m\u00e5ned skete der en desynkronisering af databasen. Og s\u00e5 m\u00e5tte man v\u00e5gne op, og l\u00f8be for at reparere Cassandra. Vi genstartede serverne \u00e9n efter \u00e9n. Og alt blev glat og smukt. <\/p>\n<p><\/p>\n<p><strong>Livet f\u00f8r ClickHouse \u2013 Druid<\/strong><\/p>\n<p><\/p>\n<p>Senere inds\u00e5 vi, at vi havde brug for at skrive endnu mere data. I 2016 begyndte vi at kigge p\u00e5 Druid. <\/p>\n<p><\/p>\n<p>Druid er en open source-database skrevet i Java. Meget speciel. Den passende til clickstream, n\u00e5r vi skal gemme en form for begivenhedsstr\u00f8m og derefter lave aggregering eller lave analytiske rapporter baseret p\u00e5 dem.<\/p>\n<p><\/p>\n<p>Druid havde version 0.9.X. <\/p>\n<p><\/p>\n<p>Selve databasen er meget vanskelig at implementere. Det er en kompleksitet af infrastrukturen. For at implementere den skulle vi s\u00e6tte mange maskiner op. Hver maskine havde sin egen rolle. <\/p>\n<p><\/p>\n<p>For at indl\u00e6se data i den skulle vi bruge en slags magi. Der er et open source-projekt - Tranquility, som mistede data i str\u00f8mmen. N\u00e5r vi indl\u00e6ste data i det, tabte det dem. <\/p>\n<p><\/p>\n<p>Men vi begyndte p\u00e5 en eller anden m\u00e5de at implementere det. Vi, ligesom pindsvin der bliver stikket, men forts\u00e6tter med at spise kaktus, begyndte at implementere det. Det tog os omkring en m\u00e5ned at forberede hele infrastrukturen til det. Alts\u00e5 bestille servere, konfigurere roller, udf\u00f8re fuld automatisering af implementeringen. Alts\u00e5 i tilf\u00e6lde af sammenbrud af klyngen, s\u00e5 skulle en anden klynge automatisk implementeres. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/a8193aab09ab9cce3b69e3b84ce470dd.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Men s\u00e5 skete der et mirakel. Jeg var p\u00e5 ferie, og mine kolleger sendte mig et link til <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/yandex\/blog\/303282\/\">habr<\/a><\/noindex>, hvor det blev sagt, at Yandex besluttede at \u00e5bne ClickHouse. Jeg sagde, lad os pr\u00f8ve.<\/p>\n<p><\/p>\n<p>Og bogstaveligt talt p\u00e5 2 dage havde vi implementeret en testklynge af ClickHouse. Vi begyndte at indl\u00e6se data i det. Sammenlignet med infiniDB \u2013 dette er element\u00e6rt, sammenlignet med Druid \u2013 dette er element\u00e6rt. Sammenlignet med Cassandra er det ogs\u00e5 element\u00e6rt. For det er ikke element\u00e6rt at indl\u00e6se data i Cassandra fra PHP.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/0b4b6ea08f7f7037d0e26dbe3f33fa53.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hvad fik vi? Performance i hastighed. Performance i datalagring. Alts\u00e5 bruges der meget mindre diskplads. ClickHouse er hurtig, den er meget hurtigere i forhold til andre produkter. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/9ff5e2ac127be8813b5d5cec49dab73a.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u00e5 tidspunktet for lanceringen, da Yandex offentliggjorde ClickHouse som open source, var der kun en konsolklient. Vi i vores virksomhed, \u0421\u041c\u04182, besluttede at pr\u00f8ve at lave en nativ klient til web, s\u00e5 man kunne \u00e5bne en side i en browser, skrive en foresp\u00f8rgsel og f\u00e5 resultater, fordi vi begyndte at skrive mange foresp\u00f8rgsler. Det er sv\u00e6rt at skrive i konsollen. Og vi lavede vores f\u00f8rste version.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/a2569a45f9bf1b91815ca3dfa0eefcf3.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Og t\u00e6ttere p\u00e5 vinteren sidste \u00e5r begyndte der at dukke eksterne v\u00e6rkt\u00f8jer til at arbejde med ClickHouse op. Disse v\u00e6rkt\u00f8jer inkluderer:<\/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>. (Nu <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>Jeg vil gennemg\u00e5 nogle af disse v\u00e6rkt\u00f8jer, dvs. dem jeg har arbejdet med. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/7b91bc29b1c04020b56c89621287e8c1.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Et godt v\u00e6rkt\u00f8j, men til Druid. Da vi implementerede Druid, testede jeg SuperSet. Jeg kunne lide det. Det fungerer meget hurtigt til Druid. <\/p>\n<p><\/p>\n<p>Det er ikke egnet til ClickHouse. Alts\u00e5, det virker, men det kan kun h\u00e5ndtere grundl\u00e6ggende foresp\u00f8rgsler som: SELECT event, GROUP BY event. Det underst\u00f8tter ikke mere kompleks ClickHouse-syntaks.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/a708c787120de3db725a9bba4c8bd642.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Det n\u00e6ste v\u00e6rkt\u00f8j er Apache Zeppelin. Det er en god og interessant ting. Det fungerer. Det underst\u00f8tter notesb\u00f8ger, dashboards og underst\u00f8tter variabler. Jeg ved, at nogen i ClickHouse-f\u00e6llesskabet bruger det. <\/p>\n<p><\/p>\n<p>Men der er ikke st\u00f8tte til ClickHouse-syntaks, dvs. man skal skrive foresp\u00f8rgsler enten i konsollen eller et andet sted. Derefter skal man kontrollere, at alt fungerer. Det er simpelthen ubelejligt. Men underst\u00f8ttelsen af dashboards er rigtig god. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/0c2afefc1504d14dd50f88459a652a1c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Det n\u00e6ste v\u00e6rkt\u00f8j er Redash.IO. Redash hostes online. Dvs. i mods\u00e6tning til de tidligere v\u00e6rkt\u00f8jer skal det ikke installeres. Det er et dashboardv\u00e6rkt\u00f8j med mulighed for datakonsolidering fra forskellige datakilder. Dvs. du kan tr\u00e6kke data fra ClickHouse, MySQL, PostgreSQL og andre databaser. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/dc639fe6e9716c835d1fe0fdfaa300b8.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>For pr\u00e6cis en m\u00e5ned siden (i marts 2017) blev der tilf\u00f8jet st\u00f8tte i Grafana. N\u00e5r du bygger rapporter i Grafana, for eksempel om tilstanden af dit udstyr eller nogle m\u00e5linger, kan du nu bygge en tilsvarende graf eller panel med data fra ClickHouse direkte. Det er meget praktisk, og vi bruger det internt. Det g\u00f8r det muligt at finde anomalier. Alts\u00e5, hvis der sker noget, og en enhed falder ud eller bliver belastet, s\u00e5 kan man se \u00e5rsagen, hvis disse data har n\u00e5et at komme ind i ClickHouse. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/0dd54a7633d25d0c924c2e6825028eb3.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Det var meget ubehageligt for mig at skrive i disse v\u00e6rkt\u00f8jer eller i konsollen. S\u00e5 jeg besluttede at forbedre vores f\u00f8rste interface. Og jeg fik inspiration fra EventSQL, SuperSet og Zeppelin.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/3252a09e0942428143336639aa399f4d.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hvad \u00f8nskede jeg? Jeg \u00f8nskede at f\u00e5 grafer, en forbedret editor og implementere st\u00f8tte til ordlister med forslag. Fordi ClickHouse har en fantastisk funktion \u2013 ordlister. Men det er vanskeligt at arbejde med ordlister, fordi man skal huske formatet p\u00e5 de gemte v\u00e6rdier, dvs. om det er et tal eller en streng osv. Og da vi ofte bruger ordlister i deres forskellige varianter, var det ret sv\u00e6rt at skrive foresp\u00f8rgsler.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/90a529b4fb5d03a6d61c89e00287b21d.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Der er g\u00e5et 3 m\u00e5neder siden frigivelsen af vores f\u00f8rste version. Jeg har lavet omkring 330 commits i den lukkede gren, og det blev til Tabix.<\/p>\n<p><\/p>\n<p>I mods\u00e6tning til den tidligere version, der hed ClickHouse-Frontend, har jeg besluttet at omd\u00f8be den til et simpelt navn. Og det blev Tabix.<\/p>\n<p><\/p>\n<p>Hvad er der kommet?<\/p>\n<p><\/p>\n<p>Tegner grafer. Underst\u00f8tter SQL-syntaksen for ClickHouse. Giver forslag til funktioner og kan meget mere.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/cd2bbb0c2c3e0fa2d2622bbd2aecdbc7.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>S\u00e5dan ser den samlede skema for Tabix ud. Til venstre er tr\u00e6et pr\u00e6senteret. I midten \u2013 d\u00e9t er foresp\u00f8rgselseditoren. Og nederst \u2013 er resultatet af denne foresp\u00f8rgsel.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/becf5df173220480e077ae8d8e0ebf3e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Jeg vil nu vise, hvordan foresp\u00f8rgselseditoren fungerer. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/d5ca1028922a12d5e6f133704d4c91a2.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Her aktiveredes autocompletion automatisk p\u00e5 tabellen og giver forslag, svarende til autocompletion p\u00e5 felterne. Og forslag til funktionerne. Hvis man trykker ctrl enter, vil foresp\u00f8rgslen blive udf\u00f8rt eller falde med en fejl. Den enkleste foresp\u00f8rgsel sendes til Tabix, og man f\u00e5r et resultat, dvs. man kan hurtigt arbejde med ClickHouse.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/74623f9f5030eb08523dc7269517a5d5.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ordb\u00f8ger, som jeg allerede har n\u00e6vnt, er en meget interessant ting, som vi arbejder meget med. Og som har gjort det muligt at lave mange ting. I ordb\u00f8gerne gemmer vi alle byer. Vi opbevarer identifikatoren for byen og navnet p\u00e5 byen, dens bredde- og l\u00e6ngdegrad. I databasen gemmer vi kun identifikatoren for byen. S\u00e5 vi komprimerer data meget effektivt.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/fa698b916b01a58f182003e6a15dfea0.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Det er, tilsyneladende, en simple ting, men i ClickHouse hj\u00e6lper den meget interessant. Fordi ClickHouse kun underst\u00f8tter indlejret join, vokser foresp\u00f8rgslen nedad og i bredden ret meget. Og n\u00e5r en parentes \u00e5bnes, og der er et langt udtryk, s\u00e5 hj\u00e6lper en s\u00e5 relativt simpel ting som at folde foresp\u00f8rgslen sammen, med at arbejde lettere med selve foresp\u00f8rgselen. For n\u00e5r foresp\u00f8rgselen er 200-300 linjer og i bredden meget stor, er det en stor hj\u00e6lp at folde foresp\u00f8rgselen sammen og derefter finde et sted eller p\u00e5 en eller anden m\u00e5de lokalisere den.<\/p>\n<p><\/p>\n<p>Objektr\u00e6, multipurpose foresp\u00f8rgsler og faner (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 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/d43efecc6b0b395cdc17a3dd9db53400.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Jeg vil n\u00e6ste vise om tr\u00e6et, fanerne. Til venstre \u2013 er tr\u00e6et, og ovenfor kan man oprette flere faner. Faner fungerer som et arbejdsomr\u00e5de. Du kan oprette flere faner og navngive hver enkelt efter eget valg. Det fungerer som et minissystem til at opbygge rapporter.<\/p>\n<p><\/p>\n<p>Faner gemmes automatisk. Hvis du genindl\u00e6ser browseren, lukker den eller \u00e5bner Tabix igen, s\u00e5 vil alt dette blive gemt.<\/p>\n<p><\/p>\n<p>Genvejstast \u2013 praktisk (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>Der findes genvejstaster, og der er ret mange af dem. Jeg har fremh\u00e6vet nogle af dem her som eksempler. Dette er skift af fane, udf\u00f8r foresp\u00f8rgsel eller udf\u00f8r flere foresp\u00f8rgsler. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/27f3e6d0dbb4d1038bb551808b13d2ac.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Jeg vil vise, hvordan man arbejder med resultatet. Vi sender en foresp\u00f8rgsel. Her tegner jeg sin, cos og tg. Man kan fremh\u00e6ve resultatet, dvs. tegne en typisk kort p\u00e5 kolonnen. Man kan fremh\u00e6ve positive eller negative v\u00e6rdier. Eller bare farve et specifikt element i tabellen. Det er praktisk, n\u00e5r tabellen er enorm, og man skal finde en bestemt anomalie med det blotte \u00f8je. Da jeg s\u00f8gte efter anomalier, fremh\u00e6vede jeg nogle r\u00e6kker og nogle elementer med gr\u00f8n eller r\u00f8d farve.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/af0c21073a1edd81e4d688f119ef7568.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Der er mange interessante ting der. For eksempel hvordan man kopierer til Redmine Markdown. Hvis man har brug for at kopiere resultatet et sted hen, er det meget praktisk. Man kan blot v\u00e6lge et omr\u00e5de, sige 'Copy to Redmine', og det vil kopiere til Redmine Markdown eller oprette en foresp\u00f8rgsel Where.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/43034a47b5ca31ee08e7721cc5f5159c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dern\u00e6st er der optimering af foresp\u00f8rgsler. Jeg glemte \u00e9n gang at angive feltet 'date'. Og min foresp\u00f8rgsel i ClickHouse blev ikke behandlet meget hurtigt, men hurtigt, dvs. p\u00e5 mindre end et sekund. Da jeg s\u00e5, hvor mange r\u00e6kker den gennemgik, blev jeg bange. Vi skriver ikke s\u00e5 mange r\u00e6kker i denne tabel p\u00e5 en dag. Jeg begyndte at analysere foresp\u00f8rgslen og s\u00e5, at jeg havde glemt at angive datoen et sted. Dvs. jeg glemte at angive, at jeg kun havde brug for data for en bestemt periode og ikke for hele tabellen.<\/p>\n<p><\/p>\n<p>I Tabix er der en fane 'Stats', hvor al historik for sendte foresp\u00f8rgsler gemmes, s\u00e5 man kan se, hvor mange r\u00e6kker der blev l\u00e6st af denne foresp\u00f8rgsel og hvor lang tid den tog at udf\u00f8re. Det g\u00f8r det muligt at optimere. <\/p>\n<p><\/p>\n<p>Man kan bygge en pivottabel over resultatet af foresp\u00f8rgslen. Du sendte en foresp\u00f8rgsel til ClickHouse og fik nogle data. Og derefter kan disse data tr\u00e6kkes med musen for at bygge en pivottabel.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/0365df303eb55336eeb8a037cb118113.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Den n\u00e6ste interessante ting er grafopbygning. Antag, at vi har en s\u00e5dan foresp\u00f8rgsel: p\u00e5 sin, cos fra 0 til 299. For at tegne den skal du v\u00e6lge fanen 'Draw', og du vil f\u00e5 en graf med dine sin og cos. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/bdf00b9d6bffb907e88d2fdb7bfb16dc.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Man kan opdele dette p\u00e5 forskellige akser, dvs. man kan tegne to grafer ved siden af hinanden. Skriv \u00e9n kommando og derefter en anden kommando. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/efe77846e3f5f30a5d73e75be53d608a.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Man kan tegne histogrammer.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/e531aac548eca2eb9e30dac21f8876b8.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Man kan opdele dette i et matrix af grafer.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/3404f87cee0e376df8ca62f03fc0fc7e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Man kan bygge et varme kort. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/e15fe90c49bb850c821dab7492856b0b.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Man kan bygge en varmekalender. I \u00f8vrigt en meget praktisk ting, n\u00e5r man skal analysere anomalier over et \u00e5r, dvs. finde enten spidser eller fald. Denne datavisualisering hjalp mig med dette. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/08945df379d33aa73518ef10d02fe561.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Den n\u00e6ste er Treemap.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" 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 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/5794844e8c1db71f1507cbdae67fedf6.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Sankeys \u2013 en interessant graf. Det er enten Streamgraphs eller River. Men jeg kalder det River. Det giver ogs\u00e5 mulighed for at s\u00f8ge efter anomalier. Det er meget praktisk. Jeg anbefaler at bruge det til at finde.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/483f363d93ba80dc9ac165ae083db585.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Den n\u00e6ste interessante ting er visualisering af et dynamisk kort. Hvis du har breddegrad, l\u00e6ngdegrad og, lad os sige, destinationer i din database, for eksempel hvis du har lastbiler eller fly, kan du visualisere ruterne til destinationerne. Du kan ogs\u00e5 angive hastighed, st\u00f8rrelse p\u00e5 objekterne, som de ankommer til.<\/p>\n<p><\/p>\n<p>Men problemet med dette kort er, at det kun viser et verdenskort, der mangler detaljer.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/13f302e67e7f84dc85728204153d6377.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Senere tilf\u00f8jede jeg Google Maps. Hvis du gemmer breddegrad og l\u00e6ngdegrad, kan du visualisere resultatet p\u00e5 Google Maps, men uden st\u00f8tte til flyene.<\/p>\n<p><\/p>\n<p>De grundl\u00e6ggende funktioner til arbejde med resultatet, med foresp\u00f8rgslen i Tabix, har vi diskuteret. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/849baa55e6865ab451b82f23fe6e5110.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00e6ste er analysen af din ClickHouse-server. Der er en separat fane 'Metrikker', hvor du kan se st\u00f8rrelsen p\u00e5 de gemte data pr. kolonne. P\u00e5 sk\u00e6rmbilledet kan du se, at feltet 'referrer' fylder omkring 730 Gb. Hvis vi dropper dette felt, vil vi spare tre shards p\u00e5 700 GB, dvs. omkring 2 TB, som vi ikke har brug for. <\/p>\n<p><\/p>\n<p>Vi har ogs\u00e5 et felt 'request_id', som vi gemmer som tekst. Men hvis vi begynder at gemme det som tal, vil dette felt blive komprimeret betydeligt. <\/p>\n<p><\/p>\n<p>Her er ogs\u00e5 serverkonfigurationen og listen over noder i din klynge. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/fa2a35c1af59b3f56059fcfb26571c6e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Den n\u00e6ste fane er metrikker. De hentes i realtid fra ClickHouse og giver mulighed for at analysere serverens tilstand og forst\u00e5, hvad der sker. Det er ikke en fuld erstatning for Grafana. Det bruges til hurtig analyse. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/7de741718ef19b81bd0f7f33dbed019e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Den n\u00e6ste fane er processer. Her kan man forst\u00e5, hvad der sker p\u00e5 serveren. Forst\u00e5, hvad der foreg\u00e5r. Jeg havde en foresp\u00f8rgsel, der kr\u00e6vede 200 GB l\u00e6sning hver gang. Jeg opdagede det takket v\u00e6re dette interface. Jeg fangede det og justerede det, og det blev til omkring 30 GB, dvs. ydeevnen blev forbedret betydeligt.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar\" src=\"\/wp-content\/uploads\/2020\/03\/084b6131b189364f9e093792125649df.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tak! Og det er OpenSource.<\/p>\n<p><\/p>\n<p>Jeg er f\u00e6rdig. Og for \u00f8vrigt er det OpenSource, det er gratis og kr\u00e6ver ikke download. \u00c5bn det i din browser, s\u00e5 virker det. <\/p>\n<p><\/p>\n<p>Sp\u00f8rgsm\u00e5l<\/p>\n<p><\/p>\n<p><em>Igor, hvad er n\u00e6ste skridt? Hvordan vil du udvikle dette v\u00e6rkt\u00f8j?<\/em><\/p>\n<p><\/p>\n<p>Senere vil dashboardet blive pr\u00e6senteret, dvs. det er muligt, at der vil v\u00e6re et dashboard. Integration med andre databaser. Det har jeg gjort, men har endnu ikke offentliggjort det i OpenSource. Dette er MySQL og m\u00e5ske PostgreSQL. Det vil sige, man vil kunne sende foresp\u00f8rgsler fra Tabix ikke kun til ClickHouse, men ogs\u00e5 til andre v\u00e6rkt\u00f8jer.<\/p>\n<p><\/p>\n<p><em>Det er tydeligt, at der er lavet et enormt arbejde. Det blev en ret fuldendt id\u00e9. Det er lavet i browseren, sandsynligvis for at undg\u00e5 midlertidige l\u00f8sninger p\u00e5 forskellige akser og hurtigt f\u00e5 dette op at k\u00f8re. Jeg har h\u00f8rt, at du arbejder p\u00e5 det, s\u00e5 det er simpelthen nemmere at lave det i browseren, og s\u00e5 vil det fungere overalt. Der er ikke nogen sp\u00f8rgsm\u00e5l til det. Sp\u00f8rgsm\u00e5let er s\u00e5: hvor mange mennesker har arbejdet p\u00e5 dette? Og hvor lang tid tog det hele? Fordi v\u00e6rkt\u00f8jer til ens egne behov har normalt ikke s\u00e5 meget funktionalitet.<\/em> <em>php<\/em> <em>Fra sommeren til efter\u00e5ret arbejdede \u00e9n person fra vores team. Det var den f\u00f8rste version. Derefter lavede jeg 330 commits alene. Det, du ser, er noget, vi har lavet sammen. I l\u00f8bet af de 3 m\u00e5neder fra den f\u00f8rste version til den sidste, har jeg for det meste gjort det alene. Men jeg kender meget lidt til Javascript. Dette var mit eneste og, h\u00e5ber jeg, sidste projekt med Javascript, som jeg har arbejdet med. Det blev overgivet til mig, og jeg t\u00e6nkte \u2013 \u00e5h, r\u00e6dsel. Men jeg havde virkelig lyst til at fuldf\u00f8re produktet, og s\u00e5ledes blev det til.<\/em><\/p>\n<p><\/p>\n<p>Tusind tak for pr\u00e6sentationen! Det er et fremragende v\u00e6rkt\u00f8j. Har I sammenlignet det?<\/p>\n<p><\/p>\n<p><em>Tak. Derfor kaldte jeg det Tabix, fordi de f\u00f8rste bogstaver stemmer overens.<\/em> <em>Tableau<\/em> <em>Fordi I konkurrerer?<\/em><\/p>\n<p><\/p>\n<p>Der vil v\u00e6re mange investeringer, og vi vil konkurrere. <\/p>\n<p><\/p>\n<p><em>Hvordan vil du foresl\u00e5 at s\u00e6lge til de interne analytikere, at dette v\u00e6rkt\u00f8j fuldst\u00e6ndig erstatter *Tableau*?<\/em><\/p>\n<p><\/p>\n<p>Det fungerer nativt med ClickHouse. Jeg har pr\u00f8vet Tableau, men der kan man ikke skrive st\u00f8tte til ordb\u00f8ger og s\u00e5dan. <\/p>\n<p><\/p>\n<p><em>Jeg ved, hvordan folk arbejder med Tabix. De skriver foresp\u00f8rgsler, eksporterer til CSV og importerer det til BI.<\/em> Og der g\u00f8r de s\u00e5 noget. Men jeg har sv\u00e6rt ved at forestille mig, hvordan de g\u00f8r det, fordi \u2013 det er et grafisk v\u00e6rkt\u00f8j. Det kan eksportere 5.000 r\u00e6kker, maksimalt 6.000 r\u00e6kker, men ikke mere; ellers t\u00e5ler browseren det ikke.<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>Det vil sige, der er nogle alvorlige begr\u00e6nsninger p\u00e5 datavolumen, ikke? <strong>Ja. Jeg kan ikke forestille mig, at du vil have 10.000 r\u00e6kker vist p\u00e5 din browser-sk\u00e6rm. Hvorfor?<\/strong> Det underst forst\u00e5s, at dette er et interface til hurtigt at se data? Dreje lidt rundt, vende lidt rundt? <\/p>\n<p><\/p>\n<p><em>Ja. Jeg kan ikke forestille mig, at du vil have 10.000 r\u00e6kker vist p\u00e5 din browser-sk\u00e6rm. Hvorfor?<\/em><\/p>\n<p><\/p>\n<p>Som det er forst\u00e5et, er dette et interface til hurtigt at gennemse data? At rotere lidt, at se lidt n\u00e6rmere? <\/p>\n<p><\/p>\n<p><em>Ja. Jeg vil ikke forestille mig, at du \u00f8nsker at f\u00e5 10.000 r\u00e6kker vist p\u00e5 din browser-sk\u00e6rm. Hvorfor?<\/em><\/p>\n<p><\/p>\n<p>Ja, hurtigt se, hvordan det fungerer, og bare opbygge et samlet diagram. Og s\u00e5 sende det videre et sted hen. Vi har vores eget rapporteringssystem, hvorfra jeg blot henter denne foresp\u00f8rgsel. Tegner i Tabix og sender til vores rapportering. <\/p>\n<p><\/p>\n<p><em>Og et sp\u00f8rgsm\u00e5l mere. Kohortanalyse?<\/em><\/p>\n<p><\/p>\n<p>Hvis der er \u00f8nsker, tilf\u00f8jer vi dem. <\/p>\n<p><\/p>\n<p><em>Da vi lige var begyndt at bruge<\/em> <em>ClickHouse, hvor lang tid tog det at implementere<\/em> <em>ClickHouse<\/em> <em>og bringe det til<\/em> <em>produktionsstatus?<\/em><\/p>\n<p><\/p>\n<p>Som jeg sagde, implementerede vi et testkluster p\u00e5 meget kort tid. Vi satte det op p\u00e5 to dage. Og i et par uger testede vi det. Og vi n\u00e5ede til produktion p\u00e5 cirka 3 m\u00e5neder. Men vi havde vores eget ETL, dvs. et v\u00e6rkt\u00f8j til at indsamle data. Og det kunne skrive til alt, hvad der var muligt. Det kan skrive til MongoDB, Cassandra, MySQL. At l\u00e6re det at skrive til ClickHouse var let. Vi havde en klar infrastruktur til hurtig implementering. Efter cirka 3 m\u00e5neder begyndte vi at udskille den f\u00f8rste komponent. Efter 6 m\u00e5neder havde vi helt opgivet alt andet. Vi har kun ClickHouse tilbage.<\/p>\n<p><\/p>\n<p><em>Igor, tusind tak for dit foredrag. Jeg kunne virkelig godt lide funktionen til at bygge ruter p\u00e5 kort. Er der planer om integration med Yandex.Maps, is\u00e6r med tilpassede Yandex.Maps?<\/em><\/p>\n<p><\/p>\n<p>Jeg pr\u00f8vede at integrere i stedet for Google Maps, men jeg kunne ikke finde en m\u00f8rk tema p\u00e5 Yandex.Maps. Jeg glemte en del. Lad mig spole tilbage for at supplere. <\/p>\n<p><\/p>\n<p>Slide \u2013 Google Maps. Der er en kommando \u00abDRAW_GMAPS\u00bb, der tegner kortet. Der er en kommando \u00abDRAW_YMAPS\u00bb, dvs. det kan tegne et Yandex-kort. Og faktisk bag denne kommando ligger der Javascript, dvs. de data, du f\u00e5r fra ClickHouse, kan overf\u00f8res til det Javascript, du her skriver. Og du har et omr\u00e5de, hvor det skal tegnes. Du kan tegne enhver grafik, dvs. enhver grafik, kort, du kan tegne din egen komponent. Jeg havde f\u00f8r en anden bibliotek til at tegne selve grafikken.<\/p>\n<p><\/p>\n<p><em>Dvs. der findes et v\u00e6rkt\u00f8j til at tilpasse funktionen af visningen?<\/em><\/p>\n<p><\/p>\n<p>Enhver. Man kan tage disse punkter og \u00e6ndre farven, s\u00e5 de ikke er r\u00f8de, men bl\u00e5, gr\u00f8nne.<\/p>\n<p><\/p>\n<p><em>Tak for dit foredrag! Du havde en slide, hvor alternative v\u00e6rkt\u00f8jer til foresp\u00f8rgsler blev pr\u00e6senteret<\/em> <em>ClickHouse<\/em> <em>til opbygning af dashboards, analytiske rapporter. Forstod jeg det korrekt, at p\u00e5 det tidspunkt, hvor du begyndte at arbejde med<\/em> <em>ClickHouse, der var ikke skrevet nogle adaptere til disse v\u00e6rkt\u00f8jer. Og jeg undrer mig over, hvorfor du besluttede at lave dit eget v\u00e6rkt\u00f8j i stedet for at skrive en adapter til et eksisterende v\u00e6rkt\u00f8j? Jeg synes, at det er hurtigt at tune en testredigerer. Hvorfor besluttede du at lave s\u00e5 meget arbejde?<\/em><\/p>\n<p><\/p>\n<p>Der er en interessant detalje \u2013 pointen er, at jeg er teknisk direkt\u00f8r, ikke data scientist. P\u00e5 det tidspunkt, hvor vi begyndte at implementere Druid, havde jeg omkring 50 % af opgaverne i min roadmap \u2013 lad os beregne dette eller lad os analysere det der. Og det endte med, at vi implementerede ClickHouse. Jeg begyndte hurtigt at bygge alt op, beregne, og lukkede hurtigt min roadmap. Og p\u00e5 det tidspunkt inds\u00e5 jeg, at jeg manglede viden om Data Science og datavisualisering. Tabix er min egen form for hjemmearbejde i datavisualisering. Jeg kiggede p\u00e5, hvordan jeg kunne supplere Zeppelin. Jeg har en svag modvilje mod dens programmering. Jeg kiggede p\u00e5, hvordan jeg kunne supplere Redash, men jeg manglede en ordentlig redigerer der. Og SuperSet er ogs\u00e5 skrevet p\u00e5 det sprog, jeg ikke er s\u00e6rlig glad for. S\u00e5 jeg besluttede at lave det selv, og s\u00e5dan blev det.<\/p>\n<p><\/p>\n<p><em>Igor, accepterer I pull requests?<\/em><\/p>\n<p><\/p>\n<p>Ja.<\/p>\n<p><\/p>\n<p><em>Tusind tak for pr\u00e6sentationen! Og to sp\u00f8rgsm\u00e5l. For det f\u00f8rste \u2013 du taler ikke s\u00e6rlig rosende om<\/em> Javascript. Har du skrevet i ren Javascript eller var det en form for framework?<\/p>\n<p><\/p>\n<p>Bedre i ren Javascript.<\/p>\n<p><\/p>\n<p>S\u00e5 hvilket framework?<\/p>\n<p><\/p>\n<p>Angular.<\/p>\n<p><\/p>\n<p><em>Jeg forst\u00e5r. Og det andet sp\u00f8rgsm\u00e5l. Har I overvejet<\/em> R <em>og<\/em> *<strong>Shiny<\/strong>?*<\/p>\n<p><\/p>\n<p>Jeg har overvejet det. Leget med det. <\/p>\n<p><\/p>\n<p><em>Man kunne ogs\u00e5 bare have skrevet en adapter.<\/em><\/p>\n<p><\/p>\n<p>Der er en. Det ser ud til, at f\u00e6llesskabet har lavet det, men som jeg svarede p\u00e5 det tidligere sp\u00f8rgsm\u00e5l, \u00f8nskede jeg at pr\u00f8ve det selv.<\/p>\n<p><\/p>\n<p>Nej, vedr\u00f8rende visualiseringen, der er.<\/p>\n<p><\/p>\n<p>Du siger, at der findes noget, der tegner en graf for dig. Jeg \u00e5bnede en bog om datavisualisering. Og t\u00e6nkte: \u00abLad mig pr\u00f8ve at visualisere disse data. Jeg skriver det selv, s\u00e5 det kan bygge dataene op\u00bb. Og jeg begyndte at forst\u00e5 teknologien til data levering bedre. Hvis jeg havde taget en f\u00e6rdig komponent, ville jeg personligt have l\u00e6rt at bruge det d\u00e5rligere, alts\u00e5 specifikt visualiseringen. Men s\u00e5dan \u2013 ja, jeg kunne godt lide R, men jeg har ikke l\u00e6st bogen \u00abR for dummies\u00bb endnu. <\/p>\n<p><\/p>\n<p><em>Tak!<\/em><\/p>\n<p><\/p>\n<p><em>Et simpelt sp\u00f8rgsm\u00e5l. Er der nogen muligheder for hurtigt at eksportere en tabel, en graf?<\/em><\/p>\n<p><\/p>\n<p>Man kan eksportere til CSV, til Excel.<\/p>\n<p><\/p>\n<p><em>Ikke dataene, men en f\u00e6rdig tabel, en f\u00e6rdig graf? For eksempel for at vise det til ledelsen.<\/em><\/p>\n<p><\/p>\n<p>Der er en knap \"Eksporter\" og en knap \"Eksporter grafik i png, i jpg\".<\/p>\n<p><\/p>\n<p><em>Tak!<\/em><\/p>\n<p><\/p>\n<p>P.S. Mini-instruktion til installation af tabix<\/p>\n<p><\/p>\n<ul>\n<li>Download <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/smi2\/tabix.ui\/releases\">sidste udgivelse<\/a><\/noindex><\/li>\n<li>Udpak, kopier biblioteket <code>build<\/code> til nginx root_path<\/li>\n<li>Konfigurer nginx<\/li>\n<\/ul>\n<p>Kilde: <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.3 - 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\/da\/blog\/administrirovanie\/clickhouse-vizualno-bystryj-i-naglyadnyj-analiz-dannyh-v-tabix-igor-stryhar\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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 visuelt hurtig og overskuelig dataanalyse i Tabix. Igor Strykhar | ProHoster","description":"Jeg foresl\u00e5r, at du ser n\u00e6rmere p\u00e5 opl\u00e6gget fra 2017 af Igor Strykhar \"ClickHouse \u2013 visuelt hurtig og overskuelig dataanalyse i Tabix\". Webgr\u00e6nseflade til ClickHouse i Tabix-projektet.","canonical_url":"https:\/\/prohoster.info\/da\/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":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/73358","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=73358"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/73358\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/73359"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=73358"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=73358"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=73358"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}