{"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\/cs\/blog\/administrirovanie\/clickhouse-vizualno-bystryj-i-naglyadnyj-analiz-dannyh-v-tabix-igor-stryhar","title":{"rendered":"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong>Doporu\u010duji se sezn\u00e1mit s p\u0159episem zpr\u00e1vy z roku 2017 Igora Strykha\u0159e \u201eClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabixu\u201c.<\/strong><\/p>\n<p><\/p>\n<p>Webov\u00e9 rozhran\u00ed pro ClickHouse v projektu Tabix.<br \/>\nHlavn\u00ed funkce:<\/p>\n<p><\/p>\n<ul>\n<li>Pracuje s ClickHouse p\u0159\u00edmo z prohl\u00ed\u017ee\u010de, bez nutnosti instalace dal\u0161\u00edho softwaru;<\/li>\n<li>Editor dotaz\u016f se zv\u00fdrazn\u011bn\u00edm syntaxe;<\/li>\n<li>Automatick\u00e9 dopl\u0148ov\u00e1n\u00ed p\u0159\u00edkaz\u016f;<\/li>\n<li>N\u00e1stroje pro grafickou anal\u00fdzu vykon\u00e1v\u00e1n\u00ed dotaz\u016f;<\/li>\n<li>Barevn\u00e9 sch\u00e9mata na v\u00fdb\u011br.<br \/>\n<img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v 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=\"P\u0159ehr\u00e1t 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 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/950e3d0a3ff10d267ae48e897f5cbdb6.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Jsem technick\u00fd \u0159editel RIA Novosti. Jsme zpravodajsk\u00fd agreg\u00e1tor news exchange. Ukl\u00e1d\u00e1me mnoho dat, kter\u00e1 z\u00edsk\u00e1v\u00e1me od na\u0161ich partner\u016f a registrujeme je v ClickHouse \u2013 asi 30 000 dotaz\u016f za sekundu.<\/p>\n<p><\/p>\n<p>Jedn\u00e1 se o takov\u00e1 data, jako jsou:<\/p>\n<p><\/p>\n<ul>\n<li>Kliknut\u00ed na zpr\u00e1vy.<\/li>\n<li>Zobrazen\u00ed zpr\u00e1v v agreg\u00e1toru.<\/li>\n<li>Zobrazen\u00ed banner\u016f v na\u0161\u00ed s\u00edti.<\/li>\n<li>A registrujeme ud\u00e1losti z na\u0161eho vlastn\u00edho po\u010d\u00edtadla, kter\u00e9 je podobn\u00e9 Yandex.Metrice. To je na\u0161e vlastn\u00ed mikroanalytika. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/8f5a7af9fef04a51fed29279557c3b64.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>M\u011bli jsme velmi bou\u0159liv\u00fd \u017eivot p\u0159ed ClickHouse. Velice jsme se tr\u00e1pili, sna\u017e\u00edc se ukl\u00e1dat tato data n\u011bkam a analyzovat je.<\/p>\n<p><\/p>\n<p><strong>\u017divot p\u0159ed ClickHouse \u2013 infiniDB<\/strong><\/p>\n<p><\/p>\n<p>Prvn\u00ed, co jsme m\u011bli, byla infiniDB. Ta u n\u00e1s vydr\u017eela 4 roky. Zavedli jsme ji s obt\u00ed\u017eemi. <\/p>\n<p><\/p>\n<ul>\n<li>Nepodporuje clustering nebo sharding. \u017d\u00e1dn\u00e9 takov\u00e9 chytr\u00e9 v\u011bci se zkr\u00e1tka defaultn\u011b nezapnuly. <\/li>\n<li>M\u011bla pot\u00ed\u017ee s nahr\u00e1v\u00e1n\u00edm dat. Pouze specifick\u00fd konzolov\u00fd n\u00e1stroj, kter\u00fd mohl jen nahr\u00e1vat CSV soubory a to docela nejasn\u011b. <\/li>\n<li>Datab\u00e1ze byla jednovl\u00e1knov\u00e1. Bu\u010f bylo mo\u017en\u00e9 zapisovat, nebo \u010d\u00edst. Ale umo\u017enila zpracov\u00e1vat velk\u00e9 objemy dat. <\/li>\n<li>A m\u011bla je\u0161t\u011b zaj\u00edmav\u00fd workaround. Ka\u017edou noc bylo nutn\u00e9 restartovat server, jinak nefungoval. <\/li>\n<\/ul>\n<p><\/p>\n<p>Provozovala se u n\u00e1s do konce roku 2016, kdy jsme se pln\u011b p\u0159epli na ClickHouse.<\/p>\n<p><\/p>\n<p><strong>\u017divot p\u0159ed ClickHouse \u2013 Cassandra<\/strong><\/p>\n<p><\/p>\n<p>Jeliko\u017e infiniDB byla jednovl\u00e1knov\u00e1, rozhodli jsme se, \u017ee pot\u0159ebujeme n\u011bjakou v\u00edcev\u011btvenou datab\u00e1zi, ve kter\u00e9 m\u016f\u017eeme zapisovat velmi mnoho vl\u00e1ken sou\u010dasn\u011b.<\/p>\n<p><\/p>\n<p>Zkou\u0161eli jsme mnoho zaj\u00edmav\u00fdch v\u011bc\u00ed. Pak jsme se rozhodli vyzkou\u0161et Cassandru. S Cassandrou jsme m\u011bli v\u0161echno skv\u011bl\u00e9. 10 000 dotaz\u016f za sekundu na z\u00e1pis. 2 000 dotaz\u016f n\u011bkde na \u010dten\u00ed. <\/p>\n<p><\/p>\n<p>Ale m\u011bla tak\u00e9 sv\u00e9 zaj\u00edmavosti. Jednou m\u011bs\u00ed\u010dn\u011b nebo jednou za dva m\u011bs\u00edce do\u0161lo k synchroniza\u010dn\u00edmu probl\u00e9mu datab\u00e1ze. A museli jsme se probudit a b\u011b\u017eet opravit Cassandru. Restartovali jsme servery po jednom. A v\u0161echno se stalo hladk\u00fdm a kr\u00e1sn\u00fdm. <\/p>\n<p><\/p>\n<p><strong>\u017divot p\u0159ed ClickHouse \u2013 Druid<\/strong><\/p>\n<p><\/p>\n<p>Pozd\u011bji jsme pochopili, \u017ee pot\u0159ebujeme je\u0161t\u011b v\u00edce ps\u00e1t dat. V roce 2016 jsme za\u010dali zkoumat Druid. <\/p>\n<p><\/p>\n<p>Druid je otev\u0159en\u00e1 datab\u00e1ze napsan\u00e1 v Jav\u011b. Velmi specifick\u00e1. A hodila se pro clickstream, kdy\u017e jsme pot\u0159ebovali uchov\u00e1vat n\u011bjak\u00fd proud ud\u00e1lost\u00ed a pot\u00e9 prov\u00e1d\u011bt agregaci nebo vytv\u00e1\u0159et analytick\u00e9 zpr\u00e1vy.<\/p>\n<p><\/p>\n<p>Druid m\u011bl verzi 0.9.X. <\/p>\n<p><\/p>\n<p>Sama datab\u00e1ze se nasazuje velmi obt\u00ed\u017en\u011b. To je slo\u017eitost infrastruktury. Aby se dala nasadit, bylo pot\u0159eba po\u0159\u00eddit mnoho a mnoho za\u0159\u00edzen\u00ed. A ka\u017ed\u00fd prvek byl zodpov\u011bdn\u00fd za svou specifickou roli. <\/p>\n<p><\/p>\n<p>K tomu, abychom do n\u00ed na\u010detli data, bylo pot\u0159eba pou\u017e\u00edt n\u011bjak\u00e9 kouzla. Existuje OpenSource projekt \u2013 Tranquility, kter\u00fd n\u00e1m v pr\u016fb\u011bhu ztr\u00e1cel data. Kdy\u017e jsme do n\u011bj nahr\u00e1vali data, ztr\u00e1cel je. <\/p>\n<p><\/p>\n<p>Ale n\u011bjak jsme jej za\u010dali zav\u00e1d\u011bt. Jak je\u017eci, kte\u0159\u00ed se bodaj\u00ed, ale st\u00e1le jed\u00ed kaktus, za\u010dali jsme jej zav\u00e1d\u011bt. Pot\u0159ebovali jsme zhruba m\u011bs\u00edc, abychom p\u0159ipravili celou infrastrukturu. Tedy objednat servery, nastavit role, prov\u00e9st plnou automatizaci nasazen\u00ed. Tedy, v p\u0159\u00edpad\u011b p\u00e1du clustera, aby se automaticky nasadil druh\u00fd cluster. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/a8193aab09ab9cce3b69e3b84ce470dd.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ale pak se stalo z\u00e1zrak. Byl jsem na dovolen\u00e9 a moji kolegov\u00e9 mi poslali odkaz na <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/yandex\/blog\/303282\/\">habr<\/a><\/noindex>, kde se \u0159\u00edk\u00e1, \u017ee Yandex se rozhodl otev\u0159\u00edt ClickHouse. \u0158ekl jsem, \u017ee to zkus\u00edme.<\/p>\n<p><\/p>\n<p>A b\u011bhem dvou dn\u016f jsme nasadili testovac\u00ed cluster ClickHouse. Za\u010dali jsme do n\u011bj nahr\u00e1vat data. Ve srovn\u00e1n\u00ed s infiniDB \u2013 to je jednoduch\u00e9, ve srovn\u00e1n\u00ed s Druid \u2013 to je jednoduch\u00e9. Ve srovn\u00e1n\u00ed s Cassandrou tak\u00e9 jednoduch\u00e9. Proto\u017ee pokud se data nahr\u00e1vaj\u00ed z php do Cassandry, nen\u00ed to jednoduch\u00e9.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/0b4b6ea08f7f7037d0e26dbe3f33fa53.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Co jsme z\u00edskali? V\u00fdkon v rychlosti. V\u00fdkon v uchov\u00e1v\u00e1n\u00ed dat. Tedy se pou\u017e\u00edv\u00e1 mnohem m\u00e9n\u011b diskov\u00e9ho prostoru. ClickHouse je rychl\u00fd, je velmi rychl\u00fd ve srovn\u00e1n\u00ed s jin\u00fdmi produkty. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/9ff5e2ac127be8813b5d5cec49dab73a.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>V dob\u011b spu\u0161t\u011bn\u00ed, kdy Yandex publikoval ClickHouse v OpenSource, byl k dispozici pouze konzolov\u00fd klient. My v na\u0161\u00ed spole\u010dnosti SMI2 jsme se rozhodli zkusit vytvo\u0159it nativn\u00edho klienta pro web, aby bylo mo\u017en\u00e9 otev\u0159\u00edt str\u00e1nku z prohl\u00ed\u017ee\u010de, napsat dotaz a z\u00edskat v\u00fdsledek, proto\u017ee jsme za\u010dali ps\u00e1t mnoho dotaz\u016f. Ps\u00e1t v konzoli je obt\u00ed\u017en\u00e9. A vytvo\u0159ili jsme na\u0161i prvn\u00ed verzi.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/a2569a45f9bf1b91815ca3dfa0eefcf3.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>A p\u0159ibli\u017en\u011b na podzim lo\u0148sk\u00e9ho roku za\u010dala vznikat extern\u00ed n\u00e1stroje pro pr\u00e1ci s ClickHouse. Mezi tyto n\u00e1stroje pat\u0159\u00ed:<\/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>. (Nyn\u00ed <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>Pod\u00edv\u00e1m se na n\u011bkter\u00e9 z t\u011bchto n\u00e1stroj\u016f, tj. na ty, se kter\u00fdmi jsem pracoval. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/7b91bc29b1c04020b56c89621287e8c1.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dobr\u00e1 n\u00e1stroj, ale pro Druid. Kdy\u017e jsem implementoval Druid, testoval jsem SuperSet. L\u00edbilo se mi to. Pro Druid funguje velmi rychle. <\/p>\n<p><\/p>\n<p>Pro ClickHouse se nehod\u00ed. Tj. sice funguje, ale p\u0159ipraven zpracov\u00e1vat pouze element\u00e1rn\u00ed dotazy jako: SELECT event, GROUP BY event. Nepodporuje slo\u017eit\u011bj\u0161\u00ed syntaxi ClickHouse.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/a708c787120de3db725a9bba4c8bd642.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dal\u0161\u00ed n\u00e1stroj \u2013 Apache Zeppelin. Je to dobr\u00e1 a zaj\u00edmav\u00e1 v\u011bc. Funguje. Podporuje pozn\u00e1mkov\u00e9 bloky, dashboardy, podporuje prom\u011bnn\u00e9. V\u00edm, \u017ee n\u011bkdo z komunity ClickHouse ho pou\u017e\u00edv\u00e1. <\/p>\n<p><\/p>\n<p>Ale nepodporuje syntaxi ClickHouse, tj. bude t\u0159eba ps\u00e1t dotazy bu\u010f v konzoli, nebo jinde. Pot\u00e9 ov\u011b\u0159it, \u017ee to v\u0161echno funguje. Je to prost\u011b nepraktick\u00e9. Ale podpora dashboardingu je u n\u011bj dobr\u00e1. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/0c2afefc1504d14dd50f88459a652a1c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dal\u0161\u00ed n\u00e1stroj \u2013 Redash.IO. Redash je hostov\u00e1n na internetu. Tj. na rozd\u00edl od p\u0159edchoz\u00edch n\u00e1stroj\u016f ho nen\u00ed t\u0159eba instalovat. A je to takov\u00fd dashboard s mo\u017enost\u00ed konsolidace dat z r\u016fzn\u00fdch DataSources. Tj. m\u016f\u017eete exportovat z ClickHouse, z MySQL, z PostgreSQL a z dal\u0161\u00edch datab\u00e1z\u00ed. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/dc639fe6e9716c835d1fe0fdfaa300b8.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u0159ed m\u011bs\u00edcem (v b\u0159eznu 2017) se objevila podpora v Grafana. Kdy\u017e vytv\u00e1\u0159\u00edte zpr\u00e1vy v Grafana, nap\u0159\u00edklad o stavu va\u0161eho hardwaru nebo o n\u011bjak\u00fdch metrik\u00e1ch, m\u016f\u017eete nyn\u00ed vytv\u00e1\u0159et stejn\u00fd graf nebo n\u011bjak\u00fd panel z dat p\u0159\u00edmo z ClickHouse. To je velmi pohodln\u00e9 a pou\u017e\u00edv\u00e1me to u n\u00e1s. Umo\u017e\u0148uje to nal\u00e9zt anom\u00e1lie. Tj. pokud se n\u011bco d\u011bje a n\u011bjak\u00fd hardware selh\u00e1v\u00e1 nebo se p\u0159et\u011b\u017euje, m\u016f\u017eete zjistit p\u0159\u00ed\u010dinu, pokud se tato data dostala do ClickHouse. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/0dd54a7633d25d0c924c2e6825028eb3.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Bylo mi velmi nepohodln\u00e9 ps\u00e1t v t\u011bchto n\u00e1stroj\u00edch nebo v konzoli. A rozhodl jsem se vylep\u0161it na\u0161e prvn\u00ed rozhran\u00ed. A inspiroval jsem se u EventSQL, SeperSet, Zeppelin.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/3252a09e0942428143336639aa399f4d.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Co jsem cht\u011bl? Cht\u011bl jsem z\u00edskat grafy, vylep\u0161en\u00fd editor, implementovat podporu pro slovn\u00edky n\u00e1pov\u011bd. Proto\u017ee ClickHouse m\u00e1 skv\u011blou funkci \u2013 slovn\u00edky. Ale se slovn\u00edky se t\u011b\u017eko pracuje, proto\u017ee je t\u0159eba si pamatovat form\u00e1t ulo\u017een\u00fdch hodnot, tj. jestli je to \u010d\u00edslo nebo \u0159et\u011bzec apod. A proto\u017ee \u010dasto pou\u017e\u00edv\u00e1me slovn\u00edky v jejich r\u016fzn\u00fdch variant\u00e1ch, bylo t\u011b\u017ek\u00e9 ps\u00e1t dotazy.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/90a529b4fb5d03a6d61c89e00287b21d.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Uplynuly 3 m\u011bs\u00edce od vyd\u00e1n\u00ed na\u0161\u00ed prvn\u00ed verze. Ud\u011blal jsem p\u0159ibli\u017en\u011b 330 commit\u016f do uzav\u0159en\u00e9 v\u011btve a vznikl Tabix.<\/p>\n<p><\/p>\n<p>Na rozd\u00edl od p\u0159edchoz\u00ed verze, kter\u00e1 se jmenovala ClickHouse-Frontend, jsem se rozhodl p\u0159ejmenovat ji na jednodu\u0161\u0161\u00ed n\u00e1zev. A vznikl Tabix.<\/p>\n<p><\/p>\n<p>Co je nov\u00e9ho?<\/p>\n<p><\/p>\n<p>Kresl\u00ed grafy. Podporuje SQL syntaxi ClickHouse. Poskytuje n\u00e1pov\u011bdu k funkc\u00edm a zvl\u00e1d\u00e1 mnoho dal\u0161\u00edch zaj\u00edmav\u00fdch v\u011bc\u00ed.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/cd2bbb0c2c3e0fa2d2622bbd2aecdbc7.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Takto vypad\u00e1 celkov\u00e1 sch\u00e9ma Tabix. Na lev\u00e9 stran\u011b je zobrazeno stromov\u00e9 zobrazen\u00ed. Uprost\u0159ed se nach\u00e1z\u00ed editor dotaz\u016f. A dole \u2013 to je v\u00fdsledek tohoto dotazu.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/becf5df173220480e077ae8d8e0ebf3e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Nyn\u00ed uk\u00e1\u017eu, jak funguje editor dotaz\u016f. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/d5ca1028922a12d5e6f133704d4c91a2.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tady automaticky funguje autocomplet na tabulce a poskytuje n\u00e1pov\u011bdu k pol\u00edm. A tak\u00e9 n\u00e1pov\u011bdy k funkc\u00edm. Pokud stisknete ctrl enter, dotaz se vykon\u00e1 nebo sel\u017ee s chybou. Nejjednodu\u0161\u0161\u00ed dotaz se ode\u0161le do Tabix a dostaneme v\u00fdsledek, t.j. rychle lze pracovat s ClickHouse.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/74623f9f5030eb08523dc7269517a5d5.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Slovn\u00edky, jak jsem ji\u017e zm\u00ednil, jsou velmi zaj\u00edmav\u00e1 v\u011bc, se kterou pracujeme hodn\u011b. A umo\u017enily ud\u011blat mnoho v\u011bc\u00ed. Nap\u0159\u00edklad ve slovn\u00edc\u00edch uchov\u00e1v\u00e1me v\u0161echna m\u011bsta. Uchov\u00e1v\u00e1me identifik\u00e1tor m\u011bsta a n\u00e1zev m\u011bsta, jeho \u0161\u00ed\u0159ku a d\u00e9lku. A v datab\u00e1zi uchov\u00e1v\u00e1me pouze identifik\u00e1tor m\u011bsta. T\u00edm p\u00e1dem velmi siln\u011b komprimujeme data.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/fa698b916b01a58f182003e6a15dfea0.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>To se na prvn\u00ed pohled zd\u00e1 jako jednoduch\u00e1 v\u011bc, ale v ClickHouse velmi zaj\u00edmav\u011b pom\u00e1h\u00e1. Vzhledem k tomu, \u017ee ClickHouse podporuje pouze vno\u0159en\u00e9 joiny, dotaz roste dol\u016f a \u0161iroce. A kdy\u017e se otev\u00edr\u00e1 z\u00e1vorka a prob\u00edh\u00e1 n\u011bjak\u00fd dlouh\u00fd v\u00fdraz, tak takov\u00e1 jednoduch\u00e1 v\u011bc, jako je skl\u00e1d\u00e1n\u00ed dotazu, usnad\u0148uje pr\u00e1ci s dotazem. Proto\u017ee kdy\u017e je dotaz na 200-300 \u0159\u00e1dk\u016f a \u0161irok\u00fd, skl\u00e1d\u00e1n\u00ed dotazu opravdu pom\u00e1h\u00e1 naj\u00edt n\u011bjak\u00e9 m\u00edsto nebo jak jej lokalizovat.<\/p>\n<p><\/p>\n<p>Strom objekt\u016f, v\u00edcedotazy a z\u00e1lo\u017eky (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 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/d43efecc6b0b395cdc17a3dd9db53400.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00e1sleduj\u00edc\u00ed uk\u00e1\u017eu strom a z\u00e1lo\u017eky. Na lev\u00e9 stran\u011b \u2013 to je strom, naho\u0159e m\u016f\u017eete vytv\u00e1\u0159et n\u011bkolik z\u00e1lo\u017eek. Z\u00e1lo\u017eky \u2013 to je jako workspace. M\u016f\u017eete vytvo\u0159it n\u011bkolik z\u00e1lo\u017eek a ka\u017edou pojmenovat podle sv\u00e9ho. Je to jako minisyst\u00e9m pro sestaven\u00ed zpr\u00e1vy.<\/p>\n<p><\/p>\n<p>Z\u00e1lo\u017eky se automaticky ukl\u00e1daj\u00ed. Pokud restartujete prohl\u00ed\u017ee\u010d nebo zav\u0159ete nebo otev\u0159ete Tabix, v\u0161e se ulo\u017e\u00ed.<\/p>\n<p><\/p>\n<p>Kl\u00e1vesov\u00e1 zkratka \u2013 pohodln\u00e9 (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>Existuj\u00ed kl\u00e1vesov\u00e9 zkratky a je jich pom\u011brn\u011b hodn\u011b. N\u011bkter\u00e9 jsem zde uvedl jako p\u0159\u00edklad. To je p\u0159ep\u00edn\u00e1n\u00ed z\u00e1lo\u017eek, proveden\u00ed dotazu nebo proveden\u00ed n\u011bkolika dotaz\u016f. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/27f3e6d0dbb4d1038bb551808b13d2ac.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Uk\u00e1\u017eu, jak pracovat s v\u00fdsledkem. Odes\u00edl\u00e1me dotaz. Zde vykresluji sin, cos a tg. M\u016f\u017eete zv\u00fdraznit v\u00fdsledek, t. j. vykreslit typovou mapu sloupce. M\u016f\u017eete zv\u00fdraznit kladn\u00e9 nebo z\u00e1porn\u00e9 hodnoty. Nebo jednodu\u0161e vybarvit n\u011bjak\u00fd konkr\u00e9tn\u00ed prvek tabulky. To je u\u017eite\u010dn\u00e9, kdy\u017e je tabulka obrovsk\u00e1 a je pot\u0159eba naj\u00edt n\u011bjakou anom\u00e1lii o\u010dima. Kdy\u017e jsem hledal anom\u00e1lie, zv\u00fdraz\u0148oval jsem n\u011bkter\u00e9 \u0159\u00e1dky nebo prvky zelenou nebo \u010dervenou barvou.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/af0c21073a1edd81e4d688f119ef7568.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Je tam spousta zaj\u00edmav\u00fdch v\u011bc\u00ed. Nap\u0159\u00edklad, jak zkop\u00edrovat do Redmine Markdown. Pokud pot\u0159ebujete n\u011bkam zkop\u00edrovat v\u00fdsledek, je to velmi pohodln\u00e9. Sta\u010d\u00ed vybrat oblast, \u0159\u00edct \u201eCopy to Redmine\u201c a zkop\u00edruje to do Redmine Markdown nebo vytvo\u0159\u00ed dotaz Where.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/43034a47b5ca31ee08e7721cc5f5159c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>D\u00e1le \u2013 to je optimalizace dotaz\u016f. Jednou jsem zapomn\u011bl uv\u00e9st pole \u201edate\u201c. A m\u016fj dotaz v ClickHouse byl zpracov\u00e1n ne velmi, ale rychle, t. j. za m\u00e9n\u011b ne\u017e sekundu. Kdy\u017e jsem vid\u011bl, kolik \u0159\u00e1dk\u016f proch\u00e1zel, za\u010dalo mi b\u00fdt \u00fazko. Za den tolik \u0159\u00e1dk\u016f do t\u00e9to tabulky nenap\u00ed\u0161eme. Za\u010dal jsem analyzovat dotaz a zjistil jsem, \u017ee jsem v jednom m\u00edst\u011b vynechal datum. T. j. zapomn\u011bl jsem uv\u00e9st, \u017ee pot\u0159ebuju data ne z cel\u00e9 tabulky, ale za n\u011bjak\u00e9 konkr\u00e9tn\u00ed obdob\u00ed.<\/p>\n<p><\/p>\n<p>V Tabix je z\u00e1lo\u017eka \u201eStats\u201c, ve kter\u00e9 se uchov\u00e1v\u00e1 cel\u00e1 historie zaslan\u00fdch dotaz\u016f, t. j. tam si m\u016f\u017eete prohl\u00e9dnout, kolik \u0159\u00e1dk\u016f bylo p\u0159e\u010dteno t\u00edmto dotazem a kolik \u010dasu trval. To umo\u017e\u0148uje optimalizaci. <\/p>\n<p><\/p>\n<p>Nad v\u00fdsledkem dotazu m\u016f\u017eete vytvo\u0159it kontingen\u010dn\u00ed tabulku. Odeslali jste dotaz v ClickHouse, z\u00edskali n\u011bjak\u00e1 data. A d\u00e1le m\u016f\u017eete s t\u011bmito daty manipulovat a vytvo\u0159it n\u011bjakou kontingen\u010dn\u00ed tabulku.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/0365df303eb55336eeb8a037cb118113.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dal\u0161\u00ed zaj\u00edmav\u00e1 v\u011bc \u2013 to je vytv\u00e1\u0159en\u00ed graf\u016f. P\u0159edpokl\u00e1dejme, \u017ee m\u00e1me takov\u00fd dotaz: na sin, cos od 0 do 299. A abychom ho vykreslili, je pot\u0159eba vybrat z\u00e1lo\u017eku \u201eDraw\u201c a z\u00edsk\u00e1te graf se sv\u00fdmi sin a cos. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/bdf00b9d6bffb907e88d2fdb7bfb16dc.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>M\u016f\u017eete to rozd\u011blit na r\u016fzn\u00e9 osy, t. j. m\u016f\u017eete vykreslit okam\u017eit\u011b dva grafy vedle sebe. Napsat jeden p\u0159\u00edkaz a druh\u00fd p\u0159\u00edkaz. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/efe77846e3f5f30a5d73e75be53d608a.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>M\u016f\u017eete vykreslit histogramy.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/e531aac548eca2eb9e30dac21f8876b8.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>M\u016f\u017eete to rozd\u011blit na matici graf\u016f.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/3404f87cee0e376df8ca62f03fc0fc7e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>M\u016f\u017eete vytvo\u0159it tepelnou mapu. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/e15fe90c49bb850c821dab7492856b0b.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>M\u016f\u017eete vytvo\u0159it tepeln\u00fd kalend\u00e1\u0159. Mimochodem, velmi u\u017eite\u010dn\u00e1 v\u011bc, kdy\u017e pot\u0159ebujete analyzovat anom\u00e1lie za rok, t. j. naj\u00edt bu\u010f v\u00fdkyvy, nebo poklesy. Tato vizualizace dat mi v tom pomohla. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/08945df379d33aa73518ef10d02fe561.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dal\u0161\u00ed \u2013 to je Treemap.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v 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 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v 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 zaj\u00edmav\u00fd graf. Je to bu\u010f Streamgraphs, nebo River. J\u00e1 to naz\u00fdv\u00e1m River. Umo\u017e\u0148uje tak\u00e9 vyhled\u00e1vat ur\u010dit\u00e9 anom\u00e1lie. Je to velmi u\u017eite\u010dn\u00e9. Doporu\u010duji ho pou\u017e\u00edt pro anal\u00fdzu.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/483f363d93ba80dc9ac165ae083db585.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dal\u0161\u00ed zaj\u00edmavou v\u011bc\u00ed je vykreslen\u00ed dynamick\u00e9 mapy. Pokud m\u00e1te v datab\u00e1zi ulo\u017eenu \u0161\u00ed\u0159ku a d\u00e9lku, a pokud nap\u0159\u00edklad m\u00e1te auto p\u0159epravy nebo l\u00e9taj\u00edc\u00ed letadla, m\u016f\u017eete vykreslit trasy k destinac\u00edm. M\u016f\u017eete tak\u00e9 nastavit rychlost, velikost t\u011bchto objekt\u016f, do kter\u00fdch p\u0159il\u00e9taj\u00ed.<\/p>\n<p><\/p>\n<p>Ale probl\u00e9m s touto mapou je ten, \u017ee vykresluje pouze mapu sv\u011bta, postr\u00e1d\u00e1 detaily.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/13f302e67e7f84dc85728204153d6377.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Pozd\u011bji jsem p\u0159idal Google mapu. Pokud ukl\u00e1d\u00e1te \u0161\u00ed\u0159ku a d\u00e9lku, m\u016f\u017eete vykreslit v\u00fdsledek na Google map\u011b, ale bez podpory letadel.<\/p>\n<p><\/p>\n<p>Hlavn\u00ed funkce pr\u00e1ce s v\u00fdsledkem, se \u017e\u00e1dost\u00ed v Tabix jsme probrali. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/849baa55e6865ab451b82f23fe6e5110.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dal\u0161\u00ed je anal\u00fdza va\u0161eho serveru ClickHouse. Existuje samostatn\u00e1 z\u00e1lo\u017eka 'Metriky', kde si m\u016f\u017eete prohl\u00e9dnout velikost ulo\u017een\u00fdch dat pro ka\u017ed\u00fd sloupec. Na screenshotu je vid\u011bt, \u017ee pole 'referrer' zab\u00edr\u00e1 n\u011bco kolem 730 GB. Pokud se tohoto pole vzd\u00e1me, u\u0161et\u0159\u00edme t\u0159i shard\u016f po 700 GB, tedy p\u0159ibli\u017en\u011b 2 TB, kter\u00e9 nepot\u0159ebujeme. <\/p>\n<p><\/p>\n<p>Tak\u00e9 m\u00e1me pole 'request_id', kter\u00e9 ukl\u00e1d\u00e1me jako \u0159et\u011bzec. Ale pokud ho za\u010dneme uchov\u00e1vat v \u010d\u00edseln\u00e9 podob\u011b, tohle pole se dramaticky zmen\u0161\u00ed. <\/p>\n<p><\/p>\n<p>Zde je tak\u00e9 uk\u00e1z\u00e1na konfigurace serveru a seznam uzl\u016f va\u0161eho clusteru. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/fa2a35c1af59b3f56059fcfb26571c6e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dal\u0161\u00ed z\u00e1lo\u017eka \u2013 to jsou metriky. Ty se z\u00edsk\u00e1vaj\u00ed v re\u00e1ln\u00e9m \u010dase z ClickHouse a jednodu\u0161e umo\u017e\u0148uj\u00ed analyzovat stav serveru a pochopit, co se na n\u011bm d\u011bje. Nen\u00ed to n\u00e1hrada za plnohodnotnou Grafanu. Je to pot\u0159eba k rychl\u00e9 anal\u00fdze. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/7de741718ef19b81bd0f7f33dbed019e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dal\u0161\u00ed z\u00e1lo\u017eka \u2013 to jsou procesy. Z toho lze pochopit, co se na serveru d\u011bje. Zjistit, co tam prob\u00edh\u00e1. M\u011bl jsem dotaz, kter\u00fd poka\u017ed\u00e9 zab\u00edral na \u010dten\u00ed 200 GB. D\u00edky tomuto rozhran\u00ed jsem to vid\u011bl. Lapil jsem ho a upravil. A dostal jsem se na cca 30 GB, tedy v\u00fdkon se v\u00fdrazn\u011b zlep\u0161il.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strychar\" src=\"\/wp-content\/uploads\/2020\/03\/084b6131b189364f9e093792125649df.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>D\u011bkuji! A to je OpenSource.<\/p>\n<p><\/p>\n<p>Skon\u010dil jsem. A mimochodem, to je OpenSource, je to zdarma a ani nemus\u00edte stahovat. Otev\u0159ete v prohl\u00ed\u017ee\u010di a v\u0161echno bude fungovat. <\/p>\n<p><\/p>\n<p>Ot\u00e1zky<\/p>\n<p><\/p>\n<p><em>Igore, co te\u010f? Kam bude\u0161 tento n\u00e1stroj rozv\u00edjet?<\/em><\/p>\n<p><\/p>\n<p>D\u00e1le se objev\u00ed dashboard, tj. je mo\u017en\u00e9, \u017ee se objev\u00ed dashboard. Integrace s jin\u00fdmi datab\u00e1zemi. To jsem ud\u011blal, ale je\u0161t\u011b jsem to nepublikoval jako OpenSource. Je to MySQL a mo\u017en\u00e1 PostgreSQL. To znamen\u00e1, \u017ee bude mo\u017en\u00e9 z Tabix pos\u00edlat dotazy nejen do ClickHouse, ale tak\u00e9 do jin\u00fdch n\u00e1stroj\u016f.<\/p>\n<p><\/p>\n<p><em>Je evidentn\u00ed, \u017ee byla ud\u011bl\u00e1na obrovsk\u00e1 porce pr\u00e1ce. Vznikla docela funk\u010dn\u00ed my\u0161lenka. V prohl\u00ed\u017ee\u010di bylo ud\u011bl\u00e1no, z\u0159ejm\u011b proto, aby se vylou\u010dily k\u0159ivky na r\u016fzn\u00fdch os\u00e1ch a rychle v\u0161echno hodilo dohromady. Sly\u0161el jsem, \u017ee pracujete na tom,<\/em> <em>php<\/em> <em>proto je nejjednodu\u0161\u0161\u00ed v\u0161echno hodit do prohl\u00ed\u017ee\u010de a v\u0161ude to bude fungovat. K tomu nejsou \u017e\u00e1dn\u00e9 ot\u00e1zky. Ot\u00e1zka je v\u0161ak takov\u00e1. Opravdu bylo ud\u011bl\u00e1no velmi mnoho. Kolik lid\u00ed na tom pracovalo? A kolik \u010dasu to v\u0161echno zabralo? Proto\u017ee n\u00e1stroje na m\u00edru obvykle nemaj\u00ed takovou \u0161irokou funkcionalitu.<\/em><\/p>\n<p><\/p>\n<p>Od l\u00e9ta do podzimu pracoval jeden \u010dlov\u011bk z na\u0161eho t\u00fdmu. To byla prvn\u00ed verze. Pak jsem s\u00e1m ud\u011blal 330 commit\u016f. Co vid\u00edte, to jsme d\u011blali spole\u010dn\u011b s kolegou. Za 3 m\u011bs\u00edce z prvn\u00ed verze do posledn\u00ed jsem na tom v\u011bt\u0161inou pracoval s\u00e1m. Ale javascript moc nezn\u00e1m. To byl m\u016fj jedin\u00fd a douf\u00e1m, \u017ee posledn\u00ed projekt na javascriptu, na kter\u00e9m jsem pracoval. Dostal jsem to, pod\u00edval se \u2013 o, hr\u016fza. Ale opravdu jsem cht\u011bl dot\u00e1hnout produkt a takto to dopadlo.<\/p>\n<p><\/p>\n<p><em>D\u011bkuji moc za prezentaci! Je to skv\u011bl\u00fd n\u00e1stroj. S<\/em> <em>Tableau<\/em> <em>srovn\u00e1vali?<\/em><\/p>\n<p><\/p>\n<p>D\u011bkuji. Proto jsem to nazval Tabix, proto\u017ee prvn\u00ed p\u00edsmena se shoduj\u00ed. <\/p>\n<p><\/p>\n<p><em>Proto\u017ee konkurujete?<\/em><\/p>\n<p><\/p>\n<p>Bude hodn\u011b investic, budeme sout\u011b\u017eit. <\/p>\n<p><\/p>\n<p><em>Jak navrhnete prodat intern\u00edm analytik\u016fm, \u017ee tento n\u00e1stroj zcela nahrad\u00ed<\/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>Nativn\u011b pracuje s ClickHouse. Zkou\u0161el jsem Tableau, ale tam nelze ps\u00e1t podporu slovn\u00edk\u016f a podobn\u011b. <strong>V\u00edm, jak s Tabix lid\u00e9 pracuj\u00ed. P\u00ed\u0161ou dotaz, exportuj\u00ed do CSV a nahr\u00e1vaj\u00ed do BI.<\/strong> A u\u017e tam n\u011bco d\u011blaj\u00ed. Ale j\u00e1 si s obt\u00ed\u017eemi p\u0159edstavuji, jak to d\u011blaj\u00ed, proto\u017ee \u2013 je to grafick\u00fd n\u00e1stroj. M\u016f\u017ee exportovat 5 000 \u0159\u00e1dk\u016f, maxim\u00e1ln\u011b 6 000 \u0159\u00e1dk\u016f, ale ne v\u00edce, jinak prohl\u00ed\u017ee\u010d nevydr\u017e\u00ed. <\/p>\n<p><\/p>\n<p><em>To znamen\u00e1, \u017ee existuj\u00ed n\u011bjak\u00e1 v\u00e1\u017en\u00e1 omezen\u00ed ohledn\u011b objemu dat, \u017ee?<\/em><\/p>\n<p><\/p>\n<p>Ano. Nedok\u00e1\u017eu si p\u0159edstavit, \u017ee byste cht\u011bli 10 000 \u0159\u00e1dk\u016f exportovat na obrazovku prohl\u00ed\u017ee\u010de. Pro\u010d? <\/p>\n<p><\/p>\n<p><em>P\u0159edpokl\u00e1d\u00e1 se, \u017ee je to rozhran\u00ed pro rychl\u00e9 prohl\u00ed\u017een\u00ed dat? M\u00edrn\u011b si pohr\u00e1t, pooto\u010dit?<\/em><\/p>\n<p><\/p>\n<p>Ano, rychle se pod\u00edvat, jak to funguje, a jednodu\u0161e vytvo\u0159it souhrnn\u00fd graf. A pot\u00e9 to n\u011bkde p\u0159edat. M\u00e1me vlastn\u00ed reportingov\u00fd syst\u00e9m, odkud tento dotaz jednodu\u0161e beru. Kresl\u00edm v Tabix a pos\u00edl\u00e1m to do na\u0161eho reportingu. <\/p>\n<p><\/p>\n<p><em>A je\u0161t\u011b ot\u00e1zka. Kohortn\u00ed anal\u00fdza?<\/em><\/p>\n<p><\/p>\n<p>Pokud budou p\u0159\u00e1n\u00ed, p\u0159id\u00e1me. <\/p>\n<p><\/p>\n<p><em>Kdy\u017e jsme teprve za\u010d\u00ednali pou\u017e\u00edvat<\/em> <em>ClickHouse, kolik \u010dasu zabralo zaveden\u00ed<\/em> <em>ClickHouse<\/em> <em>a uveden\u00ed do<\/em> <em>produk\u010dn\u00edho stavu?<\/em><\/p>\n<p><\/p>\n<p>Jak jsem \u0159ekl, testovac\u00ed cluster jsme zavedli ve velmi kr\u00e1tk\u00e9m \u010dase. Za dva dny jsme ho rozjeli. A je\u0161t\u011b n\u011bkolik t\u00fddn\u016f jsme ho testovali. A do produkce jsme se dostali asi za 3 m\u011bs\u00edce. M\u011bli jsme vlastn\u00ed ETL, tedy n\u00e1stroj pro z\u00e1pis dat. A ten zapisoval do v\u0161eho, co \u0161lo. Um\u00ed ps\u00e1t do MongoDB, Cassandry, MySQL. Nau\u010dit ho ps\u00e1t do ClickHouse bylo jednoduch\u00e9. M\u011bli jsme hotovou infrastrukturu pro rychl\u00e9 zaveden\u00ed. Asi za 3 m\u011bs\u00edce jsme za\u010dali odstra\u0148ovat prvn\u00ed komponent. Za 6 m\u011bs\u00edc\u016f jsme se zcela vzdali v\u0161eho ostatn\u00edho. Z\u016fstal n\u00e1m jen ClickHouse.<\/p>\n<p><\/p>\n<p><em>Igore, d\u00edky moc za p\u0159edn\u00e1\u0161ku. Velmi se mi l\u00edbil funkce pro vykreslov\u00e1n\u00ed cest na map\u00e1ch. Pl\u00e1nuje se integrace s Yandex.Mapy, konkr\u00e9tn\u011b s vlastn\u00edm Yandex.Mapy?<\/em><\/p>\n<p><\/p>\n<p>Zkou\u0161el jsem se integrovat m\u00edsto Google mapy, ale na Yandex.Map\u00e1ch jsem nena\u0161el tmav\u00fd motiv. Ne\u0159ekl jsem jednu \u010d\u00e1st. Vr\u00e1t\u00edm se, abych doplnil. <\/p>\n<p><\/p>\n<p>Sn\u00edmek \u2013 Google mapy. Tam je p\u0159\u00edkaz \u201eDRAW_GMAPS\u201c, kter\u00fd kresl\u00ed mapu. Je tam p\u0159\u00edkaz \u201eDRAW_YMAPS\u201c, tedy m\u016f\u017ee vykreslit Yandex.Mapu. A vlastn\u011b pod t\u00edmto p\u0159\u00edkazem je Javascript, tedy data, kter\u00e1 z\u00edsk\u00e1te z ClickHouse, m\u016f\u017eete poslat do Javascriptu, kter\u00fd zde nap\u00ed\u0161ete. A m\u00e1te v\u00fdstupn\u00ed oblast, kde by se to m\u011blo vykreslit. M\u016f\u017eete vykreslit jak\u00fdkoli graf, tedy jak\u00fdkoli graf, mapu, m\u016f\u017eete vykreslit sv\u016fj vlastn\u00ed komponent. M\u011bl jsem p\u0159edt\u00edm jinou knihovnu pro vykreslov\u00e1n\u00ed graf\u016f.<\/p>\n<p><\/p>\n<p><em>To znamen\u00e1, \u017ee tam je n\u00e1stroj pro p\u0159izp\u016fsoben\u00ed funk\u010dnosti zobrazen\u00ed?<\/em><\/p>\n<p><\/p>\n<p>Jak\u00e9koli. M\u016f\u017eete vz\u00edt a p\u0159ebarvit tyto body, aby nebyly \u010derven\u00e9, ale modr\u00e9, zelen\u00e9.<\/p>\n<p><\/p>\n<p><em>D\u011bkuji za p\u0159edn\u00e1\u0161ku! M\u011bl jste sn\u00edmek, na kter\u00e9m byly p\u0159edstaveny alternativn\u00ed n\u00e1stroje pro dotazy<\/em> <em>ClickHouse<\/em> <em>pro vytv\u00e1\u0159en\u00ed dashboard\u016f, analytick\u00fdch report\u016f. Pochopil jsem spr\u00e1vn\u011b, \u017ee v dob\u011b, kdy jste za\u010dali pracovat s<\/em> <em>ClickHouse, pro tyto n\u00e1stroje nebyly naps\u00e1ny adapt\u00e9ry. Zaj\u00edmalo by m\u011b, pro\u010d jste se rozhodli vytvo\u0159it sv\u016fj vlastn\u00ed n\u00e1stroj m\u00edsto toho, abyste napsali adapt\u00e9r pro n\u011bjak\u00fd ji\u017e existuj\u00edc\u00ed n\u00e1stroj? Mysl\u00edm, \u017ee vylad\u011bn\u00ed testovac\u00edho editoru je rychl\u00e9. Pro\u010d jste se rozhodli ud\u011blat tolik pr\u00e1ce?<\/em><\/p>\n<p><\/p>\n<p>Tady je zaj\u00edmav\u00fd moment \u2013 j\u00e1 jsem technick\u00fd \u0159editel a ne datov\u00fd v\u011bdec. V dob\u011b, kdy jsme za\u010dali implementovat Druid, jsem m\u011bl v pl\u00e1nu zhruba 50 % \u00fakol\u016f \u2013 poj\u010fme spo\u010d\u00edtat tohle nebo poj\u010fme spo\u010d\u00edtat tohle, nebo analyzujme tohle. A nakonec jsme implementovali ClickHouse. Rychle jsem za\u010dal stav\u011bt, po\u010d\u00edtat a rychle jsem uzav\u0159el sv\u016fj pl\u00e1n. A v t\u00e9 dob\u011b jsem pochopil, \u017ee mi chyb\u00ed znalosti z oblasti Data Science a vizualizace dat. Tabix je takov\u00e9 m\u00e9 dom\u00e1c\u00ed \u00fakoly v oblasti studia vizualizace dat. D\u00edval jsem se, jak doplnit Zeppelin. M\u00e1m malou averzi k jeho programov\u00e1n\u00ed. Pod\u00edval jsem se na Redash, jak doplnit, ale chyb\u011bl mi tam dobr\u00fd editor. A SuperSet je tak\u00e9 naps\u00e1n v jazyce, kter\u00fd nem\u00e1m moc v oblib\u011b. A proto jsem se rozhodl vytvo\u0159it n\u011bco vlastn\u00edho, a tak to dopadlo.<\/p>\n<p><\/p>\n<p><em>Igore, p\u0159ij\u00edm\u00e1te Pull requesty?<\/em><\/p>\n<p><\/p>\n<p>Ano.<\/p>\n<p><\/p>\n<p><em>D\u011bkuji moc za prezentaci! M\u00e1m dv\u011b ot\u00e1zky. Prvn\u00ed - nehodnot\u00edte p\u0159\u00edli\u0161 pozitivn\u011b<\/em> Javascript. Psali jste v \u010dist\u00e9m Javascriptu, nebo to byl n\u011bjak\u00fd framework?*<\/p>\n<p><\/p>\n<p>L\u00e9pe v \u010dist\u00e9m Javascriptu.<\/p>\n<p><\/p>\n<p>Tak kter\u00fd framework?<\/p>\n<p><\/p>\n<p>Angular.<\/p>\n<p><\/p>\n<p><em>Rozum\u00edm. A druh\u00e1 ot\u00e1zka. Zva\u017eovali jste<\/em> R <em>a<\/em> *<strong>Shiny**<\/strong>?*<\/p>\n<p><\/p>\n<p>Zva\u017eoval. Experimentoval jsem. <\/p>\n<p><\/p>\n<p><em>Mohl jste tak\u00e9 jednodu\u0161e napsat adapt\u00e9r.<\/em><\/p>\n<p><\/p>\n<p>Ten existuje. Zd\u00e1 se, \u017ee ho ud\u011blala komunita, ale jak jsem odpov\u011bd\u011bl na p\u0159edchoz\u00ed ot\u00e1zku, cht\u011bl jsem si to zkusit s\u00e1m.<\/p>\n<p><\/p>\n<p>*Ne, ohledn\u011b vizualizace, tam u\u017e n\u011bco je.<\/p>\n<p><\/p>\n<p>\u0158\u00edk\u00e1te, \u017ee existuje takov\u00e1 v\u011bc a ona v\u00e1m vykresl\u00ed graf. Otev\u0159el jsem knihu o vizualizaci dat. A \u0159ekl jsem si: \u201eZkus\u00edm tyto data vizualizovat. Napsal bych to s\u00e1m, aby to vykreslilo data\u201c. A za\u010dal jsem l\u00e9pe rozum\u011bt technologii pod\u00e1v\u00e1n\u00ed dat. Kdybych vzal hotovou komponentu, osobn\u011b bych se nau\u010dil hor\u0161\u00ed zp\u016fsob, jak ji pou\u017e\u00edvat, tedy konkr\u00e9tn\u011b vizualizaci. Ale tak \u2013 ano, R se mi l\u00edbila, ale je\u0161t\u011b jsem ne\u010detl knihu \u201eR pro za\u010d\u00e1te\u010dn\u00edky\u201c. <\/p>\n<p><\/p>\n<p><em>D\u011bkuji!<\/em><\/p>\n<p><\/p>\n<p><em>Jednoduch\u00e1 ot\u00e1zka. Existuj\u00ed n\u011bjak\u00e9 mo\u017enosti, jak rychle exportovat tabulku, graf?<\/em><\/p>\n<p><\/p>\n<p>M\u016f\u017eete exportovat do CSV, do Excelu.<\/p>\n<p><\/p>\n<p><em>Ne data, ale hotovou tabulku, hotov\u00fd graf? Nap\u0159\u00edklad, abych to mohl uk\u00e1zat \u0161\u00e9fovi.<\/em><\/p>\n<p><\/p>\n<p>Je tu tla\u010d\u00edtko \u201eExportovat\u201c a tla\u010d\u00edtko \u201eExportovat grafiku ve form\u00e1tu png, jpg\u201c.<\/p>\n<p><\/p>\n<p><em>D\u011bkuji!<\/em><\/p>\n<p><\/p>\n<p>P.S. Mini-n\u00e1vod na instalaci tabix<\/p>\n<p><\/p>\n<ul>\n<li>St\u00e1hnout <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/smi2\/tabix.ui\/releases\">posledn\u00ed vyd\u00e1n\u00ed<\/a><\/noindex><\/li>\n<li>Rozbalit, zkop\u00edrovat adres\u00e1\u0159 <code>build<\/code> do nginx root_path<\/li>\n<li>Nastavit nginx<\/li>\n<\/ul>\n<p>Zdroj: <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\/cs\/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=\"cs_CZ\" \/>\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\/cs\/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 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix. Igor Strych\u00e1\u0159 | ProHoster","description":"Doporu\u010duji se sezn\u00e1mit s p\u0159episem zpr\u00e1vy Igora Strych\u00e1\u0159e z roku 2017 \u201eClickHouse \u2013 vizu\u00e1ln\u011b rychl\u00e1 a p\u0159ehledn\u00e1 anal\u00fdza dat v Tabix\u201c. Webov\u00e9 rozhran\u00ed pro ClickHouse v projektu Tabix..","canonical_url":"https:\/\/prohoster.info\/cs\/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":"cs_CZ","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\/cs\/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\/cs\/wp-json\/wp\/v2\/posts\/73358","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=73358"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/73358\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/73359"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=73358"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=73358"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=73358"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}