ClickHouse kwa ogwiritsa ntchito apamwamba mu mafunso ndi mayankho

Mu Epulo, mainjiniya a Avito adasonkhana pamisonkhano yapaintaneti ndi katswiri wamkulu wa ClickHouse Alexey Milovidov ndi Kirill Shvakov, wopanga Golang wochokera ku Integros. Tinakambirana momwe timagwiritsira ntchito kasamalidwe ka database ndi zovuta zomwe timakumana nazo.

Kutengera ndi msonkhanowu, tapanga nkhani yokhala ndi mayankho a akatswiri ku mafunso athu ndi omvera okhudza zosunga zobwezeretsera, kugawananso deta, madikishonale akunja, dalaivala wa Golang ndikusintha mitundu ya ClickHouse. Zitha kukhala zothandiza kwa opanga omwe akugwira ntchito kale ndi Yandex DBMS ndipo ali ndi chidwi ndi zomwe zikuchitika komanso zamtsogolo. Mwachikhazikitso, mayankho ndi Alexey Milovidov, pokhapokha atalembedwa.

Samalani, pali malemba ambiri pansi pa odulidwa. Tikukhulupirira kuti zomwe zili ndi mafunso zikuthandizani kuyenda.

ClickHouse kwa ogwiritsa ntchito apamwamba mu mafunso ndi mayankho

Zamkatimu

Ngati simukufuna kuwerenga lembalo, mutha kuwona zojambulidwa pamisonkhanoyo pa YouTube channel yathu. Ma timecode ali mu ndemanga yoyamba pansi pa kanema.

ClickHouse imasinthidwa pafupipafupi, koma deta yathu siili. Zotani nazo?

ClickHouse imasinthidwa pafupipafupi, ndipo deta yathu, yomwe idakonzedwa komaliza, sinasinthidwe ndipo ili muzosunga zobwezeretsera.

Tinene kuti tinali ndi vuto ndipo deta idatayika. Tinaganiza zobwezeretsa, ndipo zidapezeka kuti magawo akale, omwe amasungidwa pa ma seva osunga zobwezeretsera, ndi osiyana kwambiri ndi omwe amagwiritsidwa ntchito pano a ClickHouse. Zoyenera kuchita zikatero, ndipo n’zotheka?

Mkhalidwe womwe mudabwezeretsanso deta kuchokera ku zosunga zobwezeretsera mumtundu wakale, koma sugwirizana ndi mtundu watsopano, ndizosatheka. Timawonetsetsa kuti mtundu wa data mu ClickHouse nthawi zonse umakhala wogwirizana. Izi ndizofunika kwambiri kuposa kuyanjana kwa m'mbuyo muzochita ngati khalidwe la ntchito zina zomwe sizinagwiritsidwe ntchito kawirikawiri zasintha. Mtundu watsopano wa ClickHouse uyenera kuwerenga zonse zomwe zasungidwa pa disk. Ili ndi lamulo.

Kodi njira zabwino zotani zosungira deta kuchokera ku ClickHouse ndi ziti?

Momwe mungapangire zosunga zobwezeretsera, poganizira kuti takwaniritsa ntchito zomaliza, nkhokwe yayikulu ya ma terabytes, ndi data yomwe yasinthidwa, tinene, kwa masiku atatu apitawa, ndiye kuti palibe njira zomwe zimachitika?

Titha kupanga yankho lathu ndikulemba pa bash: sonkhanitsani zosunga zobwezeretsera izi mwanjira yakuti. Mwina palibe chifukwa choyendetsa chilichonse, ndipo njingayo idapangidwa kalekale?

Tiyeni tiyambe ndi machitidwe abwino. Anzanga nthawi zonse amalangiza, poyankha mafunso okhudza zosunga zobwezeretsera, kuwakumbutsa za utumiki wa Yandex.Cloud, kumene vutoli lathetsedwa kale. Choncho gwiritsani ntchito ngati n'kotheka.

Palibe yankho lathunthu la zosunga zobwezeretsera, zana limodzi mwa magawo zana omangidwa mu ClickHouse. Pali zina zopanda kanthu zomwe zingagwiritsidwe ntchito. Kuti mupeze yankho lathunthu, muyenera kungoyang'ana pang'ono pamanja, kapena kupanga zokutira ngati zolemba.

Ndiyamba ndi njira zosavuta kwambiri ndikumaliza ndi zovuta kwambiri, malingana ndi kuchuluka kwa deta ndi kukula kwa masango. Kukula kwa tsango, m'pamenenso yankho limakhala lovuta kwambiri.

Ngati tebulo lomwe lili ndi data limangotenga ma gigabytes ochepa, zosunga zobwezeretsera zitha kuchitika motere:

  1. Sungani tanthauzo la tebulo i.e. metadata − onetsani kupanga tebulo.
  2. Pangani kutaya pogwiritsa ntchito kasitomala wa ClickHouse - sankhani * kuchokera pa tebulo ku file. Mwachikhazikitso mudzalandira fayilo mumtundu wa TabSeparated. Ngati mukufuna kuchita bwino, mutha kuchita mumtundu wa Native.

Ngati kuchuluka kwa deta kuli kokulirapo, ndiye kuti zosunga zobwezeretsera zidzatenga nthawi yambiri komanso malo ambiri. Izi zimatchedwa zosunga zobwezeretsera; sizimangika ku mtundu wa data wa ClickHouse. Ngati ndi choncho, ndiye ngati njira yomaliza mutha kutenga zosunga zobwezeretsera ndikuziyika ku MySQL kuti muchiritse.

Pamilandu yapamwamba kwambiri, ClickHouse ili ndi kuthekera kopanga chithunzithunzi cha magawo amafayilo am'deralo. Nkhaniyi ikupezeka ngati pempho sinthani kugawa kwa tebulo. Kapena mophweka sinthani kuzizira kwa tebulo - ichi ndi chithunzi cha tebulo lonse.

Chithunzicho chidzapangidwa mokhazikika patebulo limodzi pa shard imodzi, ndiko kuti, ndizosatheka kupanga chithunzi chofananira cha gulu lonse motere. Koma pa ntchito zambiri palibe chosowa chotero, ndipo ndikwanira kupereka pempho pa shard iliyonse ndikupeza chithunzithunzi chofanana. Zimapangidwa mwa mawonekedwe a hardlinks choncho sizitenga malo owonjezera. Kenako, mumakopera chithunzithunzichi ku seva yosunga zobwezeretsera kapena kumalo osungira omwe mumagwiritsa ntchito zosunga zobwezeretsera.

Kubwezeretsa zosunga zobwezeretsera zotere ndikosavuta. Choyamba, pangani matebulo pogwiritsa ntchito matanthauzo omwe alipo kale. Kenako, koperani zithunzi zosungidwa za magawowa ku Directory-Detached pamatebulo awa ndikuyendetsa funsolo. Gwirizanitsani kugawa. Yankho ili ndiloyenera kwambiri pazambiri zazikulu kwambiri.

Nthawi zina mungafunike china chozizira kwambiri - mukakhala ndi makumi kapena mazana a ma terabytes pa seva iliyonse ndi ma seva mazana. Pali yankho pano lomwe ndinatenga kwa anzanga ochokera ku Yandex.Metrica. Sindingavomereze kwa aliyense - werengani ndikusankha nokha ngati ili yoyenera kapena ayi.

Choyamba muyenera kupanga ma seva angapo okhala ndi masamulo akuluakulu a disk. Kenako, pa maseva awa, kwezani maseva angapo a ClickHouse ndikuwakonza kuti azigwira ntchito ngati chofananira cha shards zomwezo. Kenako gwiritsani ntchito fayilo kapena chida china pa maseva awa omwe amakupatsani mwayi wopanga zithunzi. Pali njira ziwiri apa. Njira yoyamba ndizithunzi za LVM, njira yachiwiri ndi ZFS pa Linux.

Pambuyo pake, tsiku lililonse muyenera kupanga chithunzithunzi, chidzanama ndikutenga malo. Mwachibadwa, ngati deta ikusintha, kuchuluka kwa malo kudzawonjezeka pakapita nthawi. Chithunzichi chikhoza kutengedwa nthawi iliyonse ndi deta yobwezeretsedwa, yankho lachilendo chotero. Kuphatikiza apo, tiyeneranso kuchepetsa zofananirazi mu config kuti asayese kukhala atsogoleri.

Kodi zingatheke kukonza zotsalira zotsalira mumipingo?

Chaka chino mukukonzekera kupanga shafts ku ClickHouse. Kodi zingatheke kulinganiza zotsalira zotsalira mwazo? Tikufuna kuzigwiritsa ntchito kuti tidziteteze ku zochitika zoipa ndi zosintha ndi zina.

Kodi ndizotheka kubweza mtundu wina wa zosintha? Mwachitsanzo, mu shaft yomwe ilipo, tengani ndikunena kuti mpaka nthawi ino mumagwiritsa ntchito zosinthazo, ndipo kuyambira pano mukusiya kugwiritsa ntchito zosinthazo?

Ngati lamulo lidabwera ku gulu lathu ndikuliphwanya, ndiye kuti tili ndi choyimira chokhazikika chokhala ndi ola limodzi, pomwe tinganene kuti tigwiritse ntchito pakadali pano, koma sitigwiritsa ntchito zosintha kwa mphindi khumi zapitazi?

Choyamba, ponena za kusakhazikika kwa replicas. Panali pempho lotere kuchokera kwa ogwiritsa ntchito, ndipo tidapanga vuto pa Github ndi pempholi: "Ngati wina akufuna izi, monga izi, ikani mtima." Palibe amene adapereka, ndipo nkhaniyi idatsekedwa. Komabe, mutha kupeza kale mwayiwu pokhazikitsa ClickHouse. Zowona, kuyambira pa mtundu wa 20.3.

ClickHouse nthawi zonse imagwiritsa ntchito kuphatikiza deta kumbuyo. Kuphatikiza kukamalizidwa, gulu lina la data limasinthidwa ndi chidutswa chachikulu. Panthawi imodzimodziyo, zidutswa za deta zomwe zinalipo kale zikupitirizabe kukhala pa disk kwa nthawi ndithu.

Choyamba, amapitirizabe kusungidwa malinga ngati pali mafunso osankhidwa omwe amawagwiritsa ntchito, kuti apereke ntchito yosatsekereza. Zosankha zimawerengedwa mosavuta kuchokera kumagulu akale.

Kachiwiri, palinso nthawi yofikira - zidutswa zakale za data zimagona pa disk kwa mphindi zisanu ndi zitatu. Mphindi zisanu ndi zitatuzi zitha kusinthidwa kukhala tsiku limodzi. Izi zidzawononga malo a disk: malingana ndi kayendetsedwe ka deta, zimakhala kuti tsiku lomaliza deta silidzangowonjezera kawiri, likhoza kukhala kasanu. Koma ngati pali vuto lalikulu, mutha kuyimitsa seva ya ClickHouse ndikukonza zonse.

Tsopano funso likubuka momwe izi zimatetezera ku zosintha. Ndikoyenera kuyang'ana mozama apa, chifukwa m'mabaibulo akale a ClickHouse, zosinthazo zinagwira ntchito kotero kuti zinangosintha zidutswa mwachindunji. Pali chidutswa cha data chokhala ndi mafayilo ena, ndipo timachita, mwachitsanzo, sinthani mzere wotsitsa. Ndiye ndime iyi imachotsedwa mwakuthupi ku zigawo zonse.

Koma kuyambira ndi mtundu 20.3, makina osinthira asinthidwa kwathunthu, ndipo tsopano zidutswa za data sizisintha nthawi zonse. Sasintha konse - zosintha tsopano zimagwira ntchito mofanana ndi kuphatikiza. M'malo mosintha chidutswa pomwepo, timapanga chatsopano. Mu chunk yatsopano, mafayilo omwe sanasinthe amakhala hardlinks, ndipo ngati tichotsa ndime, idzasowa mu chunk yatsopano. Chidutswa chakale chidzachotsedwa mwachisawawa pakatha mphindi zisanu ndi zitatu, ndipo apa mutha kusintha makonda omwe atchulidwa pamwambapa.

