ClickHouse yevashandisi vepamberi mumibvunzo nemhinduro

Muna Kubvumbi, mainjiniya eAvito akaungana kumisangano yepamhepo nemukuru weClickHouse mugadziri Alexey Milovidov naKirill Shvakov, mugadziri weGolang anobva kuIntegros. Takakurukura mashandisiro atinoita dhatabhesi manejimendi system uye kuti ndeapi matambudziko atinosangana nawo.

Zvichienderana nemusangano, takanyora chinyorwa chine mhinduro dzenyanzvi kumibvunzo yedu uye yevateereri nezve backups, data reshard, maduramazwi ekunze, mutyairi weGolang nekuvandudza ClickHouse shanduro. Zvinogona kubatsira kune vanogadzira vari kutoshanda nesimba neYandex DBMS uye vari kufarira zvazvino uye zveramangwana. Nekutadza, mhinduro ndiAlexey Milovidov, kunze kwekunge zvakanyorwa neimwe nzira.

Ngwarira, pane zvakawanda zvinyorwa pasi pekucheka. Tinovimba kuti zvirimo zvine mibvunzo zvichakubatsira kufamba.

ClickHouse yevashandisi vepamberi mumibvunzo nemhinduro

Zviri mukati

Kana usingadi kuverenga chinyorwa, unogona kuona kurekodhwa kwemagungano paYouTube chiteshi. Timecodes ari mukutanga kutaura pasi pevhidhiyo.

ClickHouse inogara ichigadziridzwa, asi data redu harina. Chii chekuita nezvazvo?

ClickHouse inogara ichigadziridzwa, uye data redu, iro rakagadziridzwa kwekupedzisira, harina kuvandudzwa uye riri mukopi yekuchengetedza.

Ngatitii taita dambudziko uye data rakarasika. Isu takasarudza kudzoreredza, uye zvakazoitika kuti zvikamu zvekare, izvo zvakachengetwa pamasevha ekuchengetedza, akasiyana zvakanyanya neshanduro yakashandiswa yeClickHouse. Chii chekuita mumamiriro ezvinhu akadaro, uye zvinogoneka here?

Mamiriro ezvinhu apo iwe wakadzoreredza data kubva kune backup mune yekare fomati, asi haina kubatana kune iyo nyowani vhezheni, hazvigoneke. Isu tinoita shuwa kuti iyo data fomati muClickHouse inogara ichidzokera kumashure inoenderana. Izvi zvakanyanya kukosha kupfuura kuenderana kumashure mukushanda kana maitiro erimwe basa risingawanzo shandiswa achinja. Iyo itsva vhezheni yeClickHouse inofanirwa kugara ichikwanisa kuverenga iyo data yakachengetwa padhisiki. Uyu ndiwo mutemo.

Ndeapi azvino maitiro akanakisa ekutsigira data kubva kuClickHouse?

Maitiro ekuita ma backups, tichifunga kuti isu tave nekugonesa mashandiro ekupedzisira, dhatabhesi hombe yeterabytes, uye data rinogadziridzwa, toti, kwemazuva matatu apfuura, uye pasina maitiro anoitika kwairi?

Isu tinokwanisa kugadzira yedu mhinduro uye tinyore pane bash: unganidza aya makopi ekuchengetedza nenzira yakadai. Zvichida hapana chikonzero chekurovera chero chinhu, uye bhasikoro rakagadzirwa kare kare?

Ngatitangei nemaitiro akanakisa. Vandinoshanda navo vanogara vachipa zano, mukupindura mibvunzo nezve backups, kuvayeuchidza nezve Yandex.Cloud sevhisi, uko dambudziko iri rakatogadziriswa. Saka shandisa kana zvichibvira.

Iko hakuna mhinduro yakakwana yekusevha, zana muzana yakavakirwa muClickHouse. Pane mamwe ma blanks anogona kushandiswa. Kuti uwane mhinduro yakakwana, iwe unozofanirwa kupenengura zvishoma nemaoko, kana kugadzira wrappers muchimiro chezvinyorwa.

Ini ndichatanga nemhinduro dzakareruka uye ndinopedzisa neakanyanya kuoma, zvichienderana nehuwandu hwe data uye ukuru hwesumbu. Iyo yakakura sumbu, iyo yakanyanya kuoma mhinduro inova.

Kana tafura ine data ichingotora mashoma gigabytes, backup inogona kuitwa seizvi:

  1. Sevha tsananguro yetafura i.e. metadata − ratidza kugadzira tafura.
  2. Gadzira marara uchishandisa ClickHouse mutengi - sarudza * kubva patafura kufaira. Nekusagadzikana iwe unogashira faira muTabSeparated fomati. Kana iwe uchida kunyatsoshanda, unogona kuzviita muNative fomati.

Kana huwandu hwe data hwakakura, saka backup inotora nguva yakawanda uye yakawanda nzvimbo. Izvi zvinonzi backup zvine musoro; haina kusungirirwa kune ClickHouse data fomati. Kana zvirizvo, saka sechisarudzo chekupedzisira unogona kutora backup woisa kuMySQL kuti udzore.

Kune mamwe makesi epamberi, ClickHouse ine yakavakirwa-mukati kugona kugadzira mufananidzo wezvikamu mune yemuno faira system. Ichi chimiro chinowanikwa sechikumbiro shandura tafura yechando partition. Kana zviri nyore shandura tafura yechando - ichi chifananidzo chetafura yese.

Iyo snapshot ichagadzirwa nguva dzose kune imwe tafura pane imwe shard, ndiko kuti, hazvibviri kugadzira snapshot inopindirana yesumbu rese nenzira iyi. Asi kune mazhinji mabasa hapana chakadaro chinodikanwa, uye zvakakwana kuita chikumbiro pane yega yega shard uye kuwana inowirirana snapshot. Iyo yakagadzirwa nenzira ye hardlinks uye saka haitore imwe nzvimbo. Tevere, unokopa iyi snapshot kune backup server kana kune yekuchengetera yaunoshandisa kuchengetedza.

Kudzoreredza backup yakadaro kuri nyore. Kutanga, gadzira matafura uchishandisa tsanangudzo dzetafura dziripo. Tevere, tevedzera zvakachengetwa zvidhori zvezvikamu kuDirectory-Yakavharirwa kune aya matafura uye mhanyisa mubvunzo. batanidza partition. Iyi mhinduro yakanyatsokodzera kune yakakomba mavhoriyamu e data.

Dzimwe nguva unoda chimwe chinhu chinotonhorera - mune zviitiko apo iwe une makumi kana kunyange mazana ematerabytes pane yega sevha uye mazana emaseva. Pane mhinduro pano yandakatora kubva kune vandinoshanda navo kubva kuYandex.Metrica. Ini handingakurudzire kune wese munhu - verenga uye uzvisarudzire iwe kuti yakakodzera here kana kwete.

Kutanga iwe unofanirwa kugadzira maseva akati wandei ane masherufu makuru e disk. Tevere, pamasevha aya, simudza akati wandei ClickHouse maseva uye woagadzirisa kuti ashande seimwe replica yemashadhi mamwe chete. Uye wobva washandisa faira system kana chimwe chishandiso pane aya maseva chinokutendera iwe kuti ugadzire snapshots. Pane zvingasarudzwa zviviri pano. Yekutanga sarudzo ndeye LVM snapshots, yechipiri sarudzo ndeye ZFS paLinux.

Mushure meizvozvo, zuva rega rega iwe unofanirwa kugadzira mufananidzo, unonyepa uye utore imwe nzvimbo. Nomuzvarirwo, kana iyo data ichichinja, huwandu hwenzvimbo huchawedzera nekufamba kwenguva. Iyi snapshot inogona kutorwa chero nguva uye data yakadzoserwa, mhinduro isinganzwisisike yakadaro. Uyezve, isu tinofanirwawo kudzikamisa aya mareplicas mu config kuti varege kuedza kuve vatungamiriri.

Zvinozoita here kuronga inodzorwa lag replicas mu shafts?

Gore rino uri kuronga kugadzira shafts muClickHouse. Zvichagoneka here kuronga inodzorwa lag ye replicas mavari? Tinoda kuishandisa kuti tizvidzivirire kubva kune zvakaipa mamiriro ane alters uye dzimwe shanduko.

Zvinoita here kuita imwe mhando yekudzosera kumashure kune alters? Semuenzaniso, mune shaft iripo, tora uye utaure kuti kusvika panguva ino iwe unoshandisa shanduko, uye kubva panguva ino unomira kushandisa shanduko?

Kana murairo wakauya kuchikwata chedu uye ukachityora, saka tine replica ine chirevo neawa lag, patinogona kutaura kuti ngatishandisei panguva ino, asi isu hatizoshandisi shanduko pairi kwemaminitsi gumi ekupedzisira?

Kutanga, nezve inodzorwa lag replicas. Paive nechikumbiro chakadaro kubva kuvashandisi, uye takagadzira nyaya paGithub nechikumbiro: "Kana mumwe munhu achida izvi, saizvozvi, isa moyo." Hapana akaendesa, uye nyaya yakavharwa. Nekudaro, iwe unogona kutowana mukana uyu nekumisikidza ClickHouse. Chokwadi, chete kutanga kubva shanduro 20.3.

ClickHouse inogara ichiita data yekubatanidza kumashure. Kana kusanganisa kwapera, imwe seti yezvidimbu zve data inotsiviwa nechidimbu chakakura. Panguva imwecheteyo, zvidimbu zve data zvaivepo zvisati zvaitika zvinoramba zvichiramba zviri pa diski kwenguva yakati.

Kutanga, ivo vanoramba vachichengetwa chero bedzi paine sarudzo dzakasarudzwa dzinovashandisa, kuitira kuti dzipe kusingavharidzi kushanda. Sarudza mibvunzo inoverengwa zviri nyore kubva kumachunks ekare.

Chechipiri, kune zvakare nguva yekumisikidza - zvidimbu zvekare zve data zvakarara pa diski kwemaminitsi masere. Aya maminetsi masere anogona kugadzirwa uye kunyange kushandurwa kuita zuva rimwe chete. Izvi zvinodhura dhisiki nzvimbo: zvichienderana nekuyerera kwedata, zvinoitika kuti muzuva rekupedzisira data haringopeta kaviri, rinogona kuwedzera kashanu. Asi kana paine dambudziko rakakomba, unogona kumisa iyo ClickHouse server uye kugadzirisa zvese kunze.

Zvino mubvunzo unomuka wekuti izvi zvinodzivirira sei kubva kune alters. Zvakakodzera kuti titarise zvakadzama pano, nekuti mushanduro dzekare dzeClickHouse, iyo alter yakashanda nenzira yekuti yaingochinja zvidimbu zvakananga. Pane chidimbu che data chine mamwe mafaera, uye tinoita, semuenzaniso, shandura mbiru yekudonha. Ipapo iyi koramu inobviswa panyama kubva kune ese chunks.

Asi kutanga neshanduro 20.3, iyo alter mechanism yakashandurwa zvachose, uye zvino zvidimbu zve data zvinogara zvisingachinji. Iwo haashanduke zvachose - ma alters ikozvino anoshanda nenzira yakafanana nekubatanidza. Panzvimbo pokutsiva chidimbu panzvimbo, tinogadzira imwe itsva. Mune chunk nyowani, mafaera asina kuchinja anove akaomarara, uye kana tikadzima koramu, inongoshaikwa muchunk nyowani. Chidimbu chekare chichabviswa nekusarudzika mushure memaminitsi masere, uye pano unogona kugadzirisa zvirongwa zvataurwa pamusoro apa.

Izvi zvinoshandawo kune ma alters akadai sekuchinja. Paunoita alter delete kana alter update, haichinje chidimbu, asi inogadzira chitsva. Uye wobva wadzima yekare.

