U guurista ClickHouse: 3 sano ka dib

Saddex sano ka hor Viktor Tarnavsky iyo Alexey Milovidov oo ka socda Yandex masraxa HighLoad++ sheegay, sida uu u fiican yahay ClickHouse, iyo sida aanu hoos ugu dhicin. Marxaladda xigtana waxaa jirtay Alexander Zaitsev с warbixin ku saabsan u guurista GujiHouse laga bilaabo DBMS kale oo falanqayn ah iyo gabagabada taas GujiHouse, Dabcan, wanaagsan, laakiin aan aad u habboon. Marka 2016 shirkadda LifeStreet, halkaasoo Alexander uu markaa ka shaqeeyay, wuxuu u beddelayaa habka falanqaynta ee petabyyte-ka badan GujiHouse, waxay ahayd "waddo leben jaale ah" oo xiiso leh oo ay ka buuxaan khataro aan la garanayn - GujiHouse waagaas waxay u ekayd goob miinada.

Saddex sano ka dib GujiHouse noqday mid aad u wanaagsan - inta lagu guda jiro waqtigan Alexander aasaasay shirkadda Altinity, taas oo aan ka caawin oo kaliya in ay dadka u guuraan GujiHouse daraasiin mashruucyo ah, laakiin sidoo kale waxay wanaajisaa badeecada lafteeda oo ay weheliso asxaabta ka socota Yandex. Hadda GujiHouse Weli maaha socod-mashxarad la'aan, laakiin hadda ma ahan goob miinada.

Alexander waxa uu la shaqaynayey nidaamyada la qaybiyey ilaa 2003, isaga oo ku horumarinaya mashaariic waaweyn MySQL, Oracle и Vertica. Marka ugu dambeysa HighLoad++ 2019 Alexander, mid ka mid ah hormuudka u ah isticmaalka GujiHouse, ayaa sheegay waxa DBMS-kan hadda yahay. Waxaan baran doonaa sifooyinka ugu muhiimsan GujiHouseSida ay uga duwan tahay nidaamyada kale iyo xaaladaha ay aad waxtar u leedahay in la isticmaalo. Isticmaalka tusaalooyin, waxaan eegi doonaa dhawaan iyo dhaqamada la tijaabiyay ee mashruucyada lagu dhisayo nidaamyada ku salaysan GujiHouse.


Dib-u-eegis: maxaa dhacay 3 sano ka hor

Saddex sano ka hor ayaanu shirkadda wareejinay LifeStreet on GujiHouse laga soo bilaabo xog-ururin kale, iyo guurista falanqaynta shabakada xayeysiiska waxay u egtahay sidan:

  • Juun 2016. In Meel furan muuqday GujiHouse waxaana bilowday mashruuceena;
  • Ogosto. Caddeynta Fikradda: shabakad xayaysiis oo ballaaran, kaabayaasha iyo 200-300 terabytes oo xog ah;
  • Oktoobar. Xogta ugu horreysa ee wax soo saarka;
  • December. Culayska alaabta oo dhan waa 10-50 bilyan oo dhacdo maalintii.
  • Juun 2017. U guuritaanka guusha leh ee isticmaalayaasha GujiHouse, 2,5 petabytes oo xog ah oo ku jira koox ka kooban 60 adeegayaal.

Intii lagu guda jiray geeddi-socodkii socdaalka, waxaa jiray faham sii kordhayay GujiHouse Waa nidaam wanaagsan oo ku faraxsan in lala shaqeeyo, laakiin tani waa mashruuc gudaha ah ee Yandex. Sidaa darteed, waxaa jira nuances: Yandex marka hore waxay la macaamili doontaa macaamiisheeda gudaha ka dibna kaliya bulshada iyo baahida isticmaalayaasha dibadda, iyo ClickHouse ka dibna ma gaarin heerka ganacsiga meelo badan oo shaqeynaya. Taasi waa sababta aan u aasaasnay ​​Altinity bishii Maarso 2017 si loo sameeyo GujiHouse xitaa dhakhso badan oo ku habboon maaha oo kaliya Yandex, laakiin sidoo kale isticmaaleyaasha kale. Oo hadda waxaan:

  • Waxaanu tababarnaa oo aanu ka caawinnaa dhisidda xalalka ku salaysan GujiHouse si aanay macaamiishu dhibaato u gelin, xalkuna ugu dambayntii u shaqeeyo;
  • Waxaan bixinaa taageero 24/7 GujiHouse- rakibaadda;
  • Waxaan horumarinaa mashaariicdayada nidaamka deegaanka;
  • Waxaan si firfircoon ugu heellan nahay nafteena GujiHouse, ka jawaabista codsiyada isticmaalayaasha raba inay arkaan sifooyinka qaarkood.

Dabcan, waxaan ka caawineynaa u guurista GujiHouse с MySQL, Vertica, Oracle, Greenplum, Redshift iyo nidaamyada kale. Waxaan ku lug yeelanay dhaqdhaqaaqyo kala duwan, dhammaantoodna waa lagu guuleystay.

U guurista ClickHouse: 3 sano ka dib

Maxaa loo guurayaa GujiHouse

Ma gaabis! Tani waa sababta ugu weyn. GujiHouse - Xog-ururin aad u degdeg badan oo loogu talagalay xaalado kala duwan:

U guurista ClickHouse: 3 sano ka dib

Xigashooyinka aan tooska ahayn ee laga soo xigtay dadka la shaqaynayey dadka wakhti dheer GujiHouse.

Miisaanka. Qaar ka mid ah xogta kale waxaad ku gaari kartaa waxqabad wanaagsan hal qayb oo qalab ah, laakiin GujiHouse Waxaad cabbiri kartaa ma aha oo kaliya si toos ah, laakiin sidoo kale horizontal, si fudud adigoo ku daraya server. Wax walba uma shaqeeyaan si habsami leh sida aan rabno, laakiin way u shaqeeyaan. Waad balaadhin kartaa nidaamka marka ganacsigaagu korayo. Waxaa muhiim ah in aan hadda xalku nagu koobin oo mar walba la heli karo horumar.

Qaadashada. Hal shay kuma xidhna. Tusaale ahaan, leh Redshift Amazon Way adag tahay inaad meel u guurto. A GujiHouse Waxaad ku rakibi kartaa laptop-kaaga, server-kaaga, geyn kartaa daruuraha, tag Kubureteska - ma jiraan wax xannibaad ah oo ku saabsan hawlgalka kaabayaasha. Tani waxay ku habboon tahay qof kasta, tanina waa faa'iido weyn oo aan xog-ururin kale oo badan oo la mid ah ku faani karin.

