ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Iminumungkahi kong basahin mo ang transcript ng 2017 na ulat ni Igor Stryhar "ClickHouse - biswal na mabilis at malinaw na pagsusuri ng data sa Tabix."

Web interface para sa ClickHouse sa proyekto ng Tabix.
Mga pangunahing tampok:

  • Gumagana sa ClickHouse nang direkta mula sa browser, nang hindi kinakailangang mag-install ng karagdagang software;
  • Editor ng query na may pag-highlight ng syntax;
  • Autocompletion ng mga command;
  • Mga tool para sa graphical na pagsusuri ng pagpapatupad ng query;
  • Mga scheme ng kulay na mapagpipilian.
    ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar


ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Ako ang technical director ng SMI2. Kami ay isang news exchange news aggregator. Nag-iimbak kami ng maraming data na natatanggap namin mula sa aming mga kasosyo at inirehistro ito sa ClickHouse - humigit-kumulang 30 mga kahilingan bawat segundo.

Ito ay data tulad ng:

  • Mga pag-click sa balita.
  • Ipinapakita ang mga balita sa aggregator.
  • Mga banner display sa aming network.
  • At nagrerehistro kami ng mga kaganapan mula sa aming sariling counter, na katulad ng Yandex.Metrica. Ito ang sarili nating micro-analytics.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Napakahirap ng buhay namin bago ang ClickHouse. Kami ay nagdusa nang husto, sinusubukang iimbak ang data na ito sa isang lugar at kahit papaano ay pag-aralan ito.

Buhay bago ang ClickHouse – infiniDB

Ang unang bagay na mayroon kami ay infiniDB. Tumira siya sa amin ng 4 na taon. Inilunsad namin ito nang may kahirapan.

  • Hindi nito sinusuportahan ang clustering o sharding. Walang ganoong matalinong mga bagay ang lumabas sa kahon bilang default.
  • Nahihirapan siyang mag-load ng data. Tanging isang partikular na console utility na maaari lamang mag-load ng mga CSV file at sa ilang napaka-hindi malinaw na paraan.
  • Ang database ay single-threaded. Maaari kang magsulat o magbasa. Ngunit ginawa nitong posible na iproseso ang isang malaking halaga ng data.
  • At mayroon din siyang isang kawili-wiling saklay. Gabi-gabi kailangang i-reboot ang server, kung hindi, hindi ito gagana.

Nagtrabaho siya para sa amin hanggang sa katapusan ng 2016, nang ganap kaming lumipat sa ClickHouse.

Buhay bago ang ClickHouse – Cassandra

Dahil single-threaded ang infiniDB, napagpasyahan namin na kailangan namin ng ilang uri ng multi-threaded database kung saan makakasulat kami ng maraming thread nang sabay-sabay.

Sinubukan namin ang maraming kawili-wiling bagay. Pagkatapos ay nagpasya kaming subukan si Cassandra. Maganda ang lahat kay Cassandra. 10 kahilingan bawat segundo bawat bid. 000 mga kahilingan sa isang lugar para sa pagbabasa.

Ngunit mayroon din siyang sariling interes. Minsan sa isang buwan o isang beses bawat dalawang buwan nakaranas siya ng database desynchronization. At kailangan kong gumising at tumakbo para ayusin si Cassandra. Ang mga server ay na-restart isa-isa. At naging makinis at maganda ang lahat.

Buhay bago ang ClickHouse - Druid

Pagkatapos ay napagtanto namin na kailangan naming magsulat ng higit pang data. Noong 2016 nagsimula kaming manood ng Druid.

Ang Druid ay isang open source software na nakasulat sa Java. Napaka tiyak. At ito ay angkop para sa clickstream, kapag kailangan naming mag-imbak ng ilang uri ng stream ng mga kaganapan at pagkatapos ay magsagawa ng pagsasama-sama sa mga ito o gumawa ng mga analytical na ulat.