Zomwezo zimagwiranso ntchito pazosintha monga masinthidwe. Pamene mutero kusintha kufufuta kapena kusintha kusintha, sichisintha chidutswacho, koma chimapanga chatsopano. Ndiyeno deletes wakale.

Nanga bwanji ngati tebulo lasintha?

Momwe mungabwezeretsere zosunga zobwezeretsera zomwe zidapangidwa ndi chiwembu chakale? Ndipo funso lachiwiri likukhudza nkhaniyo ndi zithunzi ndi zida zamakina a fayilo. Kodi Btrfs ndiyabwino pano m'malo mwa ZFS pa Linux LVM?

Ngati mumatero Gwirizanitsani kugawa magawo okhala ndi mawonekedwe osiyanasiyana, ndiye ClickHouse adzakuwuzani kuti izi sizingatheke. Ili ndiye yankho. Yoyamba ndikupanga tebulo lanthawi yochepa la mtundu wa MergeTree ndi kapangidwe kakale, kulumikiza deta pamenepo pogwiritsa ntchito attach, ndikupanga funso losintha. Ndiye mukhoza kukopera kapena kusamutsa deta ndi kulumikiza kachiwiri, kapena ntchito pempho sinthani kugawa kwa tebulo.

Tsopano funso lachiwiri ndiloti Btrfs angagwiritsidwe ntchito. Poyambira, ngati muli ndi LVM, ndiye kuti zithunzi za LVM ndizokwanira, ndipo mafayilo amafayilo amatha kukhala ext4, zilibe kanthu. Ndi Btrts, zonse zimatengera zomwe mwakumana nazo poigwiritsa ntchito. Iyi ndi fayilo yokhwima, komabe pali zokayikitsa za momwe chilichonse chidzayendere muzochitika zinazake. Sindingalimbikitse kugwiritsa ntchito izi pokhapokha mutakhala ndi Btrfs popanga.

Kodi njira zabwino kwambiri zogawana deta ndi ziti?

Nkhani yogawananso ndizovuta komanso zambiri. Pali mayankho angapo zotheka apa. Mutha kuchoka mbali imodzi ndikunena izi - ClickHouse ilibe mawonekedwe ogawananso. Koma ndikuwopa kuti yankho ili silingagwirizane ndi aliyense. Chifukwa chake, mutha kuchoka kutsidya lina ndikunena kuti ClickHouse ili ndi njira zambiri zogawananso deta.

Ngati masango atha danga kapena sangathe kunyamula katunduyo, mumawonjezera ma seva atsopano. Koma ma seva awa alibe kanthu mwachisawawa, palibe deta pa iwo, palibe katundu. Muyenera kukonzanso deta kuti ifalikire mofanana pamagulu atsopano, akuluakulu.

Njira yoyamba yomwe izi zingachitire ndikukopera gawo la magawowa ku maseva atsopano pogwiritsa ntchito pempho sinthani kugawa kwa tebulo. Mwachitsanzo, munali ndi magawo pamwezi, ndipo mumatenga mwezi woyamba wa 2017 ndikuwukopera ku seva yatsopano, ndikutengera mwezi wachitatu ku seva ina yatsopano. Ndipo mumachita izi mpaka zitakhala zochulukirapo kapena zochepa.

Kusamutsa kutha kuchitidwa kokha kwa magawo omwe sasintha pakujambula. Kwa magawo atsopano, kujambula kuyenera kuyimitsidwa, chifukwa kusamutsa kwawo si atomiki. Apo ayi, mudzakhala ndi zobwereza kapena mipata mu deta. Komabe, njirayi ndi yothandiza ndipo imagwira ntchito bwino. Okonzeka opangidwa wothinikizidwa partitions amafalitsidwa pa netiweki, ndiye kuti deta si wothinikizidwa kapena re-encoded.

Njirayi ili ndi drawback imodzi, ndipo zimatengera sharding scheme, kaya mudalonjeza ku sharding scheme, ndi kiyi yotani yomwe mudali nayo. Muchitsanzo chanu pamilandu yama metrics, kiyi ya sharding ndi hashi ya njira. Mukasankha tebulo logawidwa, limapita ku shards zonse mumagulu nthawi imodzi ndikutenga deta kuchokera pamenepo.

Izi zikutanthauza kuti ziribe kanthu kwa inu zomwe deta inathera pa shard. Chinthu chachikulu ndi chakuti deta panjira imodzi imathera pa shard imodzi, koma yomwe siili yofunikira. Pankhaniyi, kusamutsa magawo opangidwa kale ndikwabwino, chifukwa ndi mafunso osankhidwa mudzalandiranso deta yonse - kaya musanagawanenso kapena pambuyo pake, chiwembucho chilibe kanthu.

Koma pali zochitika zomwe zimakhala zovuta kwambiri. Ngati pamlingo wamalingaliro ogwiritsira ntchito mumadalira chiwembu chapadera cha sharding, kuti kasitomala uyu ali pamtunda woterewu, ndipo pempho litha kutumizidwa komweko, osati patebulo Logawidwa. Kapena mukugwiritsa ntchito mtundu waposachedwa wa ClickHouse ndipo mwathandizira zosintha onjezerani kudumpha magawo osagwiritsidwa ntchito. Pachifukwa ichi, pafunso losankhidwa, mawu omwe ali mu gawo lomwe lidzasanthulidwe ndipo adzawerengedwa kuti ndi shards yotani yomwe iyenera kugwiritsidwa ntchito molingana ndi ndondomeko ya sharding. Izi zimagwira ntchito popereka kuti deta igawidwe ndendende molingana ndi dongosolo la sharding. Ngati mwawakonzanso pamanja, makalata angasinthe.

Kotero iyi ndi njira nambala wani. Ndipo ndikuyembekezera yankho lanu, kaya njirayo ndi yoyenera, kapena tiyeni tipitirire.

Vladimir Kolobaev, wotsogolera dongosolo ku Avito: Alexey, njira yomwe mwatchulayo sigwira ntchito bwino pamene mukufunikira kufalitsa katundu, kuphatikizapo kuwerenga. Titha kutenga gawo lomwe liri pamwezi ndipo titha kutenga mwezi wapitawu kupita ku node ina, koma pempho likabwera la deta iyi, tidzangoyiyika. Koma tikufuna kukweza gulu lonselo, chifukwa apo ayi, kwa nthawi yayitali gawo lonse lowerengera lidzakonzedwa ndi ma shards awiri.

Alexey Milovidov: Yankho apa ndi lachilendo - inde, ndizoipa, koma zitha kugwira ntchito. Ndifotokoza ndendende momwe. Ndikoyenera kuyang'ana zochitika zomwe zimabwera kumbuyo kwa deta yanu. Ngati iyi ndi data yowunikira, ndiye kuti titha kunena motsimikiza kuti zopempha zambiri ndizatsopano.

Mudayika ma seva atsopano, kusuntha magawo akale, komanso kusintha momwe deta yatsopano imalembedwera. Ndipo deta yatsopano idzafalikira pagulu lonselo. Chifukwa chake, pakangotha ​​mphindi zisanu, zopempha za mphindi zisanu zomaliza zidzadzaza masangowo; patatha tsiku, zopempha za maola XNUMX zidzadzaza masangowo mofanana. Ndipo zopempha za mwezi wapitawu, mwatsoka, zidzangopita ku gawo la ma seva a magulu.

Koma nthawi zambiri simudzakhala ndi zopempha za February 2019. Mwinamwake, ngati zopempha zipita mu 2019, zidzakhala za 2019 yonse - kwa nthawi yayikulu, osati yaing'ono. Ndipo zopempha zoterozo zidzathanso kukweza masango mofanana. Koma kawirikawiri, ndemanga yanu ndi yolondola kuti iyi ndi yankho la ad hoc lomwe silimafalitsa deta mofanana.

Ndili ndi mfundo zingapo zoyankha funsoli. Chimodzi mwa izo ndi za momwe mungayambire kupanga sharding scheme kuti kugawananso kungayambitse kupweteka kochepa. Izi sizingatheke nthawi zonse.

Mwachitsanzo, muli ndi deta yowunikira. Deta yowunikira ikukula pazifukwa zitatu. Choyamba ndi kudzikundikira kwa mbiri yakale. Chachiwiri ndi kukula kwa magalimoto. Ndipo chachitatu ndi kuchuluka kwa zinthu zomwe zimayang'aniridwa. Pali ma microservices atsopano ndi ma metric omwe akuyenera kusungidwa.

N'zotheka kuti mwa izi, kuwonjezeka kwakukulu kumagwirizanitsidwa ndi chifukwa chachitatu - kuwonjezeka kwa ntchito yowunikira. Ndipo pakadali pano, ndikofunikira kuyang'ana mtundu wa katunduyo, ndi mafunso ati omwe amasankhidwa. Zosankha zoyambira zitha kukhala zochokera kumagulu ang'onoang'ono.

Mwachitsanzo, kugwiritsa ntchito CPU pa maseva ena ndi ntchito zina. Zikuoneka kuti pali kagawo kakang'ono ka makiyi omwe mumapeza deta iyi. Ndipo pempho lokha la deta iyi ndilosavuta kwambiri ndipo limamalizidwa mu ma milliseconds. Amagwiritsidwa ntchito powunikira mautumiki ndi ma dashboards. Ndikukhulupirira kuti ndikumvetsa izi molondola.

Vladimir Kolobaev: Chowonadi ndi chakuti nthawi zambiri timakonda kukopa mbiri yakale, popeza timafanizira zomwe zikuchitika masiku ano ndi mbiri yakale munthawi yeniyeni. Ndipo ndikofunikira kuti tipeze mwachangu kuchuluka kwa data, ndipo ClickHouse imachita bwino kwambiri ndi izi.

Mukunena zowona, timakumana ndi zopempha zambiri zomwe zidawerengedwa m'masiku omaliza, monga momwe zimawonera. Koma nthawi yomweyo, katundu pa mbiri deta ndi lalikulu ndithu. Zimachokera ku makina ochenjeza omwe amayenda masekondi makumi atatu aliwonse ndikunena kwa ClickHouse: "Ndipatseni chidziwitso cha masabata asanu ndi limodzi apitawa. Tsopano ndikonzereni mtundu wina wa avereji yosuntha kuchokera kwa iwo, ndipo tiyeni tiyerekeze mtengo wamakono ndi mbiri yakale. "

Ndikufuna kunena kuti pazopempha zaposachedwa kwambiri tili ndi tebulo lina laling'ono momwe timasungiramo masiku awiri okha a data, ndipo zopempha zazikulu zimawulukiramo. Timangotumiza mafunso akulu akale ku tebulo lalikulu logawidwa.

Alexey Milovidov: Tsoka ilo, zikuwoneka kuti sizikugwira ntchito bwino pazochitika zanu, koma ndikuwuzani kufotokozera za njira ziwiri zoyipa komanso zovuta za sharding zomwe siziyenera kugwiritsidwa ntchito, koma zomwe zimagwiritsidwa ntchito ndi anzanga.

Pali gulu lalikulu lomwe lili ndi zochitika za Yandex.Metrica. Zochitika ndizowona masamba, kudina, ndi kutembenuka. Zopempha zambiri zimapita kutsamba linalake. Mumatsegula utumiki wa Yandex.Metrica, muli ndi webusaiti - avito.ru, pitani ku lipoti, ndipo pempho laperekedwa kwa webusaiti yanu.

Koma pali zopempha zina - zowunikira komanso zapadziko lonse lapansi - zomwe zimapangidwa ndi akatswiri amkati. Zikatero, ndikuzindikira kuti akatswiri amkati amangopempha ntchito za Yandex. Komabe, ngakhale ntchito za Yandex zimakhala ndi gawo lalikulu lazinthu zonse. Izi ndi zopempha osati zowerengera zenizeni, koma zosefera zambiri.

