ClickHouse bakeng sa basebelisi ba tsoetseng pele lipotsong le likarabo

Ka April, baenjiniere ba Avito ba ile ba bokana bakeng sa liboka tsa marang-rang le moqapi oa sehlooho oa ClickHouse Alexey Milovidov le Kirill Shvakov, moqapi oa Golang oa Integros. Re buisane ka hore na re sebelisa tsamaiso ea polokelo ea boitsebiso joang le hore na re kopana le mathata afe.

Ho latela seboka, re hlophisitse sengoloa se nang le likarabo tsa litsebi ho lipotso tsa rona le tsa bamameli mabapi le li-backups, resharding data, didikishinari tsa kantle, mokhanni oa Golang le ho ntlafatsa liphetolelo tsa ClickHouse. E ka 'na ea e-ba molemo ho bahlahisi ba seng ba ntse ba sebetsa ka mafolofolo le Yandex DBMS mme ba thahasella hona joale le bokamoso ba eona. Ka ho sa feleng, likarabo ke tsa Alexey Milovidov, ntle le haeba li ngotsoe ka tsela e 'ngoe.

Hlokomela, ho na le mongolo o mongata tlasa sehiloeng. Re tšepa hore litaba tse nang le lipotso li tla u thusa ho tsamaea.

ClickHouse bakeng sa basebelisi ba tsoetseng pele lipotsong le likarabo

Tse ka hare

Haeba u sa batle ho bala temana, u ka shebella lirekoto tsa likopano mocha oa rona oa YouTube. Likhoutu tsa nako li ho maikutlo a pele tlasa video.

ClickHouse e lula e ntlafatsoa, ​​​​empa data ea rona ha e joalo. Seo u lokelang ho se etsa ka eona?

ClickHouse e lula e ntlafatsoa, ​​​​'me data ea rona, e ileng ea ntlafatsoa qetellong, ha e ntlafatsoe 'me e ka kopi ea "backup".

Ha re re re bile le bothata mme data e ile ea lahleha. Re nkile qeto ea ho khutlisa, 'me ho ile ha fumaneha hore likarolo tsa khale, tse bolokiloeng ho li-server tsa backup, li fapane haholo le mofuta o sebelisoang hajoale oa ClickHouse. Seo u lokelang ho se etsa boemong bo joalo, hona na ho ka khoneha?

Boemo boo ho bona u tsosolositseng data ho tsoa ho "backup" ka mokhoa oa khale, empa ha e hokahane le mofuta o mocha, ha ho khonehe. Re etsa bonnete ba hore sebopeho sa data ho ClickHouse se lula se lumellana le morao. Sena se bohlokoa haholo ho feta ts'ebeliso ea morao-rao ts'ebetsong haeba boitšoaro ba ts'ebetso e sa sebelisoeng seoelo bo fetohile. Mofuta o mocha oa ClickHouse o lokela ho lula o khona ho bala data e bolokiloeng ho disk. Ona ke molao.

Mekhoa e metle ea hajoale ea ho boloka data ho tsoa ho ClickHouse ke efe?

Mokhoa oa ho etsa li-backups, ho nahanoa hore re na le ts'ebetso e ntlafalitsoeng ea ho qetela, database e kholo ea li-terabytes, le data e nchafalitsoeng, re re, matsatsing a mararo a fetileng, ebe ha ho na mekhoa e etsahalang ho eona?

Re ka iketsetsa tharollo 'me ra ngola holim'a bash: bokella likopi tsena tsa backup ka tsela e joalo. Mohlomong ha ho hlokahale ho crutch ntho leha e le efe, 'me baesekele e qapiloe khale?

Ha re qaleng ka mekhoa e metle. Basebetsi-'moho le 'na ba lula ba eletsa, ho arabela lipotso tse mabapi le li-backups, ho ba hopotsa ka tšebeletso ea Yandex.Cloud, moo bothata bona bo seng bo rarollotsoe. Kahoo e sebelise ha ho khoneha.

Ha ho na tharollo e felletseng ea li-backups, liperesente tse lekholo tse hahiloeng ho ClickHouse. Ho na le likheo tse ling tse ka sebelisoang. Ho fumana tharollo e felletseng, o tla tlameha ho thekesela hanyane ka letsoho, kapa ho etsa wrappers ka mokhoa oa mongolo.

Ke tla qala ka litharollo tse bonolo ka ho fetisisa 'me ke qete ka tse rarahaneng ka ho fetisisa, ho itšetlehile ka boholo ba data le boholo ba sehlopha. Ha sehlopha se le seholo, tharollo e ba e rarahaneng haholoanyane.

Haeba tafole e nang le data e nka li-gigabyte tse 'maloa feela, ho boloka bekapo ho ka etsoa ka tsela ena:

  1. Boloka tlhaloso ea tafole i.e. metadata − bontša bopa tafole.
  2. Etsa ho lahla u sebelisa moreki oa ClickHouse - khetha * ho tloha tafoleng ho file. Ka kamehla u tla fumana faele ka mokhoa oa TabSeparated. Haeba u batla ho sebetsa hantle haholoanyane, u ka e etsa ka sebopeho sa Native.

Haeba palo ea data e le kholoanyane, joale bekapo e tla nka nako e ngata le sebaka se sengata. Sena se bitsoa "backup" e utloahalang; ha e tlameletsoe ho sebopeho sa data sa ClickHouse. Haeba ho joalo, joale e le khetho ea ho qetela u ka nka bekapo ebe u e kenya ho MySQL bakeng sa ho hlaphoheloa.

Bakeng sa linyeoe tse tsoetseng pele, ClickHouse e na le bokhoni bo hahelletsoeng ba ho etsa setšoantšo sa likarolo tsa sistimi ea lehae. Karolo ena e fumaneha joalo ka kopo fetola karohano ea leqhoa ea tafole. Kapa ka mokhoa o bonolo fetola leqhoa la tafole - ena ke setšoantšo sa tafole eohle.

Setšoantšo se tla etsoa ka mokhoa o tsitsitseng bakeng sa tafole e le 'ngoe holim'a shard e le' ngoe, ke hore, ho ke ke ha khoneha ho etsa setšoantšo se tsitsitseng sa sehlopha sohle ka tsela ena. Empa bakeng sa mesebetsi e mengata ha ho na tlhoko e joalo, 'me ho lekane ho etsa kopo ho shard e' ngoe le e 'ngoe le ho fumana setšoantšo se ts'oanang. E bōpiloe ka mokhoa oa li-hardlinks 'me ka hona ha e nke sebaka se eketsehileng. Ka mor'a moo, u kopitsa setšoantšo sena ho seva sa "backup" kapa polokelong eo u e sebelisang bakeng sa li-backups.

Ho khutlisetsa backup e joalo ho bonolo haholo. Ntlha ea pele, etsa litafole u sebelisa litlhaloso tsa tafole tse teng. Ka mor'a moo, kopitsa linepe tse bolokiloeng tsa likarolo ho Directory-Detached bakeng sa litafole tsena 'me u tsamaise potso. hokela karohano. Tharollo ena e loketse haholo bakeng sa meqolo e tebileng ea data.

Ka linako tse ling u hloka ntho e pholileng le ho feta - maemong ao u nang le li-terabyte tse mashome kapa tse makholo ho seva ka seng le li-server tse makholo. Ho na le tharollo mona eo ke e nkileng ho basebetsi-'moho le 'na ho tloha Yandex.Metrica. Ke ne nke ke ka e khothaletsa ho motho e mong le e mong - e bale 'me u iketsetse qeto ea hore na e loketse kapa che.

Pele o hloka ho theha li-server tse 'maloa tse nang le lishelefo tse kholo tsa disk. Ka mor'a moo, ho li-server tsena, phahamisa li-server tse 'maloa tsa ClickHouse' me u li hlophise e le hore li sebetse e le setšoantšo se seng sa li-shards tse tšoanang. Ebe u sebelisa sistimi ea faele kapa sesebelisoa ho li-server tsena tse u lumellang ho etsa linepe. Ho na le likhetho tse peli mona. Khetho ea pele ke li-snapshots tsa LVM, khetho ea bobeli ke ZFS ho Linux.

Ka mor'a moo, letsatsi le leng le le leng u hloka ho etsa setšoantšo, se tla bua leshano 'me se nke sebaka se itseng. Ka tlhaho, haeba data e fetoha, sebaka sa sebaka se tla eketseha ka nako. Senepe sena se ka nkuoa ka nako efe kapa efe mme data ea khutlisoa, tharollo e makatsang joalo. Hape, re boetse re hloka ho fokotsa likopi tsena ho config hore ba se ke ba leka ho ba baetapele.

Na ho tla khonahala ho hlophisa sekheo se laoloang sa likopi ka har'a shafts?

Selemong sena u rera ho etsa shafts ho ClickHouse. Na ho tla khonahala ho hlophisa lag e laoloang ea likopi ho tsona? Re ka rata ho e sebelisa ho itšireletsa maemong a mabe ka liphetoho le liphetoho tse ling.

Na hoa khoneha ho etsa mofuta o mong oa ho khutlisa bakeng sa li-alters? Ka mohlala, ka shaft e teng, nka 'me u re ho fihlela motsotso ona u sebelisa liphetoho,' me ho tloha motsotsong ona u khaotsa ho sebelisa liphetoho?

Haeba taelo e ile ea fihla sehlopheng sa rona 'me ea e senya, joale re na le replica e nang le maemo e nang le nako ea hora, moo re ka reng re e sebelise hona joale, empa re ke ke ra sebelisa liphetoho ho eona metsotso e leshome e fetileng?

Taba ea pele, mabapi le lag e laoloang ea li-replicas. Ho bile le kopo e joalo ho tsoa ho basebelisi, mme re thehile bothata ho Github ka kopo: "Haeba motho a hloka sena, joalo ka sona, beha pelo." Ha ho motho ea ileng a tlisa, 'me bothata bo ile ba koaloa. Leha ho le joalo, u se u ka fumana monyetla ona ka ho theha ClickHouse. Ke 'nete, ho qala feela ho tloha ho 20.3.

ClickHouse e lula e kopanya data ka morao. Ha ho kopanngoa ho phethiloe, sete e itseng ea likotoana tsa data e nkeloa sebaka ke sengoathoana se seholoanyane. Ka nako e ts'oanang, likarolo tsa data tse neng li le teng pele li tsoela pele ho lula ho disk ka nako e itseng.

Ntlha ea pele, li tsoela pele ho bolokoa hafeela ho na le lipotso tse khethiloeng tse li sebelisang, e le ho fana ka ts'ebetso e sa thibeleng. Lipotso tse khethiloeng li baloa habonolo ho tsoa likotong tsa khale.

Taba ea bobeli, ho boetse ho na le moeli oa nako - likotoana tsa khale tsa data li lutse ho disk metsotso e robeli. Metsotso ena e robeli e ka fetoloa letsatsi le le leng. Sena se tla lefella sebaka sa disk: ho itšetlehile ka phallo ea data, ho bonahala eka letsatsing la ho qetela data e ke ke ea e-ba habeli feela, e ka ba makhetlo a mahlano ho feta. Empa haeba ho na le bothata bo tebileng, o ka emisa seva sa ClickHouse mme oa hlophisa tsohle.

Joale ho hlaha potso ea hore na sena se sireletsa joang khahlanong le liphetoho. Ho bohlokoa ho shebisisa mona, hobane liphetolelong tsa khale tsa ClickHouse, alter e sebelitse ka tsela eo e ileng ea fetola likotoana ka kotloloho. Ho na le sekhechana sa data se nang le lifaele tse ling, 'me re etsa mohlala, fetola karolo ea lerotholi. Ebe karolo ena e tlosoa ka 'mele likarolong tsohle.

Empa ho qala ka mofuta oa 20.3, mochini oa ho fetola o fetotsoe ka botlalo, 'me joale likarolo tsa data li lula li sa fetohe. Ha li fetohe ho hang - li-alters joale li sebetsa ka mokhoa o ts'oanang le oa ho kopanya. Ho e-na le ho fetola sengoathoana hang-hang, re theha e ncha. Ka har'a chunk e ncha, lifaele tse sa kang tsa fetoha li fetoha li-hardlinks, 'me haeba re hlakola kholomo, e tla be e le sieo chunk e ncha. Sekhechana sa khale se tla hlakoloa ka ho sa feleng ka mor'a metsotso e robeli, 'me mona u ka fetola litlhophiso tse boletsoeng ka holimo.