Fududeyn. GujiHouse kuma joogsan hal shay, tusaale ahaan, Yandex.Metrica, laakiin waxay horumarisaa oo loo adeegsadaa mashruucyo iyo warshado badan oo kala duwan. Waxaa lagu ballaarin karaa iyadoo lagu daro awoodo cusub si loo xalliyo dhibaatooyinka cusub. Tusaale ahaan, waxaa la aaminsan yahay in kaydinta log-yada ee kaydka xogta ay tahay dhaqan xumo, sidaas darteed way la yimaadeen Elasticsearch. Laakin waxaa mahad leh dabacsanaan GujiHouse, waxa kale oo aad ku kaydin kartaa lo'da, iyo inta badan tani way ka fiican tahay gudaha Elasticsearch - gudaha GujiHouse Tani waxay u baahan tahay 10 jeer ka yar birta.

Bilaash Ilaha furan. Maaha inaad wax lacag ah bixiso. Looma baahna in lagala xaajoodo ogolaanshaha si loogu rakibo nidaamka kumbuyuutarkaaga ama server-kaaga. Ma jiraan khidmad qarsoon. Isla mar ahaantaana, ma jiro tignoolajiyada keydka xogta Isha Furan oo kale oo la tartami karta xawaaraha GujiHouse. MySQL, MariaDB, Greenplum - Dhammaantood aad bay u gaabis yihiin.

Bulshada, wadista iyo madadaalo. Ugu GujiHouse Bulshada ugu fiican: kulanno, sheekeysi iyo Alexey Milovidov, kaas oo nagu soo oogaya dhammaanteen tamartiisa iyo rajooyinkiisa.

U guurista ClickHouse

Si aad u tagto GujiHouse Sababta qaar, waxaad u baahan tahay kaliya saddex shay:

  • Faham xaddidaadaha GujiHouse iyo waxa aan ku haboonayn.
  • Ka faa'iidayso tignoolajiyada iyo awoodaheeda ugu weyn.
  • Tijaabi. Xitaa fahamka sida ay u shaqeyso GujiHouse, mar kasta suurtagal maaha in la saadaaliyo goorta ay dhakhso badan tahay, goorta ay gaabis noqon doonto, goorta ay fiicnaan doonto, iyo marka ay ka sii dari doonto. Markaa isku day

Dhibaatada guuritaanka

Waxaa jira hal "laakin": haddii aad u guurto GujiHouse wax kale, ka dibna sida caadiga ah wax qaldamaan. Waxaan la qabsanay dhaqamada qaar iyo waxyaalaha ka shaqeeya kaydka aan jecelnahay. Tusaale ahaan, qof kasta oo la shaqeeya SQL-databases-ku waxay tixgeliyaan hawlahan soo socda inay yihiin qasab:

  • wax kala iibsiga;
  • caqabadaha;
  • joogtayn;
  • tusmooyinka;
  • CUSBOONAYSIINTA/TIIRTIRKA;
  • NULLs;
  • millise seconds;
  • kabka nooca tooska ah;
  • ku biirista badan;
  • qaybo aan sabab lahayn;
  • qalabka maamulka kooxdu.

Shaqaalaysiinta waa qasab, laakiin saddex sano ka hor ayaa la galay GujiHouse Midkoodna hawlahan lama helin! Hadda in ka yar kala badh waxa aan la hirgelin ayaa hadhay: wax kala iibsiga, xannibaadaha, Joogtada, millise seconds iyo nooca shubista.

Iyo waxa ugu weyn waa in GujiHouse Qaar ka mid ah hababka iyo hababka caadiga ah uma shaqeeyaan ama u shaqeeyaan si ka duwan sidii hore. Wax kasta oo ka muuqda GujiHouse, waxay u dhigantaa "ClickHouse", i.e. Shaqadu way ka duwan tahay kaydka xogta kale. Tusaale ahaan:

  • Tusmooyinka lama dooran, laakiin waa la booday.
  • CUSBOONAYSIINTA/TIIRTIRKA ma aha isku mid, laakiin isku mid ah.
  • Waxaa jira isku xidho badan, laakiin ma jiro qorsheeye su'aal. Sida loo sameeyo markaa guud ahaan aad uma cadda dadka ka socda adduunka kaydinta xogta.

ClickHouse Scripts

1960kii, xisaabyahan Maraykan ah oo asal ahaan ka soo jeeda Hungarian Wigner EP qoray maqaal"Waxtarka aan macquul ahayn ee xisaabta ee cilmiga dabiiciga ah"("Wax-ku-oolnimada Xisaabta ee Sayniska Dabiiciga ah ee aan la Fahmi karin") in dunida inagu xeeran ay sabab u tahay qaar si fiican loogu qeexay sharciyada xisaabta. Xisaabtu waa saynis aan la taaban karin, sharciyada jireed ee lagu muujiyay qaabka xisaabtana maaha wax fudud, iyo Wigner EP waxa uu carabka ku adkeeyay in tani ay tahay mid aad loola yaabo.

Aniga aragtidayda, GujiHouse - la yaab la mid ah. Si dib loogu celiyo Wigner, waxaan dhihi karnaa tan: hufnaanta aan la qaadan karin waa yaab. GujiHouse codsiyo gorfayn oo kala duwan!

U guurista ClickHouse: 3 sano ka dib

Tusaale ahaan, aan soo qaadanno Bakhaarka Xogta-Waqtiga dhabta ah, kaas oo xogta lagu shubo ku dhawaad ​​si joogto ah. Waxaan rabnaa inaan codsiyo ka helno dib u dhac labaad. Fadlan - isticmaal GujiHouse, sababtoo ah tani waa scenario loogu talagalay. GujiHouse tani waa sida saxda ah ee loo isticmaalo ma aha oo kaliya shabakada, laakiin sidoo kale suuq-geynta iyo falanqaynta maaliyadeed, AdTech, iyo sidoo kale in Ogaanshaha khiyaanadan. IN Bakhaarka Xogta-waqtiga dhabta ah Nidaam habaysan oo adag sida "xiddigga" ama "flake baraf" ayaa la isticmaalaa, miisas badan ayaa leh JOIN (mararka qaar way badan yihiin), xogtana badanaa waa la kaydiyaa oo lagu beddelaa hababka qaarkood.