Ang Druid ay may bersyon 0.9.X.

Ang database mismo ay napakahirap i-deploy. Ito ang pagiging kumplikado ng imprastraktura. Upang i-deploy ito, kinakailangan na mag-install ng maraming, maraming bakal. At ang bawat piraso ng hardware ay may pananagutan para sa sarili nitong hiwalay na tungkulin.

Upang mai-load ang data dito, kinakailangan na gumamit ng ilang uri ng shamanism. Mayroong isang proyekto ng OpenSource - Tranquility, na nawawalan ng data mula sa amin sa isang stream. Kapag nag-load kami ng data dito, nawala ito.

Ngunit kahit papaano ay sinimulan naming ipatupad ito. Kami, tulad ng mga hedgehog na umiinom ng droga ngunit patuloy na kumakain ng cactus, ay nagsimulang ipakilala ito. Inabot kami ng halos isang buwan upang maihanda ang lahat ng imprastraktura para dito. Iyon ay, mag-order ng mga server, mag-configure ng mga tungkulin, at ganap na i-automate ang pag-deploy. Iyon ay, sa kaganapan ng isang pagkabigo ng cluster, ang pangalawang cluster ay awtomatikong i-deploy.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Ngunit pagkatapos ay isang himala ang nangyari. Ako ay nasa bakasyon at ang aking mga kasamahan ay nagpadala sa akin ng isang link sa habr, na nagsasabing nagpasya ang Yandex na buksan ang ClickHouse. Sabi ko subukan natin.

At literal sa loob ng 2 araw, nag-deploy kami ng ClickHouse test cluster. Nagsimula kaming mag-load ng data dito. Kung ikukumpara sa infiniDB, ito ay elementarya; kumpara sa Druid, ito ay elementarya. Kumpara kay Cassandra, elementary din ito. Dahil kung nag-load ka ng data mula sa PHP sa Cassandra, hindi ito elementarya.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Ano ang nakuha namin? Pagganap sa bilis. Pagganap sa imbakan ng data. Iyon ay, mas kaunting espasyo sa disk ang ginagamit. Mabilis ang ClickHouse, napakabilis kumpara sa ibang produkto.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Sa oras ng paglunsad, nang i-publish ni Yandex ang ClickHouse sa OpenSource, mayroon lamang isang console client. Kami sa aming kumpanyang SMI2 ay nagpasya na subukang gumawa ng isang katutubong kliyente para sa web, upang mabuksan namin ang isang pahina mula sa isang browser, magsulat ng isang kahilingan at makuha ang resulta, dahil nagsimula kaming magsulat ng maraming mga kahilingan. Mahirap ang pagsusulat sa console. At ginawa namin ang aming unang bersyon.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

At sa isang lugar na mas malapit sa taglamig ng nakaraang taon, nagsimulang lumitaw ang mga tool ng third-party para sa pagtatrabaho sa ClickHouse. Ito ay mga tool tulad ng:

Titingnan ko ang ilan sa mga tool na ito, iyon ay, ang mga nakatrabaho ko.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Ang isang mahusay na tool, ngunit para sa Druid. Noong ipinatupad ang Druid, sinusubukan ko ang SuperSet. nagustuhan ko siya. Para kay Druid ito ay napakabilis.

Hindi ito angkop para sa ClickHouse. Ibig sabihin, umaangkop ito, nagsisimula ito, ngunit handang iproseso lamang ang mga elementarya na query tulad ng: PUMILI ng kaganapan, GROUP BY event. Hindi nito sinusuportahan ang mas kumplikadong ClickHouse syntax.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Ang susunod na tool ay Apache Zeppelin. Ito ay isang mabuti at kawili-wiling bagay. Gumagana. Sinusuportahan nito ang mga notebook, dashboard, at sumusuporta sa mga variable. May alam akong gumagamit nito sa komunidad ng ClickHouse.