Hoa tšoana le ho liphetoho tse kang liphetoho. Ha u etsa joalo fetola hlakola kapa fetola ntlafatso, ha e fetole sengoathoana, empa e theha e ncha. Ebe o hlakola ea khale.

Ho thoe'ng haeba sebopeho sa tafole se fetohile?

Mokhoa oa ho khutlisa backup e entsoeng ka morero oa khale? 'Me potso ea bobeli e mabapi le nyeoe ea li-snapshots le lisebelisoa tsa tsamaiso ea faele. Na Btrfs e ntle mona sebakeng sa ZFS ho Linux LVM?

Haeba u etsa joalo hokela karohano likarolo tse nang le sebopeho se fapaneng, ebe ClickHouse e tla u joetsa hore sena ha se khonehe. Ena ke tharollo. Ea pele ke ho theha tafole ea nakoana ea mofuta oa MergeTree ka sebopeho sa khale, hokela data moo u sebelisa attach, 'me u etse potso ea phetoho. Ebe o ka kopitsa kapa oa fetisetsa data ena mme oa hokela hape, kapa oa sebelisa kopo fetola karohano ea ho tsamaisa tafole.

Joale potso ea bobeli ke hore na Btrfs e ka sebelisoa. Ho qala, haeba u na le LVM, joale li-snapshots tsa LVM li lekane, mme sistimi ea faele e ka ba ext4, ha ho na taba. Ka Btrts, ntho e 'ngoe le e' ngoe e itšetlehile ka phihlelo ea hau ea ho e sebelisa. Ena ke sistimi e holileng ea lifaele, empa ho ntse ho na le lipelaelo mabapi le hore na tsohle li tla sebetsa joang maemong a itseng. Ke ne nke ke ka khothaletsa ho sebelisa sena ntle le haeba o na le Btrfs tlhahiso.

Mekhoa e metle ea hajoale ea ho arolelana data bocha ke efe?

Taba ea ho arola bocha e rarahane ebile e na le likarolo tse ngata. Ho na le likarabo tse 'maloa tse ka khonehang mona. U ka tloha ka lehlakoreng le leng 'me u re sena - ClickHouse ha e na sebopeho sa ho arolelana bocha. Empa ke tšaba hore karabo ena e ke ke ea tšoanela mang kapa mang. Ka hona, o ka tloha ka lehlakoreng le leng mme o re ClickHouse e na le mekhoa e mengata ea ho arolelana data hape.

Haeba sehlopha se felloa ke sebaka kapa se sa khone ho sebetsana le mojaro, o eketsa li-server tse ncha. Empa li-server tsena ha li na letho ka ho sa feleng, ha ho na data ho tsona, ha ho na mojaro. U hloka ho hlophisa bocha data e le hore e ka phatlalla ka ho lekana ho sehlopha se secha, se seholoanyane.

Tsela ea pele eo sena se ka etsoang ka eona ke ho kopitsa karolo ea likarolo ho li-server tse ncha ka kopo alter table fetch partition. Ka mohlala, u ne u e-na le likarolo ka khoeli, 'me u nka khoeli ea pele ea 2017 ebe u e kopitsa ho seva se secha, ebe u kopitsa khoeli ea boraro ho seva se seng se secha. 'Me u etse sena ho fihlela e e-ba ho feta kapa ho fokotseha.

Phetisetso e ka etsoa feela bakeng sa li-partitions tse sa fetoheng nakong ea ho rekota. Bakeng sa li-partitions tse ncha, ho rekota ho tla tlameha ho emisoa, hobane phetisetso ea bona ha se athomo. Ho seng joalo, u tla qetella u e-na le likopi kapa likheo ho data. Leha ho le joalo, mokhoa ona oa sebetsa ebile o sebetsa ka katleho. Li-partitions tse hatelitsoeng tse itokiselitseng li fetisoa holim'a marang-rang, ke hore, data ha e hatellehe kapa e kentsoe hape.

Mokhoa ona o na le drawback e le 'ngoe,' me ho itšetlehile ka morero oa ho sharding, hore na u itlamme ho morero ona oa sharding, ke senotlolo sefe sa sharding seo u neng u e-na le sona. Mohlala oa hau bakeng sa nyeoe ea metrics, senotlolo sa sharding ke hash ea tsela. Ha u khetha tafole e abetsoeng, e ea ho li-shards tsohle ka har'a sehlopha ka nako e le 'ngoe ebe e nka data ho tloha moo.

Sena se bolela hore ha e le hantle ha ho na taba ho uena hore na data e qetelletse e le ho eng. Ntho e ka sehloohong ke hore data e tseleng e le 'ngoe e fella ka shard e le' ngoe, empa ke efe eo e seng ea bohlokoa. Tabeng ena, ho fetisa li-partitions tse lokiselitsoeng ho nepahetse, hobane ka lipotso tse khethiloeng u tla boela u fumane lintlha tse feletseng - ebang ke pele u arola bocha kapa ka morao, morero ha o na taba.

Empa ho na le linyeoe tse rarahaneng haholoanyane. Haeba boemong ba logic ea kopo u itšetlehile ka morero o khethehileng oa ho sharding, hore mofani enoa o teng sebakeng se joalo le se joalo, 'me kopo e ka romeloa ka ho toba moo, eseng tafoleng ea Distributed. Kapa o sebelisa mofuta oa morao-rao oa ClickHouse mme o nolofalitse tlhophiso ntlafatsa ho tlola likotoana tse sa sebelisoeng. Tabeng ena, nakong ea potso e khethiloeng, polelo ea moo karolo e tla hlahlojoa 'me e tla baloa hore na ke li-shards life tse lokelang ho sebelisoa ho ea ka morero oa sharding. Sena se sebetsa ha feela data e arotsoe hantle ho latela morero ona oa sharding. Haeba u li hlophisitse bocha ka letsoho, mangolo a ka fetoha.

Kahoo ena ke mokhoa oa pele. 'Me ke emetse karabo ea hau, hore na mokhoa o loketse, kapa re tsoele pele.

Vladimir Kolobaev, mookameli oa tsamaiso ea Avito: Alexey, mokhoa oo u o boletseng ha o sebetse hantle ha o hloka ho jala mojaro, ho kenyelletsa le ho bala. Re ka nka karohano e leng khoeli le khoeli mme re ka nka khoeli e fetileng ho ea sebakeng se seng, empa ha kopo e fihla bakeng sa data ena, re tla e kenya feela. Empa re ka rata ho kenya sehlopha kaofela, hobane ho seng joalo, ka nako e itseng mojaro oohle oa ho bala o tla sebetsoa ka likotoana tse peli.

Alexey Milovidov: Karabo mona ea makatsa - e, e mpe, empa e ka sebetsa. Ke tla hlalosa hantle hore na joang. Ke habohlokoa ho sheba boemo ba mojaro bo tlang ka morao ho data ea hau. Haeba sena ke data ea ho beha leihlo, joale re ka re boholo ba likopo ke tsa data e ncha.

U kentse li-server tse ncha, u falletse likarolo tsa khale, empa hape u fetotse mokhoa oo data e ncha e rekotiloeng ka eona. 'Me data e ncha e tla phatlalatsoa ho pholletsa le sehlopha. Kahoo, kamora metsotso e mehlano feela, likopo tsa metsotso e mehlano ea ho qetela li tla kenya sehlopha ka ho lekana; kamora letsatsi, likopo tsa lihora tse XNUMX li tla kenya sehlopha ka ho lekana. 'Me likopo tsa khoeli e fetileng, ka bomalimabe, li tla ea feela karolong ea li-server tsa lihlopha.

Empa hangata u ke ke ua ba le likopo ka ho khetheha bakeng sa Hlakola 2019. Mohlomong, haeba likopo li kena 2019, li tla ba tsa 2019 kaofela - ka nako e telele, eseng bakeng sa mefuta e meng e nyane. 'Me likopo tse joalo li tla khona ho kenya sehlopha ka ho lekana. Empa ka kakaretso, polelo ea hau e nepahetse hore ena ke tharollo ea ad hoc e sa phatlalatseng data ka ho lekana.

Ke na le lintlha tse ling tse 'maloa ho araba potso. E 'ngoe ea tsona e mabapi le mokhoa oa ho qala moralo oa ho sharding e le hore ho sharding ho ka baka bohloko bo fokolang. Sena ha se kamehla se ka khonehang.

Ka mohlala, u na le data ea ho beha leihlo. Lintlha tsa ho beha leihlo li ntse li eketseha ka mabaka a mararo. Ea pele ke ho bokella lintlha tsa histori. Ea bobeli ke kholo ea sephethephethe. 'Me ea boraro ke ho eketseha ha palo ea lintho tse tlang ho hlahlojoa. Ho na le li-microservices le metrics tse ncha tse hlokang ho bolokoa.

Ho ka etsahala hore ho tsena, keketseho e kholo ka ho fetisisa e amahanngoa le lebaka la boraro - keketseho ea tšebeliso ea ho shebella. 'Me tabeng ena, ho bohlokoa ho sheba mofuta oa mojaro, ke lipotso life tse ka sehloohong tse khethiloeng. Lipotso tsa mantlha tse khethiloeng hangata li tla ipapisa le likaroloana tse itseng tsa metrics.

Mohlala, ts'ebeliso ea CPU ho li-server tse ling ke lits'ebeletso tse ling. Hoa fumaneha hore ho na le karoloana e itseng ea linotlolo eo u fumanang data ena ka eona. 'Me kopo ka boeona ea data ena e kanna ea ba bonolo haholo mme e phetheloa ka mashome a milliseconds. E sebelisoa bakeng sa lits'ebeletso tsa ho beha leihlo le li-dashboards. Ke tšepa hore ke utloisisa sena ka nepo.

Vladimir Kolobaev: 'Nete ke hore hangata re ipiletsa ho data ea histori, kaha re bapisa boemo ba hona joale le ba histori ka nako ea sebele. 'Me ho bohlokoa ho rona ho fihlella kapele palo e kholo ea data, mme ClickHouse e etsa mosebetsi o motle ka sena.

O nepile ruri, re ba le likopo tse ngata tse baloang matsatsing a ho qetela, joalo ka sistimi efe kapa efe ea ho beha leihlo. Empa ka nako e ts'oanang, mojaro oa data ea nalane o boetse o moholo haholo. Ha e le hantle e tsoa ho sistimi ea tlhokomeliso e potolohang metsotsoana e meng le e meng e mashome a mararo ebe e re ho ClickHouse: "Mphe lintlha tsa libeke tse tšeletseng tse fetileng. Joale nkahe mofuta o itseng oa karolelano ea ho falla ho tsoa ho tsona, ’me a re bapiseng boleng ba hona joale le ba histori.”

Ke rata ho re bakeng sa likopo tse joalo tsa morao-rao re na le tafole e 'ngoe e nyane eo re bolokang matsatsi a mabeli feela a data,' me likopo tse kholo li fofela ho eona. Re romella feela lipotso tse kholo tsa nalane tafoleng e kholo e sharded.

Alexey Milovidov: Ka bomalimabe, ho bonahala eka ha e sebetse hantle bakeng sa boemo ba hau, empa ke tla u bolella tlhaloso ea merero e 'meli e mpe le e rarahaneng ea sharding e sa hlokeng ho sebelisoa, empa e sebelisoang tšebeletsong ea metsoalle ea ka.

Ho na le sehlopha se seholo se nang le liketsahalo tsa Yandex.Metrica. Liketsahalo ke chebo ea maqephe, ho tobetsa, le liphetoho. Likopo tse ngata li ea webosaeteng e itseng. U bula tšebeletso ea Yandex.Metrica, u na le sebaka sa marang-rang - avito.ru, e-ea tlalehong, 'me kopo e etsoa bakeng sa sebaka sa hau sa marang-rang.

Empa ho na le likopo tse ling - tsa tlhahlobo le tsa lefats'e - tse etsoang ke bahlahlobisisi ba kahare. Haeba ho ka etsahala, kea hlokomela hore bahlahlobisisi ba ka hare ba etsa likopo feela bakeng sa litšebeletso tsa Yandex. Leha ho le joalo, esita le litšebeletso tsa Yandex li nka karolo e kholo ea data eohle. Tsena ha se likopo tsa li-counters tse itseng, empa bakeng sa ho sefa ka bophara.