Momwe mungasankhire deta m'njira yoti chilichonse chizigwira ntchito bwino pa counter imodzi, komanso mafunso apadziko lonse lapansi? Vuto lina ndikuti kuchuluka kwa zopempha mu ClickHouse pagulu la Metrics ndi masauzande angapo pamphindikati. Panthawi imodzimodziyo, seva imodzi ya ClickHouse silingathe kuyankha zopempha zopanda pake, mwachitsanzo, zikwi zingapo pamphindi.

Kukula kwamagulu ndi ma seva mazana asanu ndi limodzi. Mukangokoka tebulo logawidwa pagululi ndikutumiza zopempha masauzande angapo pamenepo, zikhala zoyipa kwambiri kuposa kutumiza ku seva imodzi. Kumbali ina, njira yomwe deta imafalikira mofanana, ndipo timapita ndikupempha kuchokera ku maseva onse, nthawi yomweyo imachotsedwa.

Pali njira yomwe ili yosiyana kwambiri ndi diametrically. Tangoganizani ngati tigawana deta pamasamba onse, ndipo pempho latsamba limodzi lipita ku shard imodzi. Tsopano gululo lizitha kuthana ndi zopempha zikwi khumi pamphindikati, koma pagawo limodzi pempho lililonse lidzagwira ntchito pang'onopang'ono. Sichidzakulanso potengera kuchuluka kwa zinthu. Makamaka ngati ili ndi tsamba la avito.ru. Sindidzaulula chinsinsi ngati ndikunena kuti Avito ndi imodzi mwa malo omwe adayendera kwambiri ku RuNet. Ndipo kukonza pa shard imodzi kungakhale misala.

Choncho, ndondomeko ya sharding imapangidwa mwanzeru kwambiri. Gulu lonse lagawidwa m'magulu angapo, omwe timawatcha kuti zigawo. Gulu lililonse limakhala ndi ma shards khumi ndi awiri mpaka khumi ndi awiri. Pali magulu makumi atatu ndi asanu ndi anayi otere onse.

Kodi zonsezi zimatheka bwanji? Chiwerengero cha masango sichisintha - monga momwe zinaliri zaka makumi atatu ndi zisanu ndi zinayi zapitazo, zimakhala choncho. Koma mkati mwa aliyense wa iwo, pang'onopang'ono timawonjezera chiwerengero cha shards pamene tikusonkhanitsa deta. Ndipo ndondomeko ya sharding yonse ili ngati iyi: masangowa amagawidwa m'mawebusaiti, ndipo kuti amvetse kuti ndi webusaiti yanji yomwe ili pamagulu, metabase yosiyana mu MySQL imagwiritsidwa ntchito. Tsamba limodzi - pagulu limodzi. Ndipo mkati mwake, sharding imachitika molingana ndi ma ID a alendo.

Pojambula, timawagawa ndi gawo lotsalira la ID ya alendo. Koma powonjezera shard yatsopano, chiwembu cha sharding chimasintha; timapitiriza kugawanika, koma ndi gawo lotsalalo ndi nambala ina. Izi zikutanthauza kuti mlendo m'modzi ali kale pa ma seva angapo, ndipo simungadalire izi. Izi zachitika kokha kuonetsetsa kuti deta bwino wothinikizidwa. Ndipo tikamapempha, timapita ku Distributed table, yomwe imayang'ana gululo ndikupeza ma seva ambiri. Ichi ndi chiwembu chopusa.

Koma nkhani yanga ikhala yosakwanira ngati sindinena kuti tinasiya chiwembuchi. Muchiwembu chatsopano, tidasintha chilichonse ndikukopera deta yonse pogwiritsa ntchito clickhouse-copier.

Muchiwembu chatsopano, malo onse amagawidwa m'magulu awiri - akuluakulu ndi ang'onoang'ono. Sindikudziwa momwe malirewo adasankhidwira, koma zotsatira zake zinali kuti masamba akulu amalembedwa pagulu limodzi, pomwe pali ma shards 120 okhala ndi ma replicas atatu aliwonse - ndiko kuti, ma seva 360. Ndipo dongosolo la sharding ndiloti pempho lililonse limapita ku shards zonse nthawi imodzi. Ngati mutsegula tsamba lililonse la lipoti la avito.ru ku Yandex.Metrica, pempholi lipita ku ma seva 120. Pali masamba akulu ochepa mu RuNet. Ndipo zopempha si chikwi pamphindikati, koma ngakhale zosakwana zana. Zonsezi zimafufuzidwa mwakachetechete ndi Distributed table, yomwe aliyense wa iwo amachita ndi ma seva 120.

Ndipo gulu lachiwiri ndi la malo ang'onoang'ono. Nayi chiwembu cha sharding kutengera ID ya tsamba, ndipo pempho lililonse limapita ku shard imodzi.

ClickHouse ili ndi chothandizira chokopera. Kodi mungatiuze za iye?

Ndidzanena nthawi yomweyo kuti yankho ili ndi lovuta kwambiri komanso lopanda phindu. Ubwino wake ndikuti amapaka deta kwathunthu malinga ndi dongosolo lomwe mwafotokoza. Koma drawback ya zofunikira ndikuti sichimayambiranso. Imakopera deta kuchokera ku cluster schema kupita ku cluster schema ina.

Izi zikutanthauza kuti kuti igwire ntchito muyenera kukhala ndi magulu awiri. Zitha kupezeka pa ma seva omwewo, koma, komabe, deta sidzasunthidwa mochulukira, koma idzakopedwa.

Mwachitsanzo, panali ma seva anayi, tsopano alipo asanu ndi atatu. Mumapanga tebulo latsopano Logawidwa pa ma seva onse, matebulo atsopano am'deralo ndikuyambitsa clickhouse-copier, kusonyeza mmenemo ndondomeko ya ntchito yomwe iyenera kuwerengedwa kuchokera pamenepo, kuvomereza ndondomeko yatsopano ya sharding ndikusamutsa deta kumeneko. Ndipo pa ma seva akale mudzafunika nthawi imodzi ndi theka kuposa malo omwe alipo tsopano, chifukwa deta yakale iyenera kukhalabe pa iwo, ndipo theka la deta yakale yomweyi idzafika pamwamba pawo. Ngati munaganizira pasadakhale kuti deta iyenera kugawidwanso ndipo pali malo, ndiye kuti njirayi ndi yoyenera.

Kodi clickhouse-copier imagwira ntchito bwanji mkati? Imaphwanya ntchito zonse kukhala gulu la ntchito zokonza gawo limodzi la tebulo limodzi pa shard imodzi. Ntchito zonsezi zitha kuchitidwa mofanana, ndipo clickhouse-copier imatha kuyendetsedwa pamakina osiyanasiyana kangapo, koma zomwe zimachita pagawo limodzi sizongowonjezera kusankha. Deta imawerengedwa, kuchepetsedwa, kugawanitsa, kenako kukanikizidwanso, kulembedwa penapake, ndikusanjidwanso. Ichi ndi chisankho cholimba.

Munali ndi chinthu choyendetsa ndege chotchedwa resharding. Nanga bwanji iye?

Kubwerera mu 2017, mudali ndi chinthu choyendetsa ndege chotchedwa resharding. Palinso njira mu ClickHouse. Monga ndikumvetsetsa, sizinayambe. Kodi mungandiuze chifukwa chake izi zidachitika? Zikuwoneka kuti ndizofunikira kwambiri.

Vuto lonse ndiloti ngati kuli kofunikira kugawanso deta m'malo mwake, kugwirizanitsa kovuta kwambiri kumafunika kuti tichite izi atomically. Titayamba kuyang'ana momwe kulunzanitsa uku kumagwirira ntchito, zidawonekeratu kuti pali zovuta zazikulu. Ndipo mavuto ofunikirawa si ongoganiza chabe, koma nthawi yomweyo adayamba kudziwonetsa muzochita mu mawonekedwe a chinthu chomwe chingafotokozedwe mophweka - palibe chomwe chimagwira ntchito.

Kodi ndizotheka kuphatikiza zidutswa zonse za data musanayisunthire ku ma disks ocheperako?

Funso lokhudza TTL ndi kusuntha kwapang'onopang'ono disk njira munkhani ya merges. Kodi pali njira ina, kupatula kudzera pa cron, yophatikiza magawo onse kukhala amodzi musanawasunthire ku ma disks ocheperako?

Yankho la funso n'zotheka mwanjira ina basi kumata zidutswa zonse mu umodzi pamaso posamutsa iwo - ayi. Sindikuganiza kuti izi ndizofunikira. Simuyenera kuphatikiza magawo onse kukhala amodzi, koma ingowerengerani kuti adzasamutsidwa ku ma disks ocheperako okha.

Tili ndi njira ziwiri zoyendetsera malamulo. Yoyamba ndi yodzazidwa. Ngati gawo losungirako pano lili ndi malo ocheperapo peresenti ya malo aulere, timasankha chunk imodzi ndikuyisunthira kusungirako pang'onopang'ono. Kapena m'malo, osati pang'onopang'ono, koma yotsatira - monga mukukonza.

Muyeso wachiwiri ndi kukula. Ndi za kusuntha zidutswa zazikulu. Mutha kusintha poyambira malinga ndi malo aulere pa disk yofulumira, ndipo deta idzasamutsidwa yokha.

Momwe mungasamukire kumitundu yatsopano ya ClickHouse ngati palibe njira yowonera pasadakhale?

Nkhaniyi imakambidwa pafupipafupi mu ClickHouse telegraph chat poganizira matembenuzidwe osiyanasiyana, ndipo komabe. Ndizotetezeka bwanji kukweza kuchokera ku 19.11 mpaka 19.16 ndipo, mwachitsanzo, kuchokera ku 19.16 mpaka 20.3. Ndi njira iti yabwino yosamukira kumitundu yatsopano popanda kuyang'ana pasadakhale kuti ikugwirizana ndi sandbox?

Pali malamulo angapo a "golide" apa. Choyamba - werengani changelog. Ndi yayikulu, koma pali ndime zosiyana zokhudzana ndi kusintha kosagwirizana. Osatengera mfundozi ngati mbendera yofiira. Izi nthawi zambiri zimakhala zosagwirizana zing'onozing'ono zomwe zimaphatikizapo magwiridwe antchito omwe mwina simugwiritsa ntchito.

Kachiwiri, ngati palibe njira yowonera kuyenderana mu sandbox, ndipo mukufuna kusintha nthawi yomweyo pakupanga, malingaliro ndikuti simuyenera kuchita izi. Choyamba pangani sandbox ndikuyesa. Ngati palibe malo mayeso, ndiye inu ambiri mwina mulibe kampani yaikulu kwambiri, kutanthauza kuti mukhoza kukopera ena deta laputopu wanu ndi kuonetsetsa kuti zonse ntchito molondola pa izo. Mutha kukwezanso zolemba zingapo kwanuko pamakina anu. Kapena mutha kutenga mtundu watsopano kwinakwake ndikuyika zina zomwe zili pamenepo - ndiye kuti, pangani malo oyeserera bwino.

Lamulo lina sikusintha kwa sabata imodzi mutatulutsidwa chifukwa chogwira nsikidzi pakupanga ndi kukonza mwachangu. Tiyeni tiwone kuchuluka kwamitundu ya ClickHouse kuti tisasokonezeke.

