Koma analinso ndi zofuna zake. Kamodzi pamwezi kapena kamodzi pa miyezi iwiri iliyonse adakumana ndi kuchotsedwa kwa database. Ndipo ndinayenera kudzuka ndikuthamangira kukakonza Cassandra. Ma seva adayambikanso imodzi ndi imodzi. Ndipo chirichonse chinakhala chosalala ndi chokongola.
Druid ndi pulogalamu yotseguka yolembedwa mu Java. Zolunjika kwambiri. Ndipo zinali zoyenera kwa clickstream, pamene tiyenera kusunga mtundu wina wa zochitika ndiyeno kuchita aggregation pa iwo kapena kupanga malipoti analytical.
Druid anali ndi mtundu wa 0.9.X.
Nawonso database yokha ndiyovuta kuyika. Izi ndizovuta za zomangamanga. Kuti atumize, kunali koyenera kuyika zambiri, zachitsulo zambiri. Ndipo chidutswa chilichonse cha hardware chinali ndi udindo wake wosiyana.
Kuti mulowetse deta mmenemo, kunali koyenera kugwiritsa ntchito mtundu wina wa shamanism. Pali ntchito ya OpenSource - Tranquility, yomwe inali kutaya deta kuchokera kwa ife mumtsinje. Titanyamula deta mu izo, izo zinataya.
Koma mwanjira ina tinayamba kuzigwiritsa ntchito. Ife, monga akalulu omwe amamwa mankhwala osokoneza bongo koma anapitirizabe kudya nkhaka, tinayamba kufotokoza izo. Zinatitengera pafupifupi mwezi umodzi kuti tikonze zida zonse zogwirira ntchitoyo. Ndiko kuti, yitanitsa ma seva, sinthani maudindo, ndikuyika kwathunthu. Ndiko kuti, ngati masango akulephera, gulu lachiwiri lidzangotumizidwa.
Koma kenako chozizwitsa chinachitika. Ndinali patchuthi ndipo anzanga adanditumizira ulalo hab, yomwe imati Yandex idaganiza zotsegula ClickHouse. Ndimati tiyese.
Ndipo kwenikweni m'masiku a 2 tidatumiza gulu loyesa la ClickHouse. Tinayamba kulowetsamo deta. Poyerekeza ndi infiniDB, izi ndizoyambira; poyerekeza ndi Druid, izi ndizoyambira. Poyerekeza ndi Cassandra, ndizoyambira. Chifukwa ngati mutsitsa deta kuchokera ku PHP kupita ku Cassandra, ndiye kuti izi sizoyambira.
Tinapeza chiyani? Kuchita mwachangu. Zochita pakusunga deta. Ndiye kuti, malo ochepa a disk amagwiritsidwa ntchito. ClickHouse ndi yachangu, imathamanga kwambiri poyerekeza ndi zinthu zina.
Panthawi yoyambitsa, Yandex itasindikiza ClickHouse ku OpenSource, panali kasitomala wotonthoza yekha. Ife ku kampani yathu SMI2 tinaganiza zoyesa kupanga kasitomala wamba pa intaneti, kuti titsegule tsamba kuchokera kwa osatsegula, lembani pempho ndikupeza zotsatira, chifukwa tinayamba kulemba zopempha zambiri. Kulemba mu console ndizovuta. Ndipo tinapanga mtundu wathu woyamba.
Ndipo kwinakwake pafupi ndi nyengo yozizira ya chaka chatha, zida zachitatu zogwirira ntchito ndi ClickHouse zidayamba kuwonekera. Izi ndi zida monga:
Ndiyang'ana zina mwa zida izi, zomwe ndi zomwe ndagwirapo ntchito.
Chida chabwino, koma cha Druid. Pamene Druid ikugwiritsidwa ntchito, ndinali kuyesa SuperSet. Ndinamukonda. Kwa Druid ndikothamanga kwambiri.
Sikoyenera kwa ClickHouse. Ndiko kuti, ikukwanira, imayamba, koma ili wokonzeka kuyankha mafunso oyambira okha monga: SINANI chochitika, GROUP BY chochitika. Sichimagwirizana ndi mawu ovuta kwambiri a ClickHouse.
Chida chotsatira ndi Apache Zeppelin. Ichi ndi chinthu chabwino komanso chosangalatsa. Ntchito. Imathandizira zolemba, ma dashboards, ndikuthandizira zosintha. Ndikudziwa kuti wina mdera la ClickHouse amagwiritsa ntchito.
Koma palibe chithandizo cha mawu a ClickHouse, mwachitsanzo, muyenera kulemba mafunso mu console kapena kwina kulikonse. Kenako, onetsetsani kuti zonse zikugwira ntchito. Ndizovuta basi. Koma ili ndi chithandizo chabwino cha dashboard.
Chida chotsatira ndi Redash.IO. Redash imapezeka pa intaneti. Ndiye kuti, mosiyana ndi zida zam'mbuyomu, siziyenera kukhazikitsidwa. Ndipo iyi ndi dashboard yokhala ndi kuthekera kophatikiza deta kuchokera ku DataSource zosiyanasiyana. Ndiko kuti, mutha kutsitsa kuchokera ku ClickHouse, kuchokera ku MySQL, kuchokera ku PostgreSQL komanso kuchokera kumasamba ena.
Mwezi umodzi wapitawo (March 2017), thandizo linawonekera ku Grafana. Mukapanga malipoti ku Grafana, mwachitsanzo, pazida zanu kapena pazitsulo zina, tsopano mutha kupanga graph yomweyi kapena gulu linalake kuchokera ku data kuchokera ku ClickHouse mwachindunji. Izi ndizothandiza kwambiri, ndipo timazigwiritsa ntchito tokha. Izi zimakuthandizani kuti mupeze anomalies. Ndiko kuti, ngati chinachake chikuchitika ndipo hardware ina ikugwa kapena imakhala yovuta, ndiye kuti mukhoza kuyang'ana chifukwa ngati deta iyi yatha kulowa mu ClickHouse.
Ndinaona kuti zinali zovuta kwambiri kulemba mu zida izi kapena mu console. Ndipo ndinaganiza zokonza mawonekedwe athu oyamba. Ndipo ndidapeza lingaliro kuchokera ku EventSQL, SeperSet, Zeppelin.
Munkafuna chiyani? Ndinkafuna kupeza zithunzi, mkonzi wabwino, ndikugwiritsa ntchito chithandizo cha mtanthauzira mawu. Chifukwa ClickHouse ili ndi mawonekedwe abwino - otanthauzira mawu. Koma ndizovuta kugwira ntchito ndi otanthauzira mawu, chifukwa muyenera kukumbukira maonekedwe a zikhalidwe zosungidwa, mwachitsanzo, ndi nambala kapena chingwe, ndi zina zotero.
Miyezi ya 3 yadutsa kuchokera pamene Baibulo lathu loyamba linatulutsidwa. Ndinapanga pafupifupi 330 kudzipereka ku nthambi yachinsinsi ndipo idakhala Tabix.
Kenako ndikuwonetsani za mtengo ndi ma tabu. Kumanzere kuli mtengo; pamwamba mutha kupanga ma tabo angapo. Ma tabu ali ngati malo ogwirira ntchito. Mutha kupanga ma tabo angapo ndikutchula iliyonse mosiyana. Zili ngati mini-system pomanga lipoti.
Chotsatira ndi kukhathamiritsa kwa mafunso. Nthawi ina ndinayiwala kutchula gawo la "deti". Ndipo pempho langa ku ClickHouse silinasinthidwe kwambiri, mwachangu kwambiri, koma mwachangu, mwachitsanzo, osakwana sekondi imodzi. Nditaona mizere ingati yomwe anadutsamo, ndinachita mantha. Sitilemba mizere yambiri patebuloli tsiku limodzi. Ndinayamba kusanthula pempholo ndipo ndinawona kuti ndaphonya tsiku limodzi. Ndiko kuti, ndinayiwala kusonyeza kuti sindikusowa deta pa tebulo lonse, koma kwa nthawi yeniyeni.
Tabix ili ndi tabu ya "Stats", yomwe imasunga mbiri yonse ya zopempha zotumizidwa, mwachitsanzo, mukhoza kuona mizere ingati yomwe inawerengedwa ndi pempholi ndi nthawi yayitali bwanji kuti achite. Izi zimathandiza kukhathamiritsa.
Mutha kupanga tebulo la pivot pazotsatira zafunso. Mudatumiza pempho kwa ClickHouse ndipo mwalandira zambiri. Kenako mutha kusuntha izi ndi mbewa yanu ndikupanga mtundu wina wa tebulo la pivot.
Chotsatira chosangalatsa ndikukonza chiwembu. Tinene kuti tili ndi chopempha chotsatirachi: chauchimo, cos kuyambira 0 mpaka 299. Ndipo kuti mujambule, muyenera kusankha tabu ya "Jambulani" ndipo mudzalandira graph ndi tchimo lanu ndi cos.
Mutha kugawa izi kukhala nkhwangwa zosiyanasiyana, mwachitsanzo, mutha kujambula ma graph awiri mbali imodzi nthawi imodzi. Lembani lamulo limodzi ndi lachiwiri.
Mutha kujambula histograms.
Mutha kugawa izi kukhala ma graph angapo.
Mutha kupanga mapu otentha.
Mutha kupanga kalendala yotentha. Mwa njira, ichi ndi chinthu chothandiza kwambiri pamene mukufunikira kusanthula zolakwika kwa chaka chimodzi, mwachitsanzo, pezani spikes kapena madontho. Kuwona kwa data uku kunandithandiza ndi izi.
Chotsatira ndi Treemap.
Sankeys ndi tchati chosangalatsa. Iye mwina Streamgrahps kapena River. Koma ndimautcha Mtsinje. Komanso amakulolani kuyang'ana anomalies iliyonse. Ndizomasuka kwambiri. Ndikupangira kugwiritsa ntchito posaka.
Chotsatira chosangalatsa ndikujambula mapu osinthika. Ngati mumasunga latitude, longitude mu database yanu ndipo, kunena, kusunga kopita, ngati inu, mwachitsanzo, muli ndi trucking kapena ndege zowuluka, ndiye kuti mukhoza kujambula njira kopita. Komanso kumeneko mukhoza kukhazikitsa liwiro ndi kukula kwa zinthu izi zimene zimawulukira.
Koma vuto ndi mapuwa ndikuti amangojambula mapu a dziko lapansi, palibe tsatanetsatane.
Kenako ndinawonjezera Google map. Ngati mumasunga latitude, longitude, ndiye kuti mutha kujambula zotsatira pa mapu a Google, koma popanda thandizo la ndege.
Takambirana ntchito zazikulu zogwira ntchito ndi zotsatira ndi mafunso mu Tabix.
Chotsatira ndikuwunika seva yanu ya ClickHouse. Pali tabu yosiyana ya "Metrics", komwe mutha kuwona kukula kwa data yosungidwa pagawo lililonse. Chithunzi chikuwonetsa kuti gawo la "referrer" ili limatenga pafupifupi 730 Gb. Ngati tisiya gawo ili, tidzapulumutsa atatu 700 GB shards, i.e. za 2 TB, zomwe sitifunikira.
Tilinso ndi gawo la "request_id" lomwe timasunga mu chingwe. Koma ngati tiyamba kuusunga m’mawerengero, gawoli lidzacheperachepera.
Ikuwonetsanso kasinthidwe ka seva ndi mndandanda wa node mumagulu anu.
Tsamba lotsatira ndi ma metrics. Amalowa mu nthawi yeniyeni ndi ClickHouse ndikungokulolani kuti mufufuze momwe seva ikukhalira ndikumvetsetsa zomwe zikuchitika. Uku sikulowa m'malo mwa Grafana wathunthu. Izi ndizofunikira kuti mufufuze mwachangu.
Tsamba lotsatira ndi ndondomeko. Kuchokera kwa iwo mukhoza kumvetsa zomwe zikuchitika pa seva. Mvetserani zomwe zikuchitika kumeneko. Ndinali ndi pempho lomwe linkadya 200 GB yowerengera nthawi iliyonse. Ndinawona izi chifukwa cha mawonekedwe awa. Ndinamugwira ndikumuwongolera. Ndipo zidakhala pafupifupi 30 GB, i.e. magwiridwe antchito nthawi zina.
Zikomo! Ndipo ili mu OpenSource
Ndinamaliza. Ndipo mwa njira, ndi OpenSource, ndi yaulere ndipo simuyenera kuyitsitsa. Tsegulani mu msakatuli ndipo zonse zigwira ntchito.
Mafunso anu
Igor, chotsatira ndi chiyani? Kodi chidachi mudzachipanga kuti?
Kenako, ma dashboards adzawonekera, mwachitsanzo, mwina ma dashboards adzawonekera. Kuphatikiza ndi ma database ena. Ndidachita izi, koma sindinazisindikize mu OpenSource. Izi ndi MySQL ndipo mwina PostgreSQL. Ndiko kuti, zidzatheka kutumiza zopempha kuchokera ku Tabix osati ku ClickHouse, komanso ku zipangizo zina.
Monga ndanenera, tidakhazikitsa gulu loyesera munthawi yochepa kwambiri. Tinatumiza masiku awiri. Ndipo tinaziyesa kwa milungu ingapo. Ndipo tinafika kupanga m'miyezi 3. Koma tinali ndi ETL yathu, mwachitsanzo, chida chojambulira deta. Ndipo analemba m’zonse zimene akanatha. Atha kulemba ku MongoDB, Cassandra, MySQL. Zinali zosavuta kumuphunzitsa kulemba mu ClickHouse. Tinali ndi maziko okonzeka kuti tigwiritse ntchito mofulumira. Pasanathe miyezi 3 tinayamba kutaya gawo loyamba. M'miyezi 6 tinasiyiratu china chilichonse. Tili ndi ClickHouse imodzi yokha yomwe yatsala.
Igor, zikomo kwambiri chifukwa cha lipotilo. Ndinkakonda kwambiri ntchito yomanga njira pogwiritsa ntchito mamapu. Kodi pali mapulani ophatikizana ndi Yandex.Maps makamaka ndi Yandex.Maps?
Ndinayesa kuphatikiza m'malo mwa mapu a Google, koma sindinapeze mutu wakuda pa Yandex.Maps. Sindinakuuzeni chidutswa chimodzi. Ndibwerera kuti ndiwonjezere.
Slide - Mapu a Google. Pali lamulo "DRAW_GMAPS", lomwe limajambula mapu. Pali lamulo "DRAW_YMAPS", mwachitsanzo, imatha kujambula Yandex.Map. Koma kwenikweni, pansi pa lamulo ili pali Javascript, i.e. deta yomwe mumalandira kuchokera ku ClickHouse ikhoza kusamutsidwa ku Javascript, yomwe mumalemba apa. Ndipo muli ndi gawo lotulutsa pomwe liyenera kukokedwa. Mutha kujambula graph iliyonse, mwachitsanzo, graph iliyonse, mapu, mutha kujambula gawo lanu. Izi zisanachitike, ndinali ndi laibulale ina yojambulira ma graph okha.