U ka hlophisa lintlha joang ka tsela eo ntho e 'ngoe le e' ngoe e sebetsang hantle bakeng sa k'hamphani e le 'ngoe, le lipotso tsa lefats'e hape? Bothata bo bong ke hore palo ea likopo ho ClickHouse bakeng sa sehlopha sa Metrics ke likete tse 'maloa motsotsoana. Ka nako e ts'oanang, seva se le seng sa ClickHouse ha se khone ho sebetsana le likōpo tse sa reng letho, mohlala, likete tse 'maloa ka motsotsoana.

Boholo ba sehlopha ke li-server tse makholo a tšeletseng. Haeba u ka hula tafole e Fanoeng holim'a sehlopha sena 'me u romela likopo tse likete tse' maloa moo, li tla mpefala le ho feta ho li romella ho seva e le 'ngoe. Ka lehlakoreng le leng, khetho ea hore data e phatlalatsoe ka mokhoa o ts'oanang, 'me re ea ho kopa ho tsoa ho li-server tsohle, hang-hang e lelekoa.

Ho na le khetho e khahlanong le diametrically. Ak'u nahane haeba re arolelana datha libakeng tsohle, 'me kopo ea sebaka se le seng e ea sebakeng se le seng. Hona joale sehlopha se tla khona ho sebetsana le likōpo tse likete tse leshome ka motsotsoana, empa ka shard e le 'ngoe kopo leha e le efe e tla sebetsa butle haholo. E ke ke ea hlola e e-ba teng ho ea ka tlhahiso. Haholo-holo haeba sena ke sebaka sa avito.ru. Nke ke ka senola sephiri haeba ke re Avito ke e 'ngoe ea libaka tse eteloang haholo ho RuNet. 'Me ho e sebetsa holim'a shard e le' ngoe e ka ba bohlanya.

Ka hona, morero oa ho sharding o entsoe ka mokhoa o bolotsana haholoanyane. Sehlopha sohle se arotsoe ka lihlopha tse ngata, tseo re li bitsang lihlopha. Sehlopha se seng le se seng se na le lishaka tse 'maloa ho isa ho tse' maloa. Ho na le lihlopha tse joalo tse mashome a mararo a metso e robong ka kakaretso.

See sohle se fihla joang? Palo ea lihlopha ha e fetohe - kaha e ne e le mashome a mararo a metso e robong lilemong tse 'maloa tse fetileng, e ntse e le joalo. Empa ka har'a e 'ngoe le e' ngoe ea tsona, butle-butle re eketsa palo ea li-shards ha re ntse re bokella lintlha. 'Me morero oa sharding ka kakaretso o tšoana le ona: lihlopha tsena li arotsoe ka liwebsaete,' me e le ho utloisisa hore na ke sebaka sefe sa marang-rang se leng sehlopheng sefe, ho sebelisoa metabase e fapaneng ho MySQL. Sebaka se le seng - sehlopheng se le seng. 'Me ka hare ho eona, sharding e etsahala ho latela li-ID tsa baeti.

Ha re rekota, re li arola ka karolo e setseng ea ID ea moeti. Empa ha o eketsa shard e ncha, leano la sharding lea fetoha; re tsoela pele ho arohana, empa ka karolo e setseng ea karohano ka nomoro e 'ngoe. Sena se bolela hore moeti a le mong o se a ntse a le ho li-server tse 'maloa,' me u ke ke ua itšetleha ka sena. Sena se etsoa feela ho netefatsa hore data e hatelloa hamolemo. 'Me ha re etsa likōpo, re ea tafoleng ea Distributed, e shebaneng le sehlopha mme e fihlella li-server tse ngata. Lena ke leano le hlokang kelello.

Empa taba ea ka e tla be e sa phethahala ha ke sa re re lahlile morero ona. Lenaneong le lecha, re fetotse ntho e 'ngoe le e' ngoe 'me ra kopitsa lintlha tsohle re sebelisa Clickhouse-copier.

Lenaneong le lecha, libaka tsohle li arotsoe ka lihlopha tse peli - tse kholo le tse nyenyane. Ha ke tsebe hore na monyako o khethiloe joang, empa phello e bile hore libaka tse kholo li ngotsoe sehlopheng se le seng, moo ho nang le li-shards tse 120 tse nang le likopi tse tharo ka 'ngoe - ke hore, li-server tse 360. 'Me morero oa sharding o joalo hoo kopo leha e le efe e eang ho li-shards tsohle hang-hang. Haeba joale u bula leqephe leha e le lefe la tlaleho bakeng sa avito.ru ho Yandex.Metrica, kopo e tla ea ho li-server tse 120. Ho na le libaka tse 'maloa tse kholo ho RuNet. 'Me likōpo ha li sekete ka motsotsoana, empa esita le ka tlase ho lekholo. Tsena tsohle li hlafunoa ka khutso ke Tafole ea Distributed, eo e 'ngoe le e' ngoe ea tsona e sebetsanang le li-server tse 120.

'Me sehlopha sa bobeli ke sa libaka tse nyenyane. Mona ke leano la ho sharding le ipapisitseng le ID ea sebaka, 'me kopo e' ngoe le e 'ngoe e ea ho shard e le' ngoe hantle.

ClickHouse e na le sesebelisoa sa Clickhouse-copier. O ka mpolella ka eena?

Ke tla bolela hang-hang hore tharollo ena e thata haholoanyane ebile e batla e sa hlahise litholoana. Molemo ke hore e senya data ka ho feletseng ho latela mohlala oo u o hlalosang. Empa drawback ea utility ke hore ha e shard ho hang. E kopitsa data ho tloha ho schema ea sehlopha ho ea ho schema se seng sa sehlopha.

Sena se bolela hore e le hore e sebetse o tlameha ho ba le lihlopha tse peli. Li ka fumaneha ho li-server tse tšoanang, empa, leha ho le joalo, data e ke ke ea sisinyeha ka ho eketseha, empa e tla kopitsoa.

Ka mohlala, ho ne ho e-na le li-server tse 'nè, hona joale li se li le robeli. U theha tafole e ncha e abuoang ho li-server tsohle, litafole tse ncha tsa lehae le ho qala clickhouse-copier, ho bonts'a ho eona morero oa mosebetsi oo o lokelang ho o bala ho tloha moo, ho amohela leano le lecha la sharding le ho fetisetsa data moo. 'Me ho li-server tsa khale u tla hloka sebaka se le seng le halofo ho feta hona joale, hobane data ea khale e tlameha ho lula ho bona,' me halofo ea data e tšoanang ea khale e tla fihla holim'a bona. Haeba u nahanne esale pele hore data e hloka ho aroloa hape 'me ho na le sebaka, joale mokhoa ona o loketse.

Clickhouse-copier e sebetsa joang ka hare? E arola mosebetsi oohle hore e be sehlopha sa mesebetsi bakeng sa ho sebetsana le karolo e le 'ngoe ea tafole e le' ngoe holim'a shard e le 'ngoe. Mesebetsi ena kaofela e ka etsoa ka mokhoa o ts'oanang, 'me Clickhouse-copier e ka tsamaisoa ka mechini e fapaneng maemong a mangata, empa seo e se etsang bakeng sa karohano e le' ngoe ha se letho haese khetho ea ho kenya. Lintlha lia baloa, lia khaoloa, lia aroloa, ebe lia hatelloa hape, li ngotsoe kae-kae, ebe li hlophisoa bocha. Ena ke qeto e boima le ho feta.

U ne u e-na le ntho ea sefofane e bitsoang resharding. Ho thoe'ng ka eena?

Khale ka 2017, u ne u e-na le ntho ea sefofane e bitsoang resharding. Ho na le khetho ho ClickHouse. Joalo ka ha ke e utloisisa, ha ea ka ea qala. O ka mpolella hore na hobaneng see se etsahetse? E bonahala e le ea bohlokoa haholo.

Bothata bohle ke hore haeba ho hlokahala ho arola data hape sebakeng sa eona, ho hlokahala khokahano e rarahaneng haholo e le ho etsa sena ka atomically. Ha re qala ho sheba hore na synchronization ena e sebetsa joang, ho ile ha hlaka hore ho na le mathata a mantlha. 'Me mathata ana a motheo ha a na khopolo-taba feela, empa hang-hang a qala ho iponahatsa a le teng ka mokhoa oa ntho e ka hlalosoang habonolo - ha ho letho le sebetsang.

Na hoa khoneha ho kopanya likotoana tsohle tsa data pele u li isa ho li-disk tse liehang?

Potso mabapi le TTL ka ho falla ho ea butle khetho ea disk maemong a ho kopanya. Na ho na le tsela, ntle le ka cron, ea ho kopanya likarolo tsohle ho e le 'ngoe pele u li isa ho li-disk tse liehang?

Karabo ea potso ke hore na ka tsela e itseng u ka kopanya likotoana tsohle ho e le 'ngoe pele u li fetisetsa - che. Ha ke nahane hore sena sea hlokahala. Ha ua tlameha ho kopanya likarolo tsohle ho e le 'ngoe, empa u tšepe feela taba ea hore li tla fetisetsoa ho li-disk tse liehang ka bohona.

Re na le mekhoa e 'meli ea melao ea phetisetso. Ea pele ke ha e ntse e tlatsoa. Haeba boemo ba hajoale ba polokelo bo na le karolo e ka tlase ho karolo e itseng ea sebaka sa mahala, re khetha karolo e le 'ngoe ebe re e isa sebakeng sa polokelo butle. Kapa ho e-na le hoo, eseng butle, empa e latelang - ha u ntse u hlophisa.

Ntlha ea bobeli ke boholo. E mabapi le ho tsamaisa likotoana tse kholo. U ka fetola monyako ho ea ka sebaka sa mahala ho disk e potlakileng, 'me data e tla fetisetsoa ka bo eona.

Joang ho fallela liphetolelong tse ncha tsa ClickHouse haeba ho se na mokhoa oa ho hlahloba ho lumellana esale pele?

Sehlooho sena se tšohloa khafetsa puisanong ea thelekramo ea ClickHouse ho ela hloko liphetolelo tse fapaneng, 'me ho ntse ho le joalo. Ho bolokehile hakae ho ntlafatsa ho tloha ho 19.11 ho ea ho 19.16 le, mohlala, ho tloha 19.16 ho ea 20.3. Ke mokhoa ofe o motle oa ho fallela liphetolelong tse ncha ntle le ho khona ho hlahloba tšebelisano 'moho ka lebokoseng la lehlabathe esale pele?

Ho na le melao e 'maloa ea "khauta" mona. Ea pele - bala changelog. E kholo, empa ho na le lirapa tse arohaneng mabapi le liphetoho tsa morao-rao tse sa lumellaneng. U se ke ua tšoara lintlha tsena e le folakha e khubelu. Hangata tsena ke ho se lumellane ho fokolang ho kenyelletsang ts'ebetso e itseng eo mohlomong u sa e sebeliseng.

Taba ea bobeli, haeba ho se na mokhoa oa ho hlahloba ho lumellana ka lebokoseng la lehlabathe, 'me u batla ho ntlafatsa hang-hang tlhahiso, tlhahiso ke hore ha ho hlokahale hore u etse sena. Qala ka ho theha sandbox le teko. Haeba ho se na tikoloho ea liteko, joale mohlomong ha u na k'hamphani e kholo haholo, ho bolelang hore u ka kopitsa tse ling tsa data ho laptop ea hau mme u netefatse hore ntho e 'ngoe le e' ngoe e sebetsa ka nepo ho eona. U ka ba ua phahamisa likopi tse 'maloa sebakeng sa heno mochining oa hau. Kapa u ka nka mofuta o mocha kae-kae haufi le moo 'me u kenye lintlha tse ling moo - ke hore, theha tikoloho e ntlafalitsoeng ea liteko.

Molao o mong ke hore o se ke oa nchafatsa beke kamora ho lokolloa ha mofuta ka lebaka la ho ts'oara likokoana-hloko tlhahisong le litokiso tse latelang tse potlakileng. Ha re boneng palo ea liphetolelo tsa ClickHouse hore re se ke ra ferekana.

Ho na le mofuta oa 20.3.4. Nomoro ea 20 e bontša selemo sa tlhahiso - 2020. Ho ea ka pono ea se ka hare, sena ha se tsotellehe, kahoo re ke ke ra se ela hloko. E latelang - 20.3. Re eketsa palo ea bobeli - tabeng ena 3 - nako le nako ha re lokolla tokollo ka ts'ebetso e ncha. Haeba re batla ho kenyelletsa karolo e itseng ho ClickHouse, re tlameha ho eketsa palo ena. Ke hore, ka mofuta oa 20.4 ClickHouse e tla sebetsa hantle le ho feta. Nomoro ea boraro ke 20.3.4. Mona 4 ke palo ea li-patch tse hlahisoang moo re sa kang ra eketsa likarolo tse ncha, empa ra lokisa liphoso tse ling. Mme 4 e bolela hore re e entse ka makgetlo a mane.

U se ke ua nahana hore sena ke ntho e mpe. Hangata mosebelisi a ka kenya mofuta oa morao-rao mme o tla sebetsa ntle le mathata leha e le afe ka nako ea ho qetela ka selemo. Empa ak'u nahane hore ts'ebetsong e 'ngoe ea ho sebetsana le li-bitmaps, tse ileng tsa eketsoa ke metsoalle ea rona ea Chaena, seva sea senyeha ha se fetisa likhang tse fosahetseng. Re na le boikarabello ba ho lokisa taba ena. Re tla lokolla mofuta o mocha oa patch mme ClickHouse e tla tsitsa le ho feta.

Haeba u na le ClickHouse e sebetsang tlhahiso, 'me phetolelo e ncha ea ClickHouse e tsoa le likarolo tse ling - mohlala, 20.4.1 ke eona ea pele, u se ke ua potlakela ho e kenya tlhahiso letsatsing la pele. Ke hobane'ng ha e hlokahala ho hang? Haeba u se u sa sebelise ClickHouse, joale u ka e kenya, 'me mohlomong tsohle li tla loka. Empa haeba ClickHouse e se e ntse e sebetsa ka mokhoa o tsitsitseng, joale beha leihlo ho li-patches le liapdeite ho bona hore na re lokisa mathata afe.

Kirill Shvakov: Ke kopa ho kenyelletsa hanyane mabapi le libaka tsa liteko. E mong le e mong o tšaba libaka tsa liteko haholo 'me ka mabaka a itseng a lumela hore haeba u na le sehlopha se seholo haholo sa ClickHouse, joale tikoloho ea teko ha ea lokela ho ba tlase kapa bonyane ka makhetlo a leshome. Ha ho joalo ho hang.

Nka u bolella ho tsoa mohlaleng oa ka. Ke na le morero, 'me ho na le ClickHouse. Tikoloho ea rona ea liteko ke ea hae feela - ona ke mochini o monyane o fumanehang Hetzner bakeng sa li-euro tse mashome a mabeli, moo ntho e 'ngoe le e' ngoe e sebelisoang. Ho etsa sena, re na le othomathike e felletseng ho Ansible, ka hona, ha e le hantle, ha ho etse phapang moo re ka eang teng - ho li-server tsa Hardware kapa ho sebelisa mechini feela.

Ho ka etsoa’ng? Ho ka ba monate ho fana ka mohlala ho litokomane tsa ClickHouse mabapi le mokhoa oa ho kenya sehlopha se senyenyane ka tlung ea hau - ho Docker, LXC, mohlomong u thehe buka ea ho bapala ea Ansible, hobane batho ba fapaneng ba na le li-deployments tse fapaneng. Sena se tla nolofatsa haholo. Ha o nka le ho tsamaisa sehlopha ka metsotso e mehlano, ho bonolo haholo ho leka ho fumana ho hong. Sena se bonolo haholo, hobane ho kenella ka har'a mofuta oa tlhahiso eo o sa kang oa e leka ke tsela e sa feteng letho. Ka linako tse ling e ea sebetsa 'me ka linako tse ling ha e sebetse. 'Me ka hona, tšepo ea katleho e mpe.

Maxim Kotyakov, moenjiniere ea ka sehloohong Avito: Ke tla eketsa hanyane ka libaka tsa liteko ho tsoa letotong la mathata a tobaneng le lik'hamphani tse kholo. Re na le sehlopha sa kamohelo e felletseng ea ClickHouse; ho latela merero le litlhophiso tsa data, ke kopi e nepahetseng ea se hlahisoang. Sehlopha sena se kentsoe ka har'a lijana tse nang le bonyane ba lisebelisoa. Re ngola liperesente tse itseng tsa data ea tlhahiso moo, ka lehlohonolo hoa khoneha ho pheta-pheta molatsoana oa Kafka. Ntho e 'ngoe le e' ngoe e teng e hokahantsoe le ho lekanngoa - ka bobeli ho ea ka bokhoni le phallo, 'me, ka khopolo, lintho tse ling kaofela li lekana, li lokela ho itšoara joaloka tlhahiso ho ea ka metrics. Ntho e 'ngoe le e 'ngoe e ka 'nang ea phatloha e qala ka ho phuthoa holim'a sethala sena ebe se siuoa moo matsatsi a' maloa ho fihlela se lokile. Empa ka tlhaho, tharollo ena e theko e boima, e thata ebile e na le litšenyehelo tsa tšehetso tse se nang zero.

Alexey Milovidov: Ke tla u bolella hore na tikoloho ea teko ea metsoalle ea rona e tsoang ho Yandex.Metrica e joang. Sehlopha se seng se ne se e-na le li-server tse 600 tse sa tloaelehang, se seng se na le 360, 'me ho na le lihlopha tsa boraro le tse' maloa. Sebaka sa teko bakeng sa e 'ngoe ea tsona ke li-shards tse peli feela tse nang le likopi tse peli ho e' ngoe le e 'ngoe. Ke hobane'ng ha likotoana tse peli? E le hore ha u mong. Hape ho lokela ho ba le li-replicas. Chelete e itseng feela e fokolang eo u ka e khonang.

Tikoloho ena ea liteko e u lumella ho lekola hore na lipotso tsa hau lia sebetsa le hore na ho na le ntho e kholo e robehileng. Empa hangata mathata a hlaha ka mokhoa o fapaneng ka ho feletseng, ha ntho e 'ngoe le e' ngoe e sebetsa, empa ho na le liphetoho tse nyenyane mojaro.

E-re ke u fe mohlala. Re nkile qeto ea ho kenya mofuta o mocha oa ClickHouse. E behiloe tikolohong ea liteko, liteko tse ikemetseng li phethiloe ho Yandex.Metrica ka boeona, e bapisang lintlha tsa phetolelo ea khale le e ncha, e tsamaisang pipeline eohle. 'Me ho hlakile, liteko tse tala tsa CI ea rona. Ho seng joalo re ka be re sa ka ra etsa tlhahiso ea mofuta ona.

Tsohle di lokile. Re qala ho kena tlhahisong. Ke fumana molaetsa oa hore mojaro oa li-graph o eketsehile ka makhetlo a 'maloa. Re khutlisa phetolelo. Ke sheba kerafo 'me ke bona: mojaro o hlile o eketsehile ka makhetlo a' maloa nakong ea ho phatlalatsoa, ​​​​'me o fokotsehile morao ha ba qeta. Eaba re qala ho khutlisa phetolelo. Mme morwalo o ne wa oketsega ka tsela e e tshwanang mme wa boela morago ka tsela e e tshwanang. Kahoo sephetho ke sena: mojaro o eketsehile ka lebaka la moralo, ha ho letho le makatsang.

Joale ho ne ho le thata ho kholisa basebetsi mmoho ho kenya mofuta o mocha. Ke ile ka re: “Ho lokile, iphumanele. Boloka menoana ea hau, tsohle li tla sebetsa. Hona joale mojaro oa li-graph o eketsehile, empa ntho e 'ngoe le e' ngoe e hantle. Ema moo." Ka kakaretso, re entse sena, 'me ke eona - phetolelo e ile ea lokolloa bakeng sa tlhahiso. Empa hoo e ka bang ka moralo o mong le o mong mathata a tšoanang a hlaha.

Kill query e tlameha ho bolaea lipotso, empa ha ho joalo. Hobaneng?

Mosebelisi, mofuta o mong oa mohlahlobi, o ile a tla ho 'na mme a etsa kopo e ileng ea beha sehlopha sa ka sa ClickHouse. Li-node tse ling kapa sehlopha kaofela, ho ipapisitse le hore na kopo e tsamaisitsoe ho eng. Kea bona hore lisebelisoa tsohle tsa CPU ho seva sena li ka raka, ntho e 'ngoe le e' ngoe e khubelu. Ka nako e ts'oanang, ClickHouse ka boeona e arabela likopo. 'Me ke ngola: "Ke kopa u mpontše, lethathamo la ts'ebetso, hore na ke kopo efe e hlahisitseng bohlanya bona."

Ke fumana kopo ena mme ke e ngolla polao. 'Me ke bona hore ha ho letho le etsahalang. Seva ea ka e setulong, ClickHouse ebe e mpha litaelo, e bonts'a hore seva se ntse se phela, 'me tsohle li ntle. Empa ke na le nyenyefatso likopong tsohle tsa basebelisi, nyenyefatso e qala ka lirekoto ho ClickHouse, mme potso ea ka ea polao ha e sebetse. Hobaneng? Ke ne ke nahana hore potso ea polao e ne e lokela ho bolaea lipotso, empa ha ho joalo.

Joale ho tla ba le karabo e makatsang. Taba ke hore polao ea potso ha e bolaee lipotso.

Kill query e hlahloba lebokose le lenyenyane le bitsoang "Ke batla hore potso ena e bolaoe." 'Me kopo ka boeona e sheba folakha ena ha e sebetsana le boloko bo bong le bo bong. Haeba e setiloe, kopo e khaotsa ho sebetsa. Hoa etsahala hore ha ho motho ea bolaeang kopo, eena ka boeena o tlameha ho hlahloba ntho e 'ngoe le e' ngoe ebe o emisa. 'Me sena se lokela ho sebetsa maemong ohle moo kopo e leng boemong ba ho sebetsa li-blocks tsa data. E tla sebetsana le block e latelang ea data, e hlahlobe folakha, ebe e emisa.

Sena ha se sebetse maemong ao kopo e koetsoeng ts'ebetsong e itseng. Ke 'nete, mohlomong sena ha se nyeoe ea hau, hobane, ho ea ka uena, e sebelisa lithane tsa lisebelisoa tsa seva. Ho ka etsahala hore sena ha se sebetse tabeng ea ho hlopha ka ntle le ka lintlha tse ling. Empa ka kakaretso sena ha sea lokela ho etsahala, ke kokoanyana. 'Me ntho feela eo nka e khothaletsang ke ho ntlafatsa ClickHouse.

Joang ho bala nako ea ho arabela tlas'a mojaro oa ho bala?

Ho na le tafole e bolokang lintho tse kopaneng - li-counters tse fapaneng. Palo ea mela e ka ba limilione tse lekholo. Na hoa khoneha ho itšetleha ka nako e ka lebelloang ea karabo haeba u tšela 1K RPS bakeng sa lintho tsa 1K?

Ho latela moelelo oa taba, re bua ka mojaro oa ho bala, hobane ha ho na mathata a ho ngola - esita le sekete, esita le likete tse lekholo, 'me ka linako tse ling mela e limilione tse' maloa e ka kenngoa.

Likopo tsa ho bala li fapane haholo. Ho khetho ea 1, ClickHouse e ka etsa likopo tse ka bang likete tse mashome motsotsoana, kahoo le likopo tsa senotlolo se le seng li tla se li hloka lisebelisoa tse itseng. 'Me lipotso tse joalo tsa lintlha li tla ba thata ho feta ho li-database tse ling tsa bohlokoa, hobane bakeng sa palo e' ngoe le e 'ngoe ea ho bala hoa hlokahala ho bala boloko ba data ka index. Lenane la rona ha le buelle rekoto ka 'ngoe, empa letoto ka leng. Ke hore, o tla tlameha ho bala lethathamo lohle - ena ke mela e 8192 ka ho sa feleng. 'Me u tla tlameha ho theola sekhahla sa data se hatisitsoeng ho tloha ho 64 KB ho isa ho 1 MB. Ka tloaelo, lipotso tse lebisitsoeng ho tsona li nka metsotsoana e seng mekae ho phethoa. Empa ena ke khetho e bonolo ka ho fetisisa.

Ha re lekeng lipalo tse bonolo. Ha o atisa milliseconds ka sekete, o fumana metsotsoana e seng mekae. Ho joalokaha eka ha ho khonehe ho boloka likopo tse sekete motsotsoana, empa ha e le hantle hoa khoneha, hobane re na le li-processor cores tse 'maloa. Ka hona, ha e le hantle, ClickHouse ka linako tse ling e ka tšoara 1000 RPS, empa bakeng sa likopo tse khutšoane, tse lebisitsoeng ka ho khetheha.

Haeba o hloka ho lekanya sehlopha sa ClickHouse ka palo ea likopo tse bonolo, joale ke khothaletsa ntho e bonolo ka ho fetisisa - eketsa palo ea likopi le ho romella likopo ho replica e sa lebelloang. Haeba replica e le 'ngoe e tšoara likōpo tse makholo a mahlano ka motsotsoana, e leng ntho ea sebele ka ho feletseng, joale likopi tse tharo li tla sebetsana le sekete le halofo.

Ka linako tse ling, ehlile, o ka hlophisa ClickHouse bakeng sa palo e kholo ea lintlha tse baloang. Ho hlokahala eng bakeng sa see? Ea pele ke ho fokotsa granularity ea index. Tabeng ena, ha ea lokela ho fokotsoa ho e le 'ngoe, empa motheong oa hore palo ea litlhaloso ho index e tla ba limilione tse' maloa kapa mashome a limilione ka seva. Haeba tafole e na le mela e limilione tse lekholo, joale granularity e ka behoa ho 64.

O ka fokotsa boholo ba block e hatelitsoeng. Ho na le litlhophiso tsa sena min compress block size, max compress block size. Li ka fokotsoa, ​​tsa tlatsoa hape ka data, ebe lipotso tse lebisitsoeng li tla potlaka. Empa leha ho le joalo, ClickHouse ha se database ea bohlokoa ba bohlokoa. Palo e kholo ea likopo tse nyane ke antipattern ea mojaro.

Kirill Shvakov: Ke tla fana ka keletso haeba ho na le litlaleho tse tloaelehileng moo. Ona ke boemo bo tloaelehileng ha ClickHouse e boloka mofuta o itseng oa counter. Ke na le mosebelisi, o tsoa naheng e 'ngoe le e joalo, le karolo ea boraro,' me ke hloka ho eketsa ho hong ka ho eketseha. Nka MySQL, etsa senotlolo se ikhethileng - ho MySQL ke senotlolo, 'me ho PostgreSQL ke likhohlano - 'me u kenye letšoao la ho kopanya. Sena se tla sebetsa hantle haholo.

Ha o sena lintlha tse ngata, ha ho na ntlha e ngata ea ho sebelisa ClickHouse. Ho na le li-database tse tloaelehileng 'me li etsa sena hantle.

Nka fetola eng ho ClickHouse e le hore lintlha tse ling li ka har'a cache?

A re nahaneng ka boemo - li-server li na le 256 GB ea RAM, ts'ebetsong ea letsatsi le letsatsi ClickHouse e nka hoo e ka bang 60-80 GB, tlhōrōng - ho fihlela ho 130. Ke eng e ka nolofalloang le ho ts'oaroa e le hore boitsebiso bo bongata bo le ka har'a cache 'me, ho latela, ho na le maeto a fokolang ho disk?

Ka tloaelo, cache ea leqephe la sistimi e sebetsang e etsa mosebetsi o motle ho sena. Haeba u bula holimo feela, sheba moo cached kapa mahala - e boetse e bolela hore na ke bokae - joale u tla hlokomela hore memori eohle ea mahala e sebelisoa bakeng sa cache. 'Me ha u bala data ena, e ke ke ea baloa eseng ho disk, empa ho tsoa ho RAM. Ka nako e ts'oanang, nka bolela hore cache e sebelisoa ka katleho hobane ke data e hatelitsoeng e bolokiloeng.

Leha ho le joalo, haeba u batla ho potlakisa lipotso tse ling tse bonolo le ho feta, hoa khoneha ho nolofalletsa cache ho data e fokolisitsoeng ka hare ho ClickHouse. E bitsoa cache e sa hatelloang. Ka faeleng ea config.xml ea tlhophiso, beha boholo ba cache e sa tsitsang ho boleng boo u bo hlokang - ke khothaletsa ho feta halofo ea RAM ea mahala, hobane tse ling kaofela li tla kena tlas'a cache ea leqephe.

Ho feta moo, ho na le litlhophiso tse peli tsa boemo ba kopo. Setulo sa pele - sebelisa cache e sa hatelloang - e kenyelletsa tšebeliso ea eona. E kgothaletswa ho e nolofalletsa bakeng sa likopo tsohle, ntle le tse boima, tse ka khonang ho bala lintlha tsohle le ho hlakola cache. 'Me tlhophiso ea bobeli ke ntho e kang palo e kholo ea mela e ka sebelisoang cache. E fokotsa lipotso tse kholo ka bo eona hore li fete cache.

Nka hlophisa storage_configuration joang bakeng sa polokelo ho RAM?

Litokomaneng tse ncha tsa ClickHouse ke balile karolo e amanang le eona ka polokelo ya data. Tlhaloso e na le mohlala o nang le SSD e potlakileng.

Kea ipotsa hore na ntho e tšoanang e ka hlophisoa joang ka mohopolo o chesang oa molumo. Le potso e 'ngoe hape. Khetho e sebetsa joang le mokhatlo ona oa data, na e tla bala sete eohle kapa e le 'ngoe feela e leng disk,' me na data ee e hatelloa mohopolong? Hona karolo ea prewhere e sebetsa joang le mokhatlo o joalo oa data?

Tlhophiso ena e ama polokelo ea likotoana tsa data, 'me sebopeho sa tsona ha se fetohe ka tsela efe kapa efe.
A re hlahlobeng ka hloko.

U ka hlophisa polokelo ea data ho RAM. Sohle se lokiselitsoeng disk ke tsela ea eona. U theha karohano ea tmpfs e kentsoeng tseleng e itseng tsamaisong ea faele. U hlakisa tsela ena e le tsela ea ho boloka data bakeng sa karohano e chesang ka ho fetesisa, likarolo tsa data li qala ho fihla le ho ngoloa moo, tsohle li lokile.

Empa ha ke khothaletse ho etsa sena ka lebaka la ho tšepahala ho fokolang, le hoja bonyane u na le likopi tse tharo libakeng tse fapaneng tsa data, joale hoa khoneha. Haeba ho etsahala letho, data e tla khutlisoa. Ha re nahane hore seva se ile sa tima ka tšohanyetso 'me sa buloa hape. Karohano e ile ea hlongoa hape, empa ho ne ho se letho moo. Ha seva sa ClickHouse se qala, se bona hore ha se na likotoana tsena, le hoja, ho latela metadata ea ZooKeeper, li lokela ho ba teng. O sheba hore na likopi li na le life, oa li kopa ebe oa li khoasolla. Ka tsela ena data e tla tsosolosoa.

Ka kutloisiso ena, ho boloka data ho RAM ha ho fapane haholo le ho e boloka ho disk, hobane ha data e ngotsoe ho disk, le eona e qetella e le ka har'a cache ea leqephe mme e ngotsoe hamorao. Sena se ipapisitse le khetho ea ho kenya sistimi ea faele. Empa ha ho ka etsahala, ke tla re ClickHouse ha e fsync ha e kenya.

Tabeng ena, data e ho RAM e bolokiloe ka mokhoa o ts'oanang hantle le oa disk. Potso e khethiloeng ka tsela e ts'oanang e khetha likotoana tse lokelang ho baloa, e khetha marang-rang a hlokahalang likotong, ebe oa e bala. 'Me kae kapa kae e sebetsa ka mokhoa o ts'oanang, ho sa tsotelehe hore na data e ne e le ho RAM kapa ho disk.

Low Cardinality e sebetsa ho fihla ho palo efe ea litekanyetso tse ikhethileng?

Low Cardinality e entsoe ka bohlale. E bokella didikishinari tsa data, empa ke tsa lehae. Taba ea pele, ho na le lidikishinari tse fapaneng bakeng sa sengoathoana ka seng, 'me ea bobeli, esita le ka har'a sekhechana se le seng li ka fapana molemong ka mong. Ha palo ea boleng bo ikhethileng e fihla ho palo - milione e le 'ngoe, ke nahana - buka e hlalosang mantsoe e behiloe feela ebe ho etsoa e ncha.

Karabo ke ka kakaretso: bakeng sa sebaka se seng le se seng sa lehae - e re, bakeng sa letsatsi le leng le le leng - kae-kae ho fihla ho milione ea boleng bo ikhethileng ea Low Cardinal e sebetsa. Ka mor'a moo ho tla ba le ho khutlela morao, moo ho tla sebelisoa libuka tse ngata tse fapaneng, eseng e le 'ngoe feela. E tla sebetsa hoo e ka bang ka mokhoa o ts'oanang le khoele e tloaelehileng ea likhoele, mohlomong e sa sebetse hantle, empa ho ke ke ha e-ba le tšenyo e tebileng ea ts'ebetso.

Mekhoa e metle ea ho batla tafole e nang le mela e libilione tse hlano ke efe?

Ho na le likarabo tse fapaneng. Ea pele ke ho bolela hore ClickHouse ha se enjine ea ho batla e felletseng. Ho na le litsamaiso tse khethehileng bakeng sa sena, mohlala, Elasticsearch и khafrae. Leha ho le joalo, ke ntse ke bona batho ba ntse ba re ba tloha Elasticsearch ho ClickHouse.

Ke hobane'ng ha see se etsahala? Ba hlalosa sena ka taba ea hore Elasticsearch e khaotsa ho sebetsana le mojaro ka meqolo e meng, ho qala ka kaho ea li-index. Li-index li ba boima haholo, 'me haeba u fetisetsa data ho ClickHouse, ho bonahala eka li bolokiloe ka makhetlo a mangata ka mokhoa o atlehileng haholoanyane ho latela bophahamo ba modumo. Ka nako e ts'oanang, lipotso tsa ho batla hangata li ne li se joalo hoo ho neng ho hlokahala hore ho fumanehe poleloana e itseng ho palo eohle ea data, ho nahanoa ka morpholoji, empa e fapane ka ho feletseng. Ka mohlala, fumana tse ling tsa li-byte ho li-log lihoreng tse 'maloa tse fetileng.

Tabeng ena, o theha index ho ClickHouse, tšimo ea pele e tla ba letsatsi le nako. 'Me ho khaoha ho hoholo ha data ho tla ipapisa le letsatsi. Ka har'a matsatsi a khethiloeng, e le molao, ho se ho ntse ho khoneha ho etsa lipatlisiso tse feletseng, esita le ho sebelisa mokhoa oa brute force o sebelisa joalo. Opereishene e tšoanang ho ClickHouse ke eona e sebetsang ka ho fetesisa joalo ka opereishene eo u ka e fumanang. Haeba u fumana ho hong ho betere, mpolelle.

Leha ho le joalo, joalo ka scan ninemanga. 'Me scan e feletseng e ka lieha eseng feela ho CPU, empa le ho disk. Haeba ka tšohanyetso u na le terabyte e le 'ngoe ea data ka letsatsi,' me u batla lentsoe motšehare, joale u tla tlameha ho hlahloba terabyte. 'Me mohlomong ke li-hard drive tse tloaelehileng,' me qetellong li tla kenngoa ka tsela eo u ke keng ua khona ho fumana seva sena ka SSH.

Tabeng ena, ke itokiselitse ho fana ka leqheka le leng hape le lenyenyane. Ke liteko - e kanna ea sebetsa, e kanna ea se ke ea sebetsa. ClickHouse e na le li-index tsa mongolo o felletseng ka sebopeho sa li-filters tsa trigram Bloom. Basebetsi-'moho le rona ba Arenadata ba se ba lekile li-index tsena, 'me hangata li sebetsa hantle kamoo li reriloeng kateng.

E le hore u li sebelise ka tsela e nepahetseng, u lokela ho utloisisa hantle hore na li sebetsa joang: hore na trigram Bloom filter ke eng le hore na u ka khetha boholo ba eona joang. Nka re ba tla thusa bakeng sa lipotso mabapi le lipoleloana tse ling tse sa tloaelehang, li-substrings tse fumanehang seoelo ho data. Tabeng ena, li-subranges li tla khethoa ka li-index 'me ho tla baloa lintlha tse fokolang.

Haufinyane tjena, ClickHouse e kentse mesebetsi e tsoetseng pele le ho feta bakeng sa patlo ea mongolo o felletseng. Taba ea pele, sena ke ho batla sehlopha sa li-substrings hang ka nako e le 'ngoe, ho kenyelletsa le likhetho tse sa tsotelleng, tse sa tsotelleng, tse nang le tšehetso ea UTF-8 kapa feela bakeng sa ASCII. Khetha e sebetsang ka ho fetisisa eo u e hlokang.

Batla mantsoe a mangata a tloaelehileng ho pase e le 'ngoe hape e hlahile. Ha ho hlokahale hore u ngole X joalo ka mohala o le mong kapa X joalo ka mohala o mong. U ngola hang-hang, 'me ntho e' ngoe le e 'ngoe e etsoa ka katleho kamoo ho ka khonehang.

Taba ea boraro, joale ho na le patlo e hakanyetsoang ea regexps le patlo e hakanyetsoang ea li-substrings. Haeba motho a ile a ngola lentsoe hampe, ho tla batloa lentsoe le lekanang le le leng.

Mokhoa o motle oa ho hlophisa phihlello ea ClickHouse bakeng sa palo e kholo ea basebelisi ke ofe?

Re bolelle mokhoa o motle oa ho hlophisa phihlello bakeng sa palo e kholo ea bareki le bahlahlobisisi. Mokhoa oa ho theha queue, ho beha pele lipotso tse ngata ka nako e le 'ngoe, le lisebelisoa life?

Haeba sehlopha se le seholo ka ho lekaneng, joale tharollo e ntle e ka ba ho phahamisa li-server tse ling tse peli, tse tla fetoha sebaka sa ho kena ho bahlahlobisisi. Ke hore, u se ke ua lumella bahlahlobisisi hore ba fihlele li-shards tse khethehileng sehlopheng, empa feela u thehe li-server tse peli tse se nang letho, ntle le data, 'me u lokise litokelo tsa ho fihlella ho tsona. Tabeng ena, litlhophiso tsa basebelisi bakeng sa likopo tse abuoang li fetisetsoa ho li-server tse hole. Ke hore, o lokisa ntho e 'ngoe le e' ngoe ho li-server tsena tse peli, 'me litlhophiso li na le phello ho sehlopha sohle.

Ha e le hantle, li-server tsena ha li na data, empa palo ea RAM ho tsona e bohlokoa haholo bakeng sa ho phethahatsa likōpo. Disk e ka boela ea sebelisoa bakeng sa data ea nakoana haeba ho kopanngoa ka ntle kapa ho hlophisa ka ntle ho khoneha.

Ke habohlokoa ho sheba litlhophiso tse amanang le meeli eohle e ka khonehang. Haeba joale ke ea sehlopheng sa Yandex.Metrica ke le mohlahlobi 'me ke kopa kopo khetha palo ho tloha hits, joale hang-hang ke tla fuoa mokhelo hore nke ke ka phethahatsa kopo. Boholo ba mela eo ke lumeletsoeng ho e skena ke libilione tse lekholo, 'me ka kakaretso ho na le litrilione tse mashome a mahlano tafoleng e le' ngoe sehlopheng. Ena ke moeli oa pele.

Ha re re ke tlosa moeli oa mela ebe ke botsa potso hape. Joale ke tla bona mokhelo o latelang - setting e nolofalitsoe qobella index ka letsatsi. Ha ke khone ho tlatsa potso haeba ke so hlalose letsatsi. Ha ua tlameha ho itšetleha ka bahlahlobisisi ho e hlakisa ka letsoho. Boemo bo tloaelehileng ke ha lethathamo la matsatsi le ngotsoe moo letsatsi la ketsahalo lipakeng tsa beke. Mme ba ile ba hlakisa bracket sebakeng se fosahetseng, mme ho fapana le hoo ho ile ha eba kapa - kapa URL e bapisa. Haeba ho se na moeli, e tla khasa kholumo ea URL ebe e senya lisebelisoa tse ngata.

Ntle le moo, ClickHouse e na le litlhophiso tse peli tse tlang pele. Ka bomalimabe, ke tsa khale haholo. E 'ngoe e bitsoa feela ntho ea bohlokoa ho. Haeba ntho e tlang pele ≠ 0, 'me likopo tse nang le bohlokoa bo itseng li ntse li etsoa, ​​​​empa kopo e nang le boleng bo ka tlase ho, e bolelang hore ntho e tlang pele, e ntse e etsoa, ​​joale kopo e nang le boleng bo phahameng ba ho feta, e bolelang boemo bo tlase. , e emisitsoe feela mme e ke ke ea sebetsa ho hang nakong ena.

Ena ke boemo bo sa hloekang haholo 'me ha boa lokela maemo ao sehlopha se nang le mojaro o sa khaotseng. Empa haeba u na le likopo tse khutšoane, tse phatlohileng tse bohlokoa, 'me sehlopha se sa sebetse hangata, seta sena se loketse.

Boemo bo latelang ba bohlokoa bo bitsoa OS thread bohlokoa. E beha feela boleng bo botle bakeng sa likhoele tsohle tsa ho etsa kopo bakeng sa kemiso ea Linux. E sebetsa joalo-joalo, empa e ntse e sebetsa. Haeba u beha boleng bo tlase bo botle - ke boleng bo boholo ka ho fetesisa, 'me ka hona ke ntho e tlang pele - 'me u behe -19 bakeng sa likopo tse tlang pele haholo, joale CPU e tla sebelisa likopo tse tlang pele ka makhetlo a mane ho feta tse tlang pele haholo.

U boetse u hloka ho hlophisa nako e phahameng ea ho etsa kopo - e re, metsotso e mehlano. Lebelo le fokolang la ho etsa potso ke ntho e batang ka ho fetesisa. Tlhophiso ena esale e le teng ka nako e telele, 'me ha e hloke feela ho tiisa hore ClickHouse ha e khoehlise, empa e e qobelle.

Ak'u inahanele, u theha: haeba lipotso tse ling li sebetsa ka tlase ho mela e milione ka motsotsoana, u ke ke ua etsa joalo. Sena se tlontlolla lebitso la rona le letle, database ea rona e ntle. Ha re thibeng sena feela. Ha e le hantle, ho na le litlhophiso tse peli. E 'ngoe e bitsoa min lebelo la ho phethahatsa - ka meleng e ka motsotsoana, 'me ea bobeli e bitsoa timeout pele ho hlahloba lebelo la ts'ebetso ea min - metsotsoana e leshome le metso e mehlano ka ho feletseng. Ke hore, metsotsoana e leshome le metso e mehlano e ka khoneha, 'me joale, haeba e lieha, joale feela u lahlele mokhelo le ho tlosa kopo.

U boetse u hloka ho theha li-quotas. ClickHouse e na le karolo e hahelletsoeng ea quota e balang tšebeliso ea lisebelisoa. Empa, ka bomalimabe, eseng lisebelisoa tsa hardware tse kang CPU, disks, empa tse utloahalang - palo ea likopo tse sebetsitsoeng, mela le li-byte tse baloang. 'Me u ka lokisa, ho etsa mohlala, boholo ba likopo tse lekholo nakong ea metsotso e mehlano le likopo tse sekete ka hora.

Ke hobane'ng ha e le ea bohlokoa? Hobane lipotso tse ling tsa analytics li tla etsoa ka letsoho ka kotloloho ho tsoa ho moreki oa ClickHouse. Mme tsohle di tla loka. Empa haeba u na le bahlahlobisisi ba tsoetseng pele k'hamphaning ea hau, ba tla ngola sengoloa, 'me ho ka ba le phoso sengolong. 'Me phoso ena e tla etsa hore kopo e etsoe ka loop e sa feleng. Sena ke seo re lokelang ho itšireletsa ho sona.

Na hoa khoneha ho fana ka sephetho sa potso e le 'ngoe ho bareki ba leshome?

Re na le basebelisi ba 'maloa ba ratang ho tla ka likopo tse kholo haholo ka nako e ts'oanang. Kopo e kholo 'me, ha e le hantle, e etsoa ka potlako, empa ka lebaka la hore ho na le likōpo tse ngata tse joalo ka nako e le' ngoe, e ba bohloko haholo. Na hoa khoneha ho phethahatsa kopo e tšoanang, e fihlileng ka makhetlo a leshome ka tatellano, hang, 'me e fane ka sephetho ho bareki ba leshome?

Bothata ke hore ha re na liphetho tsa cache kapa cache ea data e mahareng. Ho na le cache ea leqephe la sistimi ea ts'ebetso, e tla u thibela ho bala data ho tsoa ho disk hape, empa, ka bomalimabe, data e ntse e tla fokotsoa, ​​​​e felisoe le ho khutlisoa hape.

Ke kopa ho qoba sena ka mokhoa o itseng, ebang ke ka ho boloka data ea mahareng, kapa ka ho hlophisa lipotso tse tšoanang mofuteng o mong oa queue le ho eketsa pokello ea liphetho. Hajoale re na le kopo e le 'ngoe ea nts'etsopele e eketsang cache ea kopo, empa feela bakeng sa li-subqueries tse ka hare le ho kopanya likarolo - ke hore, tharollo ha ea phethahala.

Leha ho le joalo, re boetse re tobana le boemo bo joalo. Mohlala o ikhethang oa li-canonical ke lipotso tse sa utloahaleng. Ho na le tlaleho, e na le maqephe a 'maloa,' me ho na le kopo ea moeli oa 10. Joale ntho e tšoanang, empa fokotsa 10,10. Ebe leqephe le leng hape. Mme potso ke hore, ke hobaneng ha re bala tsena tsohle nako le nako? Empa hona joale ha ho na tharollo, ’me ha ho tsela ea ho e qoba.

Ho na le tharollo e 'ngoe e behiloeng ka thoko ho ClickHouse - Moemeli oa ClickHouse.

Kirill Shvakov: ClickHouse Proxy e na le sekhahla sa sekhahla se hahelletsoeng le cache ea liphetho tse hahelletsoeng. Ho ile ha etsoa liphetoho tse ngata moo hobane ho ne ho ntse ho rarolloa bothata bo tšoanang. Proxy e u lumella ho fokotsa likopo ka ho li beha meleng le ho hlophisa hore na cache ea kopo e phela nako e kae. Haeba likopo li ne li hlile li tšoana, Proxy e tla li romella hangata, empa e tla ea ClickHouse hang feela.

Nginx e boetse e na le cache ho mofuta oa mahala, 'me sena se tla sebetsa. Nginx e bile e na le litlhophiso tseo haeba likopo li fihla ka nako e le 'ngoe, e tla liehisa tse ling ho fihlela e phethetsoe. Empa ke ho ClickHouse Proxy moo setupo se etsoang hantle haholo. E entsoe ka ho khetheha bakeng sa ClickHouse, ka ho khetheha bakeng sa likopo tsena, kahoo e loketse haholoanyane. Hantle, ho bonolo ho kenya.

Ho thoe'ng ka ts'ebetso ea asynchronous le maikutlo a 'mele?

Ho na le bothata ba hore ts'ebetso ea enjene ea replay ha e lumellane - pele data e ngotsoe, ebe e oa. Haeba letlapa le entsoeng ka sebōpeho le nang le likarolo tse itseng le phela tlas'a letšoao, joale ho tla ngoloa tse kopitsoang ho lona. 'Me haeba ho se na logic e rarahaneng, joale data e tla kopitsoa. U ka etsa’ng ka eona?

Ho na le tharollo e totobetseng - ho kenya ts'ebetso ea "trigger" sehlopheng se itseng sa matviews nakong ea ts'ebetso ea ho putlama ha asynchronous. Na ho na le likulo tsa silevera kapa merero ea ho kenya tšebetsong ts'ebetso e ts'oanang?

Ho bohlokoa ho utloisisa hore na deduplication e sebetsa joang. Seo ke tla u bolella sona hona joale ha se amane le potso, empa feela haeba ho loketse ho hopola.

Ha u kenya ka har'a tafole e kopilitsoeng, ho na le deduplication ea li-blocks tse kentsoeng kaofela. Haeba u khutlisetsa boloko bo tšoanang bo nang le palo e tšoanang ea mela e tšoanang ka tatellano e tšoanang, joale data e fokotsoe. U tla fumana "Ok" ha u arabela ho kenya, empa ha e le hantle pakete e le 'ngoe ea data e tla ngoloa,' me e ke ke ea kopitsoa.

Sena sea hlokahala bakeng sa bonnete. Haeba u fumana "Ok" nakong ea ho kenya, joale data ea hau e kentsoe. Haeba u fumana phoso ho tsoa ho ClickHouse, ho bolela hore ha lia kenngoa 'me u hloka ho pheta ho kenya. Empa haeba khokahanyo e robehile nakong ea ho kenngoa, joale ha u tsebe hore na data e kentsoe kapa che. Khetho feela ke ho pheta ho kenya hape. Haeba data e hlile e kentsoe 'me ue kentse hape, ho na le deduplication ea block. Sena sea hlokahala ho qoba likopi.

Hape ke habohlokoa hore na e sebetsa joang bakeng sa maikutlo a bonahalang. Haeba data e ne e fokotsoe ha e kenngoa tafoleng e kholo, e ke ke ea kena ponong ea nama.

Joale ka potso. Boemo ba hau bo rarahane le ho feta hobane u rekota likopi tsa mela e le 'ngoe. Ke hore, ha se sephutheloana kaofela se kopitsoang, empa ke mela e ikhethileng, 'me e oela ka morao. Ha e le hantle, data e tla oela tafoleng e kholo, empa lintlha tse sa phutholohang li tla ea ponong ea nama, 'me nakong ea ho kopanya ha ho letho le tla etsahala ho maikutlo a bonahalang. Hobane pono e entsoeng ka lintho tse bonahalang ha se letho haese ho kenya letsoho feela. Nakong ea ts'ebetso e 'ngoe, ha ho letho le eketsehileng le etsahalang ho eona.

'Me nke ke ka u thabisa mona. U hloka feela ho batla tharollo e khethehileng bakeng sa nyeoe ena. Ka mohlala, na hoa khoneha ho e bapala hape ka mokhoa o bonahalang, 'me mokhoa oa ho fokotsa o ka sebetsa ka tsela e tšoanang. Empa ka bomalimabe, eseng kamehla. Haeba e kopane, e ke ke ea sebetsa.

Kirill Shvakov: Re ne re boetse re e-na le li-crutch crutch mehleng ea khale. Ho bile le bothata ba hore ho na le maikutlo a papatso, 'me ho na le data eo re ka e bonts'ang ka nako ea nnete - tsena ke maikutlo feela. Ha se hangata li kopitsoang, empa ha sena se etsahala, re tla li etsa hamorao. Mme ho ne ho na le dintho tse neng di sa kgone ho kopitswa - ho tobetsa le pale ena kaofela. Empa hape ke ne ke batla ho ba bontša hoo e ka bang hang-hang.

Maikutlo a nama a ile a etsoa joang? Ho ne ho e-na le maikutlo moo e ngotsoeng ka ho toba - e ngotsoe ho data e tala, 'me e ngotsoe ho maikutlo. Moo, ka nako e 'ngoe data ha e nepahale haholo, e kopitsoa, ​​joalo-joalo. 'Me ho na le karolo ea bobeli ea tafole, moo li shebahalang li tšoana hantle le lipono tse entsoeng, ke hore, li tšoana ka ho feletseng ka sebopeho. Nako le nako re bala lintlha hape, re bala data ntle le likopi, re ngolle litafole tseo.

Re tsamaile ka API - sena se ke ke sa sebetsa ho ClickHouse ka letsoho. 'Me API e shebahala: ha ke e-na le letsatsi la ho eketsa ho qetela tafoleng, moo ho tiisetsoang hore data e nepahetseng e se e baloa,' me e etsa kopo ho tafoleng e le 'ngoe le tafoleng e' ngoe. Ho tloha ho e 'ngoe kopo e khetha ho fihlela nako e itseng,' me ho tloha ho e 'ngoe e fumana se e-s'o baloe. 'Me ea sebetsa, empa eseng ka ClickHouse feela.

Haeba u na le mofuta o itseng oa API - bakeng sa bahlahlobisisi, bakeng sa basebelisi - joale, ha e le hantle, ena ke khetho. U ntse u bala, kamehla u bala. Sena se ka etsoa hang ka letsatsi kapa ka nako e 'ngoe. U ikhethela mefuta e fapaneng eo u sa e hlokeng ebile e sa nyatsehe.

ClickHouse e na le lifate tse ngata. Nka bona joang ntho e 'ngoe le e' ngoe e etsahalang ho seva hang-hang?

ClickHouse e na le palo e kholo haholo ea li-log tse fapaneng, 'me palo ena e ntse e eketseha. Liphetolelong tse ncha, tse ling tsa tsona li bile li lumelloa ke kamehla; liphetolelong tsa khale li tlameha ho lumelloa ha li nchafatsoa. Leha ho le joalo, ho na le ba bangata le ho feta. Qetellong, ke kopa ho bona se etsahalang ka seva ea ka hona joale, mohlomong ho mofuta o mong oa dashboard ea kakaretso.

Na u na le sehlopha sa ClickHouse, kapa lihlopha tsa metsoalle ea hau, tse tšehetsang ts'ebetso e itseng ea li-dashboards tse seng li entsoe tse tla bonts'a li-log tsee e le sehlahisoa se felileng? Qetellong, ho sheba feela lits'oants'o ho ClickHouse ho monate. Empa e ka ba e pholileng haholo haeba e ne e se e lokiselitsoe ka mokhoa oa dashboard. Ke ne ke tla fumana ho raha ho eona.

Ho na le li-dashboard, le hoja li sa tloaeleha. K'hamphaning ea rona, lihlopha tse ka bang 60 li sebelisa ClickHouse, 'me ntho e makatsang ka ho fetisisa ke hore bongata ba bona ba na le li-dashboards tseo ba iketselitseng tsona, le tse fapaneng hanyane. Lihlopha tse ling li sebelisa ho kenya Yandex.Cloud ka hare. Ho na le litlaleho tse seng li entsoe, le hoja e se tse hlokahalang kaofela. Ba bang ba na le tsa bona.

Basebetsi-'moho le 'na ba Metrica ba na le dashboard ea bona Grafana,' me 'na ke na le ea ka bakeng sa sehlopha sa bona. Ke shebile lintho tse kang cache hit bakeng sa serif cache. Mme ho thata le ho feta ke hore re sebelisa lisebelisoa tse fapaneng. Ke thehile dashboard ea ka ke sebelisa sesebelisoa sa khale haholo se bitsoang Graphite-web. O mobe ho hang. 'Me ke ntse ke e sebelisa ka tsela ena, leha Grafana e kanna ea ba bonolo ebile e ntle.

Ntho ea mantlha ho li-dashboards e tšoana. Tsena ke metrics ea sistimi bakeng sa sehlopha: CPU, memori, disk, marang-rang. Tse ling - palo ea likopo tse ts'oanang ka nako e le 'ngoe, palo ea ho kopanngoa ka nako e le' ngoe, palo ea likopo motsotsoana, palo e kholo ea likarolo bakeng sa likarolo tsa tafole tsa MergeTree, lag ea ho pheta-pheta, boholo ba mela e pheta-phetoang, palo ea mela e kentsoeng motsotsoana, palo ea li-blocks tse kentsoeng motsotsoana. Sena ke sohle se fumanoang eseng ho li-log, empa ho tsoa ho metrics.

Vladimir Kolobaev: Alexey, ke kopa ho e lokisa hanyane. Ho na le Grafana. Grafana e na le mohloli oa data, e leng ClickHouse. Ke hore, nka etsa likopo ho tsoa Grafana ka kotloloho ho ClickHouse. ClickHouse e na le tafole e nang le lifate, e tšoana le ho motho e mong le e mong. Ka lebaka leo, ke batla ho fihlella tafole ena ea li-log Grafana le ho bona likopo tseo seva ea ka e li etsang. Ho ka ba monate ho ba le dashboard e kang ena.

Ke ile ka e palama ka bonna. Empa ke na le potso - haeba tsohle li lekane, 'me Grafana e sebelisoa ke bohle, ke hobane'ng ha Yandex e se na dashboard e joalo ea molao?

Kirill Shvakov: Ebile, datasource e eang ClickHouse joale e tšehetsa Altinity. 'Me ke batla feela ho fana ka vector ea moo ho cheka le hore na ke mang ea sutumetsang. U ka ba botsa, hobane Yandex e ntse e etsa ClickHouse, eseng pale e potolohileng eona. Altinity ke k'hamphani e ka sehloohong e ntseng e khothaletsa ClickHouse. Ba ke ke ba mo lahla, empa ba tla mo tšehetsa. Hobane, ha e le hantle, ho kenya dashboard ho websaeteng ea Grafana, u hloka feela ho e ngolisa le ho e kenya - ha ho na mathata a khethehileng.

Alexey Milovidov: Selemong se fetileng, ClickHouse e kentse bokhoni bo bongata ba ho botsa lipotso. Ho na le metrics bakeng sa kopo ka 'ngoe mabapi le tšebeliso ea lisebelisoa. Haufinyane tjena, re kentse profaele ea potso ea boemo bo tlase ho bona hore na potso e sebelisa millisecond e 'ngoe le e' ngoe. Empa ho sebelisa ts'ebetso ena, ke tlameha ho bula moreki oa console ebe ke thaepa kopo, eo ke e lebalang kamehla. Ke e bolokile kae-kae 'me ke lula ke lebala moo hantle.

Ke lakatsa eka ho ka be ho na le sesebelisoa se sa tsoa re, lipotso tsa hau tse boima ke tsena, tse hlophisitsoeng ka sehlopha sa lipotso. Ke ile ka hatella e ’ngoe, ’me ba ne ba mpolella hore ke ka lebaka leo e leng boima. Ha ho na tharollo e joalo hona joale. 'Me hoa makatsa hore ebe ha batho ba mpotsa: "Mpolelle, na ho na le li-dashboards tse seng li entsoe bakeng sa Grafana?", Ke re: "E-ea webosaeteng ea Grafana, ho na le sechaba sa "Dashboards", 'me ho na le dashboard. ho tloha Dimka, ho na le dashboard e tsoang Kostyan. Ha ke tsebe hore na ke eng, ha ke e-so sebelise ka bonna. ”

U ka susumetsa likhokahano joang hore seva e se ke ea oela ho OOM?

Ke na le tafole, ho na le karohano e le 'ngoe feela tafoleng, ke ReplaceMergeTree. Ke 'nile ka ngola lintlha ho eona ka lilemo tse' nè. Ke ne ke hloka ho etsa phetoho ho eona le ho hlakola lintlha tse ling.

Ke entse sena, 'me nakong ea ts'ebetso ea kopo ena, mohopolo oohle ho li-server tsohle tse sehlopheng o ile oa chesoa,' me li-server tsohle tse sehlopheng li ile tsa kena ho OOM. Eaba kaofela ba ema hammoho, ba qala ho kopanya ts'ebetso eona ena, block block ea data, mme ba oela ho OOM hape. Eaba ba tsoha hape, ba oa hape. Mme ntho ena ha e a ka ya ema.

Joale ho ile ha fumaneha hore ena e ne e hlile e le kokoana eo bashanyana ba e lokisitseng. Sena se monate haholo, ke leboha haholo. Empa ho ile ha sala masala. 'Me joale, ha ke nahana ka ho kopanya mofuta o itseng tafoleng, ke na le potso - ke hobane'ng ha ke sa khone ho susumetsa likhokahano tsee? Ka mohlala, li behe moeli ka palo ea RAM e hlokahalang, kapa, ha e le hantle, ka chelete e tla sebetsana le tafole ena.

Ke na le tafole e bitsoang "Metrics", ka kopo e nketsetse eona ka likhoele tse peli. Ha ho na tlhoko ea ho theha likhokahano tse leshome kapa tse hlano ka ho ts'oana, e etse ka bobeli. Ke nahana hore ke na le mohopolo o lekaneng bakeng sa tse peli, empa ho ka 'na ha se ke ha lekana ho sebetsa tse leshome. Ke hobane'ng ha tšabo e ntse e le teng? Hobane tafole e ntse e hola, 'me ka letsatsi le leng ke tla tobana le boemo boo, ha e le hantle, bo seng bo le teng ka lebaka la kokoanyana, empa hobane data e tla fetoha ka bongata bo boholo hoo nke keng ka ba le mohopolo o lekaneng. seva. Ebe seva e tla oela ho OOM ha e kopanya. Ho feta moo, nka hlakola phetoho, empa Merji ha a sa le eo.

Ua tseba, ha u kopanya, seva se ke ke sa oela ho OOM, hobane ha u kopanya, palo ea RAM e sebelisoa feela bakeng sa palo e le 'ngoe e nyane ea data. Kahoo ntho e 'ngoe le e' ngoe e tla ba hantle ho sa tsotellehe palo ea data.

Vladimir Kolobaev: Hantle. Mona nako ke ea hore ka mor'a hore phoso e lokisoe, ke ile ka itokolla phetolelo e ncha, 'me tafoleng e' ngoe, e nyenyane, moo ho nang le likarolo tse ngata, ke ile ka etsa opereishene e tšoanang. 'Me nakong ea ho kopanya, hoo e ka bang 100 GB ea RAM e chesitsoe ho seva. Ke ne ke tšoarehile 150, 100 e jeoa, le fensetere ea 50 GB e setseng, kahoo ha kea ka ka oela ho OOM.

Hona joale ke eng e ntšireletsang hore ke se ke ka oela ho OOM haeba e hlile e ja 100 GB ea RAM? Seo u lokelang ho se etsa haeba ka tšohanyetso RAM e kopantsoeng e fela?

Alexey Milovidov: Ho na le bothata bo joalo hoo tšebeliso ea RAM ka ho khetheha bakeng sa ho kopanya ha e na moeli. 'Me bothata ba bobeli ke hore haeba mofuta o itseng oa ho kopanya o abetsoe, joale o tlameha ho etsoa hobane o tlalehiloe tlalehong ea replication. Lenane la ho pheta-pheta ke liketso tse hlokahalang ho tlisa replica boemong bo tsitsitseng. Haeba u sa etse maqheka a matsoho a tla khutlisa tlaleho ena ea boikatiso, kopanyo e tla tlameha ho etsoa ka tsela e 'ngoe kapa e' ngoe.

Ehlile, e ke ke ea e-ba taba e sa lokelang ho ba le moeli oa RAM oo "feela ho ka etsahala" o ka sireletsang khahlanong le OOM. E ke ke ea thusa ho kopanya ho phethela, ho tla qala hape, ho fihla moeling o mong, ho lahlela mokhelo, ebe o qala hape - ha ho letho le molemo le tla tsoa ho sena. Empa ha e le hantle, ho ka ba molemo ho hlahisa thibelo ena.

Mokhanni oa Golang oa ClickHouse o tla ntlafatsoa joang?

Mokhanni oa Golang, o ngotsoeng ke Kirill Shvakov, joale o tšehetsoa ka molao ke sehlopha sa ClickHouse. Eena sebakeng sa polokelo ea ClickHouse, joale o moholo ebile ke oa sebele.

Noto e nyane. Ho na le polokelo e ntle le e ratoang ea mefuta e tloaelehileng ea tatellano e sa feleng - ena ke Vertica. Ba boetse ba na le mokhanni oa bona oa molao oa python, o tšehetsoeng ke baetsi ba Vertica. 'Me ka makhetlo a' maloa ho ile ha etsahala hore liphetolelo tsa polokelo le liphetolelo tsa mokhanni li fapane haholo, 'me mokhanni ka nako e' ngoe a khaotsa ho sebetsa. Mme ntlha ya bobedi. Tšehetso bakeng sa mokhanni enoa oa molao, ho bonahala ho 'na, e etsoa ke tsamaiso ea "nipple" - u ba ngolla taba, 'me e leketlile ka ho sa feleng.

Ke na le lipotso tse peli. Hona joale mokhanni oa Golang oa Kirill e batla e le mokhoa oa kamehla oa ho buisana ho tloha Golang le ClickHouse. Ntle le haeba motho a ntse a buisana ka sebopeho sa http hobane o rata joalo. Ntlafatso ea mokhanni ee e tla tsoela pele joang? Na e tla amahanngoa le liphetoho leha e le life tse senyehang sebakeng sa polokelo ka boeona? Hona mokhoa oa ho nahana ka taba ke ofe?

Kirill Shvakov: Ea pele ke hore na ntho e 'ngoe le e' ngoe e hlophisitsoe joang ka molao. Taba ena ha ea ka ea buisanoa, kahoo ha ke na letho leo nka le arabang.

Ho araba potso e mabapi le taba ena, re hloka nalane e nyane ea mokhanni. Ke ne ke sebetsa k'hamphaning e nang le data e ngata. E ne e le spinner ea papatso e nang le palo e kholo ea liketsahalo tse neng li hloka ho bolokoa kae-kae. 'Me ka nako e' ngoe ho ile ha hlaha ClickHouse. Re e tlatsitse ka data, mme qalong tsohle li ne li lokile, empa joale ClickHouse e ile ea oa. Ka nako eo re ile ra etsa qeto ea hore ha re e hloke.

Selemo hamorao, re ile ra khutlela mohopolong oa ho sebelisa ClickHouse, 'me re ne re hloka ho ngola lintlha moo ka tsela e itseng. Molaetsa oa selelekela e ne e le ona: hardware e fokola haholo, ho na le lisebelisoa tse fokolang. Empa haesale re sebetsa ka tsela ena, ka hona re shebile protocol ea matsoalloa.

Kaha re ne re sebetsa Go, ho ne ho hlakile hore re hloka mokhanni oa Go. Ke e entse hoo e ka bang ka nako eohle - e ne e le mosebetsi oa ka. Re e tlisitse ntlheng e itseng, 'me ha e le hantle ha ho motho ea neng a nahana hore mang kapa mang ntle le rona o tla e sebelisa. Joale CloudFlare e ile ea tla le bothata bo tšoanang hantle, 'me ka nako e itseng re ile ra sebetsa le bona ka thelelo, hobane ba ne ba e-na le mesebetsi e tšoanang. Ho feta moo, re entse sena ka bobeli ho ClickHouse rona le ho mokhanni.

Ka nako e 'ngoe, ke ile ka khaotsa ho e etsa, hobane mosebetsi oa ka ho latela ClickHouse le mosebetsi o fetohile hanyenyane. Ka hona litaba ha li koaloe. Nako le nako, batho ba hlokang ho hong ba itlama sebakeng sa polokelo. Ebe ke sheba kopo ea ho hula 'me ka linako tse ling ke bile ke hlophisa ntho e itseng, empa sena se etsahala ka seoelo.

Ke batla ho khutlela ho mokhanni. Lilemong tse 'maloa tse fetileng, ha ntho ena kaofela e qala, ClickHouse le eona e ne e fapane ebile e na le bokhoni bo fapaneng. Hona joale re na le kutloisiso ea mokhoa oa ho etsa mokhanni hape e le hore o sebetse hantle. Haeba sena se etsahala, joale mofuta oa 2 o ke ke oa lumellana leha e le ofe ka lebaka la lithupa tse bokelitsoeng.

Ha ke tsebe ho hlophisa taba ena. Nna ha ke na nako e ngata. Haeba batho ba bang ba qeta ho khanna, nka ba thusa le ho ba bolella hore na ba etse joang. Empa ho nka karolo ka mafolofolo ha Yandex ho nts'etsopele ea morero ha ho so buisanoe.

Alexey Milovidov: Ha e le hantle, ha ho na tsamaiso e mabapi le bakhanni bana. Ntho feela ke hore li fetisetsoa ho mokhatlo o hlophisitsoeng, ke hore, mokhanni enoa o nkoa e le tharollo ea molao ea kamehla bakeng sa Go. Ho na le bakhanni ba bang, empa ba tla ka thoko.

Ha re na ntlafatso ea ka hare bakeng sa bakhanni bana. Potso ke hore na re ka hira motho ka bomong, eseng bakeng sa mokhanni enoa ea itseng, empa bakeng sa ntlafatso ea bakhanni bohle ba sechaba, kapa re ka fumana motho ea tsoang ka ntle.

Buka ea kantle ea buka e hlalosang mantsoe ha e laole ka mor'a ho qala bocha ka lazy_load setting e nolofalitsoe. Se o lokelang ho se etsa?

Re na le tlhophiso ea lazy_load e nolofalitsoeng, 'me ka mor'a hore seva se tsosolosoe, buka e hlalosang mantsoe ha e iketsetse eona. E hlahisoa feela ka mor'a hore mosebelisi a fihlele bukantswe ena. Mme kgetlo la pele ha ke e fumana, e fana ka phoso. Na hoa khoneha ho kenya lidikishinari ka tsela e iketsang u sebelisa ClickHouse, kapa u hloka ho lula u itokiselitse ho itokisa hore basebelisi ba se ke ba fumana liphoso?

Mohlomong re na le mofuta oa khale oa ClickHouse, ka hona, dikishinari ha ea ka ea ipalla ka bo eona. Na ho ka ba joalo?

Taba ea pele, lidikishinari li ka qobelloa ho laeloa ho sebelisoa potso tsamaiso botjha didikishinari. Taba ea bobeli, mabapi le phoso - haeba buka e hlalosang mantsoe e se e kentsoe, joale lipotso li tla sebetsa ho ipapisitse le data e kentsoeng. Haeba bukantswe ha e so kenyelloe, e tla kenngwa ka kotloloho nakong ya kopo.

Sena ha se bonolo haholo bakeng sa dikishinari tse boima. Mohlala, o hloka ho hula mela e milione ho tsoa ho MySQL. Motho e mong o etsa khetho e bonolo, empa khetho ena e tla emela mela e tšoanang ea limilione. Ho na le litharollo tse peli mona. Ea pele ke ho tima lazy_load. Taba ea bobeli, ha seva e phahame, pele u beha mojaro ho eona, etsa sistimi e kenya bocha bukantswe kapa etsa feela potso e sebelisang bukantswe. Ebe bukantswe e tla kenngwa. U hloka ho laola ho fumaneha ha lidikishinari ka tlhophiso ea lazy_load e nolofalitsoeng, hobane ClickHouse ha e li jare ka bo eona.

Karabo ea potso ea ho qetela ke hore na phetolelo ke ea khale kapa e hloka ho lokisoa.

Seo u lokelang ho se etsa ka taba ea hore lidikishinari tsa tsamaiso e ncha ha li kenye lidikishinari tse ngata haeba bonyane e 'ngoe ea tsona e oela ka phoso?

Ho na le potso e 'ngoe mabapi le lidikishinari tsa ho kenya bocha tsamaiso. Re na le lidikishinari tse peli - e 'ngoe ha e laeloe, ea bobeli e laeloa. Tabeng ena, Bukana e hlalosang mantsoe a Sistimi ha e kenye bukantswe efe kapa efe, mme o tlameha ho beha e itseng ka ho qolla lebitso la yona ka ho sebedisa bukantswe ya ho kenya hape sistimi. Na see se boetse se amana le mofuta oa ClickHouse?

Ke batla ho o thabisa. Boitšoaro bona bo ne bo fetoha. Sena se bolela hore ha o ka ntlafatsa ClickHouse, le eona e tla fetoha. Haeba u sa thabele boitšoaro ba hau ba hona joale tsamaiso botjha didikishinari, ntlafatsa, 'me re tšepa hore e tla fetoha ho ba betere.

Na ho na le mokhoa oa ho hlophisa lintlha ho ClickHouse config, empa u sa li bonts'e haeba ho na le liphoso?

Potso e latelang e mabapi le diphoso tse amanang le bukantswe, e leng dintlha. Re hlalositse lintlha tsa khokahano ho ClickHouse config bakeng sa bukantswe, mme haeba ho na le phoso, re fumana lintlha tsena le password ho araba.

Re rarolotse phoso ena ka ho kenyelletsa lintlha ho mokhanni oa ODBC config. Na ho na le mokhoa oa ho hlophisa lintlha ho ClickHouse config, empa u sa bontše lintlha tsee haeba ho ka ba le liphoso?

Tharollo ea sebele mona ke ho hlakisa lintlha tsena ho odbc.ini, 'me ho ClickHouse ka boeona e hlalosa feela ODBC Data Source Name. Sena se ke ke sa etsahala bakeng sa mehloli e meng ea dikishinari - leha e le bakeng sa dikishinari e nang le MySQL, kapa bakeng sa tse ling, ha ua lokela ho bona phasewete ha u fumana molaetsa oa phoso. Bakeng sa ODBC, ke tla sheba hape - haeba e teng, o hloka feela ho e tlosa.

Bonase: semelo sa Zoom ho tsoa likopanong

Ka ho tobetsa setšoantšong, li-bonase tse tsoang likopanong li tla buleha bakeng sa babali ba phehellang haholo. Re tima mollo hammoho le mascots a theknoloji ea Avito, re fana le basebetsi-'moho le rona ho tloha kamoreng ea mookameli oa tsamaiso kapa sehlopha sa k'homphieutha sa sekolo sa khale, 'me re tšoara liboka tsa letsatsi le letsatsi tlas'a borokho khahlanong le mokokotlo oa graffiti.

ClickHouse bakeng sa basebelisi ba tsoetseng pele lipotsong le likarabo

Source: www.habr.com

Eketsa ka tlhaloso