Pali mtundu 20.3.4. Nambala ya 20 imasonyeza chaka chopangidwa - 2020. Kuchokera pakuwona zomwe zili mkati, izi ziribe kanthu, kotero sitidzamvetsera. Kenako - 20.3. Timawonjezera nambala yachiwiri - mu nkhani iyi 3 - nthawi iliyonse tikamasula kumasulidwa ndi ntchito zina zatsopano. Ngati tikufuna kuwonjezera zina ku ClickHouse, tiyenera kuwonjezera chiwerengerochi. Ndiye kuti, mu mtundu 20.4 ClickHouse idzagwira ntchito bwinoko. Nambala yachitatu ndi 20.3.4. Apa 4 ndi kuchuluka kwa zigamba zomwe sitinawonjezere zatsopano, koma tidakonza zolakwika zina. Ndipo 4 amatanthauza kuti tinachita kanayi.

Musaganize kuti ichi ndi chinthu choyipa. Nthawi zambiri wogwiritsa ntchito amatha kukhazikitsa mtundu waposachedwa ndipo adzagwira ntchito popanda vuto lililonse ndi uptime pachaka. Koma taganizirani kuti mu ntchito ina yokonza ma bitmaps, omwe adawonjezedwa ndi anzathu aku China, seva imawonongeka ikapereka zifukwa zolakwika. Tili ndi udindo wokonza izi. Titulutsa mtundu watsopano wa chigamba ndipo ClickHouse ikhala yokhazikika.

Ngati muli ndi ClickHouse yomwe ikuyenda pakupanga, ndipo mtundu watsopano wa ClickHouse umatuluka ndi zina zowonjezera - mwachitsanzo, 20.4.1 ndiye woyamba kwambiri, musathamangire kuyiyika pakupanga tsiku loyamba. N'chifukwa chiyani kuli kofunikira? Ngati simugwiritsa ntchito kale ClickHouse, ndiye kuti mutha kuyiyika, ndipo mwina zonse zikhala bwino. Koma ngati ClickHouse ikugwira ntchito kale mokhazikika, ndiye yang'anani pazigamba ndi zosintha kuti muwone mavuto omwe tikukonza.

Kirill Shvakov: Ndikufuna kuwonjezera pang'ono za malo oyeserera. Aliyense amawopa kwambiri malo oyesera ndipo pazifukwa zina amakhulupirira kuti ngati muli ndi gulu lalikulu la ClickHouse, ndiye kuti malo oyesera sayenera kukhala ochepa kapena osachepera kakhumi. Sizili choncho nkomwe.

Ndikhoza kukuuzani mwa chitsanzo changa. Ndili ndi polojekiti, ndipo pali ClickHouse. Malo athu oyeserera ndi ake - iyi ndi makina ang'onoang'ono ku Hetzner kwa ma euro makumi awiri, pomwe zonse zimayikidwa. Kuti tichite izi, tili ndi automation yathunthu mu Ansible, ndipo chifukwa chake, kwenikweni, sizipanga kusiyana komwe tingapite - kumaseva a hardware kapena kungoyika makina enieni.

Nanga tingatani? Zingakhale zabwino kupereka chitsanzo muzolemba za ClickHouse za momwe mungagwiritsire ntchito kagulu kakang'ono m'nyumba mwanu - ku Docker, ku LXC, mwinamwake kupanga Ansible playbook, chifukwa anthu osiyanasiyana ali ndi ntchito zosiyanasiyana. Izi zidzachepetsa kwambiri. Mukatenga ndikuyika gulu mu mphindi zisanu, zimakhala zosavuta kuyesa kupeza china chake. Izi ndizosavuta kwambiri, chifukwa kugubuduza mu mtundu wopanga zomwe simunayesere ndi njira yopita kulikonse. Nthawi zina zimagwira ntchito ndipo nthawi zina sizitero. Choncho, kuyembekezera kuchita bwino n’koipa.

Maxim Kotyakov, injiniya wamkulu wakumbuyo Avito: Ndiwonjeza pang'ono za malo oyeserera kuchokera pamavuto angapo omwe makampani akuluakulu amakumana nawo. Tili ndi gulu lovomerezeka la ClickHouse lathunthu; malinga ndi ziwembu ndi makonda, ndi chithunzi chenicheni cha zomwe zikupangidwa. Gululi limayikidwa m'mabokosi ocheperako omwe ali ndi zinthu zochepa. Timalemba kuchuluka kwazinthu zomwe zapangidwa kumeneko, mwamwayi ndizotheka kubwereza mtsinje wa Kafka. Chilichonse chomwe chilipo chimalumikizidwa ndikusinthidwa - potengera mphamvu ndi kuyenda, ndipo, mwamalingaliro, zinthu zina zonse kukhala zofanana, ziyenera kukhala ngati kupanga malinga ndi ma metrics. Chilichonse chomwe chingathe kuphulika chimakulungidwa pamalopo ndikusiyidwa kwa masiku angapo mpaka zitakonzeka. Koma mwachibadwa, yankho ili ndi lokwera mtengo, lovuta ndipo liri ndi ndalama zothandizira zopanda zero.

Alexey Milovidov: Ndikuuzani zomwe malo oyesera a anzathu ochokera ku Yandex.Metrica ali. Gulu limodzi linali ndi ma seva osamvetseka 600, lina linali ndi 360, ndipo pali lachitatu ndi magulu angapo. Malo oyesera a m'modzi waiwo amangokhala ma shards awiri okhala ndi zofananira ziwiri chilichonse. Chifukwa chiyani zidutswa ziwiri? Kotero kuti simuli nokha. Ndipo payenera kukhala zofananira nazonso. Ndalama zochepa chabe zomwe mungakwanitse.

Malo oyesererawa amakupatsani mwayi wowona ngati mafunso anu akugwira ntchito komanso ngati chilichonse chachikulu chasweka. Koma nthawi zambiri mavuto amadza ndi chikhalidwe chosiyana, pamene chirichonse chikugwira ntchito, koma pali kusintha kwakung'ono pa katundu.

Ndiroleni ndikupatseni chitsanzo. Tinaganiza zokhazikitsa mtundu watsopano wa ClickHouse. Zayikidwa pa malo oyesera, mayesero odzipangira okha atsirizidwa mu Yandex.Metrica yokha, yomwe imayerekezera deta pamtundu wakale ndi watsopano, womwe ukuyendetsa payipi yonse. Ndipo, ndithudi, mayesero obiriwira a CI yathu. Kupanda kutero sitikanaperekanso Baibuloli.

Zonse zili bwino. Tikuyamba kusamukira kupanga. Ndimalandira uthenga woti katundu pamagrafu wawonjezeka kangapo. Tikubweza Baibulo. Ndimayang'ana graph ndikuwona: katunduyo adawonjezeka kangapo panthawi yotulutsidwa, ndikucheperanso pamene adatulutsidwa. Kenako tinayamba kubweza Baibulolo. Ndipo katunduyo anakula momwemonso, nagwera m’mbuyo momwemo. Kotero mapeto ake ndi awa: katundu wawonjezeka chifukwa cha masanjidwewo, palibe chodabwitsa.

Ndiye zinali zovuta kutsimikizira anzako kuti ayike mtundu watsopano. Ine ndinati: “Chabwino, tuluka. Sungani zala zanu, zonse ziyenda. Tsopano katundu pa ma graph awonjezeka, koma zonse zili bwino. Khalani pamenepo." Nthawi zambiri, tinachita izi, ndipo ndizomwezo - mtunduwo unatulutsidwa kuti upangidwe. Koma pafupifupi ndi dongosolo lililonse mavuto ofanana amabuka.

Kupha mafunso akuyenera kupha mafunso, koma sichoncho. Chifukwa chiyani?

Wogwiritsa ntchito, katswiri wamtundu wina, adabwera kwa ine ndikupanga pempho lomwe lidayika gulu langa la ClickHouse. Ma node ena kapena gulu lonse, kutengera mtundu womwe pempholo lapita. Ndikuwona kuti zida zonse za CPU pa seva iyi zili mu alumali, zonse ndi zofiira. Nthawi yomweyo, ClickHouse yokha imayankha zopempha. Ndipo ndikulemba kuti: "Chonde ndiwonetseni, mndandanda wazinthu, zomwe zidayambitsa misala iyi."

Ndikupeza pempho ili ndikulembera kupha. Ndipo ndikuwona kuti palibe chomwe chikuchitika. Seva yanga ili mu alumali, ClickHouse ndiye amandipatsa malamulo ena, akuwonetsa kuti seva ili ndi moyo, ndipo zonse ndi zabwino. Koma ndili ndi chiwonongeko pazopempha zonse za ogwiritsa ntchito, kuwonongeka kumayamba ndi zolemba mu ClickHouse, ndipo funso langa lakupha siligwira ntchito. Chifukwa chiyani? Ndinkaganiza kuti kupha anthu kumayenera kupha mafunso, koma sichoncho.

Tsopano padzakhala yankho lachilendo. Mfundo ndi yakuti kupha kupha sikupha mafunso.

Kill query imayang'ana kabokosi kakang'ono kotchedwa "Ndikufuna kuti funsoli liphedwe." Ndipo pempho lokha limayang'ana mbendera iyi pokonza chipika chilichonse. Ngati yakhazikitsidwa, pempho limasiya kugwira ntchito. Zikuoneka kuti palibe amene amapha pempho, iye mwini ayenera kufufuza zonse ndi kusiya. Ndipo izi ziyenera kugwira ntchito nthawi zonse pomwe pempho liri pakukonza midadada ya data. Idzakonza chipika chotsatira cha data, fufuzani mbendera, ndikuyimitsa.

Izi sizigwira ntchito ngati pempho latsekedwa pa ntchito ina. Zowona, izi siziri vuto lanu, chifukwa, malinga ndi inu, zimagwiritsa ntchito matani azinthu za seva. Ndizotheka kuti izi sizigwira ntchito pakusanja kwakunja komanso mwatsatanetsatane zina. Koma kawirikawiri izi siziyenera kuchitika, ndi cholakwika. Ndipo chinthu chokha chomwe ndingalimbikitse ndikusinthira ClickHouse.

Kodi mungawerengere bwanji nthawi yoyankha powerenga?

Pali tebulo lomwe limasungira zinthu zophatikizika - zowerengera zosiyanasiyana. Chiwerengero cha mizere ndi pafupifupi miliyoni zana. Kodi ndizotheka kuwerengera nthawi yodziwikiratu ngati mutsanulira 1K RPS pazinthu za 1K?

Tikayang'ana pamutuwu, tikukamba za kuchuluka kwa kuwerenga, chifukwa palibe vuto ndi kulemba - ngakhale chikwi, ngakhale zikwi zana limodzi, ndipo nthawi zina mizere ingapo ingalowe.

Zopempha zowerenga ndizosiyana kwambiri. Posankha 1, ClickHouse imatha kuchita zopempha masauzande pa sekondi imodzi, kotero ngakhale zopempha za kiyi imodzi zimafuna kale zinthu zina. Ndipo mafunso oterowo adzakhala ovuta kwambiri kusiyana ndi nkhokwe zina zamtengo wapatali, chifukwa pa kuwerenga kulikonse ndikofunikira kuwerenga chipika cha data ndi index. Mlozera wathu umatengera osati mbiri iliyonse, koma mtundu uliwonse. Ndiye kuti, muyenera kuwerenga mndandanda wonse - iyi ndi mizere 8192 mwachisawawa. Ndipo mudzayenera kutsitsa chipika cha data kuchokera pa 64 KB mpaka 1 MB. Nthawi zambiri, mafunso omwe akufunsidwa amatenga ma milliseconds ochepa kuti amalize. Koma iyi ndi njira yosavuta.

Tiyeni tiyese masamu osavuta. Mukachulukitsa ma milliseconds ndi chikwi, mupeza masekondi angapo. Zimakhala ngati ndizosatheka kupitiliza zopempha chikwi pamphindikati, koma kwenikweni ndizotheka, chifukwa tili ndi ma processor angapo. Chifukwa chake, kwenikweni, ClickHouse nthawi zina imatha kukhala ndi 1000 RPS, koma pazofunsira zazifupi, zomwe zalunjika.