Zvakadini kana chimiro chetafura chachinja?

Nzira yekudzorera sei kuchengetedza kwakaitwa nechirongwa chekare? Uye mubvunzo wechipiri uri pamusoro penyaya ine snapshots uye faira system maturusi. Btrfs yakanaka here pano panzvimbo yeZFS paLinux LVM?

Kana ukadaro batanidza partition zvikamu zvine chimiro chakasiyana, ipapo ClickHouse ichakuudza kuti izvi hazvigoneke. Iyi ndiyo mhinduro. Yekutanga ndeyekugadzira tafura yenguva pfupi yeMergeTree mhando ine chimiro chekare, batanidza data ipapo uchishandisa attach, uye ita mhinduro. Ipapo iwe unogona kukopa kana kutamisa iyi data uye wobatanidza zvakare, kana kushandisa chikumbiro shandura tafura yekufambisa chikamu.

Zvino mubvunzo wechipiri ndewekuti Btrfs inogona kushandiswa here. Kutanga, kana iwe uine LVM, ipapo LVM snapshots yakakwana, uye iyo faira system inogona kuve ext4, hazvina basa. NeBtrts, zvese zvinoenderana neruzivo rwako mukuishandisa. Iyi ihuru faira system, asi kuchine zvimwe fungidziro pamusoro pekuti zvese zvichashanda sei mukuita mune imwe mamiriro. Ini handingakurudzire kushandisa izvi kunze kwekunge uine Btrfs mukugadzira.

Ndeapi maitiro akanakisa aripo mukugovanazve data?

Nyaya yekugovana patsva yakaoma uye yakawanda. Pane mhinduro dzakati wandei pano. Unogona kubva kune rimwe divi wotaura izvi - ClickHouse haina yakavakirwa-mukati reshard ficha. Asi ndinotya kuti mhinduro iyi haikodzeri chero munhu. Naizvozvo, iwe unogona kubva kune rimwe divi wotaura kuti ClickHouse ine nzira dzakawanda dzekugovanazve data.

Kana iyo cluster ikapera nzvimbo kana isingakwanise kubata mutoro, unowedzera maseva matsva. Asi maseva aya haana chinhu nekukasira, hapana data paari, hapana mutoro. Iwe unofanirwa kugadzirisa zvakare data kuitira kuti ive yakaenzana kupararira kune itsva, yakakura cluster.

Nzira yekutanga iyi inogona kuitwa kukopa chikamu chezvikamu kumaseva matsva uchishandisa chikumbiro alter table fetch partition. Semuenzaniso, iwe waive nezvikamu nemwedzi, uye iwe unotora mwedzi wekutanga we2017 uye woikopa kune sevha nyowani, wozokopa mwedzi wechitatu kune imwe sevha nyowani. Uye iwe unoita izvi kusvika zvawedzera kana zvishoma.

Kuchinjisa kunogona kuitwa chete kune izvo zvikamu zvisingachinji panguva yekurekodha. Kune zvikamu zvitsva, kurekodha kunofanirwa kuvharwa, nekuti kutamisa kwavo hakusi atomu. Zvikasadaro, iwe unozopedzisira wava neduplicate kana mapundu mune data. Zvisinei, nzira iyi inoshanda uye inoshanda chaizvo. Yakagadzirirwa-yakagadzirwa yakamanikidzwa partitions inofambiswa pamusoro petiweki, ndiko kuti, iyo data haina kumanikidzwa kana kudhindwa zvakare.

Iyi nzira ine imwe dhiraivha, uye zvinoenderana neiyo sharding chirongwa, kunyangwe iwe wakavimbisa kune iyi sharding chirongwa, chii sharding kiyi yawaive nayo. Mumuenzaniso wako wenyaya ine metrics, kiyi ye sharding ndiyo hashi yenzira. Paunosarudza tafura Yakagoverwa, inoenda kune ese shards musumbu kamwechete uye inotora data kubva ipapo.

Izvi zvinoreva kuti hazvina basa kwauri kuti data rakapera papi shard. Chinhu chikuru ndechekuti data iri munzira imwe chete inoguma pane imwe shard, asi iyo haina kukosha. Muchiitiko ichi, kuendesa zvikamu zvakagadzirirwa-zvakagadzirirwa zvakakwana, nekuti nemibvunzo yakasarudzika iwe unogashirawo data rakazara - kungave usati wagoverazve kana mushure, chirongwa chacho hachina basa.

Asi pane zviitiko zvakanyanya kuoma. Kana padanho rekushandisa logic iwe uchivimba neyakakosha sharding scheme, kuti mutengi uyu ari pane yakadaro uye yakadaro shard, uye chikumbiro chinogona kutumirwa ipapo, uye kwete kuDistributed tafura. Kana kuti uri kushandisa yazvino vhezheni yeClickHouse uye wakagonesa kuseta optimize skip isina kushandiswa shards. Muchiitiko ichi, panguva yemubvunzo wekusarudza, kutaura mune iyo chikamu chichaongororwa uye chichaverengwa kuti ndeapi shards inoda kushandiswa maererano nechirongwa che sharding. Izvi zvinoshanda zvakapa kuti data rakakamurwa chaizvo zvinoenderana neiyi sharding scheme. Kana iwe wakazvirongazve nemaoko, iyo tsamba inogona kuchinja.

Saka iyi ndiyo nzira yekutanga. Uye ini ndakamirira mhinduro yako, kana nzira yacho yakakodzera, kana kuti ngatienderere mberi.

Vladimir Kolobaev, mutungamiri wehurongwa hweAvito: Alexey, nzira yawataura haishande zvakanyanya kana iwe uchida kuparadzira mutoro, kusanganisira kuverenga. Tinogona kutora chikamu chiri pamwedzi uye tinogona kutora mwedzi wapfuura kune imwe node, asi kana chikumbiro chauya cheiyi data, isu tinongoiisa chete. Asi isu tinoda kurodha sumbu rose, nekuti kana zvisina kudaro, kwenguva yakati remei yese yekuverenga ichagadziriswa nemashadhi maviri.

Alexey Milovidov: Mhinduro pano inoshamisa - hongu, yakaipa, asi inogona kushanda. Ndichanyatsotsanangura sei. Zvakakodzera kutarisa mamiriro emutoro anouya kuseri kwe data rako. Kana iyi iri yekutarisa data, saka tinogona kutaura chokwadi kuti ruzhinji rwezvikumbiro ndezve data nyowani.

Iwe wakaisa maseva matsva, akatamisa ekare partitions, asi zvakare akachinja kuti data nyowani inorekodhwa sei. Uye data nyowani ichapararira musumbu rese. Nekudaro, mushure memaminitsi mashanu chete, zvikumbiro zvemaminetsi mashanu ekupedzisira zvinotakura zvakaenzana cluster; mushure mezuva, zvikumbiro zvemaawa makumi maviri nemana zvinotakura zvakaenzana sumbu. Uye zvikumbiro zvemwedzi wapfuura, zvinosuruvarisa, zvinongoenda kune chikamu chemasevha emasumbu.

Asi kazhinji hauzove nezvikumbiro zvakanangana naFebruary 2019. Zvingangodaro, kana zvikumbiro zvikapinda muna 2019, zvino zvichange zviri zvegore rose ra2019 - kwenguva yakareba, uye kwete yeimwe diki. Uye zvikumbiro zvakadaro zvinozokwanisawo kurodha cluster zvakaenzana. Asi kazhinji, kutaura kwako kwakanyatso kurongeka kuti iyi ndeye ad hoc mhinduro isingaparadzire data zvakaenzana.

Ndine zvimwe zvishoma zvekupindura mubvunzo. Imwe yacho ndeye nzira yekutanga kugadzira sharding scheme kuitira kuti kugovanisa zvakare kungakonzeresa kurwadziwa. Izvi hazviitike nguva dzose.

Semuenzaniso, une data yekutarisa. Kuongorora data kuri kukura nekuda kwezvikonzero zvitatu. Yokutanga ndeyekuunganidza nhoroondo dzezvakaitika kare. Chechipiri kukura kwemotokari. Uye chechitatu kuwedzera kwenhamba yezvinhu zviri pasi pekutariswa. Kune matsva mamicroservices uye metrics anoda kuchengetwa.

Zvinokwanisika kuti pane izvi, kuwedzera kukuru kunobatanidzwa nechikonzero chechitatu - kuwedzera kwekushandiswa kwekutarisa. Uye munyaya iyi, zvakakodzera kutarisa maitiro emutoro, ndeapi makuru ekusarudza mibvunzo. Yakakosha sarudza mibvunzo ingangove yakavakirwa pane imwe subset yemetrics.

Semuenzaniso, kushandiswa kweCPU pane mamwe maseva neimwe sevhisi. Zvinoitika kuti pane imwe subset yemakiyi iwe yaunowana iyi data. Uye chikumbiro pachacho cheiyi data chinogona kunge chiri nyore uye chinopedzwa mumakumi emamilliseconds. Inoshandiswa sekutarisa masevhisi uye dashboards. Ndinovimba ndinonzwisisa izvi nemazvo.

Vladimir Kolobaev: Chokwadi ndechekuti isu tinowanzo kukwezva kune nhoroondo data, sezvo isu tichienzanisa mamiriro azvino neayo enhoroondo munguva chaiyo. Uye zvakakosha kuti isu tive nekukurumidza kuwana kune yakakura yedata, uye ClickHouse inoita basa rakanaka neizvi.

Iwe uri pachokwadi, isu tinowana yakawanda yezvikumbiro zvekuverenga muzuva rekupedzisira, senge chero system yekutarisa. Asi panguva imwecheteyo, mutoro wenhoroondo data zvakare wakakura. Zvakanyanya kubva kune yekuzivisa system inotenderera masekondi makumi matatu ega ega uye inoti kuna ClickHouse: "Ndipe iyo data yemavhiki matanhatu apfuura. Zvino ndivakire imwe avhareji yekufamba kubva kwavari, uye ngatienzanise kukosha kwazvino neiyo yenhoroondo. "

Ndinoda kutaura kuti kune zvikumbiro zvenguva pfupi yapfuura tine imwe tafura diki yatinochengeta mazuva maviri chete e data, uye zvikumbiro zvikuru zvinobhururuka mairi. Isu tinongotumira mibvunzo mikuru yenhoroondo kune hombe sharded table.

Alexey Milovidov: Nehurombo, zvinoita kunge zvisingashande kune yako mamiriro, asi ini ndichakuudza tsananguro yeakaipa uye akaomarara mashadhi zvirongwa zvisingadi kushandiswa, asi izvo zvinoshandiswa mubasa reshamwari dzangu.

Pane chikuru cluster ine Yandex.Metrica zviitiko. Zviitiko maonero epeji, kudzvanya, uye kushandurwa. Zvikumbiro zvizhinji zvinoenda kune imwe webhusaiti. Iwe unovhura iyo Yandex.Metrica sevhisi, une webhusaiti - avito.ru, enda kumushumo, uye chikumbiro chinoitirwa webhusaiti yako.

Asi pane zvimwe zvikumbiro - analytical uye pasi rose - izvo zvinoitwa nevanoongorora mukati. Zvingoitika, ini ndinocherechedza kuti vaongorori vemukati vanoita zvikumbiro zveYandex masevhisi chete. Asi zvakadaro, kunyange Yandex masevhisi anotora chikamu chakakosha che data rese. Izvi zvikumbiro hazvisi zvemakaunda chaiwo, asi zvekusefa kwakakura.