Ngunit walang suporta para sa ClickHouse syntax, ibig sabihin, kakailanganin mong magsulat ng mga query sa console o sa ibang lugar. Susunod, suriin kung gumagana ang lahat. Inconvenient lang. Ngunit mayroon itong magandang suporta sa dashboard.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Ang susunod na tool ay Redash.IO. Naka-host ang Redash sa Internet. Iyon ay, hindi tulad ng mga nakaraang tool, hindi ito kailangang mai-install. At ito ay isang dashboard na may kakayahang pagsama-samahin ang data mula sa iba't ibang DataSources. Iyon ay, maaari kang mag-download mula sa ClickHouse, mula sa MySQL, mula sa PostgreSQL at mula sa iba pang mga database.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Isang buwan lang ang nakalipas (Marso 2017), lumitaw ang suporta sa Grafana. Kapag bumuo ka ng mga ulat sa Grafana, halimbawa, sa estado ng iyong hardware o sa ilang sukatan, maaari ka na ngayong bumuo ng parehong graph o ilang uri ng panel mula sa data mula sa ClickHouse nang direkta. Ito ay napaka-maginhawa, at ginagamit namin ito sa aming sarili. Nagbibigay-daan ito sa iyo na makahanap ng mga anomalya. Iyon ay, kung may nangyari at ang ilang hardware ay nahulog o naging pilit, maaari mong tingnan ang dahilan kung ang data na ito ay nakapasok sa ClickHouse.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Nakita kong napaka-awkward na magsulat sa mga tool na ito o sa console. At nagpasya akong pagbutihin ang aming unang interface. At nakuha ko ang ideya mula sa EventSQL, SeperSet, Zeppelin.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Ano ang gusto mo? Nais kong makakuha ng mga graphics, isang pinahusay na editor, at magpatupad ng suporta para sa mga pahiwatig na diksyunaryo. Dahil may magandang feature ang ClickHouse - mga diksyunaryo. Ngunit mahirap magtrabaho sa mga diksyunaryo, dahil kailangan mong tandaan ang format ng mga naka-imbak na halaga, ibig sabihin, ito ba ay isang numero o isang string, atbp. At dahil madalas kaming gumagamit ng mga diksyunaryo sa kanilang iba't ibang mga variation, medyo mahirap magsulat ng mga query.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

3 buwan na ang lumipas mula nang ilabas ang aming unang bersyon. Mga 330 commits ang ginawa ko sa isang private branch at Tabix pala.

Hindi tulad ng nakaraang bersyon, na tinawag na ClickHouse-Frontend, nagpasya akong palitan ang pangalan nito sa isang simpleng pangalan. At si Tabix pala.

Ano ang lumitaw?

Gumuguhit ng mga graph. Sinusuportahan ang ClickHouse SQL syntax. Nagbibigay ng payo sa mga function at makakagawa ng maraming kawili-wiling bagay.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Ito ang hitsura ng pangkalahatang pamamaraan ng Tabix. Sa kaliwa ay isang puno. Sa gitna ay ang query editor. At nasa ibaba ang resulta ng kahilingang ito.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Susunod, ipapakita ko sa iyo kung paano gumagana ang editor ng query.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Dito awtomatikong gumagana ang autocomplete sa talahanayan at nag-prompt, nang naaayon, autocomplete para sa mga field. At mga pahiwatig sa mga function. Kung pinindot mo ang ctrl enter, ang kahilingan ay isasagawa o mabibigo nang may error. Ang pinakasimpleng kahilingan ay ipinadala sa Tabix at ang resulta ay nakuha, ibig sabihin, mabilis kang makakapagtrabaho sa ClickHouse.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Ang mga diksyunaryo, gaya ng nasabi ko na, ay isang napaka-kagiliw-giliw na bagay kung saan kami ay madalas na nagtatrabaho. At na nagpapahintulot sa amin na gumawa ng maraming bagay. Sabihin nating iniimbak namin ang lahat ng lungsod sa mga diksyunaryo. Iniimbak namin ang pagkakakilanlan ng lungsod at pangalan ng lungsod, ang latitude at longitude nito. At sa database ay iniimbak lamang namin ang tagatukoy ng lungsod. Alinsunod dito, sinisiksik namin ang data nang napakalakas.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Ito ay tila isang simpleng bagay, ngunit ito ay nakakatulong sa ClickHouse sa isang napaka-kawili-wiling paraan. Dahil sa katotohanan na ang ClickHouse ay sumusuporta lamang sa mga nested na pagsali, ang query ay lumalaki pababa at sapat na malawak. At kapag bumukas ang bracket at pumasok ang ilang mahabang expression, ang isang bagay na kasing simple ng pag-collapse ng query ay nagpapadali sa paggana sa mismong query. Dahil kapag ang query ay 200-300 na linya ang haba at napakalaking lapad, ito ay lubhang kapaki-pakinabang na i-collapse ang query at pagkatapos ay makahanap ng ilang lugar o kahit papaano ay i-localize ito.