Ngati mukufuna kukulitsa gulu la ClickHouse ndi kuchuluka kwa zopempha zosavuta, ndiye ndikupangira chinthu chosavuta - onjezerani kuchuluka kwa zofananira ndikutumiza zopempha ku chithunzi chosasinthika. Ngati choyimira chimodzi chikhala ndi zopempha mazana asanu pamphindikati, zomwe ndi zenizeni, ndiye kuti zofananira zitatu zidzagwira chikwi chimodzi ndi theka.

Nthawi zina, inde, mutha kukonza ClickHouse kuti muwerenge kuchuluka kwa mfundo. Chofunika ndi chiyani pa izi? Choyamba ndi kuchepetsa granularity index. Pachifukwa ichi, siziyenera kuchepetsedwa kukhala chimodzi, koma pamaziko kuti chiwerengero cha zolemba mu ndondomekoyi chidzakhala mamiliyoni angapo kapena makumi a mamiliyoni pa seva. Ngati tebulo ili ndi mizere miliyoni miliyoni, granularity akhoza kukhazikitsidwa 64.

Mukhoza kuchepetsa kukula kwa chipika choponderezedwa. Pali zokonda za izi min compress block kukula kwake, max compress block size. Zitha kuchepetsedwa, kudzazidwanso ndi deta, ndiyeno mafunso omwe akuwunikira adzakhala achangu. Komabe, ClickHouse sichinsinsi chamtengo wapatali. Chiwerengero chachikulu cha zopempha zazing'ono ndi katundu antipattern.

Kirill Shvakov: Ndipereka malangizo ngati pali maakaunti wamba pamenepo. Izi ndizomwe zimachitika pomwe ClickHouse imasunga mtundu wina wa counter. Ndili ndi wogwiritsa ntchito, akuchokera kudziko lakuti ndi lakuti, ndi gawo lina lachitatu, ndipo ndikufunika kuwonjezera china chake mochulukira. Tengani MySQL, pangani kiyi yapadera - mu MySQL ndi kiyi yobwereza, ndipo mu PostgreSQL ndikukangana - ndikuwonjezera chizindikiro. Izi zigwira ntchito bwino kwambiri.

Mukakhala mulibe zambiri, palibe chifukwa chogwiritsa ntchito ClickHouse. Pali ma database okhazikika ndipo amachita izi bwino.

Kodi ndingasinthe chiyani mu ClickHouse kuti zambiri zikhale mu cache?

Tiyeni tiganizire momwe zinthu zilili - ma seva ali ndi 256 GB ya RAM, muzochita za tsiku ndi tsiku ClickHouse imatenga pafupifupi 60-80 GB, pachimake - mpaka 130. Zomwe zingathetsedwe ndi kusinthidwa kuti deta yambiri ikhale mu cache ndipo, moyenerera , pali maulendo ochepa opita ku disk?

Nthawi zambiri, cache ya tsamba la opareshoni imagwira ntchito bwino pa izi. Ngati mutangotsegula pamwamba, yang'anani pamenepo yosungidwa kapena yaulere - imanenanso kuchuluka kwa cache - ndiye mudzawona kuti kukumbukira kwaulere kumagwiritsidwa ntchito posungira. Ndipo powerenga izi, siziwerengedwa kuchokera ku disk, koma kuchokera ku RAM. Nthawi yomweyo, nditha kunena kuti posungirayo imagwiritsidwa ntchito bwino chifukwa ndi data yothinikizidwa yomwe imasungidwa.

Komabe, ngati mukufuna kufulumizitsa mafunso osavuta kwambiri, ndizotheka kupatsa cache mu data yodetsedwa mkati mwa ClickHouse. Amatchedwa cache yosakanizidwa. Mu fayilo yokonzekera config.xml, sungani kukula kwa cache kwa mtengo womwe mukufuna - ndikupangira zosaposa theka la RAM yaulere, chifukwa zina zonse zidzapita pansi pa cache ya tsamba.

Komanso, pali awiri pempho mlingo zoikamo. Kukonzekera koyamba - gwiritsani ntchito posungira uncompressed - kumaphatikizapo kugwiritsa ntchito kwake. Ndikofunikira kuti izi zitheke pazopempha zonse, kupatula zolemetsa, zomwe zimatha kuwerenga zonse ndikuchotsa posungira. Ndipo kukhazikitsidwa kwachiwiri kuli ngati kuchuluka kwa mizere yogwiritsira ntchito posungira. Imadziletsa zokha mafunso akulu kuti alambalale posungira.

Kodi ndingakhazikitse bwanji storage_configuration yosungirako mu RAM?

M'zolemba zatsopano za ClickHouse ndidawerenga gawo lomwe likugwirizana ndi kusunga deta. Kufotokozera kuli ndi chitsanzo ndi SSD yachangu.

Ndikudabwa momwe chinthu chomwecho chingasinthidwe ndi voliyumu yotentha kukumbukira. Ndipo funso linanso. Kodi kusankha kumagwira ntchito bwanji ndi bungwe la data, kodi lidzawerenga seti yonse kapena yokhayo yomwe ili pa diski, ndipo kodi detayi imasungidwa pamtima? Ndipo gawo la prewhere limagwira ntchito bwanji ndi bungwe loterolo?

Kukonzekera uku kumakhudza kusungidwa kwa ma data chunks, ndipo mawonekedwe awo sasintha mwanjira iliyonse.
Tiyeni tione bwinobwino.

Mutha kusintha kusungidwa kwa data mu RAM. Zonse zomwe zimapangidwira disk ndi njira yake. Mumapanga gawo la tmpfs lomwe limakwezedwa kunjira ina mumafayilo. Mumatchula njira iyi ngati njira yosungiramo deta ya magawo otentha kwambiri, zidutswa za deta zimayamba kufika ndikulembedwa pamenepo, zonse zili bwino.

Koma sindikulangiza kuchita izi chifukwa chodalirika chochepa, ngakhale ngati muli ndi zosachepera zitatu m'malo osiyanasiyana a deta, ndiye kuti n'zotheka. Ngati chirichonse chikuchitika, deta idzabwezeretsedwa. Tiyerekeze kuti seva idazimitsidwa mwadzidzidzi ndikuyatsidwanso. Gawoli linakonzedwanso, koma panalibe kanthu pamenepo. Seva ya ClickHouse ikayamba, imawona kuti ilibe zidutswazi, ngakhale, malinga ndi metadata ya ZooKeeper, ziyenera kukhalapo. Amayang'ana zofananira zomwe zili nazo, kuzipempha ndikuzitsitsa. Mwanjira iyi deta idzabwezeretsedwa.

M'lingaliro limeneli, kusunga deta mu RAM sikusiyana kwenikweni ndi kuisunga pa disk, chifukwa deta ikalembedwa ku diski, imayambiranso pa cache ya tsamba ndipo imalembedwa pambuyo pake. Izi zimatengera njira yokhazikitsira fayilo. Koma ngati zitachitika, ndinena kuti ClickHouse simasinthasintha poyika.

Pankhaniyi, zomwe zili mu RAM zimasungidwa chimodzimodzi monga pa disk. Funso losankhidwa mofananamo limasankha zidutswa zomwe ziyenera kuwerengedwa, zimasankha magawo ofunikira a deta mu zidutswa, ndikuziwerenga. Ndipo penapake imagwira ntchito chimodzimodzi, mosasamala kanthu kuti deta inali mu RAM kapena pa disk.

Kodi Low Cardinality imagwira ntchito mpaka pati?

Low Cardinality idapangidwa mwanzeru. Imapanga madikishonale a data, koma ndi amderalo. Choyamba, pali otanthauzira osiyana pa chidutswa chilichonse, ndipo kachiwiri, ngakhale mkati mwa chidutswa chimodzi akhoza kukhala osiyana pamtundu uliwonse. Chiwerengero chazinthu zapadera chikafika pachimake - miliyoni imodzi, ndikuganiza - mtanthauzira mawu amangosungidwa ndikupangidwa yatsopano.

Yankho ndilofala: pamtundu uliwonse wamba - tinene, tsiku lililonse - kwinakwake mpaka miliyoni miliyoni zamtengo wapatali za Low Cardinal ndizothandiza. Pambuyo pake padzakhala kubwereranso, momwe madikishonale ambiri adzagwiritsidwa ntchito, osati imodzi yokha. Idzagwira ntchito mofanana ndi chingwe chokhazikika, mwinamwake chochepa pang'ono, koma sipadzakhala kuwonongeka kwakukulu kwa ntchito.

Kodi ndi njira ziti zabwino zomwe mungafufuze patebulo lokhala ndi mizere mabiliyoni asanu ndi chiyani?

Pali mayankho osiyanasiyana. Choyamba ndikunena kuti ClickHouse siinjini yofufuzira mawu. Pali machitidwe apadera a izi, mwachitsanzo, Elasticsearch и masinfikisi. Komabe, ndikuwona anthu ambiri akunena kuti akusintha kuchoka ku Elasticsearch kupita ku ClickHouse.

Chifukwa chiyani izi zimachitika? Amalongosola izi ndi mfundo yakuti Elasticsearch imasiya kulimbana ndi katundu pa mavoliyumu ena, kuyambira ndi kupanga ma index. Ma index amakhala ovuta kwambiri, ndipo ngati mungosamutsa deta ku ClickHouse, zimakhala kuti zimasungidwa kangapo moyenera malinga ndi kuchuluka kwa voliyumu. Panthawi imodzimodziyo, mafunso osaka nthawi zambiri sanali otero kotero kuti kunali kofunikira kupeza mawu mumtundu wonse wa deta, poganizira za morphology, koma zosiyana kwambiri. Mwachitsanzo, pezani zotsatizana za ma byte muzolemba maola angapo apitawa.

Pankhaniyi, mumapanga cholozera mu ClickHouse, gawo loyamba lomwe lidzakhala tsiku ndi nthawi. Ndipo kudulidwa kwakukulu kwa data kudzatengera tsiku. Munthawi yomwe yasankhidwa, monga lamulo, ndizotheka kale kufufuza zolemba zonse, ngakhale kugwiritsa ntchito njira ya brute force pogwiritsa ntchito ngati. Wogwiritsa ntchito ngati ClickHouse ndiye wothandiza kwambiri ngati wogwiritsa ntchito yemwe mungapeze. Ngati mwapeza zabwinoko, ndiuzeni.

Komabe, ngati ndi scan scan. Ndipo jambulani yonse imatha kuchedwa osati pa CPU yokha, komanso pa disk. Ngati mwadzidzidzi muli ndi terabyte imodzi ya data patsiku, ndipo mumasaka mawu masana, ndiye kuti muyenera kusanthula terabyte. Ndipo mwina zili pa hard drive nthawi zonse, ndipo pamapeto pake zidzakwezedwa mwanjira yoti simungathe kupeza seva iyi kudzera pa SSH.

Pankhaniyi, ndine wokonzeka kupereka chinyengo china chaching'ono. Ndizoyesera - zitha kugwira ntchito, mwina sizingatero. ClickHouse ili ndi zolemba zonse ngati zosefera za trigram Bloom. Anzathu ku Arenadata ayesa kale ma index awa, ndipo nthawi zambiri amagwira ntchito monga momwe amafunira.

Kuti muwagwiritse ntchito moyenera, muyenera kumvetsetsa bwino momwe amagwirira ntchito: zosefera za trigram Bloom ndi momwe mungasankhire kukula kwake. Ndikhoza kunena kuti athandizira mafunso pa mawu osowa, ma substrings omwe sapezeka kawirikawiri mu data. Pachifukwa ichi, magawo ang'onoang'ono adzasankhidwa ndi ma index ndipo deta yocheperako idzawerengedwa.

Posachedwapa, ClickHouse yawonjezeranso ntchito zapamwamba kwambiri pakufufuza zolemba zonse. Izi, choyamba, ndikufufuza magulu ang'onoang'ono nthawi imodzi mu chiphaso chimodzi, kuphatikizapo zosankha zomwe zimakhala zovuta, zosakhudzidwa, zothandizidwa ndi UTF-8 kapena ASCII yokha. Sankhani yothandiza kwambiri yomwe mukufuna.