Maitiro ekuronga data nenzira yekuti zvese zvinoshanda nemazvo kune imwe counter, uye mibvunzo yepasirese futi? Chimwe chinonetsa ndechekuti nhamba yezvikumbiro muClickHouse yeMetrics cluster zviuru zvakati wandei pasekondi. Panguva imwecheteyo, imwe sevha yeClickHouse haigone kubata zvikumbiro zvisingaite, semuenzaniso, zviuru zvakati pasekondi.

Saizi yesumbu mazana matanhatu-chimwe chinhu maseva. Kana iwe ukangodhonza tafura Yakagoverwa pamusoro peboka iri uye wotumira zviuru zvikumbiro ipapo, zvinotonyanya kuipa kupfuura kuvatumira kune imwe server. Kune rumwe rutivi, sarudzo iyo data inopararira zvakafanana, uye isu tinoenda uye tinokumbira kubva kumaseva ese, inokurumidza kubviswa.

Pane sarudzo iri diametrically yakatarisana. Fungidzira kana tikagovanisa data munzvimbo dzese, uye chikumbiro chesaiti imwe chinoenda kune imwe shard. Iye zvino boka racho richakwanisa kubata zvikumbiro zviuru gumi pasekondi, asi pane imwe shadhi chero chikumbiro chimwe chete chichashanda zvishoma nezvishoma. Inenge isingachayereri maererano ne throughput. Kunyanya kana iyi iri saiti avito.ru. Ini handisi kuzozivisa chakavanzika kana ndikataura kuti Avito ndeimwe yenzvimbo dzakashanyirwa zvakanyanya muRuNet. Uye kuigadzira pane imwe shard kungave kupenga.

Nokudaro, chirongwa che sharding chinogadzirwa nenzira ine hunyengeri. Chisumbu chese chakakamurwa kuita chitsama chemasumbu, chatinodaidza kuti matinji. Boka rega rega rine kubva gumi nemaviri kusvika gumi nemaviri shards. Kune makumi matatu nemapfumbamwe masumbu akadaro pamwe chete.

Izvi zvese zvinokura sei? Huwandu hwemasumbu hahuchinje - sezvazvaive makumi matatu nemapfumbamwe makore mashoma apfuura, zvinoramba zvakadaro. Asi mukati meumwe neumwe wavo, isu tinowedzera zvishoma nezvishoma nhamba yemashadhi sezvatinounganidza data. Uye iyo sharding scheme seyakaita seizvi: masumbu aya akakamurwa kuita mawebhusaiti, uye kuti unzwisise kuti ndeipi webhusaiti iri pane iyo cluster, yakaparadzana metabase muMySQL inoshandiswa. Imwe saiti - pane imwe sumbu. Uye mukati mayo, sharding inoitika zvinoenderana nevashanyi ID.

Pakurekodha, tinozvipatsanura nekusara kwechikamu cheiyo ID yevashanyi. Asi kana uchiwedzera shard nyowani, iyo sharding scheme inoshanduka; isu tinoenderera mberi nekupatsanura, asi nekusara kwechikamu neimwe nhamba. Izvi zvinoreva kuti mushanyi mumwe atove pane akati wandei maseva, uye haugone kuvimba neizvi. Izvi zvinoitwa chete kuti ive nechokwadi chekuti data iri nani kudzvanywa. Uye kana tichiita zvikumbiro, tinoenda kune Distributed tafura, iyo inotarisa kusumbu uye inowana akawanda emaseva. Iri izano rakapusa kudaro.

Asi nyaya yangu inenge isina kukwana kana ndikasataura kuti takasiya chirongwa ichi. Muchirongwa chitsva, takachinja zvese nekukopa data rese tichishandisa clickhouse-copier.

Muchirongwa chitsva, nzvimbo dzese dzakakamurwa kuita mapoka maviri - makuru uye madiki. Handizivi kuti chikumbaridzo chakasarudzwa sei, asi chigumisiro chaiva chokuti masayiti makuru akanyorwa pane rimwe boka, uko kune 120 shards ine matatu replicas imwe neimwe - kureva, 360 maseva. Uye iyo sharding chirongwa ndechekuti chero chikumbiro chinoenda kune ese shards kamwechete. Kana iwe zvino ukavhura chero peji remishumo ye avito.ru muYandex.Metrica, chikumbiro chichaenda kumaseva zana nemakumi maviri. Kune mashoma makuru masaiti muRuNet. Uye zvikumbiro hazvisi chiuru pasekondi, asi kunyange zvisingasviki zana. Zvese izvi zvinotsengwa chinyararire neDistributed tafura, iyo imwe neimwe yadzo inoshanda nemasevha zana nemakumi maviri.

Uye sumbu rechipiri nderenzvimbo diki. Heino sharding scheme yakavakirwa pasaiti ID, uye chikumbiro chega chega chinoenda kune shard imwechete.

ClickHouse ine clickhouse-copier utility. Unogona here kutiudza nezvake?

Ini ndichataura ipapo ipapo kuti mhinduro iyi yakanyanya kuomarara uye neimwe nzira isingaite. Chakanakira ndechekuti inosvibisa iyo data zvachose zvichienderana neiyo pateni yaunotsanangura. Asi iyo drawback yezvishandiso ndeyekuti haina reshard zvachose. Inokopa data kubva kune imwe cluster schema kune imwe cluster schema.

Izvi zvinoreva kuti kuti ishande unofanira kunge uine masumbu maviri. Inogona kuwanikwa pamaseva akafanana, asi, zvisinei, iyo data haizofambiswi zvakanyanya, asi ichakopwa.

Semuenzaniso, paive nemasevha mana, ikozvino ave masere. Iwe unogadzira tafura itsva Yakagoverwa pamaseva ese, matafura matsva emunharaunda uye kuvhura clickhouse-copier, ichiratidza mairi chirongwa chebasa icho chinofanira kuverenga kubva ipapo, gamuchira iyo nyowani sharding chirongwa uye kuendesa iyo data ipapo. Uye pamaseva ekare iwe uchada imwe nehafu nguva yakawanda kupfuura iripo ikozvino, nokuti data yekare inofanira kuramba iri pavari, uye hafu ye data yekare yakafanana ichasvika pamusoro pavo. Kana iwe wakafunga kare kuti data inoda kugoverwa zvakare uye pane nzvimbo, saka iyi nzira yakakodzera.

Clickhouse-copier inoshanda sei mukati? Inotyora basa rese kuita seti yemabasa ekugadzirisa chikamu chimwe chetafura pane imwe shard. Ese mabasa aya anogona kuitwa nenzira yakafanana, uye clickhouse-copier inogona kumhanyiswa pamakina akasiyana muzviitiko zvakawanda, asi izvo zvainoita kune imwe chikamu hachisi chinhu chinopfuura yekuisa yakasarudzwa. Iyo data inoverengwa, yakaderedzwa, inodzokororwa, yobva yamanikidzwa zvakare, yakanyorwa kumwe kunhu, uye kurongwa zvakare. Ichi chisarudzo chakaoma.

Iwe waive nepilot chinhu chinonzi resharding. Zvakadini naye?

Kudzoka muna 2017, wanga uine chinhu chekutyaira chinonzi resharding. Iko kune kunyange sarudzo muClickHouse. Sezvandinonzwisisa, haina kusimuka. Mungandiudzewo nei izvi zvakaitika? Inoratidzika kuva yakakosha zvikuru.

Dambudziko rose nderekuti kana zvichidikanwa kugoverazve data munzvimbo, kuwiriranisa kwakaomarara kunodiwa kuti uite izvi atomu. Patakatanga kutarisa kuti kuwiriranisa kunoshanda sei, zvakava pachena kuti paive nematambudziko makuru. Uye matambudziko aya akakosha haasi edzidziso chete, asi akabva atanga kuzviratidza mukuita muchimiro chechimwe chinhu chinogona kutsanangurwa zviri nyore - hapana chinoshanda.

Zvinoita here kubatanidza zvidimbu zvese zve data pamwechete usati waifambisa kune inonoke disks?

Mubvunzo pamusoro peTTL nekufambisa kunonotsa dhisiki sarudzo mumamiriro ekubatanidza. Pane imwe nzira here, kunze kwekushandisa cron, yekubatanidza zvikamu zvese kuita imwe isati yazvifambisa kune inonoke disks?

Mhinduro kumubvunzo ndeyekuti zvinogoneka kuti neimwe nzira zvigadzirise zvimedu zvese mune imwe usati wazviendesa - kwete. Handifungi kuti izvi zvakakosha. Iwe haufanirwe kubatanidza zvikamu zvese kuita chimwe, asi ingo tarisa pane chokwadi chekuti ivo vanozoendeswa kune anononoka disks otomatiki.

Tine maitiro maviri emitemo yekutamisa. Yekutanga iri sekuzara kwairi. Kana iyo yazvino yekuchengetera tier ine isingasviki imwe muzana yenzvimbo yemahara, isu tinosarudza chunk imwe toiendesa kune inononoka kuchengetedza. Kana kuti kwete, kwete kunonoka, asi inotevera - sezvaunogadzirisa.

Chechipiri chiyero hukuru. Ndezvekufambisa zvidimbu zvakakura. Iwe unogona kugadzirisa chikumbaridzo zvinoenderana nenzvimbo yemahara pane dhisiki yekutsanya, uye iyo data ichaendeswa otomatiki.

Maitiro ekutamira kune matsva mavhezheni eClickHouse kana pasina nzira yekutarisa kuenderana mberi?

Nyaya iyi inogara ichikurukurwa muClickHouse telegraph chat tichifunga nezveshanduro dzakasiyana, uye zvakadaro. Zvakachengeteka sei kusimudzira kubva mushanduro 19.11 kusvika 19.16 uye, semuenzaniso, kubva 19.16 kusvika 20.3. Ndeipi nzira yakanakisa yekutamira kune nyowani shanduro usingakwanise kutarisa kuenderana mubhokisi rejecha pamberi?

Pane mitemo yakawanda "yegoridhe" pano. Chekutanga - verenga changelog. Yakakura, asi kune akapatsanurwa ndima pamusoro pekuchinja kusingaenderane kumashure. Usatora pfungwa idzi semureza mutsvuku. Izvi zvinowanzoita zvidiki zvisingaenderane izvo zvinosanganisira kumwe kumucheto kushanda kwaungangove usingashandise.

Chechipiri, kana pasina nzira yekutarisa kuenderana mubhokisi rejecha, uye iwe uchida kugadzirisa nekukurumidza mukugadzirwa, kurudziro ndeyekuti haufanirwe kuita izvi. Kutanga gadzira bhokisi rejecha uye bvunzo. Kana pasina nharaunda yekuyedza, saka iwe unogona kunge usina kambani yakakura kwazvo, zvinoreva kuti unogona kukopa imwe data kune yako laptop uye uve nechokwadi chekuti zvese zvinoshanda pairi nemazvo. Iwe unogona kunyange kusimudza akati wandei replicas munharaunda yako pamushini wako. Kana kuti iwe unogona kutora vhezheni nyowani padhuze uye woisa imwe data ipapo - ndiko kuti, gadzira yakagadziridzwa bvunzo nharaunda.

Mumwe mutemo hausi wekuvandudza kwevhiki mushure mekuburitswa kweshanduro nekuda kwekubata mabhugi mukugadzira uye kunotevera kukurumidza kugadzirisa. Ngationei manhamba eClickHouse shanduro kuti usavhiringike.

Pane shanduro 20.3.4. Nhamba ye20 inoratidza gore rekugadzira - 2020. Kubva pakuona kwezviri mukati, izvi hazvina basa, saka hatizozviteereri. Zvinotevera - 20.3. Isu tinowedzera nhamba yechipiri - mune iyi kesi 3 - pese patinoburitsa kuburitswa nemamwe maitiro matsva. Kana isu tichida kuwedzera chimwe chimiro kuClickHouse, isu tinofanirwa kuwedzera iyi nhamba. Ndokunge, mushanduro 20.4 ClickHouse ichashanda zvirinani. Nhamba yechitatu ndeye 20.3.4. Heino 4 nhamba yekuburitswa kwechigamba umo isu tisina kuwedzera maitiro matsva, asi yakagadzirisa mamwe mabhugi. Uye 4 zvinoreva kuti takazviita kana.