Aan soo qaadanno dhacdo kale - Taxanaha Waqtiga: la socodka qalabka, shabakadaha, xisaabaadka isticmaalka, Internet of Things. Halkan waxaan kula kulannaa dhacdooyin fudud oo fudud oo wakhtiga lagu amray. GujiHouse Markii hore looma horumarin tan, laakiin waxay muujisay inay si fiican u shaqeyso, waana sababta ay shirkadaha waaweyn u isticmaalaan GujiHouse sida kaydka xogta la socodka. Si loo baadho inay ku habboon tahay iyo in kale GujiHouse Taxanaha wakhtiga, waxaanu samaynay halbeeg ku salaysan habka iyo natiijooyinka InfluxDB и WakhtigaDB - takhasus leh waqti-taxane ah database-yada. Waxay noqotay, taas GujiHouse, xitaa iyada oo aan la hagaajin hawlahan oo kale, waxay ku guuleysataa garoonka shisheeye:

U guurista ClickHouse: 3 sano ka dib

В waqti-taxane ah Caadi ahaan miis cidhiidhi ah ayaa la isticmaalaa - dhowr tiir oo yaryar. Xog badan ayaa ka iman karta la socodka-malaayiin rikoodh ah ilbiriqsigiiba-na badiyaa waxay ku yimaadaan dilaacyo yaryar (waqtiga dhabta ah qulqulka). Sidaa darteed, qoraal gelinta ka duwan ayaa loo baahan yahay, su'aalaha laftoodana waxay leeyihiin waxyaabo gaar ah.

Maareynta qoraalka. Uruurinta logyada kaydka xogta inta badan waa xun, laakiin GujiHouse tan waxaa lagu samayn karaa faallooyinka qaarkood sida kor lagu sharaxay. Shirkado badan ayaa isticmaala GujiHouse dhab ahaan ujeedadan. Xaaladdan oo kale, waxaan isticmaalnaa miis fidsan oo fidsan halkaas oo aan ku kaydinno dhammaan lo'da (tusaale ahaan, foomka JSON), ama googooyo. Xogta waxaa badanaa lagu shubaa qaybo waaweyn (faylal), waxaanan ka baadhna meelaha qaarkood.

Mid kasta oo ka mid ah hawlahan, xogta macluumaadka gaarka ah ayaa badanaa la isticmaalaa. GujiHouse Qofku wuu wada samayn karaa oo si fiican ayuu iyaga uga sarreeyaa. Aynu hadda si dhow u eegno waqti-taxane ah dhacdo, iyo sida saxda ah ee loo "kariyo" GujiHouse xaaladdan.

Time-Taxane

Hadda tani waa dhacdada ugu weyn ee taas GujiHouse loo tixgeliyey xalka caadiga ah. Waqti-taxane ah waa dhacdooyin la isku habeeyay waqtigii loogu talagalay, oo matalaya isbeddelada nidaamka qaarkood waqti ka dib. Tusaale ahaan, tani waxay noqon kartaa garaaca wadnaha maalintii ama tirada hababka nidaamka. Wax kasta oo siinaya waqti sax ah oo leh cabbirrada qaarkood waa waqti-taxane ah:

U guurista ClickHouse: 3 sano ka dib

Inta badan dhacdooyinka noocaan ah waxay ka yimaadaan la socodka. Tani ma noqon karto oo kaliya la socodka shabakada, laakiin sidoo kale qalabka dhabta ah: baabuurta, nidaamyada warshadaha, IoT, warshado ama tagsi aan cidi wadin, oo ku jira jirridda kaas oo Yandex ayaa horay u dhigay GujiHouse-server.

Tusaale ahaan, waxaa jira shirkado xogta ka ururiya maraakiibta. Dhowrkii ilbiriqsi kasta, dareemayaasha markabka weelka ayaa soo dira boqollaal cabbir oo kala duwan. Injineerada ayaa daraaseeya iyaga, dhisa moodallo waxayna isku dayaan in ay fahmaan sida ugu habboon ee loo isticmaalo markabka, sababtoo ah markab weelku waa inuusan shaqayn hal ilbiriqsi xitaa. Waqti kasta oo hoos u dhacu waa lacag lumis, sidaas darteed waa muhiim in la saadaaliyo dariiqa si joogsigu u yaraado.

Maalmahan waxa jira koboc xog-ururin gaar ah oo cabbira waqti-taxane ah. Goobta DB-Matoorada Xog-ururinta kala duwan ayaa si uun loo kala qiimeeyay, waxaanad ku arki kartaa nooc ahaan:

U guurista ClickHouse: 3 sano ka dib

Nooca ugu kobaca badan waa waqti taxane ahs. Xogta garaafyada sidoo kale way korayaan, laakiin waqti taxane ahs ayaa si xawli ah u korayay dhowrkii sano ee la soo dhaafay. Wakiilada caadiga ah ee qoyskan xog ururintu waa InfluxDB, Prometheus, KDB, WakhtigaDB (lagu dhisay PostgreSQL), xalalka ka Amazon. GujiHouse halkan sidoo kale waa la isticmaali karaa, waana la isticmaali karaa. Aan ku siiyo dhawr tusaale oo dadweyne ah.

Mid ka mid ah hormuudka waa shirkadda CloudFlare (CDN-bixiye). Waxay la socdaan kooda CDN iyada oo loo marayo GujiHouse (DNS-codsiyada, HTTP-questions) oo leh culays weyn - 6 milyan oo dhacdo ilbiriqsikii. Wax walba way maraan Kafka, tagaa GujiHouse, kaas oo bixiya fursad lagu arko dashboards dhacdooyinka nidaamka wakhtiga dhabta ah.

Comcast - mid ka mid ah hoggaamiyeyaasha isgaarsiinta ee USA: Internet, telefishinka digital, telephony. Waxay abuureen nidaam xakameyn la mid ah CDN gudaha Ilaha furan mashruuca Apache Control Traffic si aad ula shaqeyso xogtaada weyn. GujiHouse loo isticmaalo dhabarka dambe ee falanqaynta.

percona lagu dhisay GujiHouse gudaha kaaga PMMsi loo kaydiyo la socodka kala duwan MySQL.

Shuruudaha Gaarka ah