Kusaka mawu angapo okhazikika mu chiphaso chimodzi kwawonekeranso. Simufunikanso kulemba X ngati chingwe chimodzi kapena X ngati chingwe china. Mumalemba nthawi yomweyo, ndipo zonse zimachitika mogwira mtima momwe mungathere.

Chachitatu, tsopano pali kusaka kwapafupifupi kwa regexps ndi kusaka pafupifupi ma substrings. Ngati wina sanapeleke bwino liwu, amafufuzidwa kuti agwirizane kwambiri.

Ndi njira iti yabwino yokonzera mwayi wofikira ku ClickHouse kwa ogwiritsa ntchito ambiri?

Tiuzeni momwe tingakonzekerere mwayi wofikira kwa ogula ambiri ndi akatswiri. Momwe mungapangire mzere, kuyika patsogolo mafunso ambiri nthawi imodzi, ndi zida ziti?

Ngati gululo ndi lalikulu mokwanira, ndiye kuti yankho labwino lingakhale kukweza ma seva ena awiri, omwe adzakhala malo olowera kwa akatswiri. Ndiko kuti, musalole akatswiri kuti apeze ma shards enieni mumagulu, koma ingopangani ma seva awiri opanda kanthu, opanda deta, ndikukonzekera ufulu wopeza pa iwo. Pankhaniyi, zosintha za ogwiritsa ntchito zopempha zogawidwa zimasamutsidwa ku ma seva akutali. Ndiko kuti, mumakonza chirichonse pa ma seva awiriwa, ndipo zosintha zimakhala ndi zotsatira pa gulu lonse.

M'malo mwake, ma seva awa alibe deta, koma kuchuluka kwa RAM pa iwo ndikofunikira kwambiri pochita zopempha. Diski itha kugwiritsidwanso ntchito ngati data yanthawi yochepa ngati kuphatikiza kwakunja kapena kusanja kwakunja kwayatsidwa.

Ndikofunika kuyang'ana zoikamo zomwe zimagwirizana ndi malire onse omwe angathe. Ngati tsopano ndipita ku gulu la Yandex.Metrica monga katswiri ndikufunsa pempho sankhani kuwerengera kuchokera pazomenyedwa, ndiye kuti nthawi yomweyo ndipatsidwa mwayi woti sindingathe kuchita zomwe ndikufuna. Kuchuluka kwa mizere yomwe ndimaloledwa kusanthula ndi biliyoni zana limodzi, ndipo palimodzi pali thililiyoni makumi asanu patebulo limodzi pagululo. Ichi ndi malire oyamba.

Tinene kuti ndikuchotsa malire a mizere ndikuyambitsanso funsolo. Kenako ndiwona chotsatira chotsatira - kukhazikitsidwa kwayatsidwa mphamvu index ndi tsiku. Sindingathe kutsiriza funsolo ngati sindinatchule mtundu wa deti. Simuyenera kudalira akatswiri kuti afotokoze pamanja. Nthawi zambiri ndi pamene nthawi yalembedwa pamene tsiku la chochitika pakati pa sabata. Kenako adangotchula bulaketi pamalo olakwika, ndipo m'malo mwake zidakhala kapena - kapena machesi a URL. Ngati palibe malire, imakwawa pagawo la URL ndikungowononga matani azinthu.

Kuphatikiza apo, ClickHouse ili ndi zoikamo ziwiri zofunika kwambiri. Tsoka ilo, iwo ndi achikale kwambiri. Mmodzi amangotchedwa chofunika kwambiri. Ngati chofunika kwambiri ≠ 0, ndipo zopempha zofunika kwambiri zikuchitidwa, koma pempho lokhala ndi mtengo wocheperapo, kutanthauza kuti chofunika kwambiri, chikuchitidwa, ndiye pempho lokhala ndi mtengo wapatali kwambiri, kutanthauza kuti chofunika kwambiri. , imangoyimitsidwa ndipo sizigwira ntchito konse panthawiyi.

Izi ndi zamwano kwambiri ndipo sizoyenera nthawi zomwe masango amakhala ndi katundu wokhazikika. Koma ngati muli ndi zopempha zazifupi, zophulika zomwe ndizofunikira, ndipo gululo limakhala lopanda ntchito, kukhazikitsidwa uku ndikoyenera.

Chikhazikitso chotsatira chimatchedwa Kufunika kwa ulusi wa OS. Imangoyika mtengo wabwino pazida zonse zofunsira kwa Linux scheduler. Zimagwira ntchito motere, koma zimagwirabe ntchito. Ngati muyika mtengo wabwino kwambiri - ndi waukulu kwambiri pamtengo, ndipo chifukwa chake ndiwotsika kwambiri - ndikuyika -19 pazopempha zomwe zili zofunika kwambiri, ndiye kuti CPU idzadya zopempha zofunika kwambiri pafupifupi kanayi kuposa zomwe zili zofunika kwambiri.

Muyeneranso kukonza nthawi yokwanira yofunsira - titi, mphindi zisanu. Kuthamanga kocheperako kwamafunso ndi chinthu chozizira kwambiri. Kukonzekera uku kwakhalapo kwa nthawi yayitali, ndipo ndikofunikira osati kungonena kuti ClickHouse sikuchedwa, koma kukakamiza.

Tangoganizani, mumakhazikitsa: ngati mafunso ena akuyenda mizere yochepera miliyoni imodzi pamphindikati, simungathe kuchita zimenezo. Izi zimanyozetsa dzina lathu labwino, database yathu yabwino. Tiyeni tingoletsa izi. Pali makonda awiri. Mmodzi amatchedwa liwiro la mini kupha - m'mizere pamphindikati, ndipo yachiwiri imatchedwa nthawi yopuma musanayang'ane kuthamanga kwa mphindi - masekondi khumi ndi asanu mwachisawawa. Ndiko kuti, masekondi khumi ndi asanu ndi otheka, ndiyeno, ngati pang'onopang'ono, ndiye ingoponyera zosiyana ndikuchotsa pempholo.

Muyeneranso kukhazikitsa ma quotas. ClickHouse ili ndi gawo lokhazikika lomwe limawerengera kugwiritsa ntchito zinthu. Koma, mwatsoka, osati zida za hardware monga CPU, disks, koma zomveka - chiwerengero cha zopempha zosinthidwa, mizere ndi ma byte amawerengedwa. Ndipo mutha kukonza, mwachitsanzo, zopempha zana limodzi mkati mwa mphindi zisanu ndi zopempha chikwi pa ola limodzi.

N’chifukwa chiyani kuli kofunikira? Chifukwa mafunso ena a analytics adzachitidwa pamanja mwachindunji kuchokera kwa kasitomala wa ClickHouse. Ndipo zonse zikhala bwino. Koma ngati muli ndi akatswiri apamwamba pakampani yanu, amalemba script, ndipo pakhoza kukhala cholakwika mu script. Ndipo cholakwika ichi chidzapangitsa kuti pempho lichitidwe mosalekeza. Izi ndi zomwe tikuyenera kudziteteza.

Kodi ndizotheka kupereka zotsatira za funso limodzi kwa makasitomala khumi?

Tili ndi ogwiritsa ntchito angapo omwe amakonda kubwera ndi zopempha zazikulu kwambiri panthawi imodzi. Pempholi ndi lalikulu ndipo, makamaka, limachitidwa mwamsanga, koma chifukwa chakuti pali zopempha zambiri panthawi imodzi, zimakhala zowawa kwambiri. Kodi n'zotheka kuchita pempho lomwelo, lomwe linafika kakhumi motsatira, kamodzi, ndikupereka zotsatira kwa makasitomala khumi?

Vuto ndiloti tilibe zotsatira za cache kapena cache ya data yapakatikati. Pali cache ya tsamba la makina ogwiritsira ntchito, omwe angakulepheretseni kuwerenganso deta kuchokera ku diski, koma, mwatsoka, detayo idzaphwanyidwabe, kuchotsedwa ndi kukonzanso.

Ndikufuna kupewa izi mwanjira ina, mwina posunga zosunga zobwezeretsera zapakatikati, kapena kuyika mafunso ofanana pamzere wina ndikuwonjezera posungira zotsatira. Pakali pano tili ndi pempho limodzi lachitukuko lomwe limawonjezera posungira zopempha, koma pazongowonjezera zomwe zili mkati ndikujowina zigawo - ndiye kuti, yankho silikwanira.

Komabe, ifenso timakumana ndi mkhalidwe wotero. Chitsanzo chodziwika bwino kwambiri ndi mafunso opanda pake. Pali lipoti, ili ndi masamba angapo, ndipo pali pempho la malire 10. Ndiye chinthu chomwecho, koma malire 10,10. Kenako tsamba lina lotsatira. Ndipo funso ndilakuti, chifukwa chiyani timawerengera zonsezi nthawi zonse? Koma tsopano palibe njira yothetsera vutoli, ndipo palibe njira yopewera zimenezo.

Pali njira ina yomwe imayikidwa ngati sidecar pafupi ndi ClickHouse - Wothandizira ClickHouse.

Kirill Shvakov: ClickHouse Proxy ili ndi malire okhazikika komanso chosungira chazotsatira. Zokonda zambiri zidapangidwa pamenepo chifukwa vuto lofananalo lidathetsedwa. Proxy imakupatsani mwayi wochepetsera zopempha poziyika pamzere ndikusintha utali wa nthawi yomwe kache yopemphayo imakhala. Ngati zopemphazo zinali zofanana, Proxy azitumiza nthawi zambiri, koma azipita ku ClickHouse kamodzi kokha.

Nginx ilinso ndi cache mu mtundu waulere, ndipo izi zigwiranso ntchito. Nginx imakhala ndi makonda omwe ngati zopempha zifika nthawi imodzi, zimachedwetsa ena mpaka imodzi ikamalizidwa. Koma ndi ClickHouse Proxy kuti kukhazikitsidwa kwachitika bwino kwambiri. Zinapangidwira kwa ClickHouse, makamaka pazopempha izi, kotero ndizoyenera kwambiri. Chabwino, n'zosavuta kukhazikitsa.

Nanga bwanji za ma asynchronous opareshoni ndi mawonedwe athupi?

Pali vuto kuti magwiridwe antchito ndi injini ya replay ndi asynchronous - choyamba deta imalembedwa, kenako imagwa. Ngati tabuleti yokhala ndi ma aggregates ena imakhala pansi pa chikwangwanicho, ndiye kuti zobwereza zimalembedwanso. Ndipo ngati palibe mfundo zovuta, ndiye kuti deta idzabwerezedwa. Kodi mungatani nazo?

Pali yankho lodziwikiratu - kukhazikitsa choyambitsa pagulu linalake la matviews panthawi ya kugwa kwapang'onopang'ono. Kodi pali zipolopolo zilizonse zasiliva kapena mapulani ogwiritsira ntchito zofanana?

Ndikoyenera kumvetsetsa momwe deduplication imagwirira ntchito. Zomwe ndikuuzeni tsopano sizogwirizana ndi funso, koma ngati kuli koyenera kukumbukira.

Mukayika mu tebulo lofananizidwa, pali kubwereza kwa midadada yonse yomwe yayikidwa. Ngati mulowetsanso chipika chomwe chili ndi nambala yofanana ya mizere yofanana mu dongosolo lomwelo, ndiye kuti deta imachotsedwa. Mudzalandira "Chabwino" poyankha kuyika, koma kwenikweni paketi imodzi ya data idzalembedwa, ndipo sichidzabwerezedwanso.