Usafunga kuti ichi chinhu chakaipa. Kazhinji mushandisi anogona kuisa yazvino vhezheni uye ichashanda pasina matambudziko neuptime pagore. Asi fungidzira kuti mune rimwe basa rekugadzirisa bitmaps, iro rakawedzerwa neshamwari dzedu dzeChinese, sevha inoputsika kana ichipfuura nharo dzisiridzo. Tine basa rekugadzirisa izvi. Isu tichaburitsa chigamba chitsva vhezheni uye ClickHouse ichave yakagadzikana.

Kana iwe uine ClickHouse iri kushanda mukugadzira, uye imwe vhezheni yeClickHouse inobuda nemamwe maficha - semuenzaniso, 20.4.1 ndiyo yekutanga, usamhanye kuiisa mukugadzira pazuva rekutanga. Nei zvichitodiwa? Kana iwe usati watoshandisa ClickHouse, saka unogona kuiisa, uye kazhinji zvese zvichave zvakanaka. Asi kana ClickHouse yave kutoshanda zvakatsiga, saka ramba wakatarira zvigamba uye zvigadziriso kuti uone matambudziko atiri kugadzirisa.

Kirill Shvakov: Ndinoda kuwedzera zvishoma nezvenzvimbo dzebvunzo. Wese munhu anotya nzvimbo dzekuyedzwa uye nekuda kwechimwe chikonzero vanotenda kuti kana uine yakakura kwazvo ClickHouse cluster, ipapo nharaunda yekuyedza haifanirwe kunge iri shoma kana kanenge kagumi kadiki. Hazvina kudaro zvachose.

Ndinogona kukuudza kubva pamuenzaniso wangu pachangu. Ndine chirongwa, uye kune ClickHouse. Nzvimbo yedu yekuyedza ndeye yake chete - iyi idiki muchina muHetzner kwemaeuro makumi maviri, uko zvese zvese zvinoiswa. Kuti tiite izvi, isu tine otomatiki yakazara muAnsible, uye nekudaro, musimboti, hazvina mutsauko wekuenda - kumaseva ehardware kana kungoisa mumashini chaiwo.

Chii chingaitwa? Zvingave zvakanaka kupa muenzaniso muClickHouse zvinyorwa zvemafambisirwo eboka diki mumba mako - muDocker, muLXC, pamwe gadzira Ansible playbook, nekuti vanhu vakasiyana vane akasiyana deployments. Izvi zvicharerutsa zvakanyanya. Paunotora uye kuendesa sumbu mumaminitsi mashanu, zviri nyore kwazvo kuedza kufunga chimwe chinhu. Izvi zvakanyanya nyore, nekuti kutenderera mune yekugadzira vhezheni yausina kuyedza inzira yekuenda kupi. Dzimwe nguva zvinoshanda uye dzimwe nguva hazviiti. Uye naizvozvo, kutarisira kubudirira kwakaipa.

Maxim Kotyakov, mukuru backend injiniya Avito: Ini ndichawedzera zvishoma nezve bvunzo mamiriro kubva kune akateedzana matambudziko anotarisana nemakambani makuru. Isu tine yakazara-yakazara ClickHouse yekugamuchira cluster; maererano nedata zvirongwa uye marongero, ikopi chaiyo yezviri mukugadzirwa. Iyi cluster inoiswa mumigove inoyerera ine hushoma hwezviwanikwa. Isu tinonyora imwe muzana yedata rekugadzira ipapo, nerombo rakanaka zvinogoneka kutevedzera rukova muKafka. Zvese zviripo zvakawiriraniswa uye zvakayerwa - zvese maererano nehukuru uye kuyerera, uye, muchirevo, zvimwe zvinhu zvese zvakaenzana, zvinofanirwa kuita sekugadzirwa maererano nemametrics. Zvese zvingangoputika zvinotanga zvakakungurutswa pastand iyi zvosiiwapo kwemazuva akati wandei kusvika zvagadzirira. Asi zvakasikwa, iyi mhinduro inodhura, yakaoma uye ine mari isiri-zero yekutsigira.

Alexey Milovidov: Ini ndichakuudza kuti mamiriro ekuedzwa kweshamwari dzedu kubva kuYandex.Metrica akaita sei. Imwe cluster yaive ne600-odd maseva, imwe yaive ne360, uye pane yechitatu nemasumbu akati wandei. Nzvimbo yekuyedza yeimwe yacho ingori shards mbiri dzine replicas mbiri mune imwe neimwe. Sei zvidimbu zviviri? Kuti hausi wega. Uye panofanira kunge kune replicas zvakare. Ingori imwe mari shoma yaunogona kutenga.

Iyi nharaunda yekuyedza inokutendera kuti utarise kana mibvunzo yako iri kushanda uye kana chero chinhu chikuru chatyoka. Asi kazhinji matambudziko anomuka emhando yakasiyana zvachose, kana zvinhu zvose zvichishanda, asi pane kuchinja kuduku mumutoro.

Rega ndikupe muenzaniso. Isu takasarudza kuisa imwe vhezheni yeClickHouse. Yakatumirwa pane imwe nzvimbo yekuedza, miedzo yakagadziriswa yakapedzwa muYandex.Metrica pachayo, iyo inoenzanisa data pamusoro peshanduro yekare uye itsva, inoshandisa pombi yose. Uye zvechokwadi, girinhi bvunzo dzeCI yedu. Zvikasadaro tingadai tisina kana kumbokurudzira shanduro iyi.

Zvese zvakanaka. Tiri kutanga kutamira mukugadzira. Ini ndinogashira meseji yekuti mutoro uri pamagirafu wakawedzera kakawanda. Isu tiri kudzosera kumashure shanduro. Ini ndinotarisa girafu uye ndinoona: mutoro wacho wakawedzera kakawanda panguva yekuburitswa, uye wakadzikira kumashure pavakabuda. Takabva tatanga kudzosera version. Uye mutoro ukawedzera saizvozvo uye ukadzokera shure nenzira imwe cheteyo. Saka mhedziso ndeiyi: mutoro wakawedzera nekuda kwekugadzirisa, hapana chinoshamisa.

Ipapo zvaive zvakaoma kugonesa vamwe kuti vaise iyo vhezheni itsva. Ini ndikati: “Zvakanaka, buda. Chengeta zvigunwe zvako zvakayambuka, zvese zvichashanda. Iye zvino mutoro uri pamagrafu wakawedzera, asi zvinhu zvose zvakanaka. Shingirira." Kazhinji, takaita izvi, uye ndizvozvo - iyo vhezheni yakaburitswa kugadzirwa. Asi zvinenge nemagadzirirwo ese matambudziko akafanana anomuka.

Kill query inofanirwa kuuraya mibvunzo, asi hazviiti. Sei?

Mushandisi, imwe mhando yemuongorori, akauya kwandiri uye akagadzira chikumbiro chakaisa yangu ClickHouse cluster. Imwe node kana sumbu rese, zvichienderana nekuti chikumbiro chakaenda kupi. Ndiri kuona kuti ese maCPU zviwanikwa pane iyi server ari musherufu, zvese zvakatsvuka. Panguva imwecheteyo, ClickHouse pachayo inopindura kune zvikumbiro. Uye ini ndinonyora kuti: "Ndokumbirawo mundiratidze, rondedzero yemaitiro, chikumbiro chaunza kupenga uku."

Ndinowana chikumbiro ichi uye ndinonyora kuuraya kwachiri. Uye ndinoona kuti hapana chiri kuitika. Sevha yangu iri musherufu, ClickHouse yobva yandipa mimwe mirairo, inoratidza kuti sevha mhenyu, uye zvese zvakanaka. Asi ini ndine kuderedzwa mune zvese zvikumbiro zvevashandisi, kudzikisira kunotanga nemarekodhi muClickHouse, uye mubvunzo wangu wekuuraya haushande. Sei? Ndaifunga kuti kuuraya kubvunza kwaifanirwa kuuraya mibvunzo, asi hazviiti.

Zvino pachave nemhinduro isinganzwisisike. Nyaya iripo ndeyekuti kuuraya kubvunza hakuuraye mivhunzo.

Kill query inotarisa kabhokisi kadiki kanonzi "Ndinoda kuti mubvunzo uyu uurawe." Uye chikumbiro pachacho chinotarisa mureza uyu paunenge uchigadzirisa bhuroka rega rega. Kana yaiswa, chikumbiro chinomira kushanda. Zvinoitika kuti hakuna munhu anouraya chikumbiro, iye pachake anofanira kutarisa zvose uye kumira. Uye izvi zvinofanirwa kushanda mune zvese zviitiko apo chikumbiro chiri mumamiriro ekugadzirisa mabhuraki e data. Ichagadzirisa iyo inotevera block yedata, tarisa mureza, uye mira.

Izvi hazvishande mumamiriro ezvinhu apo chikumbiro chakavharwa pane kumwe kushanda. Ichokwadi, kazhinji iyi haisi nyaya yako, nokuti, maererano newe, inoshandisa toni yezviwanikwa zvevhavha. Zvinogoneka kuti izvi hazvishande mune yekuronga kwekunze uye mune mamwe mamwe mashoko. Asi kazhinji izvi hazvifanirwe kuitika, ibug. Uye chinhu chega chandinogona kukurudzira ndechekuvandudza ClickHouse.

Nzira yekuverenga nguva yekupindura pasi pekuverenga mutoro?

Pane tafura inochengeta zvinhu zvakaunganidzwa - zvakasiyana-siyana. Huwandu hwemitsara hunosvika zana remamiriyoni. Zvinoita here kuverenga pane inofanotaurwa yekupindura nguva kana iwe ukadira 1K RPS yezvinhu 1K?

Tichitarisa nemamiriro ezvinhu, tiri kutaura pamusoro pemutoro wekuverenga, nokuti hapana matambudziko nekunyora - kunyange chiuru, kunyange zana rezviuru, uye dzimwe nguva mamiriyoni akawanda mitsara inogona kuiswa.

Kuverenga zvikumbiro zvakasiyana chaizvo. Mukusarudza 1, ClickHouse inogona kuita zvingangoita makumi ezviuru zvezvikumbiro pasekondi, saka kunyangwe zvikumbiro zvekiyi imwe zvinotoda zvimwe zviwanikwa. Uye mibvunzo yakadai yepfungwa ichave yakaoma kupfuura mune mamwe makiyi-kukosha dhatabhesi, nekuti kune yega yega kuverenga inodiwa kuverenga bhuroka re data ne index. Indekisi yedu inogadzirisa kwete rekodhi rega rega, asi rega rega. Ndiko kuti, iwe uchafanirwa kuverenga iyo yose siyana - iyi 8192 mitsetse nekukasira. Uye iwe uchafanirwa decompress iyo yakamanikidzwa data block kubva pa64 KB kusvika 1 MB. Kazhinji, mibvunzo yakadai yakanangwa inotora mamilliseconds mashoma kuti ipedze. Asi iyi ndiyo nzira iri nyore.

Ngatiedzei masvomhu ari nyore. Ukawanza mamilliseconds mashoma nechuru, unowana masekonzi mashoma. Zvinoita sekunge hazvibviri kuenderana nezvikumbiro chiuru pasekondi, asi chokwadi zvinogoneka, nekuti isu tine akati wandei processor cores. Saka, pamusimboti, ClickHouse dzimwe nguva inogona kubata 1000 RPS, asi yezvikumbiro zvipfupi, zvakanangana nazvo.