Keydka-waqtiga-xilliyeedka xogta waxay leeyihiin shuruudo gaar ah oo iyaga u gaar ah.

  • Gelida degdega ah ee wakiilada badan. Waa inaan si degdeg ah u gelinaa xogta durdurro badan. GujiHouse Tani si fiican ayey u qabataa sababtoo ah dhammaan wax-qabadkeedu waa kuwo aan xannibayn. Mid kasta geli waa fayl ku cusub saxanka, galinta yar-yarna si uun baa loo xidhi karaa. IN GujiHouse Way fiicantahay in xogta lagu dhex geliyo dufcadyo waaweyn halkii la gelin lahaa hal xariiq markiiba.
  • Nidaam dabacsan. The waqti-taxane ah sida caadiga ah ma naqaano qaabka xogta gabi ahaanba. Waa suurtagal in la dhiso nidaamka la socodka codsi gaar ah, laakiin markaa way adagtahay in loo isticmaalo codsi kale. Tani waxay u baahan tahay nidaam dabacsan. GujiHouse, waxay kuu ogolaaneysaa inaad tan sameyso, inkastoo ay tahay saldhig si adag loo qoray.
  • Kaydinta hufan iyo illowda xogta. Caadiyan gudaha waqti-taxane ah tiro aad u badan oo xog ah, markaa waa in loo kaydiyaa sida ugu waxtarka badan ee suurtogalka ah. Tusaale ahaan, at InfluxDB cadaadis wanaagsan waa sifadiisa ugu weyn. Laakiin ka sokow kaydinta, waxaad sidoo kale u baahan tahay inaad awood u yeelatid inaad "illowdo" xogtii hore oo aad sameyso nooc ka mid ah hoos u dhigid - tirinta tooska ah ee isku geynta.
  • Weydiimo degdeg ah oo ku saabsan xogta la isku daray. Mararka qaarkood waxaa xiiso leh in la eego 5-tii daqiiqo ee ugu dambeeyay saxnaanta millise seconds, laakiin daqiiqadaha xogta bilaha ah ama qadarka labaad ayaa laga yaabaa inaan loo baahnayn - tirakoobyada guud ayaa ku filan. Taageerada noocan oo kale ah waa lagama maarmaan, haddii kale codsiga 3 bilood waxay qaadan doontaa waqti aad u dheer in la dhammaystiro xitaa gudaha GujiHouse.
  • Codsiyada sida"dhibic u dambeeya, sida of». Kuwani waa kuwa caadiga ah waqti-taxane ah Weydiimaha: eeg cabbirka ugu dambeeya ama xaaladda nidaamka daqiiqad ka dib t. Kuwani maaha su'aalo aad u fiican oo loogu talagalay kaydinta xogta, laakiin sidoo kale waxaad u baahan tahay inaad awood u yeelatid.
  • Taxanaha waqtiyada "gluing". Waqti-taxane ah waa wakhti taxane ah. Haddii ay jiraan laba wakhti oo taxane ah, waxay badanaa u baahan yihiin in la isku xiro oo la isku xiro. Kuma habboona in tan lagu sameeyo dhammaan xog-ururinta, gaar ahaan kuwa aan la jaan-qaadin taxanaha waqtiga: halkan waxaa ku yaal waqtiyo waqtiyo ah, kuwo kale ayaa jira. Waxaad tixgelin kartaa celceliska, laakiin si lama filaan ah waxaa weli jiri doona dalool halkaas, sidaas darteed ma cadda.

Aynu eegno sida shuruudahan loo buuxiyey GujiHouse.

Qorshaha

В GujiHouse nidaamka loogu talagalay waqti-taxane ah waxaa loo samayn karaa siyaabo kala duwan, iyadoo ku xiran heerka joogtada ah ee xogta. Waa suurtogal in lagu dhiso nidaamka xogta caadiga ah marka aan horay u sii ogaanno dhammaan cabbirrada. Tusaale ahaan, waxan sameeyay CloudFlare la socodka CDN waa nidaam si wanaagsan loo hagaajiyay. Waxaad dhisi kartaa nidaam guud oo la socda dhammaan kaabayaasha iyo adeegyada kala duwan. Marka laga hadlayo xogta aan caadiga ahayn, horay uma ogin waxa aan la soconno - tanina malaha waa kiiska ugu badan.

Xogta joogtada ah. Tiirarka. Nidaamku waa mid fudud - tiirar leh noocyada loo baahan yahay:

CREATE TABLE cpu (
  created_date Date DEFAULT today(),  
  created_at DateTime DEFAULT now(),  
  time String,  
  tags_id UInt32,  /* join to dim_tag */
  usage_user Float64,  
  usage_system Float64,  
  usage_idle Float64,  
  usage_nice Float64,  
  usage_iowait Float64,  
  usage_irq Float64,  
  usage_softirq Float64,  
  usage_steal Float64,  
  usage_guest Float64,  
  usage_guest_nice Float64
) ENGINE = MergeTree(created_date, (tags_id, created_at), 8192);