Object tree, multiquery at tab (Video 13:46 https://youtu.be/w1-XsL3nbRg?t=826)

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Susunod na ipapakita ko sa iyo ang tungkol sa puno at mga tab. Sa kaliwa ay isang puno; sa itaas maaari kang lumikha ng ilang mga tab. Ang mga tab ay parang workspace. Maaari kang lumikha ng ilang mga tab at iba-iba ang pangalan ng bawat isa. Ito ay tulad ng isang mini-system para sa pagbuo ng isang ulat.

Awtomatikong nai-save ang mga tab. Kung i-restart mo ang iyong browser o isasara o bubuksan ang Tabix, ang lahat ng ito ay mase-save.

Hotkey - maginhawa (Video 14:39 https://youtu.be/w1-XsL3nbRg?t=879)

May mga hotkey at medyo marami sila. Kinuha ko ang ilan sa kanila dito bilang isang halimbawa. Ito ay pagpapalit ng mga tab, pagsasagawa ng kahilingan o pagsasagawa ng ilang kahilingan.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Ipapakita ko sa iyo kung paano gawin ang resulta. Nagpapadala kami ng kahilingan. Dito ako gumuhit ng kasalanan, cos at tg. Maaari mong i-highlight ang resulta, ibig sabihin, gumuhit ng tipikal na mapa para sa isang column. Maaari mong i-highlight ang mga positibo o negatibong halaga. O kulayan lang ang isang partikular na elemento ng talahanayan. Ito ay maginhawa kapag ang mesa ay malaki at kailangan mong makahanap ng ilang anomalya sa iyong mga mata. Noong naghahanap ako ng mga anomalya, nag-highlight ako ng ilang linya, ilang elemento sa berde o pula.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Mayroong maraming mga kawili-wiling bagay doon. Halimbawa, kung paano kumopya sa Redmine Markdown. Kung kailangan mong kopyahin ang resulta sa isang lugar, ito ay napaka-maginhawa. Maaari kang pumili lamang ng isang lugar, sabihin ang "Kopyahin sa Redmine" at ito ay kokopya sa Redmine Markdown o lumikha ng isang Saan query.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Susunod ay ang pag-optimize ng query. Minsan nakalimutan kong tukuyin ang field na "petsa". At ang aking kahilingan sa ClickHouse ay hindi naproseso nang napakabilis, ngunit mabilis, ibig sabihin, wala pang isang segundo. Nang makita ko kung ilang linya ang nasagasaan niya, natakot ako. Hindi kami nagsusulat ng napakaraming row sa talahanayang ito sa isang araw. Sinimulan kong pag-aralan ang kahilingan at nakita kong napalampas ko ang isang petsa sa isang lugar. Iyon ay, nakalimutan kong ipahiwatig na hindi ko kailangan ng data para sa buong talahanayan, ngunit para sa isang tiyak na panahon.

Ang Tabix ay may tab na "Mga Istatistika", na nag-iimbak ng buong kasaysayan ng mga ipinadalang kahilingan, ibig sabihin, doon mo makikita kung gaano karaming mga linya ang binasa ng kahilingang ito at kung gaano katagal ito natupad. Pinapayagan nito ang pag-optimize.

Maaari kang bumuo ng pivot table sa resulta ng query. Nagpadala ka ng kahilingan sa ClickHouse at nakatanggap ng ilang data. At pagkatapos ay maaari mong ilipat ang data na ito gamit ang iyong mouse at bumuo ng ilang uri ng pivot table.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Ang susunod na kawili-wiling bagay ay ang paglalagay. Sabihin nating mayroon kaming sumusunod na kahilingan: para sa kasalanan, cos mula 0 hanggang 299. At para iguhit ito, kailangan mong piliin ang tab na "Draw" at makakakuha ka ng graph kasama ang iyong kasalanan at cos.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Maaari mong hatiin ito sa iba't ibang mga palakol, ibig sabihin, maaari kang gumuhit ng dalawang graph na magkatabi nang sabay-sabay. Sumulat ng isang utos at pangalawang utos.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Maaari kang gumuhit ng mga histogram.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Maaari mong hatiin ito sa isang matrix ng mga graph.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Maaari kang bumuo ng isang mapa ng init.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Maaari kang bumuo ng isang thermal calendar. Sa pamamagitan ng paraan, ito ay isang napaka-maginhawang bagay kapag kailangan mong pag-aralan ang mga anomalya sa loob ng isang taon, ibig sabihin, hanapin ang alinman sa mga spike o patak. Nakatulong sa akin ang visualization ng data na ito.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Susunod ay Treemap.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Ang Sankeys ay isang kawili-wiling tsart. Siya ay maaaring Streamgrahps o River. Pero River ang tawag ko dito. Pinapayagan ka nitong maghanap ng anumang mga anomalya. Ito ay napaka komportable. Inirerekomenda kong gamitin ito para sa paghahanap.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Ang susunod na kawili-wiling bagay ay ang pagguhit ng isang dynamic na mapa. Kung mag-imbak ka ng latitude, longitude sa iyong database at, sabihin nating, mag-imbak ng patutunguhan, kung ikaw, halimbawa, ay may trucking o eroplanong lumilipad, maaari kang gumuhit ng mga patutunguhan na landas. Gayundin doon maaari mong itakda ang bilis at laki ng mga bagay na ito kung saan sila lumipad.

Ngunit ang problema sa mapa na ito ay gumuhit lamang ito ng mapa ng mundo, walang detalye.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Maya-maya ay nagdagdag ako ng Google map. Kung mag-imbak ka ng latitude, longitude, maaari mong iguhit ang resulta sa Google map, ngunit walang suporta sa eroplano.

Tinalakay namin ang mga pangunahing tungkulin ng pagtatrabaho sa mga resulta at mga query sa Tabix.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Ang susunod ay isang pagsusuri ng iyong ClickHouse server. Mayroong hiwalay na tab na "Mga Sukatan," kung saan makikita mo ang laki ng nakaimbak na data para sa bawat column. Ipinapakita ng screenshot na ang field na "referrer" na ito ay tumatagal ng humigit-kumulang 730 Gb. Kung abandunahin natin ang field na ito, magtitipid tayo ng tatlong shards ng 700 GB bawat isa, ibig sabihin, mga 2 TB na hindi natin kailangan.

Mayroon din kaming field na "request_id" na iniimbak namin sa isang string. Ngunit kung sisimulan natin itong iimbak sa numerical form, ang field na ito ay liliit nang husto.

Ipinapakita rin nito ang configuration ng server at isang listahan ng mga node sa iyong cluster.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Ang susunod na tab ay mga sukatan. Nakapasok sila sa realtime sa ClickHouse at pinapayagan kang suriin ang estado ng server at maunawaan kung ano ang nangyayari dito. Hindi ito kapalit ng buong Grafana. Ito ay kinakailangan para sa mabilis na pagsusuri.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Ang susunod na tab ay mga proseso. Mula sa kanila maaari mong maunawaan kung ano ang nangyayari sa server. Intindihin kung ano ang nangyayari doon. Mayroon akong kahilingan na kumonsumo ng 200 GB ng pagbabasa sa bawat pagkakataon. Nakita ko ito salamat sa interface na ito. Sinalo ko siya at tinamaan. At ito ay naging mga 30 GB, ibig sabihin, isang pagganap minsan.

ClickHouse – biswal na mabilis at intuitive na pagsusuri ng data sa Tabix. Igor Stryhar

Salamat! At ito ay nasa OpenSource

Tapos na ako. At siya nga pala, OpenSource ito, libre ito at hindi mo na kailangang i-download ito. Buksan ito sa isang browser at lahat ay gagana.

mga katanungan

Igor, ano ang susunod? Saan mo bubuo ang tool na ito?

Susunod, lilitaw ang mga dashboard, ibig sabihin, marahil ay lilitaw ang mga dashboard. Pagsasama sa iba pang mga database. Ginawa ko ito, ngunit hindi pa ito nai-publish sa OpenSource. Ito ay MySQL at posibleng PostgreSQL. Iyon ay, magiging posible na magpadala ng mga kahilingan mula sa Tabix hindi lamang sa ClickHouse, kundi pati na rin sa iba pang mga tool.

Ito ay malinaw na ang isang malaking halaga ng trabaho ay tapos na. Ito ay naging isang medyo kumpletong ideya. Ginawa ito sa browser, tila, upang maalis ang mga saklay sa lahat ng uri ng mga palakol at mabilis na itapon ang buong bagay. Narinig ko na ikaw ay nasa php gumana, kaya ang pinakamadaling paraan ay i-type ito sa browser at gagana ito kahit saan. Walang mga katanungan tungkol dito. Ang tanong ay ito. Marami na talagang nagawa doon. Ilang tao ang nagtrabaho dito? At gaano katagal ang lahat? Dahil ang mga custom na tool ay karaniwang walang gaanong functionality.

Isang tao mula sa aming koponan ang nagtrabaho mula tag-araw hanggang taglagas. Ito ang unang bersyon. Tapos gumawa ako ng 330 commits mag-isa. Kung ano ang nakikita mo, ginawa namin ito ng aking kasamahan sa kalahati. Sa loob ng 3 buwan, mula sa pinakaunang bersyon hanggang sa huli, kadalasan ay ginawa ko ito nang mag-isa. Ngunit hindi ko masyadong alam ang Javascript. Ito lamang ang aking at, umaasa ako, ang aking huling proyekto ng Javascript na aking nakatrabaho. Nakuha ko, tumingin ako - oh, horror. Pero gusto ko talagang tapusin ang produkto at ito ang nangyari.

Maraming salamat sa ulat! Ito ay isang mahusay na tool. SA Tableau Naikumpara mo na ba?

Salamat. Kaya nga pinangalanan ko itong Tabix, dahil pareho ang mga unang letra.

Dahil nakikipagkumpitensya ka?

Malaking puhunan, magkakalaban tayo.

Paano ka makakapag-alok na ibenta sa mga panloob na analyst na ganap na papalitan ng tool na ito *Tableau*? Ano ang magiging mga argumento?

Gumagana nang katutubong sa ClickHouse. Sinubukan ko ang Tableau, ngunit hindi ka maaaring magsulat ng suporta para sa mga diksyunaryo at mga katulad doon. Alam ko kung paano gumagana ang mga tao sa Tabix. Sumulat sila ng query, ina-upload ito sa CSV at ina-upload ito sa BI. At may ginagawa na sila doon. Ngunit nahihirapan akong isipin kung paano nila ito ginagawa, dahil ito ay isang graphical na tool. Maaari itong mag-unload ng 5 row, maximum na 000 row, ngunit wala na, kung hindi, hindi makaya ng browser.

Ibig sabihin, may ilang seryosong limitasyon sa dami ng data, tama ba?

Oo. Hindi ko maisip na gusto mong mag-upload ng 10 row sa iyong talahanayan sa screen ng iyong browser. Para saan?

Nangangahulugan ba ito na ito ay isang interface para sa mabilis na pagtingin sa data? I-twist it a little, twist it?

Oo, mabilis na makita kung paano ito gumagana at bumuo lamang ng isang buod na graph. At pagkatapos ay ibigay ito sa isang lugar. Mayroon kaming sariling sistema ng pag-uulat, kung saan ko kinuha ang kahilingang ito. Gumuhit ako sa Tabix at ipinadala ito sa aming pag-uulat.

At isa pang tanong. Pagsusuri ng pangkat?

Kung mayroong anumang mga kahilingan, idagdag namin ito.

Kailan ka lang nagsimulang gumamit nito? ClickHouse, gaano katagal ang pagpapatupad? clickhouse at dinadala sa estado ng produksyon?

Gaya ng sinabi ko, nagpatupad kami ng test cluster sa napakaikling panahon. Na-deploy namin ito sa loob ng dalawang araw. At sinubukan namin ito ng ilang linggo pa. At naabot namin ang produksyon sa loob ng 3 buwan. Ngunit mayroon kaming sariling ETL, ibig sabihin, isang tool para sa pagtatala ng data. At isinulat niya ang lahat ng kanyang makakaya. Maaari siyang sumulat sa MongoDB, Cassandra, MySQL. Madaling turuan siya kung paano magsulat sa ClickHouse. Mayroon kaming handa na imprastraktura para sa mabilis na pagpapatupad. Sa loob ng 3 buwan sinimulan naming itapon ang unang bahagi. Sa loob ng 6 na buwan, tuluyan na naming tinalikuran ang lahat. Isang ClickHouse na lang ang natitira namin.

Igor, maraming salamat sa ulat. Talagang nagustuhan ko ang pag-andar ng pagbuo ng mga landas gamit ang mga mapa. Mayroon bang anumang mga plano para sa pagsasama sa Yandex.Maps at partikular sa custom na Yandex.Maps?

Sinubukan kong isama sa halip na Google map, ngunit wala akong nakitang madilim na tema sa Yandex.Maps. Hindi ko sinabi sa iyo ang isang piraso. Ire-rewind ko para magdagdag.

Slide – Google map. Mayroong isang command na "DRAW_GMAPS", na gumuhit ng isang mapa. Mayroong command na "DRAW_YMAPS", ibig sabihin, maaari itong gumuhit ng Yandex.Map. Ngunit sa katunayan, sa ilalim ng utos na ito ay mayroong Javascript, ibig sabihin, ang data na natatanggap mo mula sa ClickHouse ay maaaring ilipat sa Javascript, na iyong isinusulat dito. At mayroon kang isang lugar ng output kung saan dapat itong iguhit. Maaari kang gumuhit ng anumang graph, ibig sabihin, anumang graph, mapa, maaari kang gumuhit ng iyong sariling bahagi. Bago ito, mayroon akong isa pang aklatan para sa pagguhit ng mga graph mismo.

Ibig sabihin, mayroon bang tool para sa pag-customize ng display functionality?

Anuman. Maaari mong kunin at muling kulayan ang mga tuldok na ito, na ginagawa itong hindi pula, ngunit asul, berde.

Salamat sa ulat! Mayroon kang slide na nagpapakita ng mga alternatibong tool sa query clickhouse para sa pagbuo ng mga dashboard at analytical na ulat. Naiintindihan ko iyon sa sandaling nagsimula kang magtrabaho kasama ClickHouse, walang mga adapter na naisulat para sa mga tool na ito. At nagtataka ako kung bakit nagpasya kang gumawa ng sarili mong tool, sa halip na magsulat ng adaptor para sa ilang handa na tool? Sa tingin ko, mabilis ang pag-tweak sa editor ng pagsubok. Bakit ka nagpasya na gumawa ng napakaraming trabaho?

Mayroong isang kawili-wiling punto dito - ang katotohanan ay ako ay isang teknikal na direktor, hindi isang data scientist. Sa oras na sinimulan nating ipatupad ang Druid, ang aking roadmap ay may humigit-kumulang 50% ng mga gawain - kalkulahin natin ito, o kalkulahin natin ito, o pag-aralan ito. At ito pala ay ipinatupad namin ang ClickHouse. At sinimulan niyang mabilis na itayo ang lahat, bilangin, at mabilis na isinara ang kanyang roadmap. At sa oras na iyon napagtanto ko na kulang ako sa kaalaman sa Data Science at data visualization. Ang Tabix ay uri ng aking takdang-aralin para sa pag-aaral ng visualization ng data. Tinitingnan ko kung paano i-complement si Zeppelin. Medyo ayaw ko sa programming niya. Redash Tiningnan ko kung paano ito idagdag, ngunit sapat na sa akin ang isang normal na editor. At ang SuperSet ay nakasulat din sa isang wika na hindi ko talaga gusto. At kaya nagpasya akong mag-cycle, at ito ang nangyari.

Igor, tinatanggap mo ba ang mga kahilingan sa Pull?

Oo.

Maraming salamat sa ulat! At dalawang tanong. Una, hindi ka nagsasalita ng masyadong nakakapuri JavaScript. Sumulat ka ba sa hubad na Javascript o ito ba ay isang uri ng balangkas?*

Mas mahusay sa hubad na Javascript.

Kaya anong balangkas?

angular.

Malinaw na. At ang pangalawang tanong. Nakonsidera mo ba R и *makintab**?*

Isinasaalang-alang ito. Naglaro.

Maaari ka ring magsulat ng isang adaptor.

Siya ay. Mukhang ginawa ito ng komunidad, ngunit, habang sinasagot ko ang nakaraang tanong, gusto kong subukan ito mismo.

*Hindi, tungkol sa visualization, nandoon din ito.

Sinabi mo na mayroong ganoong bagay at ito ay bubunot sa iyo ng isang graph. Nagbukas ako ng libro sa data visualization. At naisip ko: "Hayaan akong subukang ilarawan ang data na ito. Susulatan ko siya para mabuo niyang muli ang data." At nagsimula akong mas maunawaan ang teknolohiya ng data feed. At kung kumuha ako ng isang handa na bahagi, personal kong natutunan kung paano gamitin ito, iyon ay, visualization. Pero oo, nagustuhan ko si R, pero hindi ko pa nababasa ang librong “R for Dummies”.

Salamat sa iyo!

Simpleng tanong. Mayroon bang anumang mga paraan upang mabilis na mag-upload ng sign o iskedyul?

Maaaring i-upload sa CSV o Excel.

Hindi data, ngunit isang handa na plato, isang handa na graph? Halimbawa, upang ipakita sa amo.

Mayroong isang pindutan na "Mag-upload" at mayroong isang pindutan na "Mag-upload ng graph sa png, sa jpg".

Salamat sa iyo!

PS Mini-mga tagubilin para sa pag-install ng tabix

  • I-download ang pinakabagong release
  • I-unpack, kopyahin ang direktoryo build sa nginx root_path
  • I-configure ang nginx

Pinagmulan: www.habr.com

Magdagdag ng komento