ClickHouse ee isticmaalayaasha horumarsan ee su'aalaha iyo jawaabaha

Bishii Abriil, injineerada Avito waxay isugu yimaadeen kulamo online ah oo ay la yeesheen horumariyaha ClickHouse Alexey Milovidov iyo Kirill Shvakov, horumariye Golang oo ka socda Integros. Waxaan ka wada hadalnay sida aan u isticmaalno nidaamka maareynta xogta iyo dhibaatooyinka aan la kulanno.

Iyada oo ku saleysan kulanka, waxaan diyaarinay maqaal ay ku jiraan jawaabaha khubarada ee su'aalahayaga iyo dhagaystayaasha ee ku saabsan kaydinta, dib u habeynta xogta, qaamuusyada dibadda, darawalka Golang iyo cusboonaysiinta noocyada ClickHouse. Waxaa laga yaabaa inay faa'iido u leedahay horumarinta kuwaas oo horeyba si firfircoon ula shaqeynaya Yandex DBMS oo xiiseynaya hadda iyo mustaqbalka. Sida caadiga ah, jawaabaha waa Alexey Milovidov, haddii aan si kale loo qorin.

Ka digtoonow, waxaa jira qoraal badan oo ka hooseeya gooynta. Waxaan rajeyneynaa in waxa ku jira su'aalaha ay kaa caawin doonaan inaad dhex socoto.

ClickHouse ee isticmaalayaasha horumarsan ee su'aalaha iyo jawaabaha

Tusmo

Haddii aadan rabin inaad akhrido qoraalka, waxaad daawan kartaa duubista shirarka on our youtube channel. Koodadka waqtiga ayaa ku jira faallooyinka ugu horreeya ee fiidiyowga hoostiisa.

ClickHouse si joogto ah ayaa loo cusboonaysiiyaa, laakiin xogtayadu maaha. Maxaa laga yeelayaa?

ClickHouse si joogto ah ayaa loo cusboonaysiiyaa, oo xogtayada, oo la hagaajiyay hab-raacii ugu dambeeyay, lama cusboonaysiiyo oo waxa ay ku jirtaa koobi kayd ah.

Aynu nidhaahno xoogaa dhibaato ayaa na haysata oo xogtu way luntay. Waxaan go'aansanay inaan dib u soo celino, waxaana soo baxday in qaybihii hore, ee lagu kaydiyay kaydka kaydka, ay aad uga duwan yihiin nooca hadda la isticmaalo ee ClickHouse. Maxaa la sameeyaa marka xaalad noocaas ah, oo suurtagal ma tahay?

Xaalad aad ku soo celisay xogta kaydka qaab hore, laakiin kuma xidhna nooca cusub, waa wax aan macquul ahayn. Waxaan hubineynaa in qaabka xogta ee ClickHouse uu had iyo jeer ahaado mid dib u socon kara. Tani aad ayey uga muhiimsan tahay ku- wanaajinta dib-u-dhaca ee shaqeynta haddii hab-dhaqanka qaar ka mid ah shaqooyinka dhifta ah ee la is-beddelo. Nooca cusub ee ClickHouse waa inuu had iyo jeer awood u leeyahay inuu akhriyo xogta ku kaydsan saxanka. Kani waa sharciga.

Waa maxay hababka ugu wanaagsan ee hadda loogu kaalmeeyo xogta ClickHouse?

Sida loo sameeyo nuqul ka mid ah, iyada oo la tixgelinayo in aan wanaajino hawlgallada ugu dambeeya, xog-ururin weyn oo terabytes ah, iyo xogta la cusboonaysiiyay, dheh, saddexdii maalmood ee la soo dhaafay, ka dibna wax nidaam ah ma dhicin?

Waxaan samayn karnaa xal noo gaar ah oo ku qor bash: u ururi nuqulladan kaydka ah sidan iyo si la mid ah. Ma laga yaabaa in aan loo baahnayn in wax la xoqdo, oo baaskiilka ayaa la allifay waa hore?

Aan ku bilowno hababka ugu fiican. Asxaabtaydu had iyo jeer waxay kugula talinayaan, ka jawaabista su'aalaha ku saabsan kaydinta, si ay u xasuusiyaan adeegga Yandex.Cloud, halkaas oo dhibaatadan mar hore la xalliyey. Markaa isticmaal haddii ay suurtagal tahay.

Ma jiro xal dhamaystiran oo loogu talagalay kaydinta, boqolkiiba boqol oo lagu dhisay ClickHouse. Waxaa jira meelo banaan oo la isticmaali karo. Si aad u heshid xal dhamaystiran, waa in aad wax yar gacanta ku samaysaa, ama aad samaysaa duubo qaab qoraal ah.

Waxaan ku bilaabi doonaa xalalka ugu fudud oo aan ku dhammeeyo kuwa ugu casrisan, iyadoo ku xiran mugga xogta iyo xajmiga kooxda. Marka kooxdu sii weynaato, waa inta uu xalku sii cakiran yahay.

Haddii miiska xogta leh uu ku jiro dhowr gigabytes oo keliya, kaydinta waxaa loo samayn karaa sidan oo kale:

  1. Keydi qeexida miiska ie. xogta badan - tus miis abuur.
  2. Samee qashin adoo isticmaalaya macmiilka ClickHouse - dooro * miiska ka soo in la xareeyo. Sida caadiga ah waxaad heli doontaa fayl qaab TabSeparated ah. Haddii aad rabto in aad noqoto mid hufan, waxaad ku samayn kartaa qaab Dhalad ah.

Haddii qadarka xogtu ka weyn tahay, markaa kaydku wuxuu qaadan doonaa waqti badan iyo meel badan. Tan waxa loo yaqaan kayd macquul ah; kuma xidhna qaabka xogta ClickHouse. Haddii ay tahay, markaa sida ugu dambeeya waxaad u qaadan kartaa gurmad oo aad geliso MySQL si aad u soo kabato.

Kiisaska horumarsan ee dheeraadka ah, ClickHouse waxay leedahay karti ku dhisan si ay u abuurto sawir qaybo ka mid ah nidaamka faylka deegaanka. Tilmaamahan waxa loo heli karaa codsi ahaan beddelka xijaabka qaboojinta miiska. Ama si fudud bedel miiska qaboojinta - Tani waa sawirka miiska oo dhan.

Sawirka sawirka waxaa si joogto ah loogu abuuri doonaa hal miis oo hal jeex ah, taas oo ah, suurtagal maaha in sidaas loo sameeyo sawir joogto ah oo kooxda oo dhan ah. Laakiin hawlaha intooda badan ma jiraan baahi noocaas ah, waana ku filan tahay in la fuliyo codsi kasta oo jeex ah oo la helo sawir joogto ah. Waxaa loo abuuray qaab hardlinks oo sidaas daraaddeed ma qaadan meel dheeraad ah. Marka xigta, sawirkan waxaad ku koobiyaysaa kaydka kaydka ama kaydinta aad u isticmaalayso kaydinta.

Soo celinta kaydka noocaas ah waa wax fudud. Marka hore, samee jaantusyo adigoo isticmaalaya qeexitaannada miiska jira. Marka xigta, koobi ka qaado sawirada la kaydiyay ee qaybaha Hagaha-Detached ee jaantusyadan oo socodsii su'aasha ku lifaaq qaybsanaan. Xalkani wuxuu aad ugu habboon yahay xogta ugu daran.

Mararka qaarkood waxaad u baahan tahay wax xitaa qaboojiye - xaaladaha aad haysato tobanaan ama xitaa boqollaal terabyte oo server kasta ah iyo boqolaal server ah. Waxaa jira xal halkan aan ka soo qaatay asxaabteyda Yandex.Metrica. Kuma talin lahaa qof walba - akhri oo go'aanso naftaada haddii ay ku habboon tahay iyo in kale.

Marka hore waxaad u baahan tahay inaad abuurto dhowr server oo leh khaanadaha diskooga waaweyn. Marka xigta, server-yadan, kor u qaad dhowr adeegayaasha ClickHouse oo u habeeya si ay ugu shaqeeyaan sidii nuqul kale oo isku mid ah. Ka dibna isticmaal nidaam faylal ah ama qalab ka mid ah server-yada kuwaas oo kuu ogolaanaya inaad abuurto sawir-qaadis. Halkan waxaa jira laba ikhtiyaar. Doorashada koowaad waa sawir-qaadista LVM, doorashada labaad waa ZFS Linux.

Taas ka dib, maalin kasta waxaad u baahan tahay inaad abuurto sawir-qaadis, waxay beenin doontaa oo qaadan doontaa meel bannaan. Dabiici ahaan, haddii xogtu isbedesho, xadiga boosku wuu kordhi doonaa wakhti ka dib. Sawirkan sawir-qaadista ah waxaa la qaadi karaa wakhti kasta oo xogta la soo celin karaa, sida xal qariib ah. Intaa waxaa dheer, waxaan sidoo kale u baahanahay inaan xaddidno nuquladan qaabeynta si aysan isugu dayin inay noqdaan hoggaamiyeyaal.

Suurtagal ma noqon doontaa in la abaabulo habayn la kontoroolo oo nuqul ka mid ah looxyada?

Sannadkan waxa aad qorshaynaysaa in aad samaysato shaft gudaha ClickHouse. Suurtagal ma noqon doontaa in la abaabulo habayn la xakameeyey oo nuqul ka mid ah? Waxaan jeclaan lahayn inaan u isticmaalno si aan nafteena uga ilaalino xaaladaha xun ee isbeddelka iyo isbeddelada kale.

Suurtagal ma tahay in la sameeyo nooc ka mid ah duubista wax ka beddelka? Tusaale ahaan, usheeda dhexe ee hadda jirta, qaado oo tidhaahdo ilaa wakhtigan xaadirka ah waxaad codsanaysaa isbeddelada, oo hadda laga bilaabo ma joojinaysaa ku dhaqanka isbeddellada?

Haddii amar uu u yimid kooxdayada oo uu jabiyo, markaa waxaan haynaa nuqul shuruudaysan oo leh saacad dib u dhac ah, halkaas oo aan dhihi karno aan isticmaalno hadda, laakiin ma codsan doono isbeddellada tobanka daqiiqo ee ugu dambeeya?

Marka hore, ku saabsan dib u dhaca la xakameeyey ee nuqullada. Waxaa jiray codsi noocaas ah oo ka yimid isticmaalayaasha, waxaanan ku abuurnay arrin Github codsiga: "Haddii qof u baahan yahay kan, sidaas oo kale, qalbi geli." Cidina ma geyn, arrintuna waa la xidhay. Si kastaba ha ahaatee, waxaad mar hore heli kartaa fursadan adigoo dejinaya ClickHouse. Run, kaliya laga bilaabo nooca 20.3.

ClickHouse waxay si joogto ah u qabataa isku darka xogta ee gadaasha. Marka isku-darka la dhammeeyo, qaybo xogeed gaar ah ayaa lagu beddelaa qayb ka weyn. Isla mar ahaantaana, qaybo ka mid ah xogta hore u jirtay waxay ku sii jirayaan saxanka in muddo ah.

Marka hore, way sii kaydinayaan ilaa inta ay jiraan su'aalo xul ah oo isticmaalaya, si loo bixiyo hawlgal aan xannibin. Xulashada weydiimaha si fudud ayaa looga akhrin karaa qaybo hore.

Marka labaad, waxaa sidoo kale jira marin waqti - qaybo hore oo xog ah ayaa ku jiifa diskka siddeed daqiiqo. Siddeedadaqiiqo waa la habeyn karaa oo xitaa hal maalin ayaa loo rogi karaa. Tani waxay ku kici doontaa booska diskka: iyadoo ku xiran socodka xogta, waxay soo baxday in maalinta ugu dambeysa xogtu aysan labanlaabmi doonin oo kaliya, waxay noqon kartaa shan jeer ka badan. Laakiin haddii ay jirto dhibaato halis ah, waxaad joojin kartaa server-ka ClickHouse oo aad wax walba xalliso.

Hadda su'aashu waxay soo baxaysaa sida ay tani uga ilaalinayso isbeddellada. Way mudan tahay in si qoto dheer loo eego halkan, sababtoo ah noocyadii hore ee ClickHouse, beddelku wuxuu u shaqeeyay si uu si toos ah u beddelo qaybo. Waxa jirta qayb xog ah oo wadata faylal qaar, waxaanan samaynaa, tusaale ahaan, Beddel tiirka dhibicda. Kadibna tiirkan jir ahaan ayaa laga saaray dhammaan qaybaha.

Laakiin laga bilaabo nooca 20.3, habka beddelka ayaa gebi ahaanba beddelay, oo hadda qaybo ka mid ah xogtu mar walba waa kuwo aan beddeli karin. Waxba kama beddelaan - beddelayaashu hadda waxay u shaqeeyaan si la mid ah sida isku-darka. Halkii laga beddeli lahaa gabal goobta, waxaan abuurnaa mid cusub. Qaybta cusub, faylasha aan isbeddelin waxay noqonayaan hardlinks, haddii aan tirtirno tiirarka, waxay si fudud uga maqnaan doontaa qaybta cusub. Qaybtii hore ayaa si caadi ah loo tirtiri doonaa siddeed daqiiqo ka dib, halkanna waxaad ku hagaajin kartaa dejinta kor ku xusan.

Isla sidaas oo kale ayaa khuseeysa isbeddellada sida isbeddellada. Markaad sameyso beddelka tirtirka ama wax ka beddelka update, ma beddelo gabalka, laakiin waxay abuurtaa mid cusub. Ka dibna tirtira kii hore.

Maxaa dhacaya haddii qaabdhismeedka miiska uu isbedelay?

Sidee dib loogu soo celin karaa kaydkii lagu sameeyay nidaamkii hore? Su'aasha labaadna waxay ku saabsan tahay kiiska sawir-qaadista iyo qalabka nidaamka faylka. Btrfs miyuu ku fiican yahay halkan halkii ZFS ee Linux LVM?

Haddii aad sameyso ku lifaaq qaybsanaan Qaybo leh qaab dhismeed kala duwan, ka dib ClickHouse ayaa kuu sheegi doona in tani aysan suurtagal ahayn. Waa kan xalku. Midda koowaad waa in la sameeyo miis ku meel gaar ah oo ah nooca MergeTree oo leh qaab dhismeedkii hore, ku lifaaq xogta halkaas oo la isticmaalayo lifaaq, oo samee su'aal beddel ah. Markaa waad koobi kartaa ama wareejin kartaa xogtan oo haddana ku lifaaqi kartaa, ama isticmaal codsi beddelka xijaabka guuritaanka miiska.

Hadda su'aasha labaad waxay tahay in Btrfs la isticmaali karo. Si aad u bilawdo, haddii aad leedahay LVM, markaa sawirada LVM waa ku filan yihiin, nidaamka faylka wuxuu noqon karaa ext4, dhib ma laha. Iyadoo Btrts, wax walbaa waxay kuxirantahay khibradaada isticmaalka. Kani waa nidaam faylal qaan gaar ah, laakiin weli waxaa jira tuhuno ku saabsan sida wax walba ugu shaqeyn doonaan si ficil ahaan xaalad gaar ah. Kuma talin lahaa isticmaalka tan ilaa aad haysato Btrfs wax soo saarka.

Waa maxay hababka ugu wanaagsan ee hadda loo isticmaalo dib u wadaagista xogta?

Arrinta dib-u-qaybintu waa mid adag oo dhinacyo badan leh. Waxaa jira dhowr jawaabood oo suurtagal ah halkan. Waxaad ka tagi kartaa hal dhinac oo waxaad tidhaahdaa tan - ClickHouse ma laha sifa dib u wadaagid ku dhex jirta. Laakiin waxaan ka baqayaa in jawaabtani aanay qofna ku habboonayn. Sidaa darteed, waxaad ka tagi kartaa dhinaca kale oo waxaad odhan kartaa ClickHouse waxay leedahay habab badan oo dib loo wadaago xogta.

Haddii kooxdu ay boos ka dhammaato ama ay xamili kari waydo culayska, waxaad ku daraysaa adeegayaal cusub. Laakiin server-yadani waa madhan yihiin asal ahaan, ma jiraan wax xog ah iyaga, ma jiraan wax rar ah. Waxaad u baahan tahay inaad dib u habayn ku sameyso xogta si ay si siman ugu faafto kooxda cusub, ee weyn.

Habka ugu horreeya ee tan loo samayn karo waa in la koobiyeeyo qayb ka mid ah qaybaha server-yada cusub iyadoo la adeegsanayo codsi beddelka xijaabka miiska soo qaado. Tusaale ahaan, waxaad haysatay qaybs bishiiba, oo waxaad qaadataa bisha ugu horreysa ee 2017 oo aad nuqul ka sameysaa server cusub, ka dibna ku koobbi bisha saddexaad server kale oo cusub. Oo waxaad samaynaysaa tan ilaa ay ka sii badanayso ama ka yaraanayso.

Wareejinta waxaa lagu fulin karaa oo kaliya qaybaha aan isbeddelin inta lagu jiro duubista. Qaybaha cusub, duubista waa in la joojiyo, sababtoo ah wareejintoodu maaha atomiga. Haddii kale, waxaad ku dambayn doontaa nuqul ama nusqaamo xogta ku jira. Si kastaba ha ahaatee, habkani waa mid la taaban karo oo si wax ku ool ah u shaqeeya. Qaybaha la cufan ee diyaarsan ayaa lagu kala qaadaa shabakada, taas oo ah, xogta lama cadaadin ama dib looma xidhin.

Habkani wuxuu leeyahay hal cillad, waxayna ku xidhan tahay nidaamka jeexjeexa, haddii aad ballan ku qaaday nidaamkan sharding, furaha jeexjeexa ee aad lahayd. Tusaalahaaga kiiska metrik, furaha jeexjeexa waa xadhkaha wadada. Markaad dooratid miis la qaybiyay, waxay aadaysaa dhammaan jeexjeexyada kutlada hal mar waxayna ka qaadaysaa xogta halkaas.

Tani waxay ka dhigan tahay in aysan adiga waxba kugu ahayn xogta ku dhammaatay jeexjeexyada. Waxa ugu muhiimsan waa in xogta hal waddo ay ku dhamaato hal jeex, laakiin midkee aan muhiim ahayn. Xaaladdan oo kale, wareejinta qaybaha diyaarsan waa ku fiican tahay, sababtoo ah su'aalaha xulashada waxaad sidoo kale heli doontaa xog dhamaystiran - hadday tahay ka hor inta aan dib loo wadaagin ama ka dib, nidaamku runtii macno ma leh.

Laakiin waxaa jira kiisas aad u adag. Haddii heerka macquulka ah ee codsiga aad ku tiirsan tahay nidaam khaas ah oo shardi ah, in macmiilkani uu ku yaal jeexan sidan oo kale ah, codsigana waxaa loo diri karaa si toos ah halkaas, oo aan loo dirin miiska la qaybiyey. Ama waxaad isticmaaleysaa nooc si cadaalad ah u dambeeyay ee ClickHouse oo aad karti u yeelatay goobta wanaaji boodboodka jeexjeexyada aan la isticmaalin. Xaaladdan oo kale, inta lagu jiro su'aalaha xulashada, tibaaxaha qaybta ayaa lagu falanqeyn doonaa waxaana la xisaabin doonaa jeexjeexyada loo baahan yahay in loo isticmaalo si waafaqsan nidaamka jeexjeexa. Tani waxay u shaqeysaa waa haddii xogta si sax ah loo qaybiyo iyadoo la raacayo nidaamkan jeexjeexa. Haddii aad dib ugu habaysay iyaga, gacanta ayaa laga yaabaa inay is beddelaan.

Markaa habkani waa lambarka koowaad. Waxaana sugayaa jawaabtaada, in dariiqadu ku habboon yihiin, ama aan horay u sii soconno.

Vladimir Kolobaev, maamulaha nidaamka hogaanka ee Avito: Alexey, habka aad sheegtay si fiican uma shaqeeyo marka aad u baahato in aad culeyska faafiso, oo ay ka mid tahay akhriska. Waxaan qaadan karnaa qayb bille ah oo bisha hore u qaadi karta nood kale, laakiin marka codsiga xogtan yimaado, waxaanu kaliya ku shubi doonaa. Laakiin waxaan rabnaa inaan ku shubno kooxda oo dhan, sababtoo ah haddii kale, in muddo ah dhammaan culeyska akhriska waxaa lagu farsameyn doonaa laba qaybood.

Alexei Milovidov: Jawaabta halkan waa yaab - haa, way xun tahay, laakiin way shaqayn kartaa. Waxaan sharxi doonaa sida saxda ah. Waxaa habboon in la eego xaaladda culeyska ee ka dambeeya xogtaada. Haddii tani ay tahay la socodka xogta, markaas waxaan runtii dhihi karnaa in badi codsiyada ay yihiin xog cusub.

Waxaad rakibtay seerfar cusub, guurtay qaybo duug ah, laakiin sidoo kale waxa aad beddeshay sida xogta cusub loo diiwaangeliyo. Oo xog cusub ayaa lagu faafin doonaa kooxda oo dhan. Markaa, shan daqiiqo ka dib, codsiyada shanta daqiiqo ee ugu dambeeya waxay si siman u shubi doonaan kutlada; maalin ka dib, codsiyada XNUMX saacadood ayaa si siman u shubi doona kutlada. Codsiyada bishii hore, nasiib darro, waxay aadi doonaan oo keliya qayb ka mid ah adeegayaasha kooxda.

Laakiin inta badan ma heli doontid codsiyo gaar ahaan Febraayo 2019. Waxay u badan tahay, haddii codsiyadu galaan 2019, markaa waxay ahaan doonaan 2019 oo dhan - waqti badan, oo aan ahayn qaar yar oo kala duwan. Codsiyada noocan oo kale ah waxay sidoo kale awood u yeelan doonaan inay si siman ugu shubaan kutlada. Laakiin guud ahaan, hadalkaagu waa sax in kani yahay xal ad hoc ah oo aan si buuxda u faafin xogta.

Waxaan hayaa dhowr qodob oo kale oo aan kaga jawaabo su'aasha. Mid ka mid ah ayaa ku saabsan sida marka hore loo naqshadeeyo nidaamka jeexjeexa si dib-u-jariddadu u keento xanuun yar. Tani mar walba suurtagal maaha.

Tusaale ahaan, waxaad haysataa xogta la socodka. Xogta la socodka ayaa koraysa saddex sababood dartood. Midda koowaad waa ururinta xogta taariikhiga ah. Midda labaad waa kobaca taraafikada. Midda saddexaadna waa kororka tirada waxyaabaha la kormeerayo. Waxa jira adeeg-yar oo cusub iyo cabbiro u baahan in la badbaadiyo.

Waxaa suurtogal ah in kuwan ka mid ah, kororka ugu weyni uu la xiriiro sababta saddexaad - kororka isticmaalka kormeerka. Xaaladdan oo kale, waxaa habboon in la eego dabeecadda culeyska, waa maxay su'aalaha xulashada ugu muhiimsan. Weydiimaha xulashada aasaasiga ah waxay u badan tahay inay ku salaysnaan doonaan qayb hoosaadyo cabbirro ah.

Tusaale ahaan, isticmaalka CPU ee server-yada qaarkood adeeg qaarkood. Waxaa soo baxday in ay jiraan qayb hoosaadyo gaar ah oo furayaal ah oo aad xogtan ku helayso. Codsiga laftiisa xogtani waxay u badan tahay inuu yahay mid fudud oo lagu dhammeeyo tobanaan ilbiriqsi. Loo isticmaalo la socodka adeegyada iyo dashboard-yada. Waxaan rajeynayaa inaan tan si sax ah u fahmay.

Vladimir Kolobaev: Xaqiiqdu waxay tahay in aan marar badan rafcaan ka qaadanno xogta taariikhiga ah, maadaama aan isbarbar dhigno xaaladda hadda jirta iyo tan taariikhiga ah ee wakhtiga dhabta ah. Waxayna muhiim noo tahay in aan si degdeg ah u helno xog badan, ClickHouse-na shaqo aad u fiican ayay tan ku qabataa.

Aad baad u saxan tahay, waxaan la kulannaa badi codsiyada akhrinta maalinta u dambaysa, sida nidaam kasta oo la socodka. Laakiin isla mar ahaantaana, culeyska xogta taariikhiga ah ayaa sidoo kale aad u weyn. Waxay asal ahaan ka timid nidaamka digniinta ee wareega soddonkii ilbiriqsi kasta oo ku yidhaahda ClickHouse: "Isii xogta lixdii toddobaad ee ugu dambeysay. Hadda iga dhis nooc ka mid ah celceliska dhaqdhaqaaqa iyaga, oo aynu barbar dhigno qiimaha hadda iyo kan taariikhiga ah. "

Waxaan jeclaan lahaa in aan sheego in codsiyadaas aadka u dhow aan haysanno miis yar oo kale oo aan ku kaydinno laba maalmood oo keliya oo xog ah, codsiyada ugu muhiimsanna waxay ku duulaan. Waxaan kaliya u dirnaa weydiimo taariikhi ah oo waaweyn miiska weyn ee la jeexjeexay.

Alexei Milovidov: Nasiib darro, waxay u soo baxday inay si liidata loogu dabaqi karo xaaladdaada, laakiin waxaan kuu sheegi doonaa sharraxaadda laba qorshe oo xun oo qallafsan oo aan loo baahnayn in la isticmaalo, laakiin loo isticmaalo adeegga asxaabtayda.

Waxaa jira koox weyn oo leh dhacdooyinka Yandex.Metrica. Dhacdooyinku waa aragtiyo bogag, gujisyo, iyo beddelaad Codsiyada badankoodu waxay tagaan shabakad gaar ah. Waxaad fureysaa adeegga Yandex.Metrica, waxaad leedahay degel - avito.ru, tag warbixinta, codsina waxaa loo sameeyay degelkaaga.

Laakin waxaa jira codsiyo kale - gorfeyn iyo mid caalami ah - oo ay sameeyaan falanqeeyayaasha gudaha. Kaliya haddii ay dhacdo, waxaan ogsoonahay in falanqeeyayaasha gudaha ay codsi u sameeyaan oo kaliya adeegyada Yandex. Laakiin si kastaba ha ahaatee, xitaa adeegyada Yandex waxay ku jiraan qayb muhiim ah dhammaan xogta. Kuwani maaha codsiyo loogu talagalay xisaabiyeyaasha gaarka ah, laakiin sifeynta ballaaran.

Sida loo habeeyo xogta si wax walba si hufan ugu shaqeeyaan hal counter, iyo sidoo kale weydiimaha caalamiga ah? Dhib kale ayaa ah in tirada codsiyada ku jirta ClickHouse ee kutlada Metrics ay tahay dhowr kun ilbiriqsikiiba. Isla mar ahaantaana, hal server ClickHouse ma xamili karo codsiyada aan fududayn, tusaale ahaan, dhowr kun ilbiriqsikii.

Cabbirka kooxdu waa lix boqol oo wax adeegayaal ah. Haddii aad si fudud u jiido miis la qaybiyay kooxdan oo aad u dirto dhowr kun oo codsi halkaas, way ka sii xumaan doontaa inaad u dirto hal server. Dhanka kale, ikhtiyaarka ah in xogta si siman loo faafiyo, oo aan tagno oo aan ka codsano dhammaan server-yada, isla markiiba waa la tuuray.

Waxaa jira ikhtiyaar ka soo horjeeda diametrically. Bal qiyaas haddii aan ku kala jeexno xogta goobaha oo dhan, oo codsi hal goob ah uu tago hal shard. Hadda kooxdu waxay awood u yeelan doontaa inay xamili karto toban kun oo codsi ilbiriqsikii, laakiin hal jeex hal codsi kasta wuxuu u shaqayn doonaa si tartiib tartiib ah. Hadda ka dib ma cabbiri doonto marka la eego wax soo saarka. Gaar ahaan haddii tani ay tahay goobta avito.ru. Anigu ma daaha ka qaadi doono sirta haddii aan sheego in Avito uu yahay mid ka mid ah bogagga ugu booqashada badan ee RuNet. Oo lagu farsameeyo hal jeex ah waxay noqon doontaa waalli.

Sidaa darteed, nidaamka jeexjeexa waxaa loo qaabeeyey qaab khiyaano badan. Kooxda oo dhan waxa ay u qaybsantaa tiro rucubyo ah, kuwaas oo aynu ugu yeedhno lakabyo. Kutlad kastaa waxay ka kooban tahay darsin ilaa dhowr darsin jeexjeex ah. Waxa jira soddon iyo sagaal kooxood oo noocaas ah wadar ahaan.

Sidee tani oo dhan u miisaamaysaa? Tirada kooxuhu isma beddelaan - siday ahayd soddon iyo sagaal sano ka hor, way ahaanaysaa. Laakiin mid kasta oo iyaga ka mid ah, waxaan si tartiib tartiib ah u kordhineynaa tirada jeexjeexyada marka aan uruurineyno xogta. Nidaamka sharding guud ahaan waa sidan: kooxahan waxaa loo qaybiyaa mareegaha, iyo si loo fahmo website-ka ku jira kutlada, metabase gooni ah MySQL ayaa la isticmaalaa. Hal goob - hal koox. Iyo gudaha, sharding waxay u dhacdaa iyadoo loo eegayo aqoonsiga booqdaha.

Marka la duubo, waxaan u qaybin iyaga inta hadhay ee qaybinta aqoonsiga booqdaha. Laakiin marka lagu daro jeex cusub, nidaamka jeexjeexa ayaa isbedelaya; waxaan sii wadeynaa kala qaybsanaanta, laakiin inta ka hartay qaybta nambar kale. Tani waxay ka dhigan tahay in hal booqde uu horay ugu yaalay dhowr server, mana isku hallayn kartid tan. Tan waxa loo sameeyaa oo keliya si loo hubiyo in xogta si fiican loo cufay. Oo markaan codsanayno, waxaan aadnaa miiska loo qaybiyay, kaas oo eegaya kooxda oo galaan daraasiin server ah. Tani waa qorshe nacasnimo ah.

Laakin sheekadeyda ma dhammayn doonto haddaanan odhan waan ka tagnay qorshahan. Nidaamka cusub, waxaan ku bedelnay wax walba oo aan nuqul ka sameynay dhammaan xogta annagoo isticmaalnay guri-koobiye.

Nidaamka cusub, dhammaan goobaha waxaa loo qaybiyaa laba qaybood - mid weyn iyo mid yar. Ma garanayo sida xadka loo doortay, laakiin natiijadu waxay ahayd in goobo waaweyn lagu duubay hal koox, halkaas oo ay ku jiraan 120 shards oo leh saddex nuqul midkiiba - taas oo ah, 360 server. Nidaamka jeexjeexa ayaa ah in codsi kasta uu hal mar wada tago. Haddii aad hadda u furto bogga warbixinta avito.ru ee Yandex.Metrica, codsigu wuxuu aadi doonaa 120 server. RuNet waxaa ku yaal dhowr goobood oo waaweyn. Codsiyadana maaha kun ilbiriqsikiiba, laakiin xitaa wax ka yar boqol. Waxaas oo dhan si aamusnaan leh ayaa loo ruugay miiska loo qaybiyay, kaas oo mid kasta oo iyaga ka mid ahi uu ku shaqeeyo 120 server.

Kooxda labaadna waa goobo yaryar. Halkan waxaa ah nidaam jeexdin ah oo ku salaysan aqoonsiga goobta, codsi kastana wuxuu ku socdaa hal jeex oo sax ah.

ClickHouse waxay leedahay utility-guuri-koobiye. Ma nooga sheegi kartaa iyada?

Isla markiiba waxaan dhihi doonaa in xalkani uu yahay mid dhib badan oo wax soo saar yar. Faa'iidada ayaa ah in ay si buuxda u tirtirto xogta iyada oo la raacayo qaabka aad sheegtay. Laakin cillada utility-ga ayaa ah in aysan dib u sharxeynin gabi ahaanba. Waxa ay koobiyaysaa xogta hal qorshe kooxeed una gudbisa schema kale

Tani waxay ka dhigan tahay in si ay u shaqeyso waa inaad haysataa laba rucubood. Waxay ku yaalliin isla server-yada, laakiin, si kastaba ha ahaatee, xogta lama dhaqaajin doono, laakiin waa la koobiyi doonaa.

Tusaale ahaan, waxaa jiray afar server, hadda waxaa jira siddeed. Waxaad ku abuuraysaa miis cusub oo loo qaybiyey dhammaan server-yada, miisas cusub oo maxalli ah waxaadna bilawday clickhouse-copier, taas oo muujinaysa nidaamka shaqada inay tahay inuu halkaas ka akhriyo, aqbal nidaamka cusub ee jajabinta oo ku wareejiyo xogta halkaas. Oo server-yadii hore waxaad u baahan doontaa hal jeer iyo badh boos ka badan inta hadda jirta, sababtoo ah xogtii hore waa inay ku sii jirtaa iyaga, badh ka mid ah xogta hore ayaa iman doonta korkooda. Haddii aad horay ugu fikirtay in xogta loo baahan yahay in dib loo wadaago oo ay jirto meel bannaan, markaa habkani waa ku habboon yahay.

Sidee buu u shaqeeyaa guriga-koobiyeeyaha? Waxa ay shaqada oo dhan u jebisaa hawlo kala duwan oo lagu farsameeyo qayb ka mid ah hal miis oo ku yaal hal jeex. Dhammaan hawlahan waxaa loo fulin karaa si isbar-bar socda, iyo koobiyeeyaha-clickhouse waxaa lagu maamuli karaa mashiinno kala duwan marar badan, laakiin waxa ay u qabato hal qayb ma aha wax ka badan xulashada xulashada. Xogta waa la akhriyaa, waa la kala saarayaa, waa la kala saarayaa, ka dibna mar labaad waa la cufan, meel baa lagu qorayaa, dibna loo kala saarayaa. Tani waa go'aan adag.

Waxaad haysatay shay tijaabo ah oo loo yaqaan dib-u-sharrid. Maxaa iyada ah?

Dabayaaqadii 2017, waxaad haysatay shay tijaabo ah oo la yiraahdo dib-u-sharrid. Xitaa waxaa jira ikhtiyaar gudaha ClickHouse. Sida aan u fahmay, may kicin. Ma ii sheegi kartaa sababta ay tani u dhacday? Waxay u muuqataa inay aad u khusayso.

Dhibaatada oo dhan ayaa ah in haddii ay lagama maarmaan tahay in dib loo wadaago xogta meesha, isku-dubarid aad u adag ayaa loo baahan yahay si tan si atomiyan ah loo sameeyo. Markii aan bilownay inaan eegno sida isku-dubaridkani u shaqeeyo, waxaa caddaatay inay jiraan dhibaatooyin asaasi ah. Dhibaatooyinkaas aasaasiga ah ma aha oo kaliya aragti ahaan, laakiin isla markiiba waxay bilaabeen inay naftooda ku muujiyaan ficil ahaan qaab wax lagu sharxi karo si fudud - waxba ma shaqeeyo.

Suurtagal ma tahay in la isku daro dhammaan qaybaha xogta ka hor inta aan loo guurin gaabiska saxannada?

Su'aal ku saabsan TTL oo leh u dhaqaaqista si tartiib tartiib ah ikhtiyaarka diskka ee macnaha guud ee isku darka. Ma jirtaa hab, aan ahayn via cron, in la isku daro dhammaan qaybaha mid ka hor inta aanad u wareejin saxannada gaabinaya?

Jawaabta su'aasha waxay suurtogal tahay in si toos ah dhammaan qaybaha loo dhejiyo ka hor inta aan la wareejin - maya. Uma maleynayo in tani ay lagama maarmaan tahay. Uma baahnid inaad dhammaan qaybaha mid mid ah ku biirto, laakiin si fudud ku xisaabtan xaqiiqada ah in si toos ah loogu wareejin doono saxannada gaabis ah.

Waxaan leenahay laba shuruudood oo loogu talagalay xeerarka wareejinta. Midda hore waa sida loo buuxiyey. Haddii heerka kaydinta hadda uu leeyahay wax ka yar boqolkiba go'an oo meel banaan ah, waxaanu dooranaa hal qayb oo waxaanu u wareejinaa kaydinta gaabis ah. Ama halkii, maaha mid gaabis ah, laakiin kan ku xiga - sida aad u habaynayso.

Heerka labaad waa cabbirka. Waxay ku saabsan tahay guuritaanka qaybo waaweyn. Waxaad hagaajin kartaa marinka iyadoo loo eegayo booska bannaan ee saxanka degdega ah, xogtana si toos ah ayaa loo wareejin doonaa.

Sida loogu haajiro noocyada cusub ee ClickHouse haddii aanay jirin hab hore loogu sii hubin karo waafaqid?

Mawduucan si joogto ah ayaa looga hadlaa gudaha ClickHouse telegram chat iyadoo la tixgelinayo noocyo kala duwan, iyo weli. Sidee badbaado u tahay in laga cusboonaysiiyo nooca 19.11 ilaa 19.16 iyo, tusaale ahaan, laga bilaabo 19.16 ilaa 20.3. Waa maxay habka ugu wanagsan ee loogu haajiro nuucyada cusub adiga oo aan hore u sii hubin in ay ku haboontahay sanduuqa-cammuudka?

Waxaa jira dhowr xeer oo "dahab" ah halkan. Marka hore - akhri buugga beddelka. Way weyn tahay, laakiin waxaa jira tuducyo kala duwan oo ku saabsan isbeddellada aan is-waafaqayn ee gadaal u socda. Qodobadan ha ula dhaqmin sidii calan cas. Inta badan waa isqabsi la'aan yar oo ku lug leh qaar ka mid ah shaqeynta geesaha oo aad u badan tahay inaadan isticmaalin.

Marka labaad, haddii aysan jirin si loo hubiyo ku habboonaanta sanduuqa-cammuudda, oo aad rabto inaad isla markiiba cusbooneysiiso wax soo saarka, talada ayaa ah inaadan u baahnayn inaad tan sameyso. Marka hore samee sanduuq ciid ah oo tijaabi. Haddii aysan jirin jawi tijaabo ah, markaa waxay u badan tahay inaadan haysan shirkad aad u weyn, taas oo macnaheedu yahay inaad nuqul ka qaadan karto qaar ka mid ah xogta laptop-kaaga oo hubi in wax walba si sax ah ugu shaqeeyaan. Xitaa waxaad kor ugu qaadi kartaa dhowr nuqul oo gudaha ah mashiinkaaga. Ama waxaad ka qaadan kartaa nooc cusub meel u dhow oo aad geli kartaa xogta qaar ka mid ah halkaas - taas oo ah, samee jawi tijaabo ah oo la hagaajiyay.

Sharci kale maaha in la cusboonaysiiyo usbuuc ka dib marka la sii daayo nooca sababtoo ah qabashada cayayaanka wax soo saarka iyo hagaajinta degdega ah ee xiga. Aynu ogaano tirada noocyada ClickHouse si aynaan u wareerin.

Waxaa jira version 20.3.4. Nambarka 20 wuxuu muujinayaa sanadka wax soo saarka - 2020. Marka laga eego aragtida waxa gudaha ku jira, tani macno ma leh, markaa ma bixin doonno fiiro gaar ah. Xiga - 20.3. Waxaan kordhineynaa lambarka labaad - kiiskan 3 - mar kasta oo aan sii deyno sii-deynta oo leh hawlo cusub. Haddii aan rabno in aan ku darno sifo qaar ClickHouse, waa in aan kordhinaa lambarkan. Taasi waa, nooca 20.4 ClickHouse ayaa si ka sii wanaagsan u shaqayn doona. Lambarka saddexaad waa 20.3.4. Halkan 4 waa tirada sii daynta balastar ee aynaan ku darin sifooyin cusub, laakiin la hagaajiyay qaar ka mid ah cayayaanka. 4-na waxay ka dhigan tahay afar jeer ayaan sameynay.

Ha u malayn in tani ay tahay wax laga cabsado. Caadiyan isticmaaluhu wuxuu rakibi karaa nooca ugu dambeeya wuxuuna shaqayn doonaa iyada oo aan wax dhibaato ah la kulmin wakhtiga la joogo sannadkii. Laakin qiyaas in qaar ka mid ah hawlaha habaynta bitmaps-ka, oo ay ku dareen asxaabteena Shiinaha, server-ku wuu burburaa marka uu soo gudbiyo doodaha khaldan. Masuuliyad ayaa naga saaran inaan hagaajino arrintan. Waxaan sii deyn doonaa nooc cusub oo balastar ah oo ClickHouse wuxuu noqon doonaa mid xasiloon.

Haddii aad leedahay ClickHouse oo ku shaqeeya wax soo saarka, oo nooc cusub oo ClickHouse ah uu la soo baxay astaamo dheeri ah - tusaale ahaan, 20.4.1 waa kan ugu horreeya, ha ku degdegin inaad soo saarto wax soo saarka maalinta ugu horreysa. Maxaa xitaa loogu baahan yahay? Haddii aadan horey u isticmaalin ClickHouse, markaa waad ku rakibi kartaa, waxayna u badan tahay in wax walba ay fiicnaan doonaan. Laakin haddii ClickHouse uu durba si adag u shaqeeyo, ka dib isha ku hay balastar iyo cusbooneysiin si aad u aragto dhibaatooyinka aan hagaajineyno.

Kirill Shvakov: Waxaan jeclaan lahaa inaan ku daro wax yar oo ku saabsan jawiga tijaabada. Qof kastaa wuxuu aad uga cabsadaa jawiga tijaabada, sababo qaar waxay aaminsan yihiin in haddii aad leedahay koox aad u weyn oo ClickHouse ah, markaa jawiga imtixaanku waa inuu ahaadaa mid aan ka yarayn ama ugu yaraan toban jeer ka yar. Ma aha sidaas oo kale.

Waxaan kaaga sheegi karaa tusaalahayga. Waxaan leeyahay mashruuc, waxaana jira ClickHouse. Deegaankayaga tijaabada ah ayaa isaga u gaar ah - kani waa mishiin yar oo macmal ah oo ku yaal Hetzner labaatan euro, halkaas oo wax walba la geeyo. Si tan loo sameeyo, waxaan ku leenahay otomaatig buuxa oo macquul ah, sidaa darteed, mabda 'ahaan, wax farqi ah ma sameyneyso meesha loo tago - server-yada qalabka ama kaliya la geeyo mashiinnada farsamada.

Maxaa la qaban karaa? Way fiicnaan lahayd in lagu bixiyo tusaale dukumeentiyada ClickHouse ee ku saabsan sida loo geeyo koox yar gurigaaga - gudaha Docker, gudaha LXC, laga yaabee in la abuuro buug-ciyaareed macquul ah, sababtoo ah dad kala duwan ayaa kala diraya kala duwan. Tani waxay fududayn doontaa wax badan. Markaad qaadato oo aad geyso koox shan daqiiqo gudaheed, aad bay u fududahay inaad isku daydo inaad wax ogaato. Tani aad bay ugu habboon tahay, sababtoo ah u rogida nooca wax-soo-saarka oo aanad tijaabin waa waddo aan meelna u socon. Mar way shaqaysaa marna ma shaqaynayso. Sidaa darteed, rajada guusha ayaa xun.

Maxim Kotyakov, Injineer taageere sare Avito: Waxaan ku dari doonaa wax yar oo ku saabsan jawiyada tijaabada ah ee dhibaatooyinka isdaba jooga ee ay la kulmaan shirkadaha waaweyn. Waxaan haynaa koox aqbalid oo buuxda ClickHouse; marka la eego nidaamyada xogta iyo dejinta, waa nuqul sax ah oo ah waxa ku jira wax soo saarka. Kooxdan waxa lagu shubay weelal si cadaalad ah loo daadiyey oo leh ugu yaraan agab. Waxaan ku qornaa boqolkiiba xogta wax soo saarka halkaas, nasiib wanaag waxaa suurtagal ah in lagu soo celiyo qulqulka Kafka. Wax kasta oo meeshaas ku jira waa la wada siman yahay oo waa la miisaamay - xagga awoodda iyo socodka labadaba, iyo, aragti ahaan, dhammaan waxyaalaha kale waa siman yihiin, waa inay u dhaqmaan sida wax soo saarka marka la eego cabbirada. Wax kasta oo laga yaabo inay qarxaan marka hore waxaa lagu soo rogaa istaashinkan waxaana lagu tagaa halkaas dhowr maalmood ilaa inta laga diyaarinayo. Laakiin dabiici ahaan, xalkani waa qaali, adag wuxuuna leeyahay kharashyo taageero oo aan eber ahayn.

Alexei Milovidov: Waxaan kuu sheegi doonaa sida jawiga tijaabada ee saaxiibadeena ka socda Yandex.Metrica uu yahay. Mid ka mid ah kooxdu waxay lahayd 600-server, mid kalena wuxuu lahaa 360, waxaana jira koox saddexaad iyo dhowr kooxood. Jawiga tijaabada ee mid ka mid ah waa si fudud laba jeex oo mid kasta ku yaal laba nuqul. Waa maxay sababta laba xabo? Si aanad keligaa u ahayn. Waana in sidoo kale ay jiraan nuqullo. Kaliya qadarka ugu yar ee aad awoodid

Deegaanka tijaabada ahi wuxuu kuu ogolaanayaa inaad hubiso haddii weydiimahaagu ay shaqaynayaan iyo haddii wax weyni jabeen. Laakiin inta badan dhibaatooyin ayaa ka soo baxa dabeecad gebi ahaanba ka duwan, marka wax walba ay shaqeeyaan, laakiin waxaa jira isbeddello yaryar oo culeyska ah.

Aan ku siiyo tusaale. Waxaan go'aansanay inaan rakibno nooc cusub oo ClickHouse ah. Waxaa lagu dhajiyay jawi tijaabo ah, imtixaanno otomaatig ah ayaa lagu dhammeeyey Yandex.Metrica lafteeda, taas oo isbarbardhigga xogta ku saabsan nuqulkii hore iyo kan cusub, oo socodsiinaya dhammaan dhuumaha. Iyo dabcan, imtixaanada cagaaran ee CI our. Haddii kale xitaa ma aanan soo jeedin lahayn noocaan.

Wax walba waa fiican yihiin. Waxaan bilaabaynaa inaan u dhaqaaqno wax soo saarka. Waxaan helay fariin ah in culeyska garaafyada uu kordhay dhowr jeer. Waxaan dib u soo celinaynaa nuqulkii. Waxaan eegay garaafka oo aan arkay: culaysku dhab ahaantii wuu kordhay dhawr jeer inta lagu guda jiro duubista, iyo dib u dhacay markii ay soo baxeen. Ka dib waxaan bilownay inaan dib u rogno nuqulkii. rarkiina sidaas oo kale ayuu u batay oo sidii oo kale dib ugu dhacay. Markaa gunaanadku waa kan: culeysku wuu kordhay sababtoo ah qaabka, wax la yaab leh maaha.

Dabadeed way adkeyd in lagu qanciyo asxaabta inay rakibaan nooca cusub. Waxaan idhi: "Waa caadi, soo bax. Farahaaga is dhaaf, wax walba way shaqayn doonaan. Hadda culeyska garaafyada ayaa kordhay, laakiin wax walba waa fiican yihiin. halkaas ku laal." Guud ahaan, waxaan sameynay tan, waana taas - nooca ayaa loo sii daayay wax soo saarka. Laakiin ku dhawaad ​​qaab kasta oo ay la socdaan dhibaatooyin la mid ah ayaa soo baxa.

Weydiinta dilku waa inay disho su'aalaha, laakiin ma aha. Waa maxay sababtu?

Isticmaale, nooc ka mid ah falanqeeye, ayaa ii yimid oo abuuray codsi dhigaya kooxdayda ClickHouse. Qaar ka mid ah noodhka ama kooxda oo dhan, waxay kuxirantahay nuqulka ama jeexjeexa codsigu aaday. Waxaan arkaa in dhammaan agabyada CPU ee server-kan ay ku jiraan shelf, wax walba waa casaan. Isla mar ahaantaana, ClickHouse lafteedu waxay ka jawaabtaa codsiyada. Oo waxaan qoraa: "Fadlan i tus, liiska habraaca, waa maxay codsigii waalidan dhaliyay."

Codsigan waan helay oo u qor dil. Oo waxaan arkaa in aanay waxba dhicin. Server-kaygu waxa uu ku jiraa shelf, ClickHouse waxa uu i siinayaa amarrada qaar, waxa ay tusinaysaa in seerfarku nool yahay, wax walbana waa weyn yihiin. Laakiin waxaan ku leeyahay hoos u dhac dhammaan codsiyada isticmaalaha, hoos u dhaca waxay ku bilaabataa diiwaannada ClickHouse, iyo weydiintaydu dilku ma shaqaynayso. Waa maxay sababtu? Waxaan u maleeyay dil su'aal ahayd inay disho weydiimaha, laakiin ma dhicin.

Hadda waxaa jiri doona jawaab la yaab leh. Ujeedadu waxay tahay in weydiinta dil aanay dilin su'aalaha.

Weydiinta dil waxay hubisaa sanduuq yar oo la yiraahdo "Waxaan rabaa in su'aashan la dilo." Codsiga laftiisana wuxuu eegayaa calankan marka la farsameynayo block kasta. Haddii la dejiyo, codsigu wuu joojinayaa shaqada. Waxaa soo baxday in qofna uusan dilin codsiga, isaga laftiisa waa inuu wax walba hubiyaa oo joojiyo. Tanina waa inay ku shaqeysaa dhammaan kiisaska uu codsigu ku jiro xaaladda habaynta xogta xogta. Waxay habayn doontaa xogta xogta xigta, hubin doonta calanka, oo joojin doonta.

Tani ma shaqaynayso kiisaska codsiga laga xannibay hawlgalka qaarkood. Run, waxay u badan tahay in tani aysan ahayn kiiskaaga, sababtoo ah, sida aad adigu tahay, waxay isticmaashaa kheyraad badan oo server ah. Waxaa suurtogal ah in tani aysan ku shaqeynin kiiska kala-soocidda dibadda iyo faahfaahin kale. Laakiin guud ahaan tani waa inaysan dhicin, waa kutaan. Waxa kaliya ee aan ku talin karo waa inaan cusbooneysiiyo ClickHouse.

Sidee loo xisaabiyaa wakhtiga jawaabta ee culeyska akhriska?

Waxaa jira miis lagu kaydiyo isku-darka alaabta - miisaska kala duwan. Tirada khadadka waa ku dhawaad ​​boqol milyan. Suurtagal ma tahay in lagu tiriyo wakhtiga jawaabta la saadaalin karo haddii aad ku shubto 1K RPS 1K shay?

Marka la eego macnaha guud, waxaan ka hadleynaa culeyska akhriska, sababtoo ah ma jiraan wax dhibaato ah oo qoraal ah - xitaa kun, xitaa boqol kun, iyo mararka qaarkood dhowr milyan oo saf ayaa la gelin karaa.

Codsiyada akhriska aad bay u kala duwan yihiin. Xulashada 1, ClickHouse waxay qaban kartaa ilaa tobanaan kun oo codsi ilbiriqsikii, marka xitaa codsiyada hal fure ayaa durba u baahan doona xoogaa agab ah. Weydiimaha qodobbada noocan oo kale ah waxay noqon doonaan kuwo aad uga adkaan doona qaar ka mid ah xog-ururinta qiimaha muhiimka ah, sababtoo ah akhris kasta waxaa lagama maarmaan ah in la akhriyo xogta block by index. Tusmadayadu ma khusayso rikoodh kasta, laakiin qayb kasta. Taasi waa, waa inaad akhridaa tirada oo dhan - kani waa 8192 sadar sida caadiga ah. Oo waa inaad ka saartaa block-ka xogta ee la cujiyay laga bilaabo 64 KB ilaa 1 MB. Caadi ahaan, weydiimaha sida la beegsaday waxay qaataan dhowr millise seconds si ay u dhamaystiraan. Laakiin tani waa ikhtiyaarka ugu fudud.

Aynu isku dayno xisaab fudud. Haddii aad ku dhufato dhawr milyan oo ilbiriqsi kun, waxaad helaysaa dhawr ilbiriqsi. Waxay u egtahay inaysan suurtogal ahayn in la sii wado kun codsi ilbiriqsi kasta, laakiin dhab ahaantii waa suurtagal, sababtoo ah waxaan leenahay dhowr qaybood oo processor ah. Marka, mabda'a ahaan, ClickHouse waxay mararka qaarkood hayn kartaa 1000 RPS, laakiin codsiyada gaaban, kuwa si gaar ah loo beegsaday.

Haddii aad u baahan tahay inaad ku qiyaasto kooxda ClickHouse tirada codsiyada fudud, markaa waxaan ku talinayaa waxa ugu fudud - kordhi tirada nuqulada oo u dir codsiyada nuqul kadis ah. Haddii hal nuqul uu haysto shan boqol oo codsi ilbiriqsi kasta, taas oo gebi ahaanba macquul ah, markaa saddex nuqul ayaa qaban doona hal kun iyo badh.

Mararka qaarkood, dabcan, waxaad u habeyn kartaa ClickHouse tirada ugu badan ee akhrinta dhibcaha. Maxaa loo baahan yahay tan? Marka hore waa in la dhimo granularity index. Xaaladdan oo kale, waa in aan loo dhimin hal, laakiin iyada oo ku saleysan in tirada gelitaanka index ay noqon doonto dhowr milyan ama tobanaan milyan halkii server. Haddii miiska uu leeyahay boqol milyan oo saf, markaa granularity-ga waxaa lagu dejin karaa 64.

Waxaad yareyn kartaa xajmiga xannibaadda. Waxaa jira habayn tan min ku cadaadi xajmiga block, max compress block size. Waa la dhimi karaa, waxaa lagu buuxin karaa xogta, ka dibna weydiimaha la beegsanayo ayaa noqon doona mid degdeg ah. Laakin wali, ClickHouse maaha xog-qiimo muhiim ah. Tiro badan oo codsiyo yaryar ah ayaa ah qaab-ka-hortagga culeyska.

Kirill Shvakov: Waxaan ku siin doonaa talo haddii ay dhacdo in xisaabo caadi ah halkaas. Tani waa xaalad caadi ah marka ClickHouse ay kaydiso nooc ka mid ah miiska. Waxaan haystaa isticmaale, wuxuu ka yimid waddan noocaas ah iyo sida, iyo beer saddexaad, waxaanan u baahanahay inaan wax sii kordhiyo. Qaado MySQL, samee fure gaar ah - gudaha MySQL waa fure nuqul ah, gudaha PostgreSQL-na waa khilaaf - oo ku dar calaamad dheeri ah. Tani waxay u shaqayn doontaa si ka sii wanaagsan.

Marka aanad haysan xog badan, ma jirto wax faa'iido ah oo aad u isticmaali karto ClickHouse. Waxaa jira xog ururin joogto ah oo tan si fiican ayey u qabtaan.

Maxaan ku hagaajin karaa ClickHouse si xog badan ugu jirto kaydka?

Aynu qiyaasno xaalad - adeegayaashu waxay leeyihiin 256 GB oo RAM ah, hawl maalmeedka ClickHouse waxay qaadataa 60-80 GB, ugu sarreysa - ilaa 130. Maxaa la awoodsiin karaa oo la isku dhejin karaa si xog badan ay ugu jirto kaydka iyo, si waafaqsan, ma jiraan safarro yar oo saxanka?

Caadi ahaan, khasnadda bogga nidaamka qalliinka ayaa shaqo fiican ka qabta tan. Haddii aad furto meesha sare, fiiri meesha kaydsan ama bilaash - waxay sidoo kale sheegaysaa inta lagu kaydiyay - markaa waxaad ogaan doontaa in dhammaan xusuusta bilaashka ah loo isticmaalo kaydinta. Marka la akhriyo xogtan, lagama akhrin doono saxanka, laakiin RAM-ka. Isla mar ahaantaana, waxaan dhihi karaa in khasnadda loo isticmaalo si wax ku ool ah sababtoo ah waa xogta la cufan ee la kaydiyay.

Si kastaba ha ahaatee, haddii aad rabto in aad dedejiso qaar ka mid ah weydiimaha fudud xitaa in ka badan, waxaa suurtogal ah in aad awood u yeelatid kaydinta xogta la jajabiyey ee gudaha ClickHouse. Waxaa la yiraahdaa khasnado aan la cadaadin. Faylka qaabeynta config.xml, dhig cabbirka kaydinta aan la isku dhejin ee qiimaha aad u baahan tahay - waxaan ku talinayaa in aan ka badnayn kala badh RAM-ka bilaashka ah, sababtoo ah inta soo hartay waxay hoos geli doontaa khasnadda bogga.

Intaa waxaa dheer, waxaa jira laba habayn heerka codsiga. Dejinta koowaad - isticmaal khasnado aan la isku dhejin - waxaa ka mid ah isticmaalkeeda. Waxaa lagu talinayaa in loo sahlo dhammaan codsiyada, marka laga reebo kuwa culus, kuwaas oo akhrin kara dhammaan xogta oo daadi kara kaydinta. Goobta labaadna waa wax la mid ah tirada ugu badan ee khadadka si loo isticmaalo kaydinta. Waxay si toos ah u xaddidaysaa weydiimaha waaweyn si ay uga gudbaan kaydka.

Sideen ugu habeyn karaa kaydinta_configuration ee kaydinta RAM?

Dukumentiga cusub ee ClickHouse waxaan akhriyay qaybta la xidhiidha kaydinta xogta. Sharaxaadku waxa uu ka kooban yahay tusaale leh SSD degdeg ah.

Waxaan la yaabanahay sida wax la mid ah loogu habeyn karo xusuusta kulul ee mugga. Iyo hal su'aal oo kale. Sidee loo doortaa la shaqaynta hay'addan xogta, ma akhrin doontaa dhammaan qaybaha ama kuwa kaliya ee diskka ku jira, oo xogtan ma lagu dhejiyay xusuusta? Sideese qaybta hore-u-dhigista ula shaqaysaa hay'adda xogtan?

Goobtani waxay saamaysaa kaydinta qaybaha xogta, qaabkooduna sinaba uma beddelo.
Aan si hoose u eegno.

Waxaad ku habayn kartaa kaydinta xogta RAM. Dhammaan waxa loo habeeyey saxanka ayaa ah jidkiisa. Waxaad abuurtaa qayb tmpfs ah oo lagu rakibay waddo qaar ka mid ah nidaamka faylka. Waxaad ku qeexday jidkan inuu yahay dariiqa lagu kaydiyo xogta qaybta ugu kulul, qaybo xog ah ayaa bilaabmaya inay yimaadaan oo halkaas lagu qoro, wax walbaa waa fiican yihiin.

Laakiin kuma talinayo inaad tan sameyso sababtoo ah isku halaynta hooseeya, inkastoo haddii aad haysato ugu yaraan saddex nuqul oo xarumo xogeed oo kala duwan, markaa waa suurtogal. Haddii ay wax dhacaan, xogta waa la soo celin doonaa. Aynu qiyaasno in seerfarkii si lama filaan ah loo damiyay oo dib loo shiday. Qaybtii ayaa mar kale la rakibay, laakiin ma jiraan wax halkaas ah. Marka server-ka ClickHouse uu bilaabo, wuxuu arkayaa inuusan haysan qaybahan, inkastoo, marka loo eego metadata ZooKeeper, waa inay halkaas joogaan. Wuu eegaa nuqullada ay haystaan, wuu codsadaa oo soo dejiyaa. Sidan ayaa xogta lagu soo celin doonaa.

Dareenkan, kaydinta xogta RAM-ka asal ahaan kama duwana kaydinta saxanka, sababtoo ah marka xogta lagu qoro saxanka, waxay sidoo kale marka hore ku dhammaataa khasnadda bogga oo jir ahaan ayaa loo qoraa hadhow. Tani waxay kuxirantahay habka faylalka ku rakibida ikhtiyaarka. Laakiin haddii ay dhacdo, waxaan dhihi doonaa ClickHouse ma fsync marka la gelinayo.

Xaaladdan oo kale, xogta RAM-ka waxaa lagu kaydiyaa qaab la mid ah sida saxanka. Weydiinta xulashada si la mid ah waxay dooranaysaa qaybaha u baahan in la akhriyo, waxay doortaa tirada xogta lagama maarmaanka ah ee qaybaha, oo akhriya iyaga. Iyo prewhere si sax ah ayey u shaqeysaa, iyadoon loo eegin haddii xogtu ku jirtay RAM ama disk.

Ilaa intee tirada qiyamka gaarka ah ayaa waxtarka hooseeya ee Cardinality?

Cardinality Low si xariif ah ayaa loo qaabeeyey. Waxay ururisaa qaamuusyada xogta, laakiin waa kuwo maxalli ah. Marka hore, waxaa jira qaamuusyo kala duwan oo qayb kasta ah, marka labaadna, xitaa hal gabal waxay ku kala duwanaan karaan qayb kasta. Marka tirada qiyamka gaarka ahi ay gaadho tirada bilowga—hal milyan, waxaan filayaa— qaamuuska si fudud ayaa loo kaydiyaa mid cusubna waa la abuuray.

Jawaabtu waa guud ahaan: nooc kasta oo maxalli ah - waxaad dhahdaa, maalin kasta - meel ilaa hal milyan oo qiyam gaar ah Cardinality Low waa wax ku ool ah. Dabadeed waxa si fudud dib-u-dhac u iman doona, kaas oo la isticmaali doono qaamuusyo badan oo kala duwan, oo aan ahayn hal keliya. Waxay u shaqayn doontaa qiyaastii la mid ah tiirarka xargaha caadiga ah, laga yaabee in yar oo tayo yar, laakiin ma jiri doonto hoos u dhac waxqabad oo halis ah.

Waa maxay hababka ugu fiican ee raadinta qoraalka buuxa ee miis leh shan bilyan oo saf?

Waxaa jira jawaabo kala duwan. Marka hore waa in la yiraahdo ClickHouse ma aha mashiinka raadinta qoraal-buuxa. Waxaa jira habab gaar ah kan, tusaale ahaan, Elasticsearch и sphinx. Si kastaba ha ahaatee, waxaan si isa soo taraysa u arkaa dadka oo sheegaya inay ka bedelayaan Elasticsearch una guurayaan ClickHouse.

Maxay tani u dhacdaa? Waxay tani ku macneeyeen xaqiiqda ah in Elasticsearch ay joojiso in ay la qabsato culeyska qaar ka mid ah, laga bilaabo dhismaha tusmooyinka. Indexyadu waxay noqdaan kuwo aad u dhib badan, oo haddii aad si fudud ugu wareejiso xogta ClickHouse, waxay soo baxday in ay dhowr jeer u kaydsan yihiin si hufan marka loo eego mugga. Isla mar ahaantaana, weydiimaha raadinta inta badan maahan in ay lagama maarmaan tahay in la helo jumlado ku jira dhammaan mugga xogta, iyada oo la tixgelinayo qaab-dhismeedka, laakiin gebi ahaanba kala duwan. Tusaale ahaan, ka hel qaar ka mid ah baytayada xiga ee logyada dhawrkii saacadood ee la soo dhaafay.

Xaaladdan oo kale, waxaad ku abuurtaa tusaha ClickHouse, goobta ugu horreysa taas oo noqon doonta taariikhda iyo wakhtiga. Goynta ugu weyn ee xogta waxay ku salaysnaan doontaa tirada taariikhda. Inta lagu jiro taariikhda la doortay, sida caadiga ah, waxaa durba suurtagal ah in la sameeyo baaritaan qoraal ah, xitaa iyadoo la adeegsanayo habka xoogga ah ee loo isticmaalo sida. Hawl-wadeenka la midka ah ee ClickHouse waa kan ugu waxtarka badan sida hawl-wadeenka aad ka heli karto. Haddii aad hesho wax ka fiican, ii sheeg.

Laakiin weli, waa sida iskaanka buuxa. Sawirka buuxa wuxuu noqon karaa mid gaabis ah kaliya maaha CPU, laakiin sidoo kale diskka. Haddii aad si lama filaan ah u haysato hal terabyte oo xog ah maalintii, oo aad raadiso kelmad inta lagu jiro maalinta, markaa waa inaad iskaan ka dhigtaa terabyte-ka. Oo waxay u badan tahay inay ku jirto darawallada adag ee caadiga ah, aakhirkana waxaa lagu soo rari doonaa si aadan awoodin inaad u gasho server-ka SSH.

Xaaladdan oo kale, waxaan diyaar u ahay inaan bixiyo hal khiyaamo yar oo kale. Waa tijaabo - waa laga yaabaa inay shaqeyso, laga yaabaa inaanay shaqayn. ClickHouse waxay leedahay tusmooyin qoraal buuxa ah oo qaab trigram Bloom filter ah. Asxaabteena Arenadata waxay mar hore tijaabiyeen tusmooyinkan, waxayna inta badan u shaqeeyaan sidii loogu talagalay.

Si aad si sax ah ugu isticmaasho, waa inaad si fiican u fahantaa sida saxda ah ee ay u shaqeeyaan: waxa trigram filter Bloom yahay iyo sida loo doorto cabbirkiisa. Waxaan dhihi karaa waxay kaa caawin doonaan weydiinta qaar ka mid ah weedho naadir ah, xargaha hoose ee dhifka ah ee laga helo xogta. Xaaladdan oo kale, hoosaadyada waxaa lagu dooran doonaa indexes oo xog yar ayaa la akhriyi doonaa.

Dhawaan, ClickHouse waxay ku dartay xitaa hawlo horumarsan oo qoraal buuxa ah. Kani waa, marka hore, raadinta xidhmo-hoosaadyo hal mar ah hal baas, oo ay ku jiraan xulashooyinka kiis-xasaasi ah, kiis-aan dareen lahayn, oo taageero u ah UTF-8 ama keliya ASCII. Dooro midka ugu waxtarka badan ee aad u baahan tahay.

Raadi tibaaxo badan oo joogto ah oo hal baas ah ayaa sidoo kale soo muuqday. Uma baahnid inaad u qorto X sida hal xaraf ama X oo kale. Isla markiiba wax baad u qortaa, wax walbana waa la sameeyaa sida ugu macquulsan.

Seddexaad, hadda waxaa jira raadin qiyaas ah oo loogu talagalay regexps iyo qiyaastii raadinta xargaha hoose. Haddii qof uu kelmad qalday, waxa la raadin doonaa u dhigma ugu badnaan.

Waa maxay habka ugu wanaagsan ee loo abaabulo gelitaanka ClickHouse ee isticmaalayaasha tirada badan?

Noo sheeg sida ugu wanaagsan ee loo abaabulo gelitaanka tiro badan oo macaamiisha ah iyo falanqeeyayaasha. Sida loo sameeyo safka, mudnaanta loo siiyo weydiimaha ugu badan ee isla socda, iyo qalabkee?

Haddii kooxdu ay weyn tahay oo ku filan, markaa xalka wanaagsan wuxuu noqon lahaa in la kordhiyo laba server oo kale, taas oo noqon doonta barta laga soo galo falanqeeyayaasha. Taasi waa, ha u oggolaan falanqeeyayaasha inay galaan jeexjeexyada gaarka ah ee kutlada, laakiin si fudud u samee laba server oo madhan, xog la'aan, oo ku hagaajiya xuquuqaha gelitaanka iyaga. Xaaladdan oo kale, dejinta isticmaale ee codsiyada la qaybiyay ayaa loo wareejiyaa adeegayaasha fogfog. Taasi waa, waxaad ku habeyneysaa wax kasta oo ku jira labadan server, iyo dejinta waxay saameyn ku yeelanayaan dhammaan kooxda.

Mabda 'ahaan, server-yadani ma laha xog, laakiin qadarka RAM iyaga ayaa aad muhiim u ah fulinta codsiyada. Saxanku waxa kale oo loo isticmaali karaa xogta ku meel gaadhka ah haddii isku-darka dibadda ama kala-soocidda dibadda la awoodo.

Waxaa muhiim ah in la eego goobaha ku xiran dhammaan xuduudaha suurtagalka ah. Haddii aan hadda aado kooxda Yandex.Metrica sida falanqeeye oo aan weydiiyo codsi ka dooro tirinta hits, ka dibna isla markiiba waxaa la i siin doonaa ka reeban oo aanan fulin karin codsiga. Tirada ugu badan ee saf ee la ii oggol yahay inaan iskaan karo waa boqol bilyan, wadar ahaanna waxaa jira konton trillion oo iyaga ka mid ah oo ku jira hal miis oo kutlada. Tani waa xaddidaadda koowaad.

Aynu nidhaahno waxaan meesha ka saaray xadka safka oo mar labaad socodsii su'aasha. Markaa waxaan arki doonaa marka laga reebo kuwan soo socda - dejinta karti u leh xoog index by taariikhda. Ma dhamaystiri karo waydiinta haddii aanan cayimin taariikhda kala duwan. Uma baahnid inaad ku tiirsanaato falanqeeyayaasha si aad gacanta ugu qeexdo. Kiis caadi ah waa marka kala duwanaansho taariikheed la qoro halka taariikhda dhacdada u dhaxaysa toddobaadka. Kadibna waxay si fudud u qeexeen gogol meel khalad ah, iyo halkii ay ka ahaan lahaayeen oo waxay noqotay ama - ama URL u dhigma. Haddii aysan jirin xad, waxay gurguuran doontaa tiirka URL oo kaliya waxay lumin doontaa kheyraad badan.

Intaa waxaa dheer, ClickHouse waxay leedahay laba goobood oo mudnaanta leh. Nasiib darro, waxay yihiin kuwo asal ah. Mid ayaa si fudud loogu yeeraa mudnaanta. Haddii mudnaanta ≠ 0, iyo codsiyada leh mudnaan gaar ah la fulinayo, laakiin codsi leh qiimo mudnaan ka yar, taas oo macnaheedu yahay mudnaanta sare, la fulinayo, markaas codsi leh qiimo mudnaan leh oo weyn, taas oo macnaheedu yahay mudnaanta hoose. , si fudud ayaa loo hakiyay mana shaqeyn doono dhammaan inta lagu jiro waqtigan.

Tani waa goob aad u qallafsan oo aan ku habboonayn kiisaska ay kooxdu leedahay culays joogto ah. Laakiin haddii aad hayso codsiyo gaagaaban oo dillaacsan oo muhiim ah, kooxduna ay badi tahay shaqo-la'aan, habayntu waa ku habboon tahay.

Dejinta mudnaanta xigta ayaa la yiraahdaa Mudnaanta dunta OS. Waxay si fudud u dejinaysaa qiimaha wanaagsan ee dhammaan codsiyada fulinta taxanaha jadwalka Linux. Waxay u shaqeysaa si-sidaas, laakiin wali way shaqeysaa. Haddii aad dejiso qiimaha ugu yar ee wanaagsan - waa kan ugu weyn qiimaha, sidaas darteed mudnaanta ugu hooseeya - oo dejiso -19 codsiyada leh mudnaanta sare, markaa CPU waxay cuni doontaa codsiyada mudnaanta hoose ilaa afar jeer ka yar kuwa mudnaanta sare leh.

Waxa kale oo aad u baahan tahay inaad habayso wakhtiga fulinta codsiga ugu badan - dheh, shan daqiiqo. Xawaaraha ugu yar ee fulinta weydiinta ayaa ah waxa ugu qabow. Goobtani waxay jirtay wakhti dheer, waxaana loo baahan yahay kaliya maaha in la sheego in ClickHouse aanu hoos u dhigin, laakiin si loo qasbo.

Bal qiyaas, waxaad dejisay: haddii qaar ka mid ah hababka weydiimaha ay ka yar yihiin hal milyan oo saf ilbiriqsi, ma samayn kartid taas. Tani waxay ceebaysaa magacayada wanaagsan, xogtayada wanaagsan. Aan mamnuucno tan. Dhab ahaantii waxaa jira laba habayn. Mid ayaa la yiraahdaa min xawaaraha fulinta - xariiqyada ilbiriqsikiiba, kan labaadna waxa loo yaqaan wakhtiga ka-joojinta ka hor inta aanad hubin xawaaraha fulinta min - shan iyo toban ilbiriqsi si caadi ah. Taasi waa, shan iyo toban ilbiriqsi waa suurtagal, ka dibna, haddii ay gaabis tahay, ka dibna kaliya tuur wax ka reeban oo iska rid codsiga.

Waxaad sidoo kale u baahan tahay inaad dejiso kootada. ClickHouse waxa ay leedahay sifo kootada ku dhex dhisan oo xisaabisa isticmaalka kheyraadka. Laakiin, nasiib darro, maaha agabka qalabka sida CPU, disks, laakiin kuwa macquulka ah - tirada codsiyada la shaqeeyay, khadadka iyo bytes akhriyay. Waxaadna u habeyn kartaa, tusaale ahaan, ugu badnaan boqol codsi gudahood shan daqiiqo iyo kun codsi saacaddii.

Maxay muhiim u tahay? Sababtoo ah qaar ka mid ah weydiimaha falanqaynta ayaa si toos ah looga samayn doonaa macmiilka ClickHouse. Wax walbana way fiicnaan doonaan. Laakiin haddii aad leedahay falanqeeyayaasha sare ee shirkaddaada, waxay qori doonaan qoraal, waxaana laga yaabaa inay khalad ka jirto qoraalka. Waxayna khaladkan keeni doontaa in codsiga lagu fuliyo wareeg aan dhammaad lahayn. Tani waa waxa aan u baahanahay inaan iska ilaalino nafteena.

Suurtagal ma tahay in natiijada hal su'aalood la siiyo toban macmiil?

Waxaan haynaa isticmaaleyaal dhowr ah oo jecel inay la yimaadaan codsiyo aad u weyn isla waqti isku mid ah. Codsigu waa weyn yahay, mabda'a ahaan, si dhakhso ah ayaa loo fuliyay, laakiin sababtoo ah xaqiiqda ah in ay jiraan codsiyo badan oo noocaas ah isla waqti isku mid ah, waxay noqotaa mid aad u xanuun badan. Suurtagal ma tahay in la fuliyo codsi la mid ah, kaasoo yimid toban jeer oo isku xigta, hal mar, oo natiijada la siiyo toban macmiil?

Dhibaatadu waxay tahay inaanan haysanin natiijooyinka kaydinta ama kaydinta xogta dhexe. Waxaa jira khasnado bogga ah ee nidaamka hawlgalka, kaas oo kaa ilaalin doona inaad akhrido xogta diskka mar kale, laakiin, nasiib daro, xogta weli waa la jajabin doonaa, la tirtiri doonaa oo dib loo habeyn doonaa.

Waxaan jeclaan lahaa inaan si uun uga fogaado tan, ama anoo kaydinaya xogta dhexe, ama anoo safaya su'aalo la mid ah nooc ka mid ah safka oo ku daraya kayd natiijooyinka. Waxaan hadda haynaa hal codsi oo soo jiidasho leh oo ku daraya kaydinta codsiga, laakiin kaliya kuwa hoos yimaada qaybaha gudaha iyo ku biirista - taas oo ah, xalku waa mid aan dhamaystirnayn.

Si kastaba ha ahaatee, waxaan sidoo kale wajahaynaa xaaladdan oo kale. Tusaalaha qaanuuniga ah ee khaaska ah waa weydiimaha boggaga leh. Waxaa jira warbixin, waxay leedahay dhowr bog, waxaana jira codsi xaddidan 10. Kadibna wax la mid ah, laakiin xaddid 10,10. Kadibna bog kale oo xiga. Su’aashuse waxay tahay, maxaan mar walba waxan oo dhan u tirinaa? Laakin hadda xal ma jiro, si looga badbaadana ma jiro.

Waxaa jira xal kale oo la dhigo sidii gaari dhinac ah oo ku xiga ClickHouse - ClickHouse Proxy.

Kirill Shvakov: ClickHouse Proxy waxa uu leeyahay qiimee ku dhex dhisan iyo kayd natiijooyinka ku dhex jira. Meelo badan ayaa lagu sameeyay halkaas sababtoo ah dhibaato la mid ah ayaa la xaliyay. Wakiilku wuxuu kuu ogolaanayaa inaad xaddido codsiyada adiga oo saf ku jira oo dejiso inta kaydka codsigu noolaanayo. Haddii codsiyadu runtii isku mid ahaayeen, Wakiilku wuxuu soo diri doonaa marar badan, laakiin wuxuu aadi doonaa ClickHouse hal mar oo keliya.

Nginx sidoo kale waxay ku leedahay kaydka nooca bilaashka ah, tani sidoo kale way shaqayn doontaa. Nginx xitaa waxay leedahay jaangooyo haddii codsiyadu yimaadaan isku mar, waxay hoos u dhigi doontaa kuwa kale ilaa mid la dhammeeyo. Laakiin waxay ku jirtaa ClickHouse Proxy in dejinta si aad u wanaagsan loo sameeyo. Waxaa si gaar ah loogu sameeyay ClickHouse, gaar ahaan codsiyadan, markaa way ku habboon tahay. Waa hagaag, way fududahay in la rakibo.

Ka warran hawlgallada is-daba-joogga ah iyo aragtiyaha dhabta ah?

Waxaa jira dhibaato ah in hawlgallada mishiinka dib-u-celinta ay yihiin kuwo aan isku mid ahayn - marka hore xogta waa la qoraa, ka dibna way burburtaa. Haddii kiniin la sameeyay oo iskudar qaar ka mid ah uu ku nool yahay calaamadda, markaas nuqullo ayaa loo qori doonaa. Oo haddii aysan jirin caqli-gal adag, markaa xogta waa la nuqulin doonaa. Maxaad ka qaban kartaa?

Waxaa jira xal cad - in la hirgeliyo kicinta fasal gaar ah oo matviews ah inta lagu jiro hawlgalka burburka asynchronous. Ma jiraan xabbado qalin ah ama qorshayaal lagu hirgelinayo hawl la mid ah?

Way mudan tahay in la fahmo sida wax-ka-saarku u shaqeeyo. Waxa aan hadda kuu sheegi doono maaha mid ku habboon su'aasha, laakiin waa haddii ay mudan tahay in la xasuusto.

Marka la gelinayo miis la soo minguuriyay, waxaa laga jarayaa dhammaan baloogyada la geliyey. Haddii aad dib u geliso isla baloog ka kooban tiro isku mid ah oo isku mid ah oo isku xiga, ka dibna xogta waa la kala saaray. Waxaad heli doontaa "OK" si aad uga jawaabto gelista, laakiin dhab ahaantii hal baakidh oo xog ah ayaa la qori doonaa, lamana koobi doono.

Tani waxay lagama maarmaan u tahay hubaal. Haddii aad hesho "Ok" inta lagu jiro gelinta, ka dibna xogtaada waa la geliyey. Haddii aad qalad ka hesho ClickHouse, waxay la macno tahay in aan la gelin oo aad u baahan tahay inaad ku celiso gelinta. Laakiin haddii xiriirku jabo inta lagu jiro gelinta, markaa ma ogaan kartid in xogta la geliyey iyo in kale. Ikhtiyaarka kaliya ayaa ah in lagu celiyo gelinta mar kale. Haddii xogta dhab ahaantii la geliyey oo aad dib u soo celisay, waxaa jira kala-saarid xannibaad. Tan waxaa loo baahan yahay si looga fogaado nuqullada.

Iyo sidoo kale waa muhiim sida ay ugu shaqeyso aragtiyaha dhabta ah. Haddii xogta la soo saaray markii la geliyey miiska weyn, ka dibna ma geli doonto aragtida la taaban karo.

Haddaba su'aasha ku saabsan. Xaaladaadu aad ayay u dhib badan tahay sababtoo ah waxaad duubaysa nuqul ka mid ah khadadka gaarka ah. Taasi waa, ma aha baakidhka oo dhan in la nuqulo, laakiin khadadka gaarka ah, oo ay ku burburaan asalka. Runtii, xogtu waxay ku burburi doontaa miiska ugu weyn, laakiin xogta aan la dumin waxay aadi doontaa aragtida dhabta ah, iyo inta lagu guda jiro isku-darka waxba ma dhici doono aragtida dhabta ah. Sababtoo ah aragtida la maaday ma aha wax aan ka badnayn kicinta. Inta lagu jiro hawlgalada kale, ma jiraan wax dheeraad ah oo ku dhacaya.

Oo halkan kuma farxin karo. Kaliya waxaad u baahan tahay inaad xal gaar ah u raadiso kiiskan. Tusaale ahaan, suurtogal ma tahay in dib loogu soo celiyo aragti dhab ah, iyo habka kala-saarista ayaa laga yaabaa inay u shaqeyso si la mid ah. Laakiin nasiib daro, had iyo jeer maaha. Haddii la isu geeyo, ma shaqayn doonto.

Kirill Shvakov: Waxa kale oo aanu haysanay dhismo ul ah maalintii. Waxaa jirtay dhibaato ah in ay jiraan aragtiyo xayeysiis, waxaana jira xog aan ku muujin karno waqtiga dhabta ah - kuwani waa uun aragtiyo. Waa dhif in la nuqulo, laakiin haddii ay tani dhacdo, waanu dumin doonaa hadhow si kastaba. Oo waxaa jiray waxyaabo aan la koobi karin - gujis iyo sheekadan oo dhan. Laakiin waxaan sidoo kale rabay inaan tusiyo isla markiiba.

Sidee loo sameeyay arragtiyaal dhab ah? Waxaa jiray aragtiyo halka si toos ah loogu qoray - waxaa loo qoray xog cayriin, oo loo qoray aragtiyo. Halkaa, mar uun xogtu maaha mid sax ah, waa la soo koobay, iwm. Oo waxaa jira qayb labaad oo ka mid ah miiska, halkaas oo ay si sax ah u eg yihiin sida aragtiyaha dhabta ah, taas oo ah, waxay gebi ahaanba isku mid yihiin qaabdhismeedka. Mar mar ayaanu dib u xisaabinay xogta, xisaabi xogta iyada oo aan nuqullo la samayn, u qor miisaskaas.

Waxaan soo marnay API - kani kama shaqayn doono ClickHouse gacan ahaan. API wuxuu eegayaa: marka aan haysto taariikhda ugu dambeysa ee miiska, halkaasoo loo dammaanad qaadayo in xogta saxda ah mar hore la xisaabiyay, oo ay codsi u dirto hal miis iyo miis kale. Mid ka mid ah codsigu wuxuu dooranayaa ilaa wakhti go'an, kan kalena wuxuu helayaa waxaan weli la xisaabin. Oo way shaqeysaa, laakiin maaha ClickHouse oo keliya.

Haddii aad haysatid nooc API ah - falanqeeyayaasha, isticmaalayaasha - markaa, mabda'a, tani waa ikhtiyaar. Had iyo jeer waad tirinaysaa, had iyo jeerna wax baad tirinaysaa. Tan waxaa la samayn karaa hal mar maalintii ama wakhti kale. Adiga ayaa dooranaya naftaada xad aanad u baahnayn oo aan muhiim ahayn.

ClickHouse waxay leedahay diiwaanno badan. Sideen u arki karaa wax kasta oo ku dhaca serverka oo jaleeco?

ClickHouse waxa uu leeyahay tiro aad u badan oo ah qoraallo kala duwan, tiradanina way sii kordhaysaa. Noocyo cusub, qaar ka mid ah ayaa xitaa si toos ah loogu oggolaaday; noocyadii hore waa in la dhaqaajiyaa marka la cusboonaysiinayo. Si kastaba ha ahaatee, waxaa jira qaar badan oo ka mid ah. Ugu dambeyntii, waxaan jeclaan lahaa inaan arko waxa hadda ka socda server-kayga, laga yaabee nooc ka mid ah dashboard-ka kooban.

Ma haysaa kooxda ClickHouse, ama kooxaha saaxiibadaa, kuwaas oo taageera qaar ka mid ah shaqaynta dashboards diyaarsan oo soo bandhigi doona logusyadan sidii alaab dhammaatay? Ugu dambeyntii, kaliya fiirinta diiwaannada gudaha ClickHouse waa wax weyn. Laakiin aad bay u fiicnaan lahayd haddii mar hore loo diyaariyey qaab dashboard ah. Laad baan ka heli lahaa

Waxaa jira dashboards, in kasta oo aan la jaan qaadin. Shirkadeena, ilaa 60 kooxood ayaa adeegsada ClickHouse, waxa ugu yaabka badan ayaa ah in qaar badan oo iyaga ka mid ahi ay haystaan ​​dashboards ay iyagu iskood u sameeyeen, iyo kuwo kala duwan. Kooxaha qaarkood waxay isticmaalaan rakibaadda Yandex.Cloud gudaha. Waxaa jira warbixino diyaar ah, inkastoo aysan ahayn dhammaan kuwa loo baahan yahay. Kuwo kalena iyagaa leh.

Asxaabtayda Metrica waxay ku leeyihiin Grafana dashboard u gaar ah, aniguna waxaan leeyahay kooxdooda. Waxaan eegayaa waxyaabo ay ka mid yihiin kaydka lagu dhuftay kaydka serifka. Waxaana ka sii adag in aan isticmaalno qalab kala duwan. Waxa aan sameeyay dashboard-kayga aniga oo isticmaalaya qalab qadiimi ah oo loo yaqaan Graphite-web. Aad ayuu u fool xun yahay. Welina sidan ayaan u isticmaalaa, in kasta oo Grafana ay u badan tahay inay ku habboon tahay oo qurux badan tahay.

Waxa aasaasiga ah ee dashboards waa isku mid. Kuwani waa halbeegyada nidaamka kooxda: CPU, memory, disk, network. Kuwo kale - tirada codsiyada isku mar, tirada isku darka isku mar ah, tirada codsiyada ilbiriqsi kasta, tirada ugu badan ee jajabyada ee qaybaha miiska MergeTree, dib u dhigista, cabbirka safka, tirada safafka la geliyo ilbiriqsi kasta, tirada baloogyada la geliyo ilbiriqsikii. Tani waa waxa kaliya ee aan laga helin logyada, laakiin laga helo cabbirada.

Vladimir Kolobaev: Alexey, waxaan jeclaan lahaa inaan wax yar saxo. Waxaa jira Grafana. Grafana waxay leedahay il xogeed, taasoo ah ClickHouse. Taasi waa, waxaan codsiyo ka samayn karaa Grafana si toos ah ClickHouse. ClickHouse waxa ay leedahay miis ay ku qoran yihiin qoraalo, waa isku mid qof walba. Natiijo ahaan, waxaan rabaa inaan galo miiska log-gan ee Grafana oo aan arko codsiyada uu server-kaygu sameeyo. Way fiicnaan lahayd inaad haysato dashboard kan oo kale ah.

Aniga qudhayda ayaa baaskiil ku qaaday. Laakiin waxaan qabaa su'aal - haddii ay tahay dhammaan jaangooyooyinka, iyo Grafana loo isticmaalo qof kasta, maxay Yandex u haysanin dashboard-ka rasmiga ah?

Kirill Shvakov: Dhab ahaantii, ilaha xogta ee taga ClickHouse hadda waxay taageertaa Altinity. Oo kaliya waxaan rabaa in aan siiyo vector meesha aan qodayo iyo cidda aan riixayo. Waad waydiin kartaa iyaga, sababtoo ah Yandex ayaa wali sameeya ClickHouse, oo maaha sheekada ku xeeran. Altinity waa shirkadda ugu weyn ee hadda kor u qaadaysa ClickHouse. Iyagu isaga ma dayrin doonaan, laakiinse way taageeri doonaan. Sababtoo ah, mabda 'ahaan, si aad ugu dhejiso dashboard website-ka Grafana, waxaad u baahan tahay oo kaliya inaad diiwaangeliso oo aad geliso - ma jiraan dhibaatooyin gaar ah.

Alexei Milovidov: Sanadkii la soo dhaafay, ClickHouse waxa ay ku dartay awoodo xog-ururin badan oo su'aalo ah. Waxaa jira cabbiro codsi kasta oo ku saabsan isticmaalka kheyraadka. Dhowaan uun, waxaanu ku darnay borofisar waydiimo heer hoose ah si aanu u aragno halka ay waydiintu ku kharash garayso millise-ilbiriqsi kasta. Laakiin si aan u isticmaalo shaqadan, waa inaan furo macmiilka console oo aan ku qoro codsi, kaas oo aan had iyo jeer ilaawo. Meel baan ku badbaadiyay oo waan ilaaway meesha saxda ah.

Waxaan jeclaan lahaa inuu jiro qalab hadda dhahay, waa kuwan su'aalahaaga culus, oo lagu soo koobay fasalka weydiinta. Mid baan ku riixay, waxayna ii sheegi doonaan in ay taasi tahay sababta ay u culus tahay. Xalkaas oo kale hadda ma jiro. Runtii waa wax lala yaabo in marka ay dadku i weydiiyaan: "Ii sheeg, ma jiraan wax dashboards diyaarsan oo loogu talagalay Grafana?", Waxaan ku idhaahdaa: "Tag website-ka Grafana, waxaa jira bulsho "Dashboards", oo waxaa jira dashboards. ka Dimka, waxaa jira dashboard ka Kostyan. Ma garanayo waxa ay tahay, ma aanan isticmaalin nafteyda. "

Sidee saameyn ugu yeelan kartaa isku-darka si uusan server-ku u dhicin OOM?

Waxaan haystaa miis, miiska waxaa ku jira hal qayb oo kaliya, waa BedelkaMergeTree. Afar sano ayaan xog ku qorayay. Waxaan u baahday in aan wax ka beddelo oo aan tirtiro xogta qaar.

Waxaan sameeyay sidaan, oo inta lagu guda jiro habaynta codsigan, dhammaan xusuusta ku jirta dhammaan server-yada kutlada waa la wada baabbi'iyey, dhammaan server-yada kooxda waxay galeen OOM. Dabadeed way wada kaceen, oo waxay bilaabeen inay isku daraan isla hawlgalkan, xogtan block, waxayna ku dhaceen OOM mar kale. Markaasay haddana kaceen oo haddana dhaceen. Arrinkani ma joogsan.

Kadib waxaa soo baxday in tani ay dhab ahaantii ahayd bug ay nimanku hagaajiyeen. Tani aad ayey u fiican tahay, aad baad u mahadsan tahay. Laakiin hadhaaga ayaa hadhay. Oo hadda, markaan ka fekero samaynta nooc ka mid ah ku biirista miiska, waxaan qabaa su'aal - maxaan si uun u saameyn karin isku-dhafkan? Tusaale ahaan, ku xaddid tirada RAM ee loo baahan yahay, ama, mabda'a ahaan, qaddarka ka shaqayn doona miiskan gaarka ah.

Waxaan haystaa miis la yiraahdo "Metrics", fadlan iigu farsamee laba qaybood. Looma baahna in la abuuro toban ama shan isku dar ah oo isku mid ah, laba samee. Waxaan u maleynayaa in aan haysto xusuusta ku filan laba, laakiin waxaa laga yaabaa inaysan ku filneyn in la sameeyo toban. Waa maxay sababta cabsidu u hadhsan tahay? Sababtoo ah miiska ayaa koraya, oo maalin maalmaha ka mid ah waxaan la kulmi doonaa xaalad, mabda'a ahaan, hadda ma aha sababtoo ah bug, laakiin sababtoo ah xogtu waxay bedeli doontaa qadar aad u badan oo aan si fudud u heli doonin xusuusta ku filan server. Kadibna serverku wuu ku dhici doonaa OOM marka la isku daro. Waxaa intaa dheer, waan burin karaa isbeddelka, laakiin Merji hadda ma joogo.

Waad ogtahay, marka la isku daro, server-ku kuma dhici doono OOM, sababtoo ah marka la isku daro, qadarka RAM waxaa loo isticmaalaa kaliya hal xog oo yar. Markaa wax walba way fiicnaan doonaan iyada oo aan loo eegin tirada xogta.

Vladimir Kolobaev: Fiican Halkan daqiiqaddu waa sidaas oo kale ka dib markii cayayaanka la hagaajiyay, waxaan soo dejiyey naftayda nooc cusub, iyo miis kale, mid yar, oo ay jiraan qaybo badan, waxaan sameeyay qalliin la mid ah. Intii lagu guda jiray isku-dhafka, qiyaastii 100 GB oo RAM ah ayaa lagu gubay server-ka. Waxaan haystay 150, 100 waa la cunay, iyo 50 GB oo daaqad ah ayaa ii hadhay, markaa kuma dhicin OOM.

Maxaa hadda iga ilaalinaya inaan ku dhaco OOM haddii ay dhab ahaantii isticmaasho 100 GB oo RAM ah? Maxaa la sameeyaa haddii RAM-ku si lama filaan ah u dhammaado?

Alexei Milovidov: Waxaa jira dhibaato sidan oo kale ah in isticmaalka RAM gaar ahaan isku-darka aan la xaddidin. Dhibaatada labaadna waxay tahay haddii nooc ka mid ah isku-darka la qoondeeyay, markaa waa in la fuliyo sababtoo ah waxay ku qoran tahay diiwaanka nuqulka. Diiwaanka nuqulku waa ficilada loo baahan yahay si nuqulka loo keeno xaalad joogto ah. Haddii aadan samayn wax-ka-qabasho gacanta ah oo dib u rogi doonta diiwaankan nuqul ka mid ah, isku darka waa in loo sameeyaa si uun ama si kale.

Dabcan, ma ahaan lahayd wax aad u xun in la yeesho xaddidaad RAM ah oo "kaliya haddii ay dhacdo" ay ka ilaaliso OOM. Ma caawin doonto isku-dhafka si ay u dhamaystirto, waxay bilaabi doontaa mar kale, waxay gaari doontaa heer ka mid ah, tuuri doonta ka reeban, ka dibna dib u bilaw - waxba kama soo baxayso tan. Laakiin mabda 'ahaan, waxay faa'iido u yeelan doontaa in la soo bandhigo xaddidan.

Sidee loo horumarin doonaa darawalka Golang ee ClickHouse?

Darawalka Golang, oo uu qoray Kirill Shvakov, ayaa hadda si rasmi ah u taageeray kooxda ClickHouse. Isaga gudaha kaydka ClickHouse, hadda waa weyn yahay oo dhab ah.

Qoraal yar. Waxaa jira kayd cajiib ah oo la jecel yahay oo ah qaababka caadiga ah ee nidaamka aan dhammaadka lahayn - tani waa Vertica. Waxa kale oo ay leeyihiin dareewalkooda Python ee rasmiga ah, kaas oo ay taageerayaan horumarinta Vertica. Dhawr jeerna waxa dhacday in noocyada kaydinta iyo nooca darawalku ay si weyn u kala duwanaayeen, darawalkuna mar uun shaqadii joojiyay. Iyo qodobka labaad. Taageerada darawalkan rasmiga ah, waxay iila muuqataa aniga, waxaa fuliyaa nidaamka "Ibta naaska" - waxaad u qortaa arrin, waxayna ku xiran tahay weligeed.

Waxaan qabaa laba su'aalood. Hadda Kirill's Golang darawalku wuxuu ku dhow yahay habka caadiga ah ee loogala xiriiro Golang ee ClickHouse. Ilaa uu qof wali kula xidhiidho interface-ka http sababtoo ah wuu jecel yahay sidaas. Sidee buu horumarka darawalkani u socon doonaa? Miyaa lala jaanqaadi doonaa isbeddellada jebinta ee kaydka laftiisa? Waa maxay habka loo tixgeliyo arrin?

Kirill Shvakov: Midda koowaad waa sida wax walba loo habeeyey si xafiisyo ah. Qodobkan lagama hadlin, markaa ma hayo wax aan ka jawaabo.

Si aad uga jawaabto su'aasha ku saabsan arrinta, waxaan u baahannahay taariikh yar oo darawalka ah. Waxaan u shaqeeyay shirkad xog badan haysata. Waxay ahayd xayaysiis xayaysiis ah oo leh tiro badan oo dhacdooyin ah oo u baahan in meel lagu kaydiyo. Oo mar uun ClickHouse ayaa soo muuqday. Waxaan ka buuxinay xogta, oo markii hore wax walba way fiicnaayeen, laakiin ka dib ClickHouse ayaa burburay. Isla markaas waxaan go'aansanay inaanan u baahnayn.

Sannad ka dib, waxaan ku soo laabanay fikradda isticmaalka ClickHouse, waxaanan u baahanahay inaan xogta ku qorno si uun. Farriinta hordhaca ah waxay ahayd tan: qalabku aad ayuu u daciif yahay, waxaa jira kheyraad yar. Laakiin had iyo jeer sidan ayaan u shaqayn jirnay, sidaa awgeed waxa aanu eegnay hab-maamuuska waddaniga ah.

Tan iyo markii aan ka shaqaynaynay Go, way caddaatay inaan u baahanahay darawal Go. Waxaan sameeyay ku dhawaad ​​wakhti buuxa - waxay ahayd shaqadayda shaqada. Meel gaar ah ayaanu soo gaadhnay, mabda’a ahaanna ma jirin cid u qaadatay in cid aan anaga ahayni adeegsan doonto. Kadibna CloudFlare waxay la timid isla dhibaatadaas, in muddo ah waxaan ula shaqeynay si habsami leh, sababtoo ah waxay lahaayeen hawlo isku mid ah. Waxaa intaa dheer, waxaan tan ku samaynay ClickHouse nafteena iyo darawalka labadaba.

Mararka qaarkood, waxaan si fudud u joojiyay samaynta, sababtoo ah dhaqdhaqaaqayga marka la eego ClickHouse iyo shaqada ayaa isbeddelay wax yar. Sidaa darteed arrimuhu ma xidhna. Mararka qaarkood, dadka u baahan wax iyaga laftoodu waxay u heellan yihiin kaydka. Kadibna waxaan eegaa codsiga jiidista mararka qaarkoodna xitaa wax aan tafatiro nafteyda, laakiin tani waxay dhacdaa marar dhif ah.

Waxaan rabaa inaan ku laabto darawalka. Dhawr sano ka hor, markii waxaas oo dhami bilaabmay, ClickHouse sidoo kale wuu ka duwanaa oo lahaa awoodo kala duwan. Hadda waxaan leenahay fahamka sida loo sameeyo darawalka si uu si fiican u shaqeeyo. Haddii ay tani dhacdo, markaa nooca 2 wuxuu noqon doonaa mid aan ku habboonayn kiis kasta sababtoo ah qulqulka la ururiyey.

Ma garanayo sida loo abaabulo arrintan. Anigu naftayda wakhti badan ma haysto. Haddii dadka qaar ay dhammeeyaan darawalka, waan caawin karaa oo u sheegi karaa waxa la sameeyo. Laakiin ka qaybgalka firfircoon ee Yandex ee horumarinta mashruuca weli lagama hadlin.

Alexei Milovidov: Dhab ahaantii, ma jiraan wax xafiisyo ah oo ku saabsan darawalladan. Waxa kaliya ayaa ah in loo gudbiyo urur rasmi ah, taas oo ah, darawalkan waxaa loo aqoonsan yahay inuu yahay xalka rasmiga ah ee Go. Waxaa jira darawallo kale, laakiin si gooni ah ayay u yimaadaan.

Ma hayno wax horumar gudaha ah oo darawaliintan ah. Su'aashu waxay tahay ma qof gaar ah ma shaqaaleysiin karnaa, maahan darawalkan gaarka ah, ee waa horumarinta dhammaan darawallada bulshada, mise waxaan ka heli karnaa qof dibadda ah.

Qaamuuska dibedaku ma soo shubo ka dib dib-u-bilaabida iyadoo la dajiyay goobta lazy_load. Maxaa la sameeyaa?

Waxa aanu haynaa goobta lazy_load, iyo ka dib markii serfarka dib loo furay, qaamuusku iskii uma shubto. Waxa la kiciyaa ka dib marka isticmaaluhu galo qaamuuskan. Oo marka ugu horeysa ee aan galo, waxay ku siinaysaa qalad. Suurtagal ma tahay in si toos ah loogu shubo qaamuusyada adigoo isticmaalaya ClickHouse, mise waxaad u baahan tahay inaad had iyo jeer xakamayso diyaargarowgooda si aanay isticmaalayaashu u helin khaladaad?

Waxaa laga yaabaa inaan hayno nooc hore oo ClickHouse ah, markaa qaamuusku si toos ah uma shuban. Ma laga yaabaa inay taasi dhacdo?

Marka hore, qaamuusyada waxaa lagu qasbi karaa in lagu raro iyada oo la adeegsanayo weydiin nidaamka dib u soo deji qaamuusyada. Marka labaad, oo ku saabsan qaladka - haddii qaamuuska hore loo raray, markaa weydiimaha ayaa ku shaqeyn doona iyadoo lagu saleynayo xogta la raray. Haddii qaamuuska aan weli la rarin, si toos ah ayaa loo rari doonaa inta codsiga lagu jiro.

Tani aad uguma habboona qaamuusyada culus. Tusaale ahaan, waxaad u baahan tahay inaad hal milyan oo saf ka soo saarto MySQL. Qof ayaa sameeya doorasho fudud, laakiin xulashadani waxay sugi doontaa isla milyan oo saf. Waxaa jira laba xal halkan. Midka koowaad waa in la damiyo lazy_load. Marka labaad, marka server-ku kor u kaco, ka hor inta aanad culayska saarin, samee Qaamuuska dib u soo dejinta nidaamka ama kaliya samee weydiimo isticmaalaya qaamuus. Markaas qaamuuska ayaa la rari doonaa. Waxaad u baahan tahay inaad xakamayso helitaanka qaamuusyada iyadoo goobta lazy_load ay shaqaynayso, sababtoo ah ClickHouse si toos ah uma shubto.

Jawaabta su'aasha ugu dambeysa waa nuqulkii hore ama wuxuu u baahan yahay in la tirtiro.

Maxaa lagu sameeyaa xaqiiqda ah in nidaamka dib-u-dejinta qaamuusyada uusan ku shubin mid ka mid ah qaamuusyada badan haddii ugu yaraan mid ka mid ah uu ku dhaco qalad?

Waxaa jirta su'aal kale oo ku saabsan nidaamka dib u dejinta qaamuusyada. Waxaan haynaa laba qaamuus - mid lama raro, ka labaadna waa la rartay. Xaaladdan oo kale, qaamuusyada dib-u-dejinta nidaamka ma rarto qaamuus kasta, waana inaad dhibic-dhibic ku shubtaa mid gaar ah magaciisa adoo isticmaalaya nidaamka dib u dejinta. Tani sidoo kale ma la xidhiidha nooca ClickHouse?

Waxaan rabaa inaan kaa farxiyo Dhaqankani wuu is beddelay. Tani waxay ka dhigan tahay haddii aad cusboonaysiiso ClickHouse, waxay sidoo kale isbeddeli doontaa. Haddii aadan ku faraxsanayn hab-dhaqankaaga hadda nidaamka dib u soo deji qaamuusyada, Cusbooneysii, oo aan rajayno in ay si wanaagsan isu beddesho.

Ma jirtaa hab lagu habeeyo faahfaahinta qaabeynta ClickHouse, laakiin aan soo bandhigin haddii ay khaladaad dhacaan?

Su'aasha xigta waxay ku saabsan tahay khaladaadka la xiriira qaamuuska, kuwaas oo ah faahfaahinta. Waxaan ku qeexnay faahfaahinta isku xirka qaabka ClickHouse ee qaamuuska, iyo haddii uu jiro qalad, waxaan helnaa faahfaahintan iyo erayga sirta ah ee jawaabta.

Waxaan xalinay qaladkan anaga oo ku daray faahfaahinta habaynta darawalka ODBC. Ma jirtaa hab lagu habeeyo tafaasiisha ku jirta isku xidhka ClickHouse, laakiin aan la tusin tafaasiishan haddii ay dhacdo khaladaad?

Xalka dhabta ah ee halkan waa in lagu caddeeyo aqoonsigan odbc.ini, iyo ClickHouse lafteedu waxay caddeeyaan kaliya Magaca Isha Xogta ODBC. Tani kama dhici doonto ilo qaamuusyo kale - midkoodna qaamuuska MySQL, ama kuwa kale, waa inaadan arkin erayga sirta ah marka aad hesho fariin qalad ah. ODBC, waxaan sidoo kale eegi doonaa - haddii ay jirto, kaliya waxaad u baahan tahay inaad ka saarto.

Gunnada: asalka u ah Zoom ee shirarka

Markaad gujiso sawirka, gunnada gunnada ee ka soo jeeda shirarka waxay u furmi doontaa akhristayaasha ugu adkaysiga badan. Waxaanu si wada jir ah u daminay dabka anagoo kaashanayna mascots-ka tignoolajiyada ee Avito, waxaanu la kulannaa asxaabta ka socota qolka maamulaha nidaamka ama naadiga kombuyuutarka ee dugi hore, waxaanu maalin walba ku qabanaa buundada hoosteeda shirar looga soo horjeedo gadaasha qoraalada.

ClickHouse ee isticmaalayaasha horumarsan ee su'aalaha iyo jawaabaha

Source: www.habr.com

Add a comment