Kani waa miis joogto ah kaas oo la socda nooc ka mid ah hawlaha rarka nidaamka (user, nidaamka, Shaqo la'aan, nice). Fudud oo ku habboon, laakiin aan dabacsanayn. Haddii aan rabno nidaam dabacsan, markaa waxaan isticmaali karnaa qalabyo.

Xog aan joogto ahayn Habab:

CREATE TABLE cpu_alc (
  created_date Date,  
  created_at DateTime,  
  time String,  
  tags_id UInt32,  
  metrics Nested(
    name LowCardinality(String),  
    value Float64
  )
) ENGINE = MergeTree(created_date, (tags_id, created_at), 8192);

SELECT max(metrics.value[indexOf(metrics.name,'usage_user')]) FROM ...

Qaab-dhismeedka Buug waa laba qaybood: metrics.magaca и metrics.qiimaha. Halkan waxa aad ku kaydin kartaa xogta la socodka gardarrada ah sida magacyo kala duwan iyo cabbiro kala duwan oo dhacdo kasta. Si aad u wanaajiso dheeraad ah, halkii aad ka heli lahayd mid ka mid ah qaab-dhismeedkaas, waxaad samayn kartaa dhowr. Tusaale ahaan, mid loogu talagalay fadlan-qiimaha, mid kale - loogu talagalay INT-macnaha sababtoo ah INT Waxaan rabaa inaan si hufan u kaydiyo

Laakiin qaabkan oo kale ayaa aad u adag in la galo. Waa inaad isticmaashaa dhismo gaar ah, adoo isticmaalaya hawlo gaar ah si aad u soo saarto qiyamka marka hore index ka ka dibna soo diyaarsan:

SELECT max(metrics.value[indexOf(metrics.name,'usage_user')]) FROM ...

Laakiin wali si dhakhso leh ayey u shaqeysaa. Habka kale ee lagu kaydiyo xogta aan joogtada ahayn waa saf.

Xog aan joogto ahayn Xargaha. Habkan dhaqameedka ah, iyada oo aan lahayn habab, magacyada iyo qiyamka ayaa lagu kaydiyaa isku mar. Haddii 5 oo cabbir ka yimaadaan hal qalab markiiba, 000 oo saf ayaa laga soo saaray kaydka:

CREATE TABLE cpu_rlc (
  created_date Date,  
  created_at DateTime,  
  time String,  
  tags_id UInt32,  
  metric_name LowCardinality(String),  
  metric_value Float64
) ENGINE = MergeTree(created_date, (metric_name, tags_id, created_at), 8192);


SELECT 
    maxIf(metric_value, metric_name = 'usage_user'),
    ... 
FROM cpu_r
WHERE metric_name IN ('usage_user', ...)

GujiHouse la qabsanaya tan - waxay leedahay kordhin gaar ah GujiHouse SQL. Tusaale ahaan, maxIf - shaqo gaar ah oo ku xisaabisa ugu badnaan mitir marka xaaladaha qaarkood la buuxiyo. Waxaad ku qori kartaa dhowr tibaaxood oo noocaas ah hal codsi oo isla markiiba xisaabi qiimaha dhowr mitir.

Aynu is barbar dhigno saddex hab:

U guurista ClickHouse: 3 sano ka dib

Детали

Halkan waxaan ku daray "Size Data Disk" ee qaar ka mid ah xogta tijaabada ah. Marka laga hadlayo tiirarka, waxaanu haynaa cabbirka xogta ugu yar: isku-buufinta ugu badan, xawaaraha waydiinta ugu badan, laakiin waxaanu ku bixinaa inaanu wax walba hal mar duubno.

Arrinka marka la eego, wax walba waa ka sii liitaan. Xogta ayaa wali si fiican loo cufay waxaana la kaydin karaa qaab aan caadi ahayn. Laakin GujiHouse - database columnar, iyo marka aan bilowno in wax walba ku kaydiyo array, waxa ay isu beddeshaa mid saf ah, oo waxaan bixinaa dabacsanaan si hufan. Qalliin kasta, waa inaad akhridaa dhammaan array-ga xusuusta, ka dibna ka dhex hel walxaha la rabo - iyo haddii hannaanku koro, markaa xawaaruhu wuu hoos u dhacayaa.

Mid ka mid ah shirkadaha isticmaala habkan (tusaale ahaan, Uber), arrays ayaa loo qaybiyaa 128 curiye. Xogta dhowr kun oo mitir oo leh mugga 200 TB oo xog ah/maalintii laguma kaydin hal array, laakiin waxaa lagu kaydiyaa 10 ama 30 hannaan oo leh macquul kaydin gaar ah.

Habka ugu fudud waa xargaha. Laakin xogta si liidata ayaa loo cuuryaamay, cabbirka miisku waa weyn yahay, xitaa marka weydiimaha lagu saleeyo cabbirro dhowr ah, ClickHouse si fiican uma shaqeeyo.

Nidaam isku-dhafan

Aynu ka soo qaadno in aynu dooranay wareeg taxan. Laakiin haddii aan ognahay in inta badan dashboardsyadayadu ay muujinayaan kaliya isticmaale iyo cabbirada nidaamka, waxa kale oo aynu ka dhigi karnaa cabbiradan tiirar ka soo diyaarsan heerka miiska sidan:

CREATE TABLE cpu_alc (
  created_date Date,  
  created_at DateTime,  
  time String,  
  tags_id UInt32,  
  metrics Nested(
    name LowCardinality(String),  
    value Float64
  ),
  usage_user Float64 
             MATERIALIZED metrics.value[indexOf(metrics.name,'usage_user')],
  usage_system Float64 
             MATERIALIZED metrics.value[indexOf(metrics.name,'usage_system')]
) ENGINE = MergeTree(created_date, (tags_id, created_at), 8192);

Marka la gelinayo GujiHouse si toos ah ayaa loo tirin doonaa. Sidan waxaad ku dari kartaa ganacsiga farxad: nidaamku waa dabacsan yahay oo guud, laakiin waxaan soo saarnay tiirarka inta badan la isticmaalo. Ogsoonow in tani aysan u baahnayn beddelka gelinta iyo ETLKaas oo sii wada in uu geliyo jaantusyada miiska. Waanu samaynay CADAWGA, ayaa lagu daray laba ku hadla oo waxaanu helnay nidaam isku-dhafan oo dheereeya oo aad isla markiiba bilaabi karto isticmaalka.

Codecs iyo cadaadis

Si aad u waqti-taxane ah Muhiim ayey u tahay sida wanaagsan ee aad xogta u xirxirto sababtoo ah cadadka macluumaadku aad ayuu u weynaan karaa. IN GujiHouse Waxa jira qalabyo kala duwan si loo gaadho saamaynta isku-buufinta ee 1:10, 1:20, iyo mararka qaarkood in ka badan. Tani waxay ka dhigan tahay in 1 TB oo ah xogta aan la xidhin ee saxanka ku jirta ay qaadato 50-100 GB. Xajmiga yar ayaa wanaagsan, xogta waa la akhrin karaa oo si degdeg ah ayaa loo baaraandegi karaa.

Si loo gaaro cadaadis heer sare ah, GujiHouse wuxuu taageeraa codecyada soo socda:

U guurista ClickHouse: 3 sano ka dib

Shaxda tusaale:

CREATE TABLE benchmark.cpu_codecs_lz4 (
    created_date Date DEFAULT today(), 
    created_at DateTime DEFAULT now() Codec(DoubleDelta, LZ4), 
    tags_id UInt32, 
    usage_user Float64 Codec(Gorilla, LZ4), 
    usage_system Float64 Codec(Gorilla, LZ4), 
    usage_idle Float64 Codec(Gorilla, LZ4), 
    usage_nice Float64 Codec(Gorilla, LZ4), 
    usage_iowait Float64 Codec(Gorilla, LZ4), 
    usage_irq Float64 Codec(Gorilla, LZ4), 
    usage_softirq Float64 Codec(Gorilla, LZ4), 
    usage_steal Float64 Codec(Gorilla, LZ4), 
    usage_guest Float64 Codec(Gorilla, LZ4), 
    usage_guest_nice Float64 Codec(Gorilla, LZ4), 
    additional_tags String DEFAULT ''
)
ENGINE = MergeTree(created_date, (tags_id, created_at), 8192);

Halkan waxaan ku qeexnaa codec DoubleDelta hal kiis, ta labaad - Gorilla, waxaana hubaal ah inaan wax badan ku dari doono LZ4 cadaadisid. Natiijo ahaan, cabbirka xogta diskka ayaa si weyn loo dhimay:

U guurista ClickHouse: 3 sano ka dib

Tani waxay tusinaysaa inta boos ee xogta isku mid ah ay qaadato, laakiin la isticmaalayo codecs iyo cadaadisyo kala duwan:

  • ku jira faylka GZIP ee diskka;
  • gudaha ClickHouse oo aan lahayn codecs, laakiin leh cadaadis ZSTD;
  • gudaha ClickHouse oo leh codecs iyo isku dhejinta LZ4 iyo ZSTD.

Waxaa la arki karaa in miisaska koodka leh ay qaataan meel aad u yar.

Cabbirka arrimaha

Muhiim maaha in la doorto nooca xogta saxda ah:

U guurista ClickHouse: 3 sano ka dib

Tusaalooyinka kore oo dhan waxaan adeegsaday Sabayn64. Laakiin haddaan dooranay Sabayn32, markaa taasi way fiicnaan lahayd. Tan waxaa si fiican u muujiyay ragga ka yimid Perkona ee maqaalka kor ku xusan. Waa muhiim in la isticmaalo nooca ugu cufan ee ku habboon hawsha: xitaa in ka yar cabbirka diskka marka loo eego xawaaraha weydiinta. GujiHouse aad xasaasi u ah arrintan.

Haddii aad isticmaali karto int32 halkii int64, ka dibna filo in ku dhawaad ​​laba laab kor u kaca waxqabadka. Xogtu waxay qaadaa xusuusta yar, dhammaan "xisaabta"na waxay u shaqeeyaan si degdeg ah. GujiHouse gudaha waa nidaam aad u adag oo lagu teeb gareeyey; waxa uu ka dhigayaa isticmaalka ugu badan ee dhammaan fursadaha ay bixiyaan hababka casriga ah.

Isugeynta iyo Aragtiyo Muuqaal ah

Isku-darka iyo aragtida la taaban karo waxay kuu oggolaanaysaa inaad abuurto isu-geyn waqtiyo kala duwan:

U guurista ClickHouse: 3 sano ka dib

Tusaale ahaan, waxaa laga yaabaa inaad haysato xogta isha aan la isku soo wada ururin, oo waxaad ku lifaaqi kartaa aragtiyo kala duwan oo la taaban karo iyaga oo si toos ah u soo koobaya matoor gaar ah. SummingMergeTree (SMT). SMT waa qaab dhismeed xog ururin gaar ah oo si toos ah u xisaabiya isku darka. Xogta ceeriin ayaa la geliyey kaydka xogta, si toos ah ayaa loo ururiyey, waxaana isla markiiba lagu isticmaali karaa dashboards.

TTL - "Illow" xogtii hore

Sidee loo "illaa" xogta aan hadda loo baahnayn? GujiHouse wuu garanayaa sida tan loo sameeyo. Marka la abuurayo miisaska, waxaad cayimi kartaa TTL tibaaxaha: tusaale ahaan, in aan kaydino xogta daqiiqadaha hal maalin, xogta maalinlaha ah 30 maalmood, oo aan waligeen taaban xogta toddobaadlaha ama bisha:

CREATE TABLE aggr_by_minute
…
TTL time + interval 1 day

CREATE TABLE aggr_by_day
…
TTL time + interval 30 day

CREATE TABLE aggr_by_week
…
/* no TTL */

Qaybo badan - kala qaybi xogta saxannada dhexdooda

Qaadashada fikraddan, xogta waa lagu kaydin karaa GujiHouse meelo kala duwan. Ka soo qaad in aan rabno in aan kaydinno xogta kulul usbuucii la soo dhaafay meel aad u degdeg badan SSD, waxaanan meel kale dhignay xog badan oo taariikhi ah. IN GujiHouse tani hadda waa suurtogal:

U guurista ClickHouse: 3 sano ka dib

Waxaad dejin kartaa siyaasadda kaydinta (siyaasadda kaydinta) Markaa GujiHouse waxay si toos ah ugu wareejin doontaa xogta marka la gaaro shuruudaha qaarkood kaydin kale.

Laakiin intaas kuma koobna. Heerka miis gaar ah, waxaad qeexi kartaa xeerarka saxda ah marka xogtu gasho kaydinta qabow. Tusaale ahaan, xogta waxa lagu kaydiyaa saxan aad u dheereeya muddo 7 maalmood ah, wax kasta oo ka weynna waxa loo gudbiyaa mid gaabis ah. Tani way fiican tahay sababtoo ah waxay kuu ogolaaneysaa inaad ku ilaaliso nidaamka waxqabadka ugu sarreeya, adigoo xakameynaya kharashyada oo aanad lacag ku lumin xogta qabow:

CREATE TABLE 
... 
TTL date + INTERVAL 7 DAY TO VOLUME 'cold_volume', 
    date + INTERVAL 180 DAY DELETE

Tilmaamo gaar ah GujiHouse

Ku dhawaad ​​wax walba GujiHouse Waxaa jira "muhiimad" oo kale ah, laakiin waxay ka soo jeedaan ka-saarid - wax aan ku jirin kaydka xogta kale. Tusaale ahaan, waa kuwan qaar ka mid ah sifooyinka gaarka ah GujiHouse:

  • Habab. The GujiHouse taageero aad u wanaagsan oo loogu talagalay qalabyada, iyo sidoo kale awoodda lagu sameeyo xisaabinta adag iyaga.
  • Isku-darka Qaabdhismeedka Xogta. Tani waa mid ka mid ah "sifaha dilaaga" GujiHouse. In kasta oo xaqiiqda ah in ragga ka socda Yandex ay yiraahdaan ma rabno inaan isku geyno xogta, wax walba waa la isku daray. GujiHouse, sababtoo ah waa dhakhso iyo habboon.
  • Aragtiyo Qalabaysan. Si wada jir ah oo la isu geeyo qaab-dhismeedka xogta, aragtiyaha la mariyey ayaa kuu oggolaanaya inaad ku habboonaato waqtiga dhabta ah isu geyn.
  • ClickHouse SQL. Tani waa kordhinta luqadda SQL oo leh qaar dheeraad ah oo gaar ah oo laga heli karo oo keliya GujiHouse. Markii hore, waxay ahayd sida balaadhinta dhinac, iyo khasaare dhinaca kale ah. Hadda ku dhawaad ​​dhammaan khasaarooyinka marka la barbar dhigo SQL 92 waanu ka saarnay, hadda waa muddo kordhin uun.
  • Lambda-hadallo. Weli ma ku jiraan xog kasta?
  • ML-taageerada. Tan waxaa lagu heli karaa keydyo kala duwan, qaar waa ka fiican yihiin, qaar ayaa ka sii liita.
  • il furan. Waan ballaarin karnaa GujiHouse wada jir. Hadda gudaha GujiHouse ilaa 500 oo wax ku darsaday, tiradanina si joogto ah ayay u koraysaa.

Weydiimo khiyaano leh

В GujiHouse waxaa jira siyaabo badan oo kala duwan oo loo sameeyo wax la mid ah. Tusaale ahaan, waxaad ku soo celin kartaa qiimaha ugu dambeeya miiska saddex siyaabood oo kala duwan processor (waxaa kaloo jira mid afraad, laakiin waa ka sii qalaad).

Midka ugu horreeya wuxuu muujinayaa sida ay ugu habboon tahay in lagu sameeyo GujiHouse su'aalo marka aad rabto inaad hubiso taas dhalo ku jira subquery. Tani waa wax aan shakhsi ahaan runtii ugu xiisay kaydadka kale. Haddii aan rabo inaan wax la barbar dhigo subquery, markaa xogta kale ee xogta kaliya ayaa la barbar dhigi karaa, laakiin dhowr tiirar waxaan u baahanahay inaan qoro JOIN. The GujiHouse waxaad isticmaali kartaa tuple:

SELECT *
  FROM cpu 
 WHERE (tags_id, created_at) IN 
    (SELECT tags_id, max(created_at)
        FROM cpu 
        GROUP BY tags_id)

Habka labaad waxa uu sameeyaa isla shay laakiin waxa uu isticmaalaa hawl wadareedka argMax:

SELECT 
    argMax(usage_user), created_at),
    argMax(usage_system), created_at),