Kana iwe uchida kuyera ClickHouse cluster nehuwandu hwezvikumbiro zviri nyore, saka ini ndinokurudzira chinhu chakareruka - wedzera huwandu hwema replicas uye kutumira zvikumbiro kune isingaite replica. Kana replica imwe inobata zvikumbiro mazana mashanu pasekondi, izvo zvinonyatsoitika, zvino replica nhatu dzichabata chiuru nehafu.

Dzimwe nguva, hongu, unogona kugadzirisa ClickHouse yehuwandu hwehuwandu hwekuverenga pfungwa. Chii chinodiwa nokuda kweizvi? Yekutanga ndeyekudzikisa granularity ye index. Muchiitiko ichi, haifaniri kuderedzwa kusvika kune imwe, asi pamusana pekuti nhamba yezvinyorwa mu index ichave mamiriyoni akawanda kana makumi emamiriyoni pavhavha. Kana tafura ine mitsara yemamiriyoni zana, ipapo granularity inogona kuiswa ku64.

Iwe unogona kuderedza saizi yeiyo compressed block. Pane marongero eizvi min compress block saizi, max compress block size. Ivo vanogona kudzikiswa, kuzadzwa zvakare nedata, uyezve yakanangwa mibvunzo ichave nekukurumidza. Asi zvakadaro, ClickHouse haisi kiyi-yakakosha dhatabhesi. Nhamba huru yezvikumbiro zvidiki ndeye mutoro antipattern.

Kirill Shvakov: Ini ndichapa zano kana paine akajairwa maakaundi ipapo. Aya ndiwo mamiriro akajairwa apo ClickHouse inochengeta imwe mhando yekaunda. Ndine mushandisi, anobva kunyika yakadai, uye imwe yechitatu, uye ini ndinofanira kuwedzera chimwe chinhu zvishoma nezvishoma. Tora MySQL, gadzira kiyi yakasarudzika - muMySQL ikiyi yakapetwa, uye muPostgreSQL iko kupokana - uye wedzera chiratidzo chekuwedzera. Izvi zvichashanda zvirinani.

Kana iwe usina data rakawanda, hapana chikonzero chakawanda pakushandisa ClickHouse. Kune nguva dzose dhatabhesi uye vanoita izvi nemazvo.

Chii chandinogona kugadzirisa muClickHouse kuitira kuti data yakawanda ive mucache?

Ngatimbofungidzira mamiriro ezvinhu - mavhavha ane 256 GB ye RAM, mumutambo wezuva nezuva ClickHouse inotora anenge 60-80 GB, pakakwirira - kusvika ku 130. Chii chinogona kugoneswa uye kugadziriswa kuitira kuti data yakawanda iri mu cache uye, maererano naizvozvo, kune nzendo shoma kuenda kudhisiki?

Kazhinji, iyo inoshanda sisitimu peji cache inoita basa rakanaka reizvi. Kana iwe ukangovhura kumusoro, tarisa ipapo cached kana mahara - inotaurawo kuti yakawanda sei yakachengetwa - ipapo iwe uchaona kuti yese yemahara memory inoshandiswa kune cache. Uye kana uchiverenga iyi data, ichaverengwa kwete kubva ku diski, asi kubva ku RAM. Panguva imwecheteyo, ndinogona kutaura kuti cache inoshandiswa nemazvo nekuti iyo data yakamanikidzwa inochengetwa.

Nekudaro, kana iwe uchida kukurumidzira mimwe mibvunzo yakapusa zvakatowanda, zvinogoneka kugonesa cache muiyo decompressed data mukati meClickHouse. Inonzi uncompressed cache. Mune config.xml configuration file, isa saizi isina kudzvanywa cache kune kukosha kwaunoda - ini ndinokurudzira kwete inopfuura hafu yemahara RAM, nekuti iyo yese ichaenda pasi pe peji cache.

Mukuwedzera, kune maviri ekukumbira level marongero. Kutanga kwekutanga - shandisa uncompressed cache - inosanganisira kushandiswa kwayo. Inokurudzirwa kuigonesa kune zvese zvikumbiro, kunze kweinorema, iyo inogona kuverenga data rese uye kutsvaira cache. Uye chechipiri kuseta chimwe chinhu chakafanana nehuwandu hwehuwandu hwemitsara yekushandisa cache. Inodzikamisa otomatiki mibvunzo mikuru kuitira kuti ipfuure cache.

Ndingagadzirisa sei storage_configuration yekuchengetedza mu RAM?

Mune zvinyorwa zvitsva zveClickHouse ndakaverenga chikamu chine chekuita pamwe nekuchengetedza data. Rondedzero ine muenzaniso neSSD inokurumidza.

Ndinoshamisika kuti chinhu chimwe chete chinogona kugadzirwa sei nevhoriyamu inopisa ndangariro. Uye mumwe mubvunzo zvakare. Sarudzo inoshanda sei nesangano re data, ichaverenga seti yese kana iyo chete iri pa diski, uye iyi data yakamanikidzwa mundangariro? Uye iyo prewhere chikamu chinoshanda sei neiyo data sangano?

Kurongeka uku kunokanganisa kuchengetwa kwe data chunks, uye maitiro avo haachinje chero nzira.
Ngatinyatsoongororai.

Iwe unogona kugadzirisa kuchengetedza data mu RAM. Zvese zvakagadzirirwa dhisiki inzira yayo. Iwe unogadzira tmpfs chikamu chakaiswa kune imwe nzira mufaira system. Iwe unotsanangura iyi nzira senzira yekuchengetedza data kune inopisa kwazvo partition, zvidimbu zve data zvinotanga kusvika nekunyorwa ipapo, zvese zvakanaka.

Asi ini handikurudzire kuita izvi nekuda kwekuderera kwekuvimbika, kunyangwe kana uine kanenge katatu replicas munzvimbo dzakasiyana dze data, zvino zvinogoneka. Kana chimwe chinhu chikaitika, data ichadzorerwa. Ngatimbofungidzira kuti sevha yakangoerekana yadzimwa uye yakadzoserwa. Chikamu chakaiswa zvakare, asi pakanga pasina chinhu ipapo. Kana iyo ClickHouse server yatanga, inoona kuti haina zvidimbu izvi, kunyangwe, maererano neZooKeeper metadata, dzinofanirwa kunge dziripo. Anotarisa kuti ndeapi mareplicas anawo, oakumbira uye oadhaunirodha. Nenzira iyi data ichadzorerwa.

Mupfungwa iyi, kuchengetedza data mu RAM hakuna kunyanya kusiyana nekuichengeta pa diski, nekuti kana data rakanyorwa kudhisiki, rinotangawo kuguma mune cache peji uye rinonyorwa gare gare. Izvi zvinoenderana neiyo faira system yekumisikidza sarudzo. Asi kana zvikaitika, ndichataura kuti ClickHouse haina fsync paunenge uchiisa.

Muchiitiko ichi, iyo data mu RAM inochengetwa mune chaiyo fomati sepadhisiki. Mubvunzo wakasarudzwa nenzira imwechete unosarudza zvidimbu zvinoda kuverengwa, zvinosarudza dhata dzinodiwa muzvidimbu, uye unozviverenga. Uye pese panoshanda zvakafanana, zvisinei nekuti iyo data yaive mu RAM kana pa diski.

Kusvika kune huwandu hupi hwehutsika hwakasarudzika iyo Low Cardinality inoshanda?

Low Cardinality yakagadzirwa zvine hungwaru. Inounganidza maduramazwi edata, asi ari emuno. Chekutanga, kune maduramazwi akasiyana echidimbu chimwe nechimwe, uye chechipiri, kunyangwe mukati mechikamu chimwe chete anogona kuve akasiyana kune rimwe nerimwe renji. Kana huwandu hwezvakasarudzika hunosvika nhamba yechikumbaridzo - miriyoni imwe, ndinofunga - duramazwi rinongochengetwa uye idzva rinogadzirwa.

Mhinduro iri muhuwandu: kune yega yega nzvimbo yenzvimbo - toti, kwezuva rega rega - kumwe kunosvika miriyoni yakasarudzika maitiro eLow Cardinality inoshanda. Pashure pacho pachave nekungodzokera kumashure, umo maduramazwi mazhinji akasiyana achashandiswa, uye kwete rimwe chete. Ichashanda zvakangofanana nekoramu yetambo yenguva dzose, pamwe zvishoma zvishoma, asi hapazove nekukanganisa kwakanyanya kwekuita.

Ndedzipi nzira dzakanakisa dzekutsvagisa zvinyorwa zvizere patafura ine mitsara yemabhiriyoni mashanu?

Pane mhinduro dzakasiyana. Chekutanga ndechekutaura kuti ClickHouse haisi yakazara-zvinyorwa yekutsvaga injini. Kune akakosha masisitimu eizvi, semuenzaniso, Elasticsearch и sphinx. Nekudaro, ini ndinowedzera kuona vanhu vachiti vari kuchinja kubva kuElasticsearch kuenda kuClickHouse.

Sei izvi zvichiitika? Vanotsanangura izvi nenyaya yekuti Elasticsearch inomira kubata nemutoro pane mamwe mavhoriyamu, kutanga nekuvakwa kwemaindex. Ma indexes anorema zvakanyanya, uye kana ukangoendesa iyo data kuClickHouse, zvinoitika kuti inochengetwa kakawanda zvakanyanya maererano nehukuru. Panguva imwecheteyo, mibvunzo yekutsvaga yaiwanzove isiri yakadaro zvekuti zvaive zvakafanira kuwana mamwe mutsara muhuwandu hwe data, uchifunga nezve morphology, asi zvakasiyana zvachose. Semuyenzaniso, tsvaga mamwe anotevera mabhaiti mumatanda mumaawa mashoma apfuura.

Muchiitiko ichi, iwe unogadzira index muClickHouse, iyo yekutanga munda ichave iyo zuva uye nguva. Uye iyo yakakura data yekucheka-kubviswa ichave yakavakirwa pane yemazuva. Mukati memazuva akasarudzwa, sekutonga, zvinotove zvichigoneka kuita tsvakiridzo yakazara-mavara, kunyangwe uchishandisa brute force nzira uchishandisa like. Iye akafanana anoshanda muClickHouse ndiye anonyanya kushanda senge opareta waunogona kuwana. Kana iwe ukawana chimwe chinhu chiri nani, ndiudze.

Asi zvakadaro, senge yakazara scan. Uye yakazara scan inogona kunonoka kwete chete paCPU, asiwo padhisiki. Kana kamwe kamwe iwe uine imwe terabyte yedata pazuva, uye iwe uchitsvaga izwi mukati mezuva, ipapo iwe uchafanirwa kuongorora iyo terabyte. Uye pamwe iri pamadhiraivha akaomarara, uye mukupedzisira anozotakurwa nenzira yekuti hauzokwanisa kuwana iyi sevha kuburikidza neSSH.

Muchiitiko ichi, ndakagadzirira kupa imwe diki diki. Ndeyekuedza - inogona kushanda, inogona kusashanda. ClickHouse ine yakazara-zvinyorwa zvinyorwa muchimiro che trigram Bloom mafirita. Vatinoshanda navo kuArenadata vakatoedza aya ma index, uye anowanzo shanda sezvakarongwa.

Kuti uzvishandise nemazvo, unofanirwa kunyatsonzwisisa kuti zvinoshanda sei: chii chinonzi trigram Bloom sefa uye kuti ungasarudza sei saizi yayo. Ndinogona kutaura kuti ivo vachabatsira kumibvunzo pane mamwe mitsara isingawanzo, substrings isingawanzo kuwanikwa mu data. Muchiitiko ichi, subranges ichasarudzwa nema indexes uye data shoma ichaverengwa.