Izi ndizofunikira motsimikiza. Mukalandira "Chabwino" pakuyika, ndiye kuti deta yanu yayikidwa. Mukalandira cholakwika kuchokera ku ClickHouse, zikutanthauza kuti sanalowetsedwe ndipo muyenera kubwereza kuyikako. Koma ngati kugwirizana kwathyoledwa pakuyika, ndiye kuti simukudziwa ngati deta inayikidwa kapena ayi. Njira yokhayo ndikubwerezanso kuyikanso. Ngati deta idayikidwadi ndikuyiyikanso, pali kuchotsera kwa block. Izi ndizofunikira kuti mupewe zobwerezedwa.

Ndipo ndizofunikiranso momwe zimagwirira ntchito pazowonera zakuthupi. Ngati deta idachotsedwa ikayikidwa patebulo lalikulu, ndiye kuti sichingawonekerenso.

Tsopano za funso. Zinthu zanu ndizovuta kwambiri chifukwa mukujambula mizere yobwerezedwa. Ndiko kuti, si paketi yonse yomwe imabwerezedwa, koma mizere yeniyeni, ndipo imagwera chakumbuyo. Zowonadi, detayo idzagwa patebulo lalikulu, koma deta yosagwedezeka idzapita ku maonekedwe a thupi, ndipo panthawi yophatikizana palibe chomwe chidzachitike ku maonekedwe a thupi. Chifukwa mawonekedwe owoneka bwino ndi chinthu chongoyambitsa chabe. Pazochitika zina, palibe chowonjezera chomwe chimachitika.

Ndipo sindingathe kukusangalatsani pano. Mukungoyenera kuyang'ana njira yothetsera vutoli. Mwachitsanzo, kodi ndizotheka kubwerezanso ngati mawonekedwe aumunthu, ndipo njira yochepetsera ingagwire ntchito chimodzimodzi. Koma mwatsoka, osati nthawi zonse. Ngati ikuphatikiza, sizigwira ntchito.

Kirill Shvakov: Tinkapanganso ndodo zakale. Panali vuto loti pali zowonetsa zotsatsa, ndipo pali zina zomwe titha kuziwonetsa munthawi yeniyeni - izi ndi zongowona. Sizichitika kawirikawiri, koma izi zikachitika, tidzazigwetsa pambuyo pake. Ndipo panali zinthu zomwe sizikanatha kubwerezedwa - kudina ndi nkhani yonseyi. Koma ndinkafunanso kuwasonyeza nthawi yomweyo.

Kodi malingaliro opangidwa ndi anthu adapangidwa bwanji? Panali mawonedwe pomwe adalembedwa mwachindunji - adalembedwa ku data yaiwisi, ndikulembera mawonedwe. Kumeneko, nthawi ina deta siili yolondola kwambiri, imabwerezedwa, ndi zina zotero. Ndipo pali gawo lachiwiri la tebulo, pomwe amawoneka ofanana ndendende ndi mawonedwe athupi, ndiye kuti, amafanana mwadongosolo. Nthaŵi zina timawerengeranso deta, kuwerengera deta popanda kubwereza, lembani ku matebulo amenewo.

Tinadutsa API - izi sizigwira ntchito mu ClickHouse pamanja. Ndipo API ikuwoneka: ndikakhala ndi tsiku lomaliza kuwonjezera pa tebulo, komwe kumatsimikiziridwa kuti deta yolondola yawerengedwa kale, ndipo imapanga pempho ku tebulo limodzi ndi tebulo lina. Kuchokera kumodzi pempho limasankha mpaka nthawi yochuluka, ndipo kuchokera kwa winayo amapeza zomwe sizinawerengedwebe. Ndipo imagwira ntchito, koma osati kudzera pa ClickHouse yokha.

Ngati muli ndi mtundu wina wa API - kwa akatswiri, kwa ogwiritsa ntchito - ndiye, makamaka, iyi ndi njira. Mumawerenga nthawi zonse, mumawerengera nthawi zonse. Izi zikhoza kuchitika kamodzi patsiku kapena nthawi ina. Mumadzisankhira nokha mndandanda womwe simukufuna komanso wosakhala wovuta.

ClickHouse ili ndi zipika zambiri. Kodi ndingawone bwanji zonse zomwe zimachitika kwa seva pang'onopang'ono?

ClickHouse ili ndi zipika zambiri zosiyana, ndipo chiwerengerochi chikuwonjezeka. M'matembenuzidwe atsopano, ena aiwo amathandizidwa mwachisawawa; m'matembenuzidwe akale amayenera kuyatsidwa akamasinthidwa. Komabe, pali ochulukirachulukira. Pamapeto pake, ndikufuna kuwona zomwe zikuchitika ndi seva yanga tsopano, mwina pamtundu wina wachidule wa dashboard.

Kodi muli ndi gulu lanu la ClickHouse, kapena m'magulu a anzanu, omwe amathandizira magwiridwe antchito a ma dashboard okonzeka omwe angawonetse zipikazi ngati chinthu chopangidwa kale? Pamapeto pake, kungoyang'ana zipika mu ClickHouse ndizabwino. Koma zingakhale zozizira kwambiri ngati zitakonzedwa kale mu mawonekedwe a dashboard. Ndikanatha kukankha.

Pali dashboards, ngakhale kuti si standardized. Pakampani yathu, magulu pafupifupi 60 amagwiritsa ntchito ClickHouse, ndipo chodabwitsa ndichakuti ambiri ali ndi ma dashboard omwe adadzipangira okha, komanso osiyana pang'ono. Magulu ena amagwiritsa ntchito kuyika kwamkati kwa Yandex.Cloud. Pali malipoti okonzeka, ngakhale si onse ofunikira. Ena ali ndi zawo.

Anzanga aku Metrica ali ndi dashboard yawo ku Grafana, ndipo ine ndili ndi yanga yamagulu awo. Ndikuyang'ana zinthu ngati cache hit for the serif cache. Ndipo chovuta kwambiri ndichakuti timagwiritsa ntchito zida zosiyanasiyana. Ndinapanga dashboard yanga pogwiritsa ntchito chida chakale kwambiri chotchedwa Graphite-web. Iye ndi wonyansa kotheratu. Ndipo ndimagwiritsabe ntchito motere, ngakhale Grafana mwina ingakhale yabwino komanso yokongola.

Chofunikira mu dashboards ndichofanana. Awa ndi ma metric amachitidwe a cluster: CPU, memory, disk, network. Zina - kuchuluka kwa zopempha nthawi imodzi, kuchuluka kwa kuphatikiza nthawi imodzi, kuchuluka kwa zopempha pamphindikati, kuchuluka kwa ma chunks a magawo a tebulo la MergeTree, kubwerezabwereza, kukula kwa mzere wobwereza, kuchuluka kwa mizere yoyikidwa pamphindikati, kuchuluka kwa midadada yoyikidwa pamphindikati. Izi ndizo zonse zomwe sizimatengedwa kuchokera ku zipika, koma kuchokera ku ma metrics.

Vladimir Kolobaev: Alexey, ndikufuna kukonza pang'ono. Ndi Grafana. Grafana ali ndi datasource, yomwe ndi ClickHouse. Ndiye kuti, nditha kupanga zopempha kuchokera ku Grafana mwachindunji kupita ku ClickHouse. ClickHouse ili ndi tebulo lokhala ndi zipika, ndizofanana kwa aliyense. Zotsatira zake, ndikufuna kupeza tebulo ili ku Grafana ndikuwona zopempha zomwe seva yanga imapanga. Zingakhale zabwino kukhala ndi dashboard ngati iyi.

Ndinakwera njinga ndekha. Koma ndili ndi funso - ngati zonse zili zokhazikika, ndipo Grafana amagwiritsidwa ntchito ndi aliyense, bwanji Yandex ilibe dashboard yovomerezeka yotere?

Kirill Shvakov: M'malo mwake, datasource yomwe imapita ku ClickHouse tsopano imathandizira Altinity. Ndipo ndikungofuna kupereka vector komwe kukumba ndi ndani kukankha. Mutha kuwafunsa, chifukwa Yandex imapangabe ClickHouse, osati nkhani yozungulira. Altinity ndiye kampani yayikulu yomwe ikulimbikitsa ClickHouse. Sadzamusiya, koma adzamuthandiza. Chifukwa, kwenikweni, kukweza dashboard patsamba la Grafana, muyenera kungolembetsa ndikuyiyika - palibe mavuto apadera.

Alexey Milovidov: Chaka chatha, ClickHouse yawonjezera mphamvu zambiri zamafunso. Pali ma metrics pa pempho lililonse pakugwiritsa ntchito zinthu. Ndipo posachedwa, tawonjeza mbiri yafunso yotsika kuti tiwone komwe funso likugwiritsa ntchito millisecond iliyonse. Koma kuti ndigwiritse ntchito izi, ndiyenera kutsegula kasitomala wa console ndikulemba pempho, lomwe ndimayiwala nthawi zonse. Ndinasunga kwinakwake ndikuyiwalabe komwe kuli ndendende.

Ndikanakonda pakanakhala chida chomwe changonena kuti, nayi mafunso anu olemetsa, ophatikizidwa ndi gulu la mafunso. Ndinakankhira chimodzi, ndipo amandiuza kuti ndicho chifukwa chake ndi cholemera. Palibe yankho lotere tsopano. Ndipo ndizodabwitsa kuti anthu akandifunsa kuti: "Ndiuze, kodi pali ma dashboard okonzeka a Grafana?", Ndimati: "Pitani patsamba la Grafana, pali gulu la "Dashboards", ndipo pali dashboard. kuchokera ku Dimka, pali dashboard yochokera ku Kostyan. Sindikudziwa kuti ndi chiyani, sindinagwiritse ntchito ndekha. "

Momwe mungapangire zophatikiza kuti seva isagwe mu OOM?

Ndili ndi tebulo, pali gawo limodzi lokha patebulo, ndi ReplaceMergeTree. Ndakhala ndikulembamo deta kwa zaka zinayi. Ndinafunika kusintha ndi kuchotsa deta.

Ndidachita izi, ndipo pakukonza pempholi, zokumbukira zonse pamaseva onse omwe ali mgululi zidathetsedwa, ndipo ma seva onse mgululi adalowa mu OOM. Kenako onse adayimilira palimodzi, nayamba kuphatikiza ntchito yomweyi, chipika cha data, ndikugweranso mu OOM. Kenako anadzukanso n’kugwa. Ndipo chinthu ichi sichinayime.

Kenako zidapezeka kuti iyi inalidi cholakwika chomwe anyamatawo adakonza. Izi ndizabwino kwambiri, zikomo kwambiri. Koma otsala anatsala. Ndipo tsopano, ndikaganiza zopanga mtundu wina wa kuphatikiza patebulo, ndimakhala ndi funso - chifukwa chiyani sindingathe kukopa izi? Mwachitsanzo, achepetseni ndi kuchuluka kwa RAM yofunikira, kapena, makamaka, ndi kuchuluka komwe kudzakonza tebulo ili.

Ndili ndi tebulo lotchedwa "Metrics", chonde ndikonzereni mumizere iwiri. Palibe chifukwa chopanga zophatikiza khumi kapena zisanu molumikizana, chitani ziwiri. Ndikuganiza kuti ndili ndi kukumbukira kokwanira kwa awiri, koma sikungakhale kokwanira kukonza khumi. N'chifukwa chiyani mantha amakhalabe? Chifukwa tebulo likukula, ndipo tsiku lina ndidzakumana ndi vuto lomwe, kwenikweni, silikhalanso chifukwa cha cholakwika, koma chifukwa deta idzasintha mochuluka kotero kuti sindidzakhala ndi kukumbukira kokwanira pa seva. Ndiyeno seva idzagwa mu OOM pamene ikuphatikiza. Komanso, ndikhoza kuletsa kusintha, koma Merji kulibe.

Mukudziwa, pophatikiza, seva sidzagwa mu OOM, chifukwa pophatikiza, kuchuluka kwa RAM kumagwiritsidwa ntchito pamtundu umodzi wokha wa data. Kotero zonse zidzakhala bwino mosasamala kanthu za kuchuluka kwa deta.

Vladimir Kolobaev: Chabwino. Apa nthawiyi ndi yoti cholakwikacho chitatha, ndidatsitsanso mtundu watsopano, ndipo patebulo lina, laling'ono, pomwe pali magawo ambiri, ndidachita opaleshoni yofananira. Ndipo pakuphatikizana, pafupifupi 100 GB ya RAM idawotchedwa pa seva. Ndinali ndi 150 yotanganidwa, 100 yodya, ndi zenera la 50 GB latsala, kotero sindinagwere mu OOM.

Ndi chiyani chomwe chimanditeteza pano kuti ndisagwere mu OOM ngati idya 100 GB ya RAM? Zoyenera kuchita ngati mwadzidzidzi RAM pamaphatikizidwe atha?

Alexey Milovidov: Pali vuto loti kugwiritsa ntchito RAM makamaka pakuphatikiza sikuli malire. Ndipo vuto lachiwiri ndiloti ngati kuphatikiza kwamtundu wina kwaperekedwa, ndiye kuti kuyenera kuchitidwa chifukwa kumalembedwa mu chipika chobwerezabwereza. Logi yobwereza ndizochitika zomwe zimafunikira kuti chofananacho chikhale chofanana. Ngati simupanga zosintha pamanja zomwe zingabwezeretse chipikachi chobwereza, kuphatikiza kuyenera kuchitika mwanjira ina.

Zachidziwikire, sizingakhale zovuta kukhala ndi malire a RAM omwe "ngati" angateteze ku OOM. Sizingathandize kuti kuphatikizika kumalize, kumayambanso, kufika pachimake, kutaya chosiyana, ndikuyambanso - palibe chabwino chomwe chidzabwere. Koma kwenikweni, zingakhale zothandiza kuyambitsa chiletsochi.

Kodi driver wa Golang wa ClickHouse adzapangidwa bwanji?

Dalaivala wa Golang, yemwe adalembedwa ndi Kirill Shvakov, tsopano akuthandizidwa ndi gulu la ClickHouse. Iye m'malo a ClickHouse, tsopano ndi wamkulu komanso weniweni.

Cholemba chaching'ono. Pali malo abwino komanso okondedwa amitundu yokhazikika yopanda malire - iyi ndi Vertica. Amakhalanso ndi oyendetsa awo ovomerezeka a python, omwe amathandizidwa ndi opanga Vertica. Ndipo kangapo zidachitika kuti matembenuzidwe osungira ndi madalaivala adasiyana kwambiri, ndipo dalaivala nthawi ina adasiya kugwira ntchito. Ndipo mfundo yachiwiri. Thandizo la dalaivala wovomerezeka uyu, zikuwoneka kwa ine, limayendetsedwa ndi dongosolo la "nipple" - mumawalembera nkhani, ndipo imalendewera mpaka kalekale.

Ndili ndi mafunso awiri. Tsopano dalaivala wa Golang wa Kirill ndiye njira yosasinthika yolankhulirana kuchokera ku Golang ndi ClickHouse. Pokhapokha ngati wina akulankhulabe kudzera pa http mawonekedwe chifukwa amakonda motero. Kodi chitukuko cha driver uyu chidzayenda bwanji? Kodi idzalumikizidwa ndi kusintha kulikonse komwe kuli munkhokwe? Ndipo ndondomeko yoganizira nkhani ndi yotani?

Kirill Shvakov: Choyamba ndi momwe zonse zimapangidwira mwadongosolo. Mfundo imeneyi sinakambidwe, choncho ndilibe choyankha.

Kuti tiyankhe funso la nkhaniyi, tifunika mbiri yochepa ya dalaivala. Ndinkagwira ntchito kukampani yomwe inali ndi deta zambiri. Anali spinner yotsatsa yokhala ndi zochitika zambiri zomwe zimafunika kusungidwa kwinakwake. Ndipo nthawi ina ClickHouse idawonekera. Tinadzaza ndi deta, ndipo poyamba zonse zinali bwino, koma ClickHouse inagwa. Panthawiyo tinaganiza kuti sitikufunikira.

Patatha chaka chimodzi, tidabwereranso ku lingaliro logwiritsa ntchito ClickHouse, ndipo tidafunikira kulemba deta pamenepo mwanjira ina. Uthenga woyambira unali uwu: hardware ndi yofooka kwambiri, pali zinthu zochepa. Koma takhala tikugwira ntchito motere, chifukwa chake timayang'ana ku protocol yachilengedwe.

Popeza tinali kugwira ntchito ku Go, zinali zoonekeratu kuti tikufunikira dalaivala wa Go. Ndinachita pafupifupi nthawi yonse - inali ntchito yanga. Tinazifikitsa pamalo enaake, ndipo kwenikweni palibe amene ankaganiza kuti wina aliyense kupatula ife azigwiritsa ntchito. Kenako CloudFlare idabwera ndi vuto lomwelo, ndipo kwa nthawi yayitali tidagwira nawo ntchito bwino, chifukwa anali ndi ntchito zomwezo. Komanso, tidachita izi ku ClickHouse tokha komanso mu driver.

Panthawi ina, ndinangosiya kuchita, chifukwa ntchito yanga ponena za ClickHouse ndi ntchito zinasintha pang'ono. Chifukwa chake zovuta sizimatsekedwa. Nthawi ndi nthawi, anthu omwe amafunikira china chake amadzipereka kumalo osungira. Kenako ndimayang'ana pempho lachikoka ndipo nthawi zina ndimasinthanso china chake, koma izi zimachitika kawirikawiri.

Ndikufuna kubwerera kwa driver. Zaka zingapo zapitazo, pamene zonsezi zinayamba, ClickHouse inalinso yosiyana komanso yosiyana. Tsopano tikumvetsetsa momwe tingapangirenso dalaivala kuti iziyenda bwino. Izi zikachitika, ndiye kuti mtundu 2 udzakhala wosagwirizana mulimonse chifukwa cha ndodo zomwe zasonkhanitsidwa.

Sindikudziwa momwe ndingakonzere nkhaniyi. Ndilibe nthawi yochuluka ndekha. Anthu ena akamaliza kuyendetsa galimoto, ndikhoza kuwathandiza ndi kuwauza zoyenera kuchita. Koma kutenga nawo mbali kwa Yandex pakupanga ntchitoyi sikunakambiranebe.

Alexey Milovidov: M'malo mwake, palibe maulamuliro okhudza madalaivala awa. Chokhacho ndikuti amaperekedwa ku bungwe lovomerezeka, ndiye kuti, dalaivala uyu amadziwika ngati yankho lovomerezeka la Go. Palinso madalaivala ena, koma amabwera mosiyana.

Tilibe chitukuko chamkati cha madalaivala awa. Funso ndilakuti titha kulemba ganyu munthu payekha, osati kwa dalaivala ameneyu, koma pa chitukuko cha madalaivala onse ammudzi, kapena titha kupeza wina wakunja.

Dikishonale yakunja simatsegula mutayambiranso ndi lazy_load setting yathandizidwa. Zoyenera kuchita?

Tili ndi lazy_load zokhazikitsa, ndipo seva itayambiranso, dikishonale siyimadzitengera yokha. Zimakwezedwa pokhapokha wogwiritsa ntchito atapeza mtanthauzira mawu. Ndipo nthawi yoyamba yomwe ndimachipeza, chimapereka cholakwika. Kodi ndizotheka kuyika mtanthauzira mawu pogwiritsa ntchito ClickHouse, kapena muyenera kudziwongolera nokha kuti ogwiritsa ntchito asalandire zolakwika?

Mwina tili ndi mtundu wakale wa ClickHouse, kotero dikishonaleyo sinadziyike yokha. Kodi zingakhale choncho?

Choyamba, madikishonale amatha kukakamizidwa kudzaza pogwiritsa ntchito funso dongosolo reloadnso mtanthauzira mawu. Kachiwiri, ponena za cholakwikacho - ngati mtanthauzira mawu wadzaza kale, ndiye kuti mafunsowo adzagwira ntchito kutengera zomwe zidakwezedwa. Ngati dikishonale sichidakwezedwe, idzayikidwa mwachindunji panthawi yopempha.

Izi sizothandiza kwambiri mtanthauzira mawu olemetsa. Mwachitsanzo, muyenera kukoka mizere miliyoni kuchokera ku MySQL. Wina amasankha mophweka, koma wosankhidwayo amadikirira mizere miliyoni imodzi. Pali njira ziwiri pano. Choyamba ndikuzimitsa lazy_load. Kachiwiri, seva ikakwera, musanayike katunduyo, chitani tsegulaninso mtanthauzira mawu kapena ingofunsani pogwiritsa ntchito mtanthauzira mawu. Kenako dikishonale idzatsegulidwa. Muyenera kuyang'anira kupezeka kwa madikishonale ndi lazy_load kukhazikitsa, chifukwa ClickHouse samangowalowetsa.

Yankho la funso lomaliza ndiloti mtunduwo ndi wakale kapena uyenera kusinthidwa.

Chochita ndi chakuti makina omasuliranso madikishonale satsegula madikishonale ambiri ngati imodzi mwa iwo itagwa ndi cholakwika?

Palinso funso lina lokhudza madikishonale otsegulanso makina. Tili ndi madikishonale awiri - imodzi sinanyamulidwe, yachiwiri ndi yodzaza. Pamenepa, Madikishonale a System reload salowetsa mtanthauzira mawu, ndipo muyenera kuloza ndi nsonga imodzi mwatchutchutchu pogwiritsa ntchito mtanthauzira mawu. Kodi izi zikugwirizananso ndi mtundu wa ClickHouse?

Ndikufuna kukusangalatsani. Khalidwe limeneli linali kusintha. Izi zikutanthauza kuti mukasintha ClickHouse, isinthanso. Ngati simukukondwera ndi khalidwe lanu lamakono dongosolo reloadnso mtanthauzira mawu, sinthani, ndipo tiyembekezere kuti zisintha kukhala zabwino.

Kodi pali njira yosinthira zambiri mu ClickHouse config, koma osaziwonetsa ngati zitalakwika?

Funso lotsatira ndi lokhudza zolakwika zokhudzana ndi dikishonale, zomwe ndi zambiri. Tafotokoza zambiri za kulumikizana mu ClickHouse config ya mtanthauzira mawu, ndipo ngati pali cholakwika, timalandira izi ndi mawu achinsinsi poyankha.

Tinathetsa vutoli powonjezera zambiri pa ODBC driver config. Kodi pali njira ina iliyonse yosinthira zambiri mu ClickHouse config, koma osawonetsa izi ngati zolakwika?

Yankho lenileni apa ndikutchula zidziwitso izi mu odbc.ini, ndipo mu ClickHouse palokha imangotchula Dzina la ODBC Data Source. Izi sizichitika kwa magwero ena otanthauzira mawu - ngakhale mtanthauzira mawu ndi MySQL, kapena enawo, simuyenera kuwona mawu achinsinsi mukalandira uthenga wolakwika. Kwa ODBC, ndiyang'ananso - ngati ilipo, muyenera kungoyichotsa.

Bonasi: maziko a Zoom kuchokera pamisonkhano

Mwa kuwonekera pachithunzichi, maziko a bonasi kuchokera pamisonkhano adzatsegulidwa kwa owerenga omwe amalimbikira kwambiri. Timazimitsa moto pamodzi ndi mascots a teknoloji ya Avito, timakambirana ndi anzathu kuchokera ku chipinda cha woyang'anira dongosolo kapena kalabu ya makompyuta akale, ndipo timachita misonkhano ya tsiku ndi tsiku pansi pa mlatho kumbuyo kwa graffiti.

ClickHouse kwa ogwiritsa ntchito apamwamba mu mafunso ndi mayankho

Source: www.habr.com

Kuwonjezera ndemanga