...
 FROM cpu 

В GujiHouse Waxaa jira dhowr darsin oo hawlo wadar ah, iyo haddii aad isticmaasho isku-dhafka, ka dibna sida waafaqsan sharciyada isku-dhafka waxaad heli doontaa ilaa kun iyaga ka mid ah. ArgMax - mid ka mid ah shaqooyinka xisaabiya qiimaha ugu sarreeya: codsigu wuxuu soo celinayaa qiimaha isticmaalaha_isticmaalka, kaas oo lagu gaaro qiimaha ugu badan abuuray_at:

SELECT now() as created_at,
       cpu.*
  FROM (SELECT DISTINCT tags_id from cpu) base 
  ASOF LEFT JOIN cpu USING (tags_id, created_at)

ASOF KU SOO BIIR - "ku dhejinta" saf oo leh waqtiyo kala duwan. Tani waa sifo gaar ah oo loogu talagalay keydka macluumaadka kaas oo kaliya laga heli karo kdb+. Haddii ay jiraan laba jeer oo taxane ah oo leh waqtiyo kala duwan, ASOF KU SOO BIIR wuxuu kuu ogolaanayaa inaad guurto oo aad ku biirto hal codsi. Qiime kasta oo hal mar taxane ah, qiimaha ugu dhow kan kale ayaa la helayaa, waxaana lagu soo celiyaa isla xariiq isku mid ah:

U guurista ClickHouse: 3 sano ka dib

Hawlaha Falanqaynta

In heerka SQL-2003 waxaad u qori kartaa sidan:

SELECT origin,
       timestamp,
       timestamp -LAG(timestamp, 1) OVER (PARTITION BY origin ORDER BY timestamp) AS duration,
       timestamp -MIN(timestamp) OVER (PARTITION BY origin ORDER BY timestamp) AS startseq_duration,
       ROW_NUMBER() OVER (PARTITION BY origin ORDER BY timestamp) AS sequence,
       COUNT() OVER (PARTITION BY origin ORDER BY timestamp) AS nb
  FROM mytable
ORDER BY origin, timestamp;

В GujiHouse Ma samayn kartid taas - ma taageerto heerka SQL-2003 oo malaha waligeed ma samayn doonto. Halkii, gudaha GujiHouse Waxaa caado ah in loo qoro sidan:

U guurista ClickHouse: 3 sano ka dib

Waxaan ballan qaaday lambdas - waa kuwan!

Tani waa analooga weydiinta falanqaynta ee heerka SQL-2003: wuxuu tiriyaa faraqa u dhexeeya labada timestamp, duration, lambarka caadiga ah - wax kasta oo aan inta badan tixgelinno hawlaha falanqaynta. IN GujiHouse Waxaan ku xisaabineynaa qaabeyn: marka hore waxaan u dumineynaa xogta si isku mid ah, ka dib waxaan ku sameyneynaa wax kasta oo aan rabno diyaarinta, ka dibna dib ayaan u ballaarineynaa. Maaha mid aad u habboon, waxay u baahan tahay jacaylka barnaamijka shaqeynta ugu yaraan, laakiin waa mid aad u dabacsan.

Tilmaamaha Gaarka ah

Ka sokow, in GujiHouse hawlo gaar ah oo badan. Tusaale ahaan, sida loo go'aamiyo inta fadhi ee isku mar dhacaya? Hawsha la socodka caadiga ah waa in la go'aamiyo culayska ugu badan ee hal codsi ah. IN GujiHouse Waxaa jirta shaqo gaar ah oo ujeeddadaas leh:

U guurista ClickHouse: 3 sano ka dib

Guud ahaan, ClickHouse waxay leedahay hawlo gaar ah ujeedooyin badan:

  • Kala duwanaanshaha, socodsiintaAccumulate, deris;
  • sumMap (furaha, qiimaha);
  • timeSeriesGroupSum (uid, timestamp, qiimaha);
  • timeSeriesGroupRateSum(uid, timestamp, qiimaha);
  • skewPop, skewSamp, kurtPop, kurtSamp;
  • BUUXSIIN/XIRIIRYO;
  • LinearRegression fudud, stochasticLinearRegression.

Tani maaha liis dhamaystiran oo hawlo ah, waxaa jira 500-600 wadarta guud. Tilmaam: dhammaan waxay ku shaqeeyaan GujiHouse waxay ku jirtaa shaxda nidaamka (dhammaan lama diiwaangelin, laakiin dhammaantood waa kuwo xiiso leh):

select * from system.functions order by name

GujiHouse waxay kaydisaa xog badan oo nafteeda ku saabsan oo ay ka mid yihiin miisaska qoryo, weydiin_log, log of trace, log of operations with data blocks (qayb_log), metrics log, iyo nidaamka log, oo ay inta badan ku qorto saxanka. Log metrics waa waqti-taxane ah в GujiHouse dhab ahaan GujiHouse: Keydka kaydka laftiisa ayaa door ka ciyaari kara waqti-taxane ah database-yada, sidaas darteed "cunta" lafteeda.

U guurista ClickHouse: 3 sano ka dib

Tani sidoo kale waa shay gaar ah - maadaama aan shaqo fiican u qabanno waqti-taxane ahMaxaan u kaydsan la'nahay wax kasta oo aan u baahannahay gudaha nafteena? Uma baahnin Prometheus, wax walba waanu ku haynaa nafteena. Ku xidhan Grafana waana la soconaa nafteena. Si kastaba ha ahaatee, haddii GujiHouse dhaco, ma arki doono sababta, sidaas darteed inta badan ma sameeyaan taas.

Koox weyn ama kuwo yar yar oo badan GujiHouse

Maxaa ka wanaagsan - hal koox oo weyn ama qaar badan oo yar oo ClickHouses ah? Habka dhaqameed ee DWH waa koox weyn oo wareegyada loo qoondeeyay codsi kasta. Waxaan u nimid maamulaha xogta - na sii jaantus, waxayna na siiyeen mid:

U guurista ClickHouse: 3 sano ka dib

В GujiHouse si ka duwan ayaad u samayn kartaa. Codsi kasta adigaa iska dhigi kara GujiHouse:

U guurista ClickHouse: 3 sano ka dib

Uma baahnid kan weyn ee bahalnimada ah DWH iyo admins aan la aqbali karin. Waxaan siin karnaa codsi kasta gaarkiisa GujiHouse, iyo horumariyaha laftiisa samayn karaa, tan iyo GujiHouse aad u fudud in la rakibo oo uma baahna maamul adag:

U guurista ClickHouse: 3 sano ka dib

Laakiin haddii aan wax badan haysanno GujiHouse, oo waxaad u baahan tahay inaad marar badan ku rakibto, markaa waxaad rabtaa inaad si otomaatig ah u sameyso habkan. Tan waxaan u adeegsan karnaa tusaale ahaan Kubureteska и clickhouse- hawlwadeen. IN Kubernetes ClickHouse waxaad ku dhejin kartaa "guji-guji": Waxaan riixi karaa badhanka, socodsiiya caddaynta xogta xogtana waa diyaar. Isla markiiba waxaan samayn karaa jaantus, waxaan bilaabi karaa soo dejinta mitirka halkaas, iyo 5 daqiiqo gudahood waxaan haystaa dashboard diyaar ah Grafana. Aad bay u fududahay!

Maxaa dhacaya?

Sidaas GujiHouse Tani:

  • Xawaare. Qof kastaa wuu garanayaa tan.
  • Si fudud. Wax yar oo muran ah, laakiin waxaan aaminsanahay inay ku adag tahay tababarka, fududna dagaalka. Hadii aad fahanto sida GujiHouse way shaqeysaa, markaa wax walba waa mid aad u fudud.
  • Guud ahaan. Waxay ku habboon tahay xaalado kala duwan: DWH, Taxanaha Waqtiga, Kaydinta Log. Laakiin maaha OLTP database-ka, markaa ha isku dayin in aad samayso gelis gaaban oo halkaas ku akhri.
  • Xiiso leh. Malaha kan la shaqeeya GujiHouse, la kulmay waqtiyo badan oo xiiso leh si wanaagsan iyo dareen xun. Tusaale ahaan, sii dayn cusub ayaa soo baxday, wax walbaa way istaageen shaqada. Ama markii aad ku dhibtoonaysay hawl laba maalmood ah, laakiin ka dib markii aad su'aal ku waydiiso Telegram chat, hawsha ayaa lagu xaliyay laba daqiiqo gudahood. Ama sida shirka ee warbixinta Lesha Milovidov, sawir laga qaaday GujiHouse jabiyay baahinta HighLoad++. Arintan oo kale waxay dhacdaa markasta oo nolosheena ka dhigaysa mid adag. GujiHouse dhalaalaya oo xiiso leh!

Waxaad daawan kartaa bandhigga halkan.

U guurista ClickHouse: 3 sano ka dib

Kulanka dheer ee la sugayay ee horumariyayaasha nidaamyada culeyska sare leh ee HighLoad++ 9-ka iyo 10-ka November waxa uu ka dhici doonaa Skolkovo. Ugu dambeyntii, kani wuxuu noqon doonaa shir offline ah (inkasta oo ay jiraan dhammaan taxaddarrada meesha), maadaama tamarta HighLoad ++ aan lagu xiri karin khadka.

Shirka, waxaanu ka helnaa oo ku tusinaa kiisas ku saabsan awooda ugu badan ee tignoolajiyada: HighLoad++ ahaa, oo noqon doona meesha kaliya ee aad ku baran karto laba maalmood gudahood sida Facebook, Yandex, VKontakte, Google iyo Amazon u shaqeeyaan.

Anagoo shirarkeena qabanay si aan kala joogsi lahayn ilaa 2007, sanadkan waxaan kulmi doonaa markii 14aad. Inta lagu jiro wakhtigan, shirku wuxuu koray 10 jeer; sannadkii hore, munaasabadda warshadaha muhiimka ah waxay isu keentay 3339 ka qaybgalayaasha, 165 ku hadla, warbixinno iyo kulanno, iyo 16 jidad ayaa isku mar socday.
Sannadkii hore waxa jiray 20 bas, 5280 litir oo shaah iyo bun ah, 1650 litir oo cabitaan khudaar ah iyo 10200 oo dhalo oo biyo ah. Iyo 2640 kiiloogaraam oo cunto ah, 16 saxan iyo 000 oo koob. Jid ahaan, lacagta laga soo aruuriyay warqad dib loo warshadeeyay, waxaan ku beernay 25 geedo geed ah :)

Waxaad iibsan kartaa tigidhada halkan, ka hel wararka shirka - halkan, oo kala hadal dhammaan shabakadaha bulshada: telegraam, Facebook, Vkontakte и Twitter.

Source: www.habr.com

Add a comment