Munguva pfupi yapfuura, ClickHouse yakawedzera mamwe mabasa epamberi ekutsvagisa-magwaro akazara. Uku ndiko, kekutanga, kutsvaga boka rema substrings kamwechete mukupfuura kumwe, kusanganisira sarudzo dzinonzwa, kesi-isinganzwe, nerutsigiro rweUTF-8 kana chete ASCII. Sarudza inoshanda zvakanyanya yaunoda.

Kutsvaga kweakawanda mataurirwo enguva dzose mune imwe pass kwaonekwa zvakare. Iwe haufanire kunyora X senge substring kana X seimwe substring. Iwe unonyora pakarepo, uye zvinhu zvose zvinoitwa zvinobudirira sezvinobvira.

Chechitatu, ikozvino pane fungidziro yekutsvaga regexps uye fungidziro yekutsvaga ye substrings. Kana mumwe munhu akatadza kuperetera izwi, rinotsvagwa kuti riwane rinoenderana nepamusoro.

Ndeipi nzira yakanakisa yekuronga kupinda kweClickHouse yehuwandu hukuru hwevashandisi?

Tiudze nzira yakanakisa yekuronga kuwana kwenhamba huru yevatengi uye vanoongorora. Maitiro ekugadzira mutsara, kuisa pamberi max mibvunzo yakafanana, uye nemidziyo ipi?

Kana iyo cluster yakakura zvakakwana, saka mhinduro yakanaka ndeyekusimudza mamwe maviri maseva, inova nzvimbo yekupinda yevanoongorora. Izvi zvinoreva kuti, usabvumira vaongorori kuti vawane shards chaiyo musumbu, asi ingogadzira mavhavha maviri asina chinhu, asina data, uye gadzirisa kodzero dzekuwana pavari. Muchiitiko ichi, zvigadziriso zvevashandisi zvezvikumbiro zvakagoverwa zvinoendeswa kumaseva ari kure. Ndokunge, iwe unogadzirisa zvese pane aya maviri maseva, uye marongero ane mhedzisiro pane yese cluster.

Muchidimbu, maseva aya haana data, asi huwandu hwe RAM paari hwakakosha pakuita zvikumbiro. Iyo dhisiki inogona zvakare kushandiswa kune data yenguva pfupi kana kuunganidzwa kwekunze kana kurongedza kwekunze kwakagoneswa.

Zvakakosha kutarisa zvigadziro zvinosanganiswa nezvose zvinogoneka. Kana ini zvino ndichienda kuYandex.Metrica cluster semuongorori uye kubvunza chikumbiro sarudza kuverenga kubva pane hits, ipapo ndichabva ndapiwa imwe nzira yekuti handikwanise kuita chikumbiro. Nhamba yepamusoro yemitsara yandinobvumirwa kuongorora izana remabhiriyoni, uye pamwe chete kune makumi mashanu ematrillion avo mutafura imwe pasumbu. Uyu ndiwo muganhu wekutanga.

Ngatitii ndabvisa muganho wemutsara uye ndomhanyisa mubvunzo zvakare. Ipapo ini ndichaona iyo inotevera kusarudzika - kuseta kunogoneswa manikidza indekisi nezuva. Handikwanise kupedzisa mubvunzo kana ndisina kududza zuva renji. Haufanire kuvimba nevanoongorora kuti vazvitsanangure nemaoko. Chiitiko chakajairika ndechekuti zuva renji rinonyorwa pane zuva rechiitiko pakati pevhiki. Uye ipapo ivo vakangotaura bhuraketi munzvimbo isiri iyo, uye pachinzvimbo uye zvakazoita kana - kana URL match. Kana pasina muganho, inokambaira iyo URL column uye kungoparadza toni yezviwanikwa.

Mukuwedzera, ClickHouse ine maviri ekutanga marongero. Zvinosuruvarisa, ivo vekare zvikuru. Mumwe anongonzi chikosheshwa. Kana zvakakosha ≠ 0, uye zvikumbiro zvine zvimwe zvakakosha zviri kuitwa, asi chikumbiro chine kukosha kwekutanga kushoma pane, zvinoreva kuti chepamusoro-soro, chiri kuitwa, ipapo chikumbiro chine kukosha kwekutanga kwehukuru, izvo zvinoreva kuderera kwekutanga. , inongomiswa uye haishande zvachose panguva ino.

Iyi inzvimbo isina kuchena uye haina kukodzera kune zviitiko apo cluster ine mutoro unogara uripo. Asi kana uine zvikumbiro zvipfupi, zvinoputika zvakakosha, uye sumbu racho rinonyanya kuita zvisina basa, iyi setup yakakodzera.

Iyo inotevera yekuisa pamberi inodanwa OS thread yakakosha. Iyo inongoisa iyo yakanaka kukosha kune ese ekukumbira tambo tambo dzeLinux scheduler. Inoshanda saka-saizvozvo, asi ichiri kushanda. Kana iwe ukaseta hushoma hwakanaka kukosha - ndiyo yakakura mukukosha, uye nekudaro iyo yakaderera pamberi - uye kuseta -19 yezvikumbiro zvine hukuru hwekutanga, ipapo CPU inodya yakaderera-yekutanga zvikumbiro zvakapetwa kana zvishoma pane zvakakosheswa zvakanyanya.

Iwe zvakare unofanirwa kugadzirisa iyo yakanyanya kukumbira nguva yekukumbira - toti, maminetsi mashanu. Iyo shoma yekumhanya yekubvunza mubvunzo ndiyo inotonhorera chinhu. Kurongeka uku kwave kuripo kwenguva yakareba, uye zvinodikanwa kwete kungotaura kuti ClickHouse hainonoke, asi kuimanikidza.

Fungidzira, iwe unomisikidza: kana mimwe mibvunzo ichiita isingasviki miriyoni mitsara pasekondi, haugone kuzviita. Izvi zvinonyadzisa zita redu rakanaka, dura redu rakanaka. Ngatingorambidza izvi. Pane chaizvo marongero maviri. Imwe inonzi min execution speed - mumitsetse pasekondi, uye yechipiri inonzi timeout isati yatarisa min execution kumhanya - masekondi gumi nemashanu nekukasira. Ndiko kuti, masekonzi gumi nemashanu anogoneka, uyezve, kana ichinonoka, ingokanda kunze uye kubvisa chikumbiro.

Iwe zvakare unofanirwa kuseta quotas. ClickHouse ine yakavakirwa-mukati quota ficha inoverenga zviwanikwa zvekushandisa. Asi, zvinosuruvarisa, kwete zviwanikwa zvehardware zvakaita seCPU, disks, asi zvine musoro - nhamba yezvikumbiro zvakagadziriswa, mitsetse uye mabheti akaverengwa. Uye iwe unogona kugadzirisa, semuenzaniso, inokwana zana zvikumbiro mukati memaminitsi mashanu uye zviuru zvikumbiro paawa.

Nei zvichikosha? Nekuti mimwe mibvunzo yeanalytics ichaitwa nemaoko zvakananga kubva kuClickHouse mutengi. Uye zvose zvichava zvakanaka. Asi kana iwe uine vaongorori vepamberi mukambani yako, ivo vanonyora script, uye panogona kunge paine kukanganisa mune script. Uye kukanganisa uku kuchaita kuti chikumbiro chiitwe mune risingaperi loop. Izvi ndizvo zvatinoda kuti tizvidzivirire kwazviri.

Zvinoita here kupa mhinduro yemubvunzo mumwe kune gumi vatengi?

Tine vashandisi vakati wandei vanofarira kuuya nezvikumbiro zvakakura kwazvo panguva imwe chete nenguva. Chikumbiro chakakura uye, mumutemo, chinoitwa nekukurumidza, asi nekuda kwekuti kune zvakawanda zvikumbiro zvakadaro panguva imwe chete, zvinova zvinorwadza zvikuru. Zvinokwanisika here kuita chikumbiro chimwe chete, chakasvika kagumi mumutsara, kamwe, uye kupa mhedzisiro kune gumi vatengi?

Dambudziko nderekuti isu hatina mhedzisiro yecache kana cache yedata repakati. Pane peji cache yegadziriro yekushanda, iyo ichakudzivirira kubva pakuverenga data kubva ku diski zvakare, asi, zvinosuruvarisa, iyo data icharamba yakasvibiswa, yakasvibiswa uye yakadzokororwa.

Хотелось бы каким-то образом этого избежать, либо кэшируя промежуточные данные, либо выстроив похожие запросы в какую-то очередь и добавив кэш результатов. Сейчас у нас есть в разработке один pull request, который добавляет кэш запросов, но только для подзапросов в секции in и join — то есть решение неполноценное.

Zvisinei, tinosanganawo nemamiriro ezvinhu akadaro. Muenzaniso wakanyanya wecanonical mibvunzo ine pagineti. Pane mushumo, ine mapeji akawanda, uye pane chikumbiro chemuganhu 10. Zvadaro chinhu chimwe chete, asi muganhu 10,10. Zvadaro rimwe peji rinotevera. Uye mubvunzo ndewokuti, sei tichiverenga zvese izvi nguva dzese? Asi iye zvino hapana mhinduro, uye hapana nzira yekuinzvenga.

Pane imwe sarudzo inoiswa senge padivi peClickHouse - ClickHouse Proxy.

Kirill Shvakov: ClickHouse Proxy ine yakavakirwa-mukati mwero limiter uye yakavakirwa-mukati mhedzisiro cache. Zvirongwa zvakawanda zvakaitwa ipapo nekuti dambudziko rakafanana raigadziriswa. Proxy inobvumidza iwe kudzikamisa zvikumbiro nekuvamisa mumutsara uye kugadzirisa kuti iyo cache yekukumbira inorarama kwenguva yakareba sei. Kana zvikumbiro zvaive zvakafanana, Proxy inovatumira kakawanda, asi ichaenda kuClickHouse kamwe chete.

Nginx zvakare ine cache mune yemahara vhezheni, uye izvi zvinoshandawo. Nginx inotova nezvirongwa zvekuti kana zvikumbiro zvikasvika panguva imwe chete, zvinononoka vamwe kusvika imwe yapera. Asi iri muClickHouse Proxy kuti kuseta kunoitwa zvirinani. Yakagadzirirwa zvakanangana neClickHouse, yakanangana nezvikumbiro izvi, saka inonyanya kukodzera. Zvakanaka, zviri nyore kuisa.

Zvakadini neasynchronous mashandiro uye maonero enyama?

Pane dambudziko rekuti mashandiro nejini replay asynchronous - kutanga data rakanyorwa, robva radonha. Kana piritsi rakagadzirwa rine mamwe akaunganidzwa richigara pasi pechiratidzo, zvakapetwa zvichanyorerwa kwariri. Uye kana pasina logic yakaoma, ipapo data ichadzokororwa. Chii chaungaita nezvazvo?

Pane mhinduro iri pachena - kushandisa trigger pane imwe kirasi yematviews panguva yeasynchronous kudonha kushanda. Pane here mabara esirivha kana zvirongwa zvekushandisa zvakafanana?

Zvakakodzera kunzwisisa kuti deduplication inoshanda sei. Zvandichakuudza iye zvino hazvina basa kumubvunzo, asi kana zvakakodzera kuyeuka.

Pakuisa mutafura yakadzokororwa, pane kudzokororwa kwemabhuroki ese akaiswa. Kana iwe ukadzoreredza iyo imwechete block ine nhamba yakafanana yemitsara yakafanana muhurongwa hwakafanana, ipapo iyo data inobviswa. Iwe unogashira "Ok" mukupindura kuisa, asi chokwadi pakiti imwe yedata ichanyorwa, uye haizodzokororwe.

Izvi zvinodiwa nechokwadi. Kana iwe ukagamuchira "Ok" panguva yekuisa, ipapo data rako rakaiswa. Kana iwe ukagamuchira chikanganiso kubva kuClickHouse, zvinoreva kuti havana kuiswa uye unofanirwa kudzokorora kuiswa. Asi kana kubatana kwakaputsika panguva yekuisa, saka hauzive kana iyo data yakaiswa kana kwete. Iyo chete sarudzo ndeye kudzokorora kuisa zvakare. Kana iyo data yakanyatso kuiswa uye iwe wakaiisazve, pane block deduplication. Izvi zvinodiwa kuti usaite duplicates.

Uye zvakakoshawo kuti zvinoshanda sei kune maonero enyama. Kana iyo data yakabviswa payakaiswa mutafura huru, saka haizoendi mukuona kwenyama.

Zvino nezvemubvunzo. Mamiriro ako ezvinhu akanyanya kuoma nekuti uri kurekodha zvakapetwa emitsetse yega yega. Ndiko kuti, haisi iyo yese paki inodzokororwa, asi mitsara chaiyo, uye inodonha kumashure. Chokwadi, iyo data ichadonha mutafura huru, asi iyo isina kuvharwa data ichaenda kune yakabatika maonero, uye panguva yekubatanidza hapana chichaitika kune maonero akaitwa. Nokuti maonero enyama haasi chimwe chinhu kunze kwekungopinza. Panguva yemamwe maoparesheni, hapana chimwe chinoitika kwairi.

Uye ini handigoni kukufadza pano. Iwe unongoda kutsvaga chaiyo mhinduro yenyaya iyi. Semuyenzaniso, zvinoita here kuidzokorodza mukuona kwenyama, uye nzira yekubvisa inogona kushanda nenzira imwecheteyo. Asi zvinosuruvarisa, kwete nguva dzose. Kana iri kuunganidzwa, haishande.

Kirill Shvakov: Isu taivawo nekugadzira macrutch kare kare. Paive nedambudziko rekuti pane zviratidziro zvekushambadzira, uye pane imwe data yatinogona kuratidza munguva chaiyo - aya angori maratidziro. Iwo haawanzo kudhindwa, asi kana izvi zvikaitika, tichaapunzika gare gare zvakadaro. Uye pakanga paine zvinhu zvaisakwanisa kudzokororwa - kudzvanya uye iyi nyaya yese. Asi ndaidawo kuvaratidza pakare ipapo.

Maonero enyama akaitwa sei? Paiva nemaonero apo yakanyorwa zvakananga - yakanyorwa kune data yakasvibiswa, uye yakanyorerwa maonero. Ikoko, pane imwe nguva iyo data haina kunyatsojeka, inodzokororwa, zvichingodaro. Uye kune chikamu chechipiri chetafura, kwavanotaridzika chaizvo zvakafanana nemaonero enyama, ndiko kuti, iwo akafanana zvachose muchimiro. Pane imwe nguva isu tinoverengera iyo data, kuverenga iyo data pasina duplicate, nyora kune iwo matafura.

Isu takapfuura neiyo API - izvi hazvishande muClickHouse nemaoko. Uye iyo API inotarisa: kana ndine zuva rekupedzisira kuwedzera kune tafura, apo inovimbiswa kuti data yakarurama yakatove yakaverengwa, uye inoita chikumbiro kune imwe tafura uye kune imwe tafura. Kubva pane imwe chikumbiro inosarudza kusvika kune imwe nguva yenguva, uye kubva kune imwe inowana izvo zvisati zvaverengwa. Uye inoshanda, asi kwete kuburikidza neClickHouse chete.

Kana iwe uine imwe mhando ye API - yevanoongorora, yevashandisi - saka, mumusimboti, iyi sarudzo. Unogara uchiverenga, uchiverenga nguva dzose. Izvi zvinogona kuitwa kamwe chete pazuva kana pane imwe nguva. Iwe unozvisarudzira iwe huwandu hwausingade uye hausi kutsoropodza.

ClickHouse ine matanda akawanda. Ndingaona sei zvese zvinoitika kune server nekungotarisa?

ClickHouse ine nhamba yakakura kwazvo yematanda akasiyana, uye nhamba iyi iri kuwedzera. Mushanduro itsva, dzimwe dzadzo dzinogoneswa nekusarudzika; mushanduro dzekare dzinofanirwa kuve dzakagoneswa kana uchivandudza. Zvisinei, kune dzakawanda uye dzakawanda dzadzo. Pakupedzisira, ndinoda kuona zviri kuitika neserver yangu ikozvino, pamwe pane imwe mhando yechidimbu dashboard.

Iwe unayo here timu yeClickHouse, kana zvikwata zveshamwari dzako, zvinotsigira kumwe kushanda kweakagadzirira-akagadzirwa madhibhodhi ayo aizoratidza matanda aya sechigadzirwa chakapedzwa? Pakupedzisira, kungotarisa matanda muClickHouse kwakanaka. Asi zvingave zvakanaka kwazvo kana yakatogadzirirwa nenzira yedashboard. Ndaibva ndaita zvekuvhunduka.

Kune dashboards, kunyange zvazvo dzisina kumira. Mukambani yedu, zvingangoita zvikwata makumi matanhatu zvinoshandisa ClickHouse, uye chinoshamisa ndechekuti mazhinji acho ane madhibhodhi avakazvigadzirira, uye akasiyana zvishoma. Zvimwe zvikwata zvinoshandisa mukati Yandex.Cloud kuiswa. Kune mimwe mishumo yakagadzirwa, kunyange isiri iyo yose inodiwa. Vamwe vane zvavo.

Vandinoshanda navo vekuMetrica vane dashboard yavo muGrafana, uye ini ndine yangu yeboka ravo. Ndiri kutarisa zvinhu zvakaita se cache hit ye ​​serif cache. Uye zvakatonyanya kuoma ndezvekuti tinoshandisa maturusi akasiyana. Ndakagadzira dashibhodhi rangu ndichishandisa chishandiso chekare chinonzi Graphite-web. Akashata chose. Uye ini ndichiri kuishandisa nenzira iyi, kunyangwe Grafana ingangove iri nyore uye yakanaka.

Chinhu chakakosha mumadhibhodhi chakafanana. Aya ndiwo masisitimu metrics yesumbu: CPU, ndangariro, dhisiki, network. Zvimwe - nhamba yezvikumbiro panguva imwe chete, nhamba yekubatanidza panguva imwe chete, nhamba yezvikumbiro pasekondi, nhamba yepamusoro yezvimedu zveMergeTree table partitions, replication lag, replication queue size, nhamba yemitsara yakaiswa pasekondi, nhamba yezvivharo zvakaiswa pasekondi. Izvi ndizvo zvese zvinowanwa kwete kubva mumatanda, asi kubva kumetrics.

Vladimir Kolobaev: Alexey, ndinoda kuigadzirisa zvishoma. Kuna Grafana. Grafana ine datasource, inova ClickHouse. Ndiko kuti, ndinogona kuita zvikumbiro kubva kuGrafana ndakananga kuClickHouse. ClickHouse ine tafura ine matanda, zvakafanana kune wese munhu. Nekuda kweizvozvo, ini ndoda kuwana iyi tafura yelogi muGrafana uye kuona zvikumbiro zvinoitwa neserver yangu. Zvingave zvakanaka kuva nedashboard rakadai.

Ndakaichovha ndega. Asi ndine mubvunzo - kana zvese zvakamisikidzwa, uye Grafana inoshandiswa nemunhu wese, sei Yandex isina dashboard yepamutemo yakadaro?

Kirill Shvakov: Muchokwadi, iyo datasource inoenda kuClickHouse ikozvino inotsigira Altinity. Uye ini ndinongoda kupa vector yekuchera uye ndiani wekusundira. Unogona kuvabvunza, nekuti Yandex ichiri kugadzira ClickHouse, uye kwete nyaya yakaitenderedza. Altinity ndiyo kambani huru parizvino inosimudzira ClickHouse. Havazomusiyi, asi vachamutsigira. Nekuti, musimboti, kurodha dashboard kune webhusaiti yeGrafana, iwe unongoda kunyoresa uye kurodha - hapana akakosha matambudziko.

Alexey Milovidov: Kwegore rapfuura, ClickHouse yakawedzera akawanda query profiling kugona. Pane mametrics echikumbiro chega chega pakushandisa zviwanikwa. Uye nguva pfupi yadarika, isu takawedzera yakaderera-chikamu chemubvunzo profiler kuti uone kuti mubvunzo uri kushandisa millisecond yega yega. Asi kuti ndishandise mashandiro aya, ndinofanira kuvhura mutengi wekoni uye kunyora chikumbiro, chandinogara ndichikanganwa. Ndakaichengeta somewhere ndoramba ndichikanganwa kuti papi chaipo.

Ndinoshuva kuti dai paine chishandiso changotaura, heyi mibvunzo yako inorema, yakaunganidzwa nekirasi yemibvunzo. Ndakadzvanya pane imwe, uye vaindiudza kuti ndosaka ichirema. Iko hakuna mhinduro yakadaro ikozvino. Uye zvinoshamisa kuti vanhu pavanondibvunza: “Ndiudze, pane madhibhodhi akagadzirwa eGrafana here?”, Ini ndinoti: “Enda kuwebhusaiti yeGrafana, kune nharaunda ye“Dashboards”, uye kune dashboard. kubva kuDimka, kune dashboard kubva kuKostyan. Handizivi kuti chii, handisati ndaishandisa ini. "

Maitiro ekupesvedzera mamerges kuitira kuti sevha irege kupaza muOOM?

Ndine tafura, pane chikamu chimwe chete patafura, iri ReplacementMergeTree. Ndanga ndichinyora data mairi kwemakore mana. Ini ndaifanira kuita shanduko mairi uye kudzima imwe data.

Ndakaita izvi, uye panguva yekugadziriswa kwechikumbiro ichi, ndangariro dzese pamaseva ese ari musumbu dzakapedzwa, uye ese maseva ari musumbu akapinda muOOM. Ipapo vese vakasimuka pamwechete, vakatanga kubatanidza oparesheni imwe chete iyi, iyi data block, ndokuwira muOOM zvakare. Vakabva vasimuka zvakare ndokudonha. Uye chinhu ichi hachina kumira.

Zvakabva zvaita kuti iyi yaive bug chaiyo yakagadziriswa nevakomana. Izvi zvakanaka chaizvo, ndinokutendai zvikuru. Asi vakasara vakasara. Uye zvino, pandinofunga nezve kugadzira imwe mhando yekubatanidza mutafura, ndine mubvunzo - sei ini ndisingakwanisi neimwe nzira kupesvedzera izvi zvakabatanidzwa? Semuenzaniso, vadzimise nehuwandu hwe RAM inodiwa, kana, musimboti, nehuwandu huchagadzirisa iyi tafura.

Ndine tafura inonzi "Metrics", ndokumbira undigadzirire iyo mushinda mbiri. Iko hakuna chikonzero chekugadzira gumi kana mashanu mamenges anoenderana, ita muzvikamu zviviri. Ini ndinofunga kuti ndine ndangariro yakakwana yevaviri, asi inogona kunge isina kukwana kugadzirisa gumi. Nei kutya kuchiripo? Nekuti tafura iri kukura, uye rimwe zuva ndichasangana nemamiriro ezvinhu ayo, musimboti, haasisiri nekuda kwebug, asi nekuti iyo data ichachinja muhuwandu hwakakura zvekuti ini handizove nendangariro yakakwana pa server. Uye ipapo sevha inorovera muOOM kana ichibatanidza. Uyezve, ndinogona kudzima shanduko, asi Merji haasisipo.

Iwe unoziva, kana uchibatanidza, sevha haizowira muOOM, nokuti kana ichibatanidza, huwandu hwe RAM hunoshandiswa chete kune imwe diki yedata. Saka zvese zvichave zvakanaka zvisinei nehuwandu hwe data.

Vladimir Kolobaev: Fine. Heino nguva iripo yekuti mushure mekunge bug yagadziriswa, ndakazvidhawunirodha vhezheni nyowani, uye pane imwe tafura, diki, pane akawanda partitions, ndakaita oparesheni yakafanana. Uye panguva yekubatanidza, inenge 100 GB ye RAM yakapiswa pavhavha. Ndakanga ndine zana rakagara, zana rakadyiwa, uye hwindo re150 GB rasara, saka handina kuwira muOOM.

Chii parizvino chinondidzivirira kubva pakudonha muOOM kana ichinyatso shandisa 100 GB ye RAM? Chii chekuita kana kamwe-kamwe RAM iri pamameji yapera?

Alexey Milovidov: Pane dambudziko rakadaro zvekuti kushandiswa kweRAM kwakanangana nekubatanidza hakuna kuganhurirwa. Uye dambudziko rechipiri nderekuti kana imwe mhando yekubatanidza yakapihwa, saka inofanirwa kuitwa nekuti yakanyorwa mugwaro rekudzokorora. Rogi yekudzokorodza zviito zvinodikanwa kuunza replica muchimiro chinowirirana. Kana iwe ukasaita manyorerwo emaoko ayo anodzosera kumashure iyi regi yekudzokorora, kusanganisa kuchafanirwa kuitwa neimwe nzira.

Ehe, hazvingave zvakapusa kuve neiyo RAM muganho uyo "mukudaro" inodzivirira kubva kuOOM. Izvo hazvizobatsiri kusanganisa kupedzisa, zvinotanga zvakare, kusvika kune imwe chikumbaridzo, kukanda kunze, uyezve kutanga zvakare - hapana chakanaka chichauya pane izvi. Asi musimboti, zvingava zvinobatsira kusuma ichi chinorambidzwa.

Ko mutyairi weGolang weClickHouse achagadzirwa sei?

Mutyairi weGolang, iyo yakanyorwa naKirill Shvakov, ikozvino inotsigirwa zviri pamutemo neClickHouse timu. Iye muClickHouse repository, iye zvino mukuru uye chaiye.

Chinyorwa chidiki. Kune inoshamisa uye inodiwa repository yezvakajairwa mafomu ekusingaperi kurongeka - iyi iVertica. Ivo zvakare vane yavo yepamutemo python mutyairi, iyo inotsigirwa nevanogadzira Vertica. Uye kakawanda zvakaitika kuti shanduro dzekuchengetedza uye shanduro dzemutyairi dzakaparadzana zvakanyanya, uye mutyairi pane imwe nguva akamira kushanda. Uye pfungwa yechipiri. Tsigiro yemutyairi uyu wepamutemo, zvinoita kwandiri, inoitwa ne "nipple" system - unovanyorera nyaya, uye inorembera nekusingaperi.

Ndine mibvunzo miviri. Iye zvino Kirill's Golang mutyairi ingangoita nzira yekutaurirana kubva kuGolang neClickHouse. Kunze kwekunge munhu achiri kutaurirana kuburikidza ne http interface nekuti anozvifarira saizvozvo. Kuvandudzwa kwemutyairi uyu kuchaenderera mberi sei? Ichawiriraniswa nechero shanduko inotyora mune repository pachayo? Uye ndeipi nzira yekufunga nezvenyaya?

Kirill Shvakov: Chekutanga ndechekuti zvinhu zvese zvakarongeka sei. Iyi pfungwa haina kukurukurwa, saka handina chekupindura.

Kuti tipindure mubvunzo pamusoro penyaya, tinoda nhoroondo shoma yemutyairi. Ndakashandira imwe kambani yaive nedata rakawanda. Yakanga iri advertising spinner ine nhamba huru yezviitiko zvaida kuchengetwa kumwe kunhu. Uye pane imwe nguva ClickHouse yakaonekwa. Takazadza nedata, uye pakutanga zvese zvaive zvakanaka, asi ipapo ClickHouse yakadonha. Panguva iyoyo takasarudza kuti hatidi.

Kwapera gore, takadzokera kuzano rekushandisa ClickHouse, uye taifanira kunyora data ipapo neimwe nzira. Mharidzo yekusuma yaive iyi: Hardware haina kusimba, pane mashoma zviwanikwa. Asi isu tagara tichishanda neiyi nzira, uye saka takatarisa takananga kune yemuno protocol.

Sezvo taishanda muGo, zvaiva pachena kuti taida Go driver. Ndakazviita nguva inenge yakazara - rakanga riri basa rangu rebasa. Takaiunza kune imwe nzvimbo, uye mumutemo hapana aifunga kuti mumwe munhu kunze kwedu aizoishandisa. Ipapo CloudFlare yakauya nedambudziko rakafanana, uye kwenguva yakati rebei takashanda navo zvakanaka, nekuti vaive nemabasa mamwe chete. Uyezve, takaita izvi zvese muClickHouse isu uye mumutyairi.

Pane imwe nguva, ndakangomira kuzviita, nekuti basa rangu maererano neClickHouse nebasa rakachinja zvishoma. Saka nyaya hadzivharwe. Nguva nenguva, vanhu vanoda chimwe chinhu ivo pachavo vanozvipira kune repository. Ndobva ndatarisa chikumbiro chekudhonza uye dzimwe nguva ndinotogadzirisa chimwe chinhu pachangu, asi izvi hazviwanzoitika.

Ndinoda kudzokera kumutyairi. Makore akati wandei apfuura, pakatanga chinhu ichi chose, ClickHouse yaivewo yakasiyana uye iine hunyanzvi hwakasiyana. Iye zvino tave nekunzwisisa kwekuitazve mutyairi kuti ashande zvakanaka. Kana izvi zvikaitika, saka vhezheni 2 ichave isingaenderane mune chero mamiriro nekuda kwemadondoro akaunganidzwa.

Handizivi kuti ndoronga sei nyaya iyi. Ini handina nguva yakawanda ini. Kana vamwe vanhu vapedza kudhiraivha ndinogona kuvabatsira ndovaudza zvekuita. Asi kushingaira kubatanidzwa kweYandex mukugadzirwa kweprojekti hakusati kwakurukurwa.

Alexey Milovidov: Muchokwadi, hapana bureaucracy nezvevatyairi ava parizvino. Chinhu chega ndechekuti ivo vanoendeswa kusangano repamutemo, ndiko kuti, mutyairi uyu anozivikanwa seyepamutemo default mhinduro yeGo. Kune vamwe vatyairi, asi vanouya vakaparadzana.

Hatina budiriro yemukati yevatyairi ava. Mubvunzo ndewokuti isu tinogona here kuhaya munhu ega, kwete kumutyairi uyu, asi kusimudzira kwevatyairi vese venharaunda, kana isu tingawana mumwe munhu wekunze.

Duramazwi rekunze haritore mushure mekutangazve nelazy_load setting yakagoneswa. Kuita sei?

Isu tine lazy_load yekumisikidza yakagoneswa, uye mushure mekunge sevha yatangwazve, duramazwi haritakure riri roga. Inosimudzwa chete mushure mekunge mushandisi apinda muduramazwi iri. Uye kekutanga pandinoiwana, inopa kukanganisa. Zvinoita here kurodha otomatiki maduramazwi uchishandisa ClickHouse, kana iwe unofanirwa kugara uchidzora kugadzirira kwavo iwe pachako kuti vashandisi vasagamuchire zvikanganiso?

Pamwe isu tine yekare vhezheni yeClickHouse, saka duramazwi harina kurodha zvoga. Izvi zvingava zvakadaro here?

Chekutanga, maduramazwi anogona kumanikidzwa kutakurwa uchishandisa mubvunzo system reload maduramazwi. Chechipiri, maererano nekukanganisa - kana duramazwi ratoiswa kare, zvino mibvunzo ichashanda zvichibva pane data rakaiswa. Kana duramazwi risati raiswa, rinozoiswa zvakananga panguva yekukumbira.

Izvi hazvina kunyanya kunakira maduramazwi anorema. Semuenzaniso, unofanirwa kudhonza miriyoni mitsara kubva kuMySQL. Mumwe munhu anoita sarudzo yakapusa, asi iyi sarudza inomirira miriyoni imwe chete mitsara. Pane mhinduro mbiri pano. Chekutanga kudzima lazy_load. Chechipiri, kana sevha yasimuka, usati waisa mutoro pairi, ita system reload duramazwi kana kungoita mubvunzo unoshandisa duramazwi. Ipapo duramazwi rinobva raiswa. Iwe unofanirwa kudzora kuwanikwa kwemaduramazwi ane lazy_load kuseta inogoneswa, nekuti ClickHouse haingozviroshe.

Mhinduro kumubvunzo wekupedzisira ingave iyo vhezheni ndeyekare kana inoda kugadziriswa.

Chii chekuita nenyaya yekuti system reload maduramazwi hairegi chero ripi remaduramazwi mazhinji kana rimwe rawo rikapunzika nekukanganisa?

Pane mumwe mubvunzo nezve system reload maduramazwi. Tine maduramazwi maviri - rimwe harina kutakurwa, rechipiri rinotakurwa. Muchiitiko ichi, System reload maduramazwi hairegi chero duramazwi, uye unofanirwa kunongedza-ne-point kurodha rakananga nezita raro uchishandisa system reload duramanzwi. Izvi zvakare zvinoenderana neiyo ClickHouse vhezheni?

Ndinoda kukufadza. Hunhu uhu hwakange hwave kuchinja. Izvi zvinoreva kuti kana ukavandudza ClickHouse, inoshandukawo. Kana usiri kufara nehunhu hwako hwazvino system reload maduramazwi, update, uye ngativimbei kuti zvichachinja kuva nani.

Pane nzira yekumisikidza ruzivo muClickHouse config, asi kwete kuvaratidza kana paine zvikanganiso?

Mubvunzo unotevera uri pamusoro pezvikanganiso zvine chekuita neduramazwi, zvinoti tsanangudzo. Isu takatsanangura iyo yekubatanidza ruzivo muClickHouse config yeduramazwi, uye kana paine chikanganiso, tinogashira izvi ruzivo nepassword mukupindura.

Isu takagadzirisa kukanganisa uku nekuwedzera ruzivo kune ODBC mutyairi config. Pane here nzira yekumisa iwo madhairekitori muClickHouse config, asi usingaratidze izvi zvinhu kana paine zvikanganiso?

Mhinduro chaiyo apa ndeyekutsanangura izvi zvitupa mu odbc.ini, uye muClickHouse pachayo inotsanangura chete iyo ODBC Data Source Zita. Izvi hazvizoitike kune mamwe masosi eduramazwi - kwete kuduramazwi rine MySQL, kana kune mamwe, haufanirwe kuona password kana wagamuchira meseji yekukanganisa. Kune ODBC, ini zvakare ndichatarisa - kana iripo, unongoda kuibvisa.

Bonus: masikirwo eZoom kubva kumagungano

Nekudzvanya pamufananidzo, mabhonasi emashure kubva kumagungano anozovhurika kune vanoramba vachiverenga. Isu tinodzima moto pamwe chete neAvito tekinoroji mascots, tinopa pamwe nevatinoshanda navo kubva mukamuri yevatariri vehurongwa kana kirabhu yekombuta yechikoro chekare, uye tinoitisa misangano yezuva nezuva pasi pebhiriji pakatarisana nekumashure kwegraffiti.

ClickHouse yevashandisi vepamberi mumibvunzo nemhinduro

Source: www.habr.com

Voeg