ClickHouse għal utenti avvanzati fil-mistoqsijiet u t-tweġibiet

F'April, l-inġiniera ta 'Avito nġabru għal laqgħat onlajn mal-iżviluppatur ewlieni tal-ClickHouse Alexey Milovidov u Kirill Shvakov, żviluppatur Golang minn Integros. Iddiskutejna kif nużaw sistema ta’ ġestjoni tad-database u liema diffikultajiet niltaqgħu magħhom.

Ibbażat fuq il-laqgħa, kkumpilajna artiklu bit-tweġibiet tal-esperti għall-mistoqsijiet tagħna u tal-udjenza dwar backups, tqassim mill-ġdid tad-dejta, dizzjunarji esterni, is-sewwieq Golang u l-aġġornament tal-verżjonijiet tal-ClickHouse. Jista 'jkun utli għall-iżviluppaturi li diġà qed jaħdmu b'mod attiv mal-DBMS Yandex u huma interessati fil-preżent u fil-futur tiegħu. B'mod awtomatiku, it-tweġibiet huma minn Alexey Milovidov, sakemm ma jkunx miktub mod ieħor.

Oqgħod attent, hemm ħafna test taħt il-qatgħa. Nittamaw li l-kontenut bil-mistoqsijiet jgħinek tinnaviga.

ClickHouse għal utenti avvanzati fil-mistoqsijiet u t-tweġibiet

Kontenut

Jekk ma tridx taqra t-test, tista 'tara r-reġistrazzjoni tal-laqgħat fuq il-kanal YouTube tagħna. Timecodes huma fl-ewwel kumment taħt il-video.

ClickHouse hija aġġornata kontinwament, iżda d-dejta tagħna mhix. X'għandek tagħmel dwarha?

ClickHouse hija aġġornata kontinwament, u d-dejta tagħna, li ġiet ottimizzata pproċessata finali, mhix aġġornata u tinsab f'kopja ta' backup.

Ejja ngħidu li kellna xi problema u d-data ntilfet. Iddeċidejna li nirrestawraw, u rriżulta li l-ħitan qodma, li huma maħżuna fuq is-servers tal-backup, huma differenti ħafna mill-verżjoni użata bħalissa ta 'ClickHouse. X'għandek tagħmel f'sitwazzjoni bħal din, u huwa possibbli?

Sitwazzjoni li fiha rrestawrajt data minn backup f'format antik, iżda ma tikkonnettjax mal-verżjoni l-ġdida, hija impossibbli. Aħna niżguraw li l-format tad-dejta f'ClickHouse dejjem jibqa' kompatibbli b'lura. Dan huwa ħafna aktar importanti minn kompatibilità b'lura fil-funzjonalità jekk l-imġieba ta 'xi funzjoni użata rari tkun inbidlet. Il-verżjoni l-ġdida ta 'ClickHouse għandha dejjem tkun kapaċi taqra d-dejta li hija maħżuna fuq id-diska. Din hija l-liġi.

X'inhuma l-aħjar prattiki attwali għall-backup tad-dejta minn ClickHouse?

Kif tagħmel backups, b'kont meħud li għandna jottimizzaw l-operazzjonijiet finali, database enormi ta 'terabytes, u data li hija aġġornata, ngħidu aħna, għall-aħħar tlett ijiem, u mbagħad ma jiġrilha l-ebda proċedura?

Nistgħu nagħmlu s-soluzzjoni tagħna stess u niktbu fuq il-bash: iġbor dawn il-kopji tal-backup b'tali mod jew b'tali mod. Forsi m'hemmx bżonn li crutch xejn, u r-rota ġiet ivvintata twil ilu?

Nibdew bl-aħjar prattiki. Il-kollegi tiegħi dejjem jagħtu parir, bi tweġiba għal mistoqsijiet dwar backups, biex ifakkruhom dwar is-servizz Yandex.Cloud, fejn din il-problema diġà ġiet solvuta. Allura użah jekk possibbli.

M'hemm l-ebda soluzzjoni sħiħa għall-backups, mija fil-mija mibnija fis-ClickHouse. Hemm xi vojt li jistgħu jintużaw. Biex tikseb soluzzjoni kompluta, inti jew ikollok tinker ftit manwalment, jew toħloq tgeżwir fil-forma ta 'skripts.

Nibda bl-aktar soluzzjonijiet sempliċi u nispiċċa b'dawk l-aktar sofistikati, skont il-volum ta 'data u d-daqs tal-cluster. Iktar ma jkun kbir il-cluster, aktar issir kumplessa s-soluzzjoni.

Jekk it-tabella bid-dejta tokkupa biss ftit gigabytes, il-backup jista 'jsir hekk:

  1. Issejvja d-definizzjoni tat-tabella jiġifieri metadata − uri toħloq tabella.
  2. Agħmel dump billi tuża l-klijent ClickHouse - tagħżel * mill-mejda għall-fajl. B'mod awtomatiku inti tirċievi fajl f'format TabSeparated. Jekk trid tkun aktar effiċjenti, tista 'tagħmel dan f'format Nattiv.

Jekk l-ammont ta 'data huwa akbar, allura l-backup se jieħu aktar ħin u ħafna spazju. Din tissejjaħ backup loġiku; mhix marbuta mal-format tad-data ClickHouse. Jekk hu, allura bħala l-aħħar għażla tista 'tieħu backup u ttella' fuq MySQL għall-irkupru.

Għal każijiet aktar avvanzati, ClickHouse għandha kapaċità inkorporata li toħloq stampa ta' diviżorji fis-sistema tal-fajls lokali. Din il-karatteristika hija disponibbli bħala talba tbiddel il-partizzjoni tal-iffriżar tal-mejda. Jew sempliċiment tbiddel l-iffriżar tal-mejda - din hija stampa tat-tabella kollha.

L-istampa se tinħoloq b'mod konsistenti għal tabella waħda fuq shard waħda, jiġifieri, huwa impossibbli li tinħoloq snapshot konsistenti tal-cluster kollu b'dan il-mod. Iżda għall-biċċa l-kbira tal-kompiti m'hemm l-ebda ħtieġa bħal din, u huwa biżżejjed li tesegwixxi talba fuq kull shard u tikseb stampa konsistenti. Hija maħluqa fil-forma ta 'hardlinks u għalhekk ma tieħux spazju addizzjonali. Sussegwentement, tikkopja din l-istampa fis-server tal-backup jew fil-ħażna li tuża għall-backups.

Ir-restawr ta 'backup bħal dan huwa pjuttost faċli. L-ewwel, oħloq tabelli billi tuża definizzjonijiet ta 'tabelli eżistenti. Sussegwentement, ikkopja l-istampa ssejvjata tal-ħitan għal Direttorju-Detached għal dawn it-tabelli u mexxi l-mistoqsija waħħal diviżorju. Din is-soluzzjoni hija pjuttost adattata għall-aktar volumi serji ta 'dejta.

Kultant ikollok bżonn xi ħaġa saħansitra aktar friska - f'każijiet fejn għandek għexieren jew saħansitra mijiet ta 'terabytes fuq kull server u mijiet ta' servers. Hemm soluzzjoni hawn li ħadt mingħand il-kollegi tiegħi minn Yandex.Metrica. Ma nirrakkomandahx lil kulħadd - aqrah u tiddeċiedi għalik innifsek jekk huwiex adattat jew le.

L-ewwel trid toħloq diversi servers bi xkafef kbar tad-disk. Sussegwentement, fuq dawn is-servers, għolli diversi servers ClickHouse u kkonfigurahom sabiex jaħdmu bħala replika oħra għall-istess frak. U mbagħad uża sistema ta 'fajls jew xi għodda fuq dawn is-servers li tippermettilek toħloq snapshots. Hemm żewġ għażliet hawn. L-ewwel għażla hija snapshots LVM, it-tieni għażla hija ZFS fuq Linux.

Wara dan, kull jum li għandek bżonn biex toħloq stampa, tkun tinsab u tieħu ftit spazju. Naturalment, jekk id-dejta tinbidel, l-ammont ta 'spazju jiżdied maż-żmien. Din l-istampa tista 'titneħħa fi kwalunkwe ħin u d-data restawrata, tali soluzzjoni stramba. Barra minn hekk, irridu wkoll nillimitaw dawn ir-repliki fil-konfigurazzjoni sabiex ma jippruvawx isiru mexxejja.

Se jkun possibbli li jiġi organizzat dewmien ikkontrollat ​​ta 'repliki fix-xaftijiet?

Din is-sena qed tippjana li tagħmel xaftijiet fi ClickHouse. Se jkun possibbli li jiġi organizzat dewmien ikkontrollat ​​ta 'repliki fihom? Nixtiequ nużawha biex nipproteġu lilna nfusna minn xenarji negattivi b'alters u bidliet oħra.

Huwa possibbli li tagħmel xi tip ta 'roll back għall-alters? Per eżempju, f'xaft eżistenti, ħu u għid li sa dan il-mument tapplika l-bidliet, u minn dan il-mument tieqaf tapplika l-bidliet?

Jekk kmand wasal fil-cluster tagħna u kissruh, allura għandna replika kondizzjonali b'dewmien ta 'siegħa, fejn nistgħu ngħidu li ejja nużawh bħalissa, iżda mhux se napplikaw bidliet għaliha għall-aħħar għaxar minuti?

L-ewwel, dwar id-dewmien ikkontrollat ​​tar-repliki. Kien hemm talba bħal din mill-utenti, u ħloqna kwistjoni fuq Github bit-talba: "Jekk xi ħadd għandu bżonn dan, bħalu, poġġi qalb." Ħadd ma wassal, u l-kwistjoni kienet magħluqa. Madankollu, diġà tista' tikseb din l-opportunità billi twaqqaf ClickHouse. Veru, jibda biss mill-verżjoni 20.3.

ClickHouse kontinwament twettaq dejta li tgħaqqad fl-isfond. Meta tingħaqad titlesta, ċertu sett ta 'biċċiet ta' data jiġi sostitwit b'biċċa akbar. Fl-istess ħin, biċċiet tad-dejta li kienu hemm qabel jibqgħu jibqgħu fuq id-diska għal xi żmien.

L-ewwel, jibqgħu jinħażnu sakemm ikun hemm mistoqsijiet magħżula li jużawhom, sabiex jipprovdu operazzjoni li ma jimblokkax. Mistoqsijiet Agħżel jinqraw faċilment minn biċċiet qodma.

It-tieni nett, hemm ukoll limitu ta 'żmien - biċċiet qodma ta' data jinsabu fuq id-diska għal tmien minuti. Dawn it-tmien minuti jistgħu jiġu personalizzati u anke jinbidlu f'ġurnata waħda. Dan se jiswa spazju tad-diska: skont il-fluss tad-dejta, jirriżulta li fl-aħħar jum id-dejta mhux biss se tirdoppja, tista 'ssir ħames darbiet aktar. Imma jekk ikun hemm problema serja, tista 'twaqqaf is-server ClickHouse u issolvi kollox.

Issa tqum il-mistoqsija dwar kif dan jipproteġi kontra l-alters. Ta 'min jagħti ħarsa aktar fil-fond hawn, għaliex fil-verżjonijiet eqdem ta' ClickHouse, l-alter ħadem b'tali mod li sempliċement biddel il-biċċiet direttament. Hemm biċċa dejta b'xi fajls, u nagħmlu, pereżempju, tbiddel il-kolonna tal-qatra. Imbagħad din il-kolonna titneħħa fiżikament mill-biċċiet kollha.

Iżda tibda bil-verżjoni 20.3, il-mekkaniżmu ta 'tibdil inbidel kompletament, u issa biċċiet ta' dejta huma dejjem immutabbli. Ma jinbidlu xejn - l-alters issa jaħdmu bl-istess mod bħall-għaqdiet. Minflok ma nibdlu biċċa fuq il-post, noħolqu waħda ġdida. Fil-biċċa l-ġdida, fajls li ma nbidlux isiru hardlinks, u jekk inħassru kolonna, sempliċement tkun nieqsa fil-biċċa l-ġdida. Il-biċċa l-qadima se titħassar awtomatikament wara tmien minuti, u hawn tista 'ttejjeb is-settings imsemmija hawn fuq.

L-istess japplika għal alterazzjonijiet bħal mutazzjonijiet. Meta tagħmel alter ħassar jew ibdel l-aġġornament, ma tbiddilx il-biċċa, iżda toħloq waħda ġdida. U mbagħad iħassar il-qadim.

X'jiġri jekk l-istruttura tal-mejda nbidlet?

Kif tirrestawra backup li sar bl-iskema l-antika? U t-tieni mistoqsija hija dwar il-każ ma 'snapshots u għodod tas-sistema tal-fajls. Btrfs huwa tajjeb hawn minflok ZFS fuq Linux LVM?

Jekk tagħmel hekk waħħal diviżorju diviżorji bi struttura differenti, allura ClickHouse jgħidlek li dan mhux possibbli. Din hija s-soluzzjoni. L-ewwel huwa li tinħoloq tabella temporanja tat-tip MergeTree bl-istruttura l-qadima, tehmeż id-dejta hemmhekk billi tuża attach, u tagħmel mistoqsija ta 'alter. Imbagħad tista' jew tikkopja jew tittrasferixxi din id-dejta u terġa' tehmeż, jew tuża talba tbiddel il-mejda ċaqliq partizzjoni.

Issa t-tieni mistoqsija hija jekk jistgħux jintużaw Btrfs. Biex tibda, jekk għandek LVM, allura snapshots LVM huma biżżejjed, u s-sistema tal-fajls tista 'tkun ext4, ma jimpurtax. Bil-Btrts, kollox jiddependi fuq l-esperjenza tiegħek fl-użu tiegħu. Din hija sistema ta 'fajls matura, iżda għad hemm xi suspetti dwar kif kollox se jaħdem fil-prattika f'xenarju partikolari. Jien ma nirrakkomandax li tuża dan sakemm ma jkollokx Btrfs fil-produzzjoni.

X'inhuma l-aħjar prattiki attwali fir-repartizzjoni tad-dejta?

Il-kwistjoni tar-resharding hija kumplessa u multidimensjonali. Hemm diversi tweġibiet possibbli hawn. Tista' tmur minn naħa waħda u tgħid dan - ClickHouse m'għandhiex karatteristika ta' resharding inkorporata. Imma nibża’ li din it-tweġiba ma tissodisfa lil ħadd. Għalhekk, tista 'tmur min-naħa l-oħra u tgħid li ClickHouse għandha ħafna modi biex reshard data.

Jekk il-cluster jispiċċa mingħajr spazju jew ma jistax jimmaniġġja t-tagħbija, inti żżid servers ġodda. Iżda dawn is-servers huma vojta b'mod awtomatiku, m'hemm l-ebda data fuqhom, m'hemm l-ebda tagħbija. Ikollok bżonn tirranġa mill-ġdid id-dejta sabiex issir mifruxa b'mod uniformi mal-grupp il-ġdid u akbar.

L-ewwel mod kif dan jista 'jsir huwa li tikkopja parti mill-ħitan għal servers ġodda billi tuża talba alter table fetch partition. Pereżempju, kellek diviżorji skont ix-xahar, u tieħu l-ewwel xahar tal-2017 u tikkopjah fuq server ġdid, imbagħad tikkopja t-tielet xahar f'xi server ġdid ieħor. U tagħmel dan sakemm issir xi ftit jew wisq ugwali.

It-trasferiment jista 'jsir biss għal dawk il-ħitan li ma jinbidlux waqt ir-reġistrazzjoni. Għal diviżorji friski, ir-reġistrazzjoni se jkollha tiġi diżattivata, minħabba li t-trasferiment tagħhom mhuwiex atomiku. Inkella, tispiċċa b'duplikati jew lakuni fid-dejta. Madankollu, dan il-metodu huwa prattiku u jaħdem b'mod pjuttost effettiv. Diviżorji kkompressati lesti huma trażmessi fuq in-netwerk, jiġifieri, id-dejta mhix ikkompressata jew kodifikata mill-ġdid.

Dan il-metodu għandu żvantaġġ wieħed, u jiddependi fuq l-iskema ta 'sharding, kemm jekk wegħedtx għal din l-iskema ta' sharding, liema ċavetta ta 'sharding kellek. Fl-eżempju tiegħek għall-każ bil-metriċi, iċ-ċavetta sharding hija l-hash tal-mogħdija. Meta tagħżel tabella Mqassma, din tmur lejn il-frak kollha fil-cluster f'daqqa u tieħu d-dejta minn hemm.

Dan ifisser li fil-fatt ma jimpurtax għalik liema data spiċċat fuq liema shard. Il-ħaġa prinċipali hija li d-dejta tul mogħdija waħda tispiċċa fuq shard waħda, iżda liema waħda mhix importanti. F'dan il-każ, it-trasferiment ta 'diviżorji lesti huwa perfett, għaliex b'mistoqsijiet magħżula tirċievi wkoll dejta kompluta - kemm qabel ir-resharding jew wara, l-iskema ma tantx jimpurtax.

Iżda hemm każijiet li huma aktar kumplessi. Jekk fil-livell tal-loġika tal-applikazzjoni tistrieħ fuq skema speċjali ta 'sharding, li dan il-klijent jinsab fuq tali jew tali shard, u t-talba tista' tintbagħat direttament hemmhekk, u mhux lit-tabella Mqassma. Jew qed tuża verżjoni pjuttost reċenti ta' ClickHouse u ppermettiet is-setting ottimizza skip shards mhux użati. F'dan il-każ, waqt il-mistoqsija tal-għażla, l-espressjoni fit-taqsima fejn se tiġi analizzata u jiġi kkalkulat liema shards jeħtieġ li jintużaw skont l-iskema ta 'sharding. Dan jaħdem sakemm id-dejta tkun maqsuma eżattament skont din l-iskema ta’ sharding. Jekk irranġajthom manwalment, il-korrispondenza tista' tinbidel.

Allura dan huwa l-metodu numru wieħed. U qed nistenna t-tweġiba tiegħek, kemm jekk il-metodu huwiex adattat, jew ejja nkomplu.

Vladimir Kolobaev, amministratur ewlieni tas-sistema f'Avito: Alexey, il-metodu li semmejt ma jaħdimx tajjeb ħafna meta jkollok bżonn tifrex it-tagħbija, inkluż il-qari. Nistgħu nieħdu partizzjoni li hija ta 'kull xahar u tista' tieħu x-xahar ta 'qabel għal nodu ieħor, iżda meta tasal talba għal din id-dejta, aħna se tagħbijaha biss. Imma nixtiequ tagħbija l-cluster kollu, għax inkella, għal xi żmien it-tagħbija tal-qari kollu se tiġi pproċessata minn żewġ shards.

Alexey Milovidov: It-tweġiba hawnhekk hija stramba - iva, hija ħażina, iżda tista 'taħdem. Jien ser nispjega eżattament kif. Ta 'min wieħed iħares lejn ix-xenarju tat-tagħbija li jiġi wara d-dejta tiegħek. Jekk din hija dejta ta 'monitoraġġ, allura nistgħu kważi ċertament ngħidu li l-maġġoranza l-kbira tat-talbiet huma għal dejta ġdida.

Installajt servers ġodda, emigrajt diviżorji qodma, iżda biddilt ukoll kif tiġi rreġistrata data friska. U data friska se tinfirex madwar il-cluster. Għalhekk, wara biss ħames minuti, it-talbiet għall-aħħar ħames minuti jgħabbu l-cluster b'mod uniformi; wara ġurnata, it-talbiet għal 24 siegħa jgħabbi l-cluster b'mod uniformi. U t-talbiet għax-xahar ta' qabel, sfortunatament, se jmorru biss għal parti mis-servers tal-clusters.

Iżda ħafna drabi ma jkollokx talbiet speċifikament għal Frar 2019. X'aktarx, jekk it-talbiet jidħlu fl-2019, allura jkunu għall-2019 kollu - għal perjodu kbir ta 'żmien, u mhux għal xi firxa żgħira. U talbiet bħal dawn ikunu jistgħu wkoll jgħabbu l-cluster b'mod ugwali. Iżda b'mod ġenerali, ir-rimarka tiegħek hija assolutament korretta li din hija soluzzjoni ad hoc li ma tifrex id-data kompletament b'mod uniformi.

Għandi ftit punti oħra biex inwieġeb il-mistoqsija. Waħda minnhom hija dwar kif inizjalment tiddisinja skema ta 'sharding sabiex it-tqattigħ mill-ġdid jikkawża inqas uġigħ. Dan mhux dejjem huwa possibbli.

Pereżempju, għandek data ta' monitoraġġ. Id-dejta tal-monitoraġġ qed tikber għal tliet raġunijiet. L-ewwel hija l-akkumulazzjoni ta 'data storika. It-tieni huwa t-tkabbir tat-traffiku. U t-tielet hija żieda fin-numru ta 'affarijiet li huma suġġetti għal monitoraġġ. Hemm mikroservizzi u metriċi ġodda li jridu jiġu salvati.

Huwa possibbli li minn dawn, l-akbar żieda hija assoċjata mat-tielet raġuni - iż-żieda fl-użu tal-monitoraġġ. U f'dan il-każ, ta 'min iħares lejn in-natura tat-tagħbija, x'inhuma l-mistoqsijiet ewlenin tal-għażla. Mistoqsijiet bażiċi tal-għażla x'aktarx ikunu bbażati fuq xi subsett ta' metriċi.

Pereżempju, l-użu tas-CPU fuq xi servers minn xi servizz. Jirriżulta li hemm ċertu subsett ta 'ċwievet li bihom tikseb din id-dejta. U t-talba nnifisha għal din id-dejta x'aktarx hija pjuttost sempliċi u titlesta f'għexieren ta 'millisekondi. Użat għal servizzi ta 'monitoraġġ u dashboards. Nispera li nifhem dan b'mod korrett.

Vladimir Kolobaev: Il-fatt hu li ħafna drabi nappellaw għal data storika, peress li nqabblu s-sitwazzjoni attwali ma' dik storika f'ħin reali. U huwa importanti għalina li jkollna aċċess rapidu għal ammont kbir ta 'dejta, u ClickHouse tagħmel xogħol eċċellenti b'dan.

Għandek assolutament raġun, aħna nesperjenzaw ħafna mit-talbiet tal-qari fl-aħħar jum, bħal kull sistema ta 'monitoraġġ. Iżda fl-istess ħin, it-tagħbija fuq id-dejta storika hija wkoll pjuttost kbira. Bażikament huwa minn sistema ta’ twissija li ddur kull tletin sekonda u tgħid lil ClickHouse: “Agħtini d-dejta tal-aħħar sitt ġimgħat. Issa ibnini xi tip ta’ medja li tiċċaqlaq minnhom, u ejja nqabblu l-valur attwali ma’ dak storiku.”

Nixtieq ngħid li għal talbiet riċenti ħafna bħal dawn għandna tabella żgħira oħra li fiha naħżnu jumejn biss ta’ data, u t-talbiet ewlenin itiru fiha. Aħna nibagħtu biss mistoqsijiet storiċi kbar lit-tabella kbira mqassma.

Alexey Milovidov: Sfortunatament, jirriżulta li ma tantx japplika għax-xenarju tiegħek, imma jien se ngħidlek deskrizzjoni ta 'żewġ skemi ta' sharding ħżiena u kumplessi li m'għandhomx għalfejn jintużaw, iżda li jintużaw fis-servizz tal-ħbieb tiegħi.

Hemm raggruppament ewlieni ma 'avvenimenti Yandex.Metrica. L-avvenimenti huma opinjonijiet tal-paġna, klikks, u konverżjonijiet. Il-biċċa l-kbira tat-talbiet imorru fuq websajt speċifika. Int tiftaħ is-servizz Yandex.Metrica, għandek websajt - avito.ru, mur ir-rapport, u ssir talba għall-websajt tiegħek.

Iżda hemm talbiet oħra - analitiċi u globali - li jsiru minn analisti interni. Fil-każ, ninnota li l-analisti interni jagħmlu talbiet biss għas-servizzi Yandex. Iżda madankollu, anke s-servizzi Yandex jokkupaw sehem sinifikanti mid-dejta kollha. Dawn huma talbiet mhux għal counters speċifiċi, iżda għal filtrazzjoni usa'.

Kif torganizza d-dejta b'tali mod li kollox jaħdem b'mod effiċjenti għal kontro wieħed, u mistoqsijiet globali wkoll? Diffikultà oħra hija li n-numru ta 'talbiet fi ClickHouse għall-cluster Metrics huwa ta' diversi eluf kull sekonda. Fl-istess ħin, server wieħed ClickHouse ma jistax jimmaniġġa talbiet mhux trivjali, pereżempju, diversi eluf kull sekonda.

Id-daqs tal-cluster huwa ta' sitt mitt xi ħaġa servers. Jekk sempliċiment iġbed tabella mqassma fuq dan il-cluster u tibgħat diversi eluf ta 'talbiet hemmhekk, issir saħansitra agħar milli tibgħathom lil server wieħed. Min-naħa l-oħra, l-għażla li d-dejta tinfirex b'mod ugwali, u mmorru u nitolbu mis-servers kollha, tiġi miċħuda immedjatament.

Hemm għażla li hija dijametrikament opposta. Immaġina jekk naqsmu d-dejta bejn is-siti, u talba għal sit wieħed tmur għal shard wieħed. Issa l-cluster ikun jista 'jimmaniġġja għaxart elef talba kull sekonda, iżda fuq shard waħda kwalunkwe talba waħda taħdem bil-mod wisq. Mhux se jibqa' jiskala f'termini ta' throughput. Speċjalment jekk dan huwa s-sit avito.ru. Mhux se niżvela s-sigriet jekk ngħid li Avito huwa wieħed mill-aktar siti li jżuruha nies f'RuNet. U l-ipproċessar tagħha fuq shard wieħed ikun ġenn.

Għalhekk, l-iskema ta 'sharding hija mfassla b'mod aktar cunning. Il-cluster kollu huwa maqsum f'numru ta 'clusters, li nsejħu saffi. Kull cluster fih minn tużżana sa diversi tużżani shards. B'kollox hemm disgħa u tletin raggruppament bħal dawn.

Kif tiskala dan kollu? In-numru ta 'clusters ma jinbidilx - kif kien disgħa u tletin ftit snin ilu, jibqa' hekk. Iżda fi ħdan kull wieħed minnhom, aħna nżidu gradwalment in-numru ta 'shards hekk kif nakkumulaw id-dejta. U l-iskema sharding kollha kemm hi hija bħal din: dawn il-clusters huma maqsuma f'websajts, u sabiex wieħed jifhem liema websajt hija fuq liema cluster, tintuża metabase separata fil-MySQL. Sit wieħed - fuq cluster wieħed. U ġewwa fiha, sharding iseħħ skont l-IDs tal-viżitaturi.

Meta nirreġistraw, naqsmuhom bil-bqija tad-diviżjoni tal-ID tal-viżitatur. Iżda meta żżid shard ġdid, l-iskema ta 'sharding tinbidel; inkomplu naqsmu, iżda b'kumplament tad-diviżjoni b'numru ieħor. Dan ifisser li viżitatur wieħed diġà jinsab fuq diversi servers, u ma tistax tistrieħ fuq dan. Dan isir biss biex jiġi żgurat li d-dejta tkun kompressata aħjar. U meta nagħmlu talbiet, immorru fit-tabella Mqassma, li tħares lejn il-cluster u taċċessa għexieren ta 'servers. Din hija skema daqshekk stupida.

Imma l-istorja tiegħi ma tkunx kompluta jekk ma ngħidx li abbandunajna din l-iskema. Fl-iskema l-ġdida, biddilna kollox u kkuppjajna d-dejta kollha bl-użu tal-clickhouse-copier.

Fl-iskema l-ġdida, is-siti kollha huma maqsuma f'żewġ kategoriji - kbar u żgħar. Ma nafx kif intgħażel il-limitu, iżda r-riżultat kien li siti kbar huma rreġistrati fuq cluster wieħed, fejn hemm shards 120 bi tliet repliki kull wieħed - jiġifieri, 360 servers. U l-iskema ta 'sharding hija tali li kwalunkwe talba tmur lill-shards kollha f'daqqa. Jekk issa tiftaħ xi paġna ta 'rapport għal avito.ru f'Yandex.Metrica, it-talba tmur għal 120 servers. Hemm ftit siti kbar f'RuNet. U t-talbiet mhumiex elf kull sekonda, iżda saħansitra inqas minn mitt. Dan kollu huwa mimgħud bil-kwiet mit-tabella Distributed, li kull wieħed minnhom jipproċessa b'120 servers.

U t-tieni cluster huwa għal siti żgħar. Hawnhekk hawn skema ta 'sharding ibbażata fuq l-ID tas-sit, u kull talba tmur eżattament għal shard wieħed.

ClickHouse għandha utilità ta' clickhouse-copier. Tista’ tgħidilna dwarha?

Jien ngħid mill-ewwel li din is-soluzzjoni hija aktar ingombranti u kemmxejn inqas produttiva. Il-vantaġġ huwa li smears id-dejta kompletament skond il-mudell li tispeċifika. Iżda l-iżvantaġġ ta 'l-utilità huwa li ma reshard xejn. Tikkopja dejta minn skema ta' cluster għal skema ta' cluster ieħor.

Dan ifisser li biex taħdem irid ikollok żewġ gruppi. Jistgħu jkunu jinsabu fuq l-istess servers, iżda, madankollu, id-dejta mhux se tiġi mċaqalqa b'mod inkrementali, iżda se tiġi kkupjata.

Per eżempju, kien hemm erba 'servers, issa hemm tmienja. Inti toħloq tabella mqassma ġdida fuq is-servers kollha, tabelli lokali ġodda u tniedi clickhouse-copier, tindika fiha l-iskema tax-xogħol li għandha taqra minn hemm, taċċetta l-iskema l-ġdida ta 'sharding u ttrasferixxi d-dejta hemmhekk. U fuq servers qodma ser ikollok bżonn ta 'darba u nofs aktar spazju milli hemm issa, għaliex id-data l-antika trid tibqa' fuqhom, u nofs l-istess data l-qadima tasal fuqhom. Jekk int ħsibt minn qabel li d-dejta trid tiġi mqassma mill-ġdid u hemm spazju, allura dan il-metodu huwa adattat.

Kif jaħdem il-clickhouse-copier ġewwa? Tkisser ix-xogħol kollu f'sett ta 'kompiti għall-ipproċessar ta' partizzjoni waħda ta 'tabella waħda fuq shard waħda. Dawn il-kompiti kollha jistgħu jiġu eżegwiti b'mod parallel, u clickhouse-copier jista 'jitħaddem fuq magni differenti f'każijiet multipli, iżda dak li jagħmel għal partizzjoni waħda huwa xejn aktar minn inserzjoni tagħżel. Id-dejta tinqara, tiġi dekompressata, ripartizzjonata, imbagħad ikkompressata mill-ġdid, miktuba x'imkien, u magħżula mill-ġdid. Din hija deċiżjoni aktar iebsa.

Kellek xi ħaġa pilota msejħa resharding. X'hiex magħha?

Lura fl-2017, kellek ħaġa pilota msejħa resharding. Hemm anke għażla fi ClickHouse. Kif nifhem jien, ma telgħetx. Tista' tgħidli għaliex ġara dan? Jidher li huwa rilevanti ħafna.

Il-problema kollha hija li jekk ikun meħtieġ li d-data terġa 'tinkiseb fil-post, hija meħtieġa sinkronizzazzjoni kumplessa ħafna sabiex tagħmel dan atomikament. Meta bdejna nħarsu lejn kif taħdem din is-sinkronizzazzjoni, deher ċar li kien hemm problemi fundamentali. U dawn il-problemi fundamentali mhumiex biss teoretiċi, iżda immedjatament bdew juru lilhom infushom fil-prattika fil-forma ta 'xi ħaġa li tista' tiġi spjegata b'mod sempliċi ħafna - xejn ma jaħdem.

Huwa possibbli li jingħaqdu l-biċċiet kollha tad-dejta flimkien qabel ma ċċaqlaqha għal diski bil-mod?

Mistoqsija dwar TTL bil-mixja lejn l-għażla tad-diska bil-mod fil-kuntest tal-għaqdiet. Hemm mod, għajr permezz ta 'cron, biex tgħaqqad il-partijiet kollha f'waħda qabel ma tmexxihom għal diski bil-mod?

It-tweġiba għall-mistoqsija hija possibbli li b'xi mod awtomatikament il-biċċiet kollha jiġu kolla f'wieħed qabel ma jiġu trasferiti - le. Ma naħsibx li dan huwa meħtieġ. M'għandekx għalfejn tgħaqqad il-partijiet kollha f'waħda, iżda sempliċement toqgħod fuq il-fatt li se jiġu trasferiti għal diski bil-mod awtomatikament.

Għandna żewġ kriterji għar-regoli tat-trasferiment. L-ewwel waħda hija kif hija mimlija. Jekk il-livell tal-ħażna attwali għandu inqas minn ċertu persentaġġ ta 'spazju ħieles, aħna nagħżlu biċċa waħda u nimxu għal ħażna aktar bil-mod. Jew aħjar, mhux aktar bil-mod, iżda dak li jmiss - kif tikkonfigura.

It-tieni kriterju huwa d-daqs. Huwa dwar li jiċċaqilqu biċċiet kbar. Tista 'taġġusta l-limitu skont l-ispazju ħieles fuq id-diska veloċi, u d-dejta tiġi trasferita awtomatikament.

Kif temigra għal verżjonijiet ġodda ta' ClickHouse jekk m'hemm l-ebda mod biex tiċċekkja l-kompatibilità minn qabel?

Dan is-suġġett jiġi diskuss regolarment fiċ-chat tat-telegramma ClickHouse filwaqt li jitqiesu verżjonijiet differenti, u xorta. Kemm huwa sigur li taġġorna mill-verżjoni 19.11 għal 19.16 u, pereżempju, minn 19.16 għal 20.3. X'inhu l-aħjar mod biex temigra għal verżjonijiet ġodda mingħajr ma tkun tista 'tiċċekkja l-kompatibilità fis-sandbox bil-quddiem?

Hemm diversi regoli "tad-deheb" hawn. L-ewwel - aqra l-changelog. Huwa kbir, iżda hemm paragrafi separati dwar bidliet inkompatibbli b'lura. M'għandekx tittratta dawn il-punti bħala bandiera ħamra. Dawn huma normalment inkompatibilitajiet minuri li jinvolvu xi funzjonalità tarf li inti x'aktarx ma tużax.

It-tieni nett, jekk m'hemm l-ebda mod biex tiċċekkja l-kompatibilità fil-kaxxa tar-ramel, u trid taġġorna immedjatament fil-produzzjoni, ir-rakkomandazzjoni hija li m'għandekx bżonn tagħmel dan. L-ewwel oħloq sandbox u ttestja. Jekk ma jkunx hemm ambjent tat-test, allura x'aktarx ma jkollokx kumpanija kbira ħafna, li jfisser li tista 'tikkopja ftit mid-dejta fuq il-laptop tiegħek u kun żgur li kollox jaħdem b'mod korrett fuqha. Tista 'anki tqajjem diversi repliki lokalment fuq il-magna tiegħek. Jew tista' taqbad verżjoni ġdida x'imkien fil-qrib u ttella' ftit mid-dejta hemmhekk - jiġifieri, toħloq ambjent ta' test improvizzat.

Regola oħra hija li ma taġġornax għal ġimgħa wara r-rilaxx tal-verżjoni minħabba qbid ta 'bugs fil-produzzjoni u soluzzjonijiet ta' malajr sussegwenti. Ejja nsemmu n-numerazzjoni tal-verżjonijiet tal-ClickHouse sabiex ma titħawwadx.

Hemm verżjoni 20.3.4. In-numru 20 jindika s-sena tal-manifattura - 2020. Mil-lat ta 'dak li hemm ġewwa, dan ma jimpurtax, għalhekk mhux se nagħtu attenzjoni għaliha. Li jmiss - 20.3. Inżidu t-tieni numru - f'dan il-każ 3 - kull darba li noħorġu rilaxx b'xi funzjonalità ġdida. Jekk irridu nżidu xi karatteristika għal ClickHouse, irridu nżidu dan in-numru. Jiġifieri, fil-verżjoni 20.4 ClickHouse se taħdem saħansitra aħjar. It-tielet ċifra hija 20.3.4. Hawnhekk 4 huwa n-numru ta 'rilaxxi ta' garża li fihom ma żidniex karatteristiċi ġodda, iżda rranġaw xi bugs. U 4 tfisser li għamilna erba’ darbiet.

Taħsibx li din hija xi ħaġa terribbli. Normalment l-utent jista 'jinstalla l-aħħar verżjoni u jaħdem mingħajr problemi bil-ħin ta' attività fis-sena. Imma immaġina li f'xi funzjoni għall-ipproċessar tal-bitmaps, li ġiet miżjuda minn sħabna Ċiniżi, is-server jiġġarraf meta jgħaddi argumenti żbaljati. Għandna responsabbiltà li nirranġaw dan. Se nirrilaxxaw verżjoni tal-garża ġdida u ClickHouse se ssir aktar stabbli.

Jekk għandek ClickHouse taħdem fil-produzzjoni, u verżjoni ġdida ta 'ClickHouse toħroġ b'karatteristiċi addizzjonali - pereżempju, 20.4.1 hija l-ewwel waħda, tgħaġġla biex tpoġġiha fil-produzzjoni fl-ewwel jum. Għaliex hija meħtieġa għal kollox? Jekk ma tużax diġà ClickHouse, allura tista' tinstallaha, u x'aktarx kollox se jkun tajjeb. Imma jekk ClickHouse diġà qed taħdem b'mod stabbli, imbagħad żomm għajnejk fuq irqajja u aġġornamenti biex tara liema problemi qed nirranġaw.

Kirill Shvakov: Nixtieq inżid ftit dwar l-ambjenti tat-test. Kulħadd jibża ħafna mill-ambjenti tat-test u għal xi raġuni jemmen li jekk għandek cluster ClickHouse kbir ħafna, allura l-ambjent tat-test m'għandux ikun inqas jew tal-inqas għaxar darbiet iżgħar. Mhu hekk xejn.

Nista 'ngħidlek mill-eżempju tiegħi stess. Għandi proġett, u hemm ClickHouse. L-ambjent tat-test tagħna huwa biss għalih - din hija magna virtwali żgħira f'Hetzner għal għoxrin euro, fejn assolutament kollox huwa skjerat. Biex tagħmel dan, għandna awtomazzjoni sħiħa f'Ansible, u għalhekk, fil-prinċipju, ma tagħmel l-ebda differenza fejn tmur - għal servers ta 'hardware jew sempliċement tiskjera f'magni virtwali.

X'jista' jsir? Ikun sabiħ li tipprovdi eżempju fid-dokumentazzjoni ClickHouse dwar kif tuża raggruppament żgħir fid-dar tiegħek stess - f'Docker, f'LXC, forsi toħloq playbook Ansible, minħabba li nies differenti għandhom skjeramenti differenti. Dan se jissimplifika ħafna. Meta tieħu u tiskjera cluster f'ħames minuti, huwa ħafna aktar faċli li tipprova ssib xi ħaġa. Dan huwa ħafna aktar konvenjenti, għaliex ir-rolling f'verżjoni ta 'produzzjoni li ma ttestjajtx hija triq lejn imkien. Kultant jaħdem u kultant ma jaħdimx. U għalhekk, it-tama għas-suċċess hija ħażina.

Maxim Kotyakov, inġinier anzjan tal-backend Avito: Se nżid ftit dwar l-ambjenti tat-test minn serje ta 'problemi li jiffaċċjaw kumpaniji kbar. Għandna raggruppament sħiħ ta' aċċettazzjoni ta' ClickHouse; f'termini ta' skemi ta' dejta u settings, hija kopja eżatta ta' dak li qiegħed fil-produzzjoni. Dan il-cluster huwa skjerat f'kontenituri pjuttost degradati b'minimu ta' riżorsi. Aħna niktbu ċertu persentaġġ tad-dejta tal-produzzjoni hemmhekk, fortunatament huwa possibbli li tiġi replikata n-nixxiegħa f'Kafka. Kollox hemm huwa sinkronizzat u skalat - kemm f'termini ta 'kapaċità u fluss, u, fit-teorija, l-affarijiet l-oħra kollha huma ugwali, għandu jġib ruħu bħal produzzjoni f'termini ta' metriċi. Kollox potenzjalment splussiv huwa l-ewwel imdawwar fuq dan l-istand u jitħalla hemm għal diversi jiem sakemm ikun lest. Iżda naturalment, din is-soluzzjoni hija għalja, diffiċli u għandha spejjeż ta 'appoġġ mhux żero.

Alexey Milovidov: Jien ngħidlek x'inhu l-ambjent tat-test tal-ħbieb tagħna minn Yandex.Metrica. Raggruppament wieħed kellu servers 600-fard, ieħor kellu 360, u hemm it-tielet u diversi clusters. L-ambjent tat-test għal wieħed minnhom huwa sempliċement żewġ shards b'żewġ repliki f'kull wieħed. Għaliex żewġ shards? Biex ma tkunx waħdek. U għandu jkun hemm repliki wkoll. Biss ċertu ammont minimu li tista’ taffordja.

Dan l-ambjent tat-test jippermettilek tiċċekkja jekk il-mistoqsijiet tiegħek humiex qed jaħdmu u jekk xi ħaġa kbira hijiex miksura. Iżda ħafna drabi jinqalgħu problemi ta 'natura kompletament differenti, meta kollox jaħdem, iżda hemm xi bidliet żgħar fit-tagħbija.

Ħa nagħtikom eżempju. Iddeċidejna li ninstallaw verżjoni ġdida ta’ ClickHouse. Ġie stazzjonat fuq ambjent tat-test, testijiet awtomatizzati tlestew f'Yandex.Metrica innifsu, li jqabblu d-dejta dwar il-verżjoni l-qadima u dik il-ġdida, li jmexxu l-pipeline kollu. U ovvjament, testijiet ħodor tas-CI tagħna. Inkella lanqas ma nkunu nipproponu din il-verżjoni.

Kollox sew. Qed nibdew nimxu fil-produzzjoni. Nirċievi messaġġ li t-tagħbija fuq il-grafiċi żdiedet diversi drabi. Qed nerġgħu lura l-verżjoni. Inħares lejn il-graff u nara: it-tagħbija fil-fatt żdiedet diversi drabi matul it-tnedija, u naqset lura meta ħarġu. Imbagħad bdejna nġibu lura l-verżjoni. U t-tagħbija żdiedet bl-istess mod u waqgħet lura bl-istess mod. Allura l-konklużjoni hija din: it-tagħbija żdiedet minħabba t-tqassim, xejn sorprendenti.

Imbagħad kien diffiċli li tikkonvinċi lill-kollegi biex jinstallaw il-verżjoni l-ġdida. Jien ngħid: “Tajjeb, erfa’. Żomm subgħajk qasmu, kollox se jaħdem. Issa t-tagħbija fuq il-grafiċi żdiedet, iżda kollox huwa tajjeb. Idħol hemm." B'mod ġenerali, għamilna dan, u dak hu - il-verżjoni ġiet rilaxxata għall-produzzjoni. Iżda kważi ma' kull tqassim jinqalgħu problemi simili.

Kill query suppost joqtol il-mistoqsijiet, iżda ma jagħmilx hekk. Għaliex?

Utent, xi tip ta 'analista, ġie għandi u ħoloq talba li poġġiet il-cluster ClickHouse tiegħi. Xi nodu jew cluster sħiħ, skont liema replika jew shard marret it-talba. Nara li r-riżorsi kollha tas-CPU fuq dan is-server huma fuq xkaffa, kollox huwa aħmar. Fl-istess ħin, ClickHouse stess twieġeb għat-talbiet. U nikteb: "Jekk jogħġbok urini, lista tal-proċess, liema talba ġġenerat dan il-ġenn."

Insib din it-talba u nikteb kill lilha. U nara li mhu qed jiġri xejn. Is-server tiegħi jinsab fuq xkaffa, ClickHouse imbagħad jagħtini xi kmandi, juri li s-server huwa ħaj, u kollox huwa kbir. Imma għandi degradazzjoni fit-talbiet kollha tal-utenti, id-degradazzjoni tibda bir-rekords f'ClickHouse, u l-mistoqsija tal-qtil tiegħi ma taħdimx. Għaliex? Ħsibt kill query kellha toqtol mistoqsijiet, iżda ma jagħmilx hekk.

Issa se jkun hemm tweġiba pjuttost stramba. Il-punt huwa li kill query ma joqtolx mistoqsijiet.

Kill query tiċċekkja kaxxa żgħira msejħa "Irrid li din il-mistoqsija tinqatel." U t-talba nnifisha tħares lejn din il-bandiera meta tipproċessa kull blokka. Jekk tkun issettjata, it-talba tieqaf taħdem. Jirriżulta li ħadd ma joqtol it-talba, hu stess irid jiċċekkja kollox u jieqaf. U dan għandu jaħdem fil-każijiet kollha fejn it-talba tkun fl-istat ta 'proċessar ta' blokki ta 'data. Se tipproċessa l-blokk ta 'dejta li jmiss, iċċekkja l-bandiera, u tieqaf.

Dan ma jaħdimx f'każijiet fejn it-talba tkun imblukkata fuq xi operazzjoni. Veru, x'aktarx dan mhux il-każ tiegħek, għaliex, skond int, juża ton ta 'riżorsi tas-server. Huwa possibbli li dan ma jaħdimx fil-każ ta 'għażla esterna u f'xi dettalji oħra. Iżda b'mod ġenerali dan m'għandux iseħħ, huwa bug. U l-unika ħaġa li nista 'nirrakkomanda hija li taġġorna ClickHouse.

Kif tikkalkula l-ħin tar-rispons taħt it-tagħbija tal-qari?

Hemm tabella li taħżen l-aggregati tal-oġġetti - diversi counters. In-numru ta 'linji huwa madwar mitt miljun. Huwa possibbli li wieħed joqgħod fuq ħin ta 'rispons prevedibbli jekk ferra 1K RPS għal 1K oġġetti?

Meta wieħed jiġġudika mill-kuntest, qed nitkellmu dwar it-tagħbija tal-qari, għax m'hemmx problemi bil-kitba - anke elf, anke mitt elf, u xi kultant jistgħu jiddaħħlu diversi miljuni ta 'ringieli.

It-talbiet għall-qari huma differenti ħafna. Fl-għażla 1, ClickHouse jista 'jwettaq madwar għexieren ta' eluf ta 'talbiet kull sekonda, għalhekk anke talbiet għal ċavetta waħda diġà se jeħtieġu xi riżorsi. U tali mistoqsijiet dwar il-punti se jkunu aktar diffiċli milli f'xi databases ta 'valur ewlieni, għaliex għal kull qari huwa meħtieġ li tinqara blokka ta' dejta b'indiċi. L-indiċi tagħna jindirizza mhux kull rekord, iżda kull firxa. Jiġifieri, ser ikollok taqra l-firxa kollha - dan huwa 8192 linja awtomatikament. U jkollok tiddekompressa l-blokka tad-dejta kkompressata minn 64 KB għal 1 MB. Tipikament, mistoqsijiet immirati bħal dawn jieħdu ftit millisekondi biex jitlestew. Iżda din hija l-aktar għażla sempliċi.

Ejja nippruvaw xi aritmetika sempliċi. Jekk timmultiplika ftit millisekondi b'elf, ikollok ftit sekondi. Huwa bħallikieku huwa impossibbli li tlaħħaq ma 'elf talba kull sekonda, iżda fil-fatt huwa possibbli, minħabba li għandna diversi cores tal-proċessuri. Allura, fil-prinċipju, ClickHouse kultant jista 'jżomm 1000 RPS, iżda għal talbiet qosra, dawk immirati speċifikament.

Jekk għandek bżonn tiskala cluster ClickHouse bin-numru ta 'talbiet sempliċi, allura nirrakkomanda l-aktar ħaġa sempliċi - iżżid in-numru ta' repliki u tibgħat talbiet għal replika każwali. Jekk replika waħda żżomm ħames mitt talba kull sekonda, li huwa kompletament realistiku, allura tliet repliki jieħdu ħsieb elf u nofs.

Kultant, ovvjament, tista 'tikkonfigura ClickHouse għan-numru massimu ta' qari tal-punti. X'inhu meħtieġ għal dan? L-ewwel huwa li titnaqqas il-granularità tal-indiċi. F'dan il-każ, m'għandux jitnaqqas għal wieħed, iżda fuq il-bażi li n-numru ta 'daħliet fl-indiċi se jkun diversi miljuni jew għexieren ta' miljuni għal kull server. Jekk it-tabella għandha mitt miljun ringiela, allura l-granularità tista 'tiġi ssettjata għal 64.

Tista 'tnaqqas id-daqs tal-blokka kkompressata. Hemm settings għal dan min tikkompressa daqs tal-blokka, daqs tal-blokka kkompressat max. Jistgħu jitnaqqsu, jimtlew mill-ġdid bid-dejta, u mbagħad mistoqsijiet immirati jkunu aktar mgħaġġla. Iżda xorta waħda, ClickHouse mhix database ta 'valur ewlieni. Numru kbir ta 'talbiet żgħar huwa antipattern tat-tagħbija.

Kirill Shvakov: Se nagħti pariri f'każ li hemm kontijiet ordinarji hemmhekk. Din hija sitwazzjoni pjuttost standard meta ClickHouse taħżen xi tip ta 'bank. Għandi utent, huwa minn pajjiż bħal dan, u xi qasam terz, u għandi bżonn inżid xi ħaġa b'mod inkrementali. Ħu MySQL, agħmel ċavetta unika - f'MySQL hija ċavetta duplikata, u f'PostgreSQL hija kunflitt - u żid sinjal plus. Dan se jaħdem ħafna aħjar.

Meta ma jkollokx ħafna dejta, ma jkunx hemm ħafna skop li tuża ClickHouse. Hemm databases regolari u jagħmlu dan tajjeb.

X'nista' ntejjeb fi ClickHouse sabiex aktar data tkun fil-cache?

Ejja nimmaġinaw sitwazzjoni - is-servers għandhom 256 GB ta 'RAM, fir-rutina ta' kuljum ClickHouse tieħu madwar 60-80 GB, fil-quċċata - sa 130. Dak li jista 'jiġi attivat u tweaked sabiex aktar data tkun fil-cache u, għaldaqstant, hemm inqas vjaġġi lejn id-diska?

Tipikament, il-cache tal-paġna tas-sistema operattiva tagħmel xogħol tajjeb minn dan. Jekk inti biss tiftaħ il-quċċata, ħares hemm cached jew ħielsa - jgħid ukoll kemm huwa cache - allura tinduna li l-memorja ħielsa kollha hija użata għall-cache. U meta taqra din id-dejta, tinqara mhux mid-diska, iżda mir-RAM. Fl-istess ħin, nista 'ngħid li l-cache hija użata b'mod effettiv minħabba li hija d-data kkompressata li hija fil-cache.

Madankollu, jekk trid tħaffef xi mistoqsijiet sempliċi saħansitra aktar, huwa possibbli li tippermetti cache fid-dejta dekompressata ġewwa ClickHouse. Huwa msejjaħ cache mhux kompressat. Fil-fajl tal-konfigurazzjoni config.xml, issettja d-daqs tal-cache mhux kompressat għall-valur li għandek bżonn - nirrakkomanda mhux aktar minn nofs ir-RAM ħielsa, minħabba li l-bqija se jmorru taħt il-cache tal-paġna.

Barra minn hekk, hemm żewġ settings tal-livell tat-talba. L-ewwel setting - uża cache mhux kompressat - jinkludi l-użu tiegħu. Huwa rrakkomandat li tkun attivata għat-talbiet kollha, ħlief dawk tqal, li jistgħu jaqraw id-dejta kollha u laħlaħ il-cache. U t-tieni setting huwa xi ħaġa bħall-għadd massimu ta 'linji biex tuża l-cache. Awtomatikament tillimita l-mistoqsijiet kbar sabiex jaqbżu l-cache.

Kif nista' nikkonfigura storage_configuration għall-ħażna fir-RAM?

Fid-dokumentazzjoni l-ġdida tal-ClickHouse qrajt it-taqsima relatata bil-ħażna tad-data. Id-deskrizzjoni fiha eżempju b'SSD veloċi.

Nistaqsi kif l-istess ħaġa tista 'tiġi kkonfigurata bil-memorja sħuna tal-volum. U mistoqsija oħra. Kif tagħżel taħdem ma 'din l-organizzazzjoni tad-dejta, se taqra s-sett kollu jew dak biss li huwa fuq id-diska, u din id-dejta hija kkompressata fil-memorja? U kif taħdem is-sezzjoni prewhere ma 'organizzazzjoni tad-dejta bħal din?

Dan l-issettjar jaffettwa l-ħażna ta 'biċċiet tad-dejta, u l-format tagħhom ma jinbidel bl-ebda mod.
Ejja nagħtu ħarsa aktar mill-qrib.

Tista 'tikkonfigura l-ħażna tad-dejta fir-RAM. Dak kollu li huwa kkonfigurat għad-disk huwa l-mogħdija tiegħu. Inti toħloq partizzjoni tmpfs li hija mmuntata fuq xi mogħdija fis-sistema tal-fajls. Int tispeċifika din il-mogħdija bħala l-mogħdija għall-ħażna tad-dejta għall-iktar partizzjoni sħuna, biċċiet tad-dejta jibdew jaslu u jinkitbu hemm, kollox tajjeb.

Imma ma nirrakkomandax li tagħmel dan minħabba affidabilità baxxa, għalkemm jekk għandek mill-inqas tliet repliki f'ċentri tad-dejta differenti, allura huwa possibbli. Jekk jiġri xi ħaġa, id-dejta tiġi restawrata. Ejja nimmaġinaw li s-server intefa f'daqqa u reġa' jinxtegħel. Il-partizzjoni reġgħet ġiet immuntata, iżda ma kien hemm xejn hemmhekk. Meta jibda s-server ClickHouse, jara li m'għandux dawn il-biċċiet, għalkemm, skont il-metadata ZooKeeper, għandhom ikunu hemm. Jħares lejn liema repliki għandhom, jitlobhom u jniżżilhom. B'dan il-mod id-dejta tiġi restawrata.

F'dan is-sens, il-ħażna tad-dejta fir-RAM mhijiex fundamentalment differenti mill-ħażna tagħha fuq id-disk, għaliex meta d-dejta tinkiteb fuq id-disk, l-ewwel tispiċċa wkoll fil-cache tal-paġna u tinkiteb fiżikament aktar tard. Dan jiddependi fuq l-għażla tal-immuntar tas-sistema tal-fajls. Imma fil-każ, jien ngħid li ClickHouse ma fsync meta ddaħħal.

F'dan il-każ, id-dejta fir-RAM hija maħżuna eżattament fl-istess format bħal fuq id-diska. Il-mistoqsija tal-għażla bl-istess mod tagħżel il-biċċiet li jridu jinqraw, tagħżel il-firxiet tad-dejta meħtieġa fil-biċċiet, u taqrahom. U prewhere jaħdem eżattament l-istess, irrispettivament minn jekk id-data kinitx fir-RAM jew fuq disk.

Sa liema numru ta' valuri uniċi hija effettiva Kardinalità Baxxa?

Kardinalità Baxxa hija mfassla b'mod għaqli. Jiġbor dizzjunarji tad-dejta, iżda huma lokali. L-ewwelnett, hemm dizzjunarji differenti għal kull biċċa, u t-tieni, anke f'biċċa waħda jistgħu jkunu differenti għal kull firxa. Meta n-numru ta 'valuri uniċi jilħaq numru ta' limitu—miljun, naħseb—id-dizzjunarju sempliċement jitqiegħed fuq l-ixkaffa u jinħoloq wieħed ġdid.

It-tweġiba hija b'mod ġenerali: għal kull firxa lokali - ngħidu aħna, għal kull jum - x'imkien sa miljun valuri uniċi Kardinalità Baxxa hija effettiva. Wara jkun hemm sempliċiment fallback, li fih se jintużaw ħafna dizzjunarji differenti, u mhux wieħed biss. Se taħdem bejn wieħed u ieħor l-istess bħal kolonna ta 'sekwenza regolari, forsi ftit inqas effiċjenti, iżda mhux se jkun hemm degradazzjoni serja tal-prestazzjoni.

X'inhuma l-aħjar prattiki għat-tiftix full-text f'tabella b'ħames biljun ringieli?

Hemm tweġibiet differenti. L-ewwel wieħed jgħid li ClickHouse mhix magna tat-tiftix full-test. Hemm sistemi speċjali għal dan, pereżempju, Elasticsearch и Sphinx. Madankollu, dejjem aktar nara nies jgħidu li qed jaqilbu minn Elasticsearch għal ClickHouse.

Għaliex jiġri dan? Jispjegaw dan bil-fatt li Elasticsearch ma jibqax ilaħħaq mat-tagħbija f'xi volumi, li jibda bil-kostruzzjoni ta 'indiċi. L-indiċijiet isiru wisq ingombranti, u jekk sempliċement tittrasferixxi d-dejta lil ClickHouse, jirriżulta li huma maħżuna bosta drabi b'mod aktar effiċjenti f'termini ta 'volum. Fl-istess ħin, mistoqsijiet ta 'tfittxija spiss ma kinux tali li kien meħtieġ li tinstab xi frażi fil-volum kollu ta' dejta, b'kont meħud tal-morfoloġija, iżda dawk kompletament differenti. Per eżempju, sib xi subsekwenza ta 'bytes fir-zkuk matul l-aħħar ftit sigħat.

F'dan il-każ, inti toħloq indiċi fi ClickHouse, li l-ewwel qasam tiegħu se jkun id-data u l-ħin. U l-akbar data cut-off se tkun ibbażata fuq il-firxa tad-data. Fil-medda tad-data magħżula, bħala regola, diġà huwa possibbli li titwettaq tfittxija bit-test sħiħ, anke bl-użu tal-metodu tal-forza bruta bl-użu ta 'like. L-operatur simili f'ClickHouse huwa l-operatur simili l-aktar effiċjenti li tista' ssib. Jekk issib xi ħaġa aħjar, għidli.

Iżda xorta waħda, bħal iskan sħiħ. U l-iskannjar sħiħ jista 'jkun bil-mod mhux biss fuq is-CPU, iżda wkoll fuq id-diska. Jekk f'daqqa waħda jkollok terabyte wieħed ta 'dejta kuljum, u tfittex kelma matul il-ġurnata, allura jkollok tiskennja t-terabyte. U huwa probabbilment fuq hard drives regolari, u fl-aħħar se jkunu mgħobbija b'tali mod li ma tkunx tista 'taċċessa dan is-server permezz ta' SSH.

F'dan il-każ, jien lest li noffri trick ieħor żgħir. Huwa sperimentali - jista 'jaħdem, jista' ma jkunx. ClickHouse għandha indiċi ta' test sħiħ fil-forma ta' filtri Bloom tat-trigramma. Il-kollegi tagħna f'Arenadata diġà ppruvaw dawn l-indiċi, u ħafna drabi jaħdmu eżattament kif maħsub.

Sabiex tużahom b'mod korrett, għandu jkollok fehim tajjeb ta 'eżatt kif jaħdmu: x'inhu filtru Bloom trigram u kif tagħżel id-daqs tiegħu. Nista 'ngħid li se jgħinu għal mistoqsijiet dwar xi frażijiet rari, substrings li rarament jinstabu fid-dejta. F'dan il-każ, is-subranges jintgħażlu b'indiċi u tinqara inqas dejta.

Riċentement, ClickHouse żiedet funzjonijiet saħansitra aktar avvanzati għal tfittxija full-test. Din hija, l-ewwelnett, tfittxija għal mazz ta 'substrings f'daqqa f'pass wieħed, inklużi għażliet li huma sensittivi għall-każ, insensittivi għall-każ, b'appoġġ għal UTF-8 jew biss għal ASCII. Agħżel l-aktar waħda effettiva li għandek bżonn.

Tiftix għal espressjonijiet regolari multipli f'pass wieħed deher ukoll. M'għandekx bżonn tikteb X bħal substring wieħed jew X bħal substring ieħor. Tikteb mill-ewwel, u kollox isir bl-aktar mod effiċjenti possibbli.

It-tielet, issa hemm tfittxija approssimattiva għal regexps u tfittxija approssimattiva għal substrings. Jekk xi ħadd kelma ħażina, din tiġi mfittxija għat-taqbila massima.

X'inhu l-aħjar mod biex jiġi organizzat l-aċċess għal ClickHouse għal numru kbir ta' utenti?

Għidilna kif l-aħjar torganizza l-aċċess għal numru kbir ta’ konsumaturi u analisti. Kif tifforma kju, tipprijoritizza max-mistoqsijiet konkorrenti, u b'liema għodod?

Jekk il-cluster ikun kbir biżżejjed, allura soluzzjoni tajba tkun li jinġabru żewġ servers oħra, li jsiru punt ta 'dħul għall-analisti. Jiġifieri, tħallix lill-analisti jaċċessaw shards speċifiċi fil-cluster, iżda sempliċement joħolqu żewġ servers vojta, mingħajr data, u kkonfiguraw drittijiet ta 'aċċess fuqhom. F'dan il-każ, is-settings tal-utent għal talbiet imqassma jiġu trasferiti għal servers remoti. Jiġifieri, tikkonfigura kollox fuq dawn iż-żewġ servers, u s-settings għandhom effett fuq il-cluster kollu.

Fil-prinċipju, dawn is-servers m'għandhomx dejta, iżda l-ammont ta 'RAM fuqhom huwa importanti ħafna għall-eżekuzzjoni tat-talbiet. Id-disk jista 'jintuża wkoll għal data temporanja jekk l-aggregazzjoni esterna jew l-għażla esterna hija attivata.

Huwa importanti li tħares lejn is-settings li huma assoċjati mal-limiti kollha possibbli. Jekk issa mmur fil-cluster Yandex.Metrica bħala analista u nistaqsi talba agħżel għadd minn hits, imbagħad immedjatament ningħata eċċezzjoni li ma nistax nwettaq it-talba. In-numru massimu ta 'ringieli li jien permess niskennja huwa mitt biljun, u b'kollox hemm ħamsin triljun minnhom f'tabella waħda fuq il-cluster. Din hija l-ewwel limitazzjoni.

Ejja ngħidu li nneħħi l-limitu tar-ringiela u erġa' nħaddem il-mistoqsija. Imbagħad se nara l-eċċezzjoni li ġejja - issettjar attivat indiċi tal-forza skond id-data. Ma nistax inlesti l-mistoqsija jekk ma speċifikajtx firxa ta' data. M'għandekx għalfejn tistrieħ fuq l-analisti biex tispeċifikaha manwalment. Każ tipiku huwa meta tinkiteb firxa tad-data fejn id-data tal-avveniment bejn il-ġimgħa. U allura huma sempliċement speċifikat parentesi fil-post ħażin, u minflok u rriżulta li kien jew - jew URL jaqblu. Jekk ma jkun hemm l-ebda limitu, se jitkaxkru l-kolonna tal-URL u biss jaħli ton ta 'riżorsi.

Barra minn hekk, ClickHouse għandha żewġ settings prijoritarji. Sfortunatament, huma primittivi ħafna. Wieħed huwa sempliċement imsejjaħ prijorità. Jekk prijorità ≠ 0, u talbiet b'xi prijorità qed jiġu eżegwiti, iżda talba b'valur ta 'prijorità ta' inqas minn, li jfisser prijorità ogħla, qed tiġi eżegwita, allura talba b'valur ta 'prijorità ta' akbar, li tfisser prijorità aktar baxxa , hija sempliċement sospiża u mhux se taħdem għal kollox matul dan iż-żmien.

Dan huwa setting mhux raffinat ħafna u mhux adattat għal każijiet fejn il-cluster ikollu tagħbija kostanti. Imma jekk għandek talbiet qosra u bursty li huma importanti, u l-cluster huwa l-aktar idle, din is-setup hija adattata.

L-issettjar ta' prijorità li jmiss jissejjaħ Prijorità tal-ħajt tal-OS. Sempliċement jistabbilixxi l-valur sabiħ għall-ħjut kollha tal-eżekuzzjoni tat-talbiet għall-iskeder tal-Linux. Jaħdem hekk hekk, iżda għadu jaħdem. Jekk issettja l-valur minimu sabiħ - huwa l-akbar fil-valur, u għalhekk l-inqas prijorità - u ssettja -19 għal talbiet bi prijorità għolja, allura s-CPU se jikkonsma talbiet ta 'prijorità baxxa madwar erba' darbiet inqas minn dawk ta 'prijorità għolja.

Għandek bżonn ukoll tikkonfigura l-ħin massimu ta 'eżekuzzjoni tat-talba - ngħidu aħna, ħames minuti. Il-veloċità minima tal-eżekuzzjoni tal-mistoqsija hija l-aktar ħaġa cool. Dan l-issettjar ilu jseħħ għal żmien twil, u huwa meħtieġ mhux biss biex jiġi affermat li ClickHouse ma jonqosx, iżda biex jiġi sfurzat.

Immaġina, inti twaqqaf: jekk xi mistoqsija tipproċessa inqas minn miljun ringiela kull sekonda, ma tistax tagħmel dan. Dan jiddisprezza l-isem tajjeb tagħna, id-database tajba tagħna. Ejja nipprojbixxu dan. Fil-fatt hemm żewġ settings. Wieħed jissejjaħ veloċità ta 'eżekuzzjoni min - f'linji kull sekonda, u t-tieni jissejjaħ timeout qabel ma tiċċekkja l-veloċità tal-eżekuzzjoni min - ħmistax-il sekonda b'mod awtomatiku. Jiġifieri, ħmistax-il sekonda huwa possibbli, u mbagħad, jekk ikun bil-mod, allura biss tarmi eċċezzjoni u abort it-talba.

Trid ukoll twaqqaf kwoti. ClickHouse għandha karatteristika ta' kwota inkorporata li tgħodd il-konsum tar-riżorsi. Iżda, sfortunatament, mhux riżorsi hardware bħal CPU, diski, iżda dawk loġiċi - in-numru ta 'talbiet ipproċessati, linji u bytes jinqraw. U tista 'tikkonfigura, pereżempju, massimu ta' mitt talba fi żmien ħames minuti u elf talba fis-siegħa.

Għaliex huwa importanti? Minħabba li xi mistoqsijiet analitiċi se jsiru manwalment direttament mill-klijent ClickHouse. U kollox se jkun tajjeb. Imma jekk għandek analisti avvanzati fil-kumpanija tiegħek, dawn se jiktbu skript, u ​​jista 'jkun hemm żball fl-iskrittura. U dan l-iżball se jikkawża li t-talba tiġi esegwita f'linja infinita. Dan huwa dak li rridu nipproteġu lilna nfusna minnu.

Huwa possibbli li tagħti r-riżultati ta' mistoqsija waħda lil għaxar klijenti?

Għandna diversi utenti li jixtiequ jidħlu b'talbiet kbar ħafna fl-istess ħin. It-talba hija kbira u, fil-prinċipju, esegwita malajr, iżda minħabba l-fatt li hemm ħafna talbiet bħal dawn fl-istess ħin, issir uġigħ ħafna. Huwa possibbli li titwettaq l-istess talba, li waslet għaxar darbiet wara xulxin, darba, u tagħti r-riżultat lil għaxar klijenti?

Il-problema hija li m'għandniex ir-riżultati tal-cache jew il-cache tad-dejta intermedja. Hemm cache tal-paġna tas-sistema operattiva, li tipprevjenik milli taqra d-dejta mid-diska mill-ġdid, iżda, sfortunatament, id-dejta xorta se tkun dekompressata, deserializzata u pproċessata mill-ġdid.

Nixtieq b'xi mod nevita dan, jew billi tiddaħħal dejta intermedja fil-caching, jew billi nillinja mistoqsijiet simili f'xi tip ta 'kju u żżid cache tar-riżultati. Bħalissa għandna talba waħda tal-ġibda fl-iżvilupp li żżid cache tar-rikjesti, iżda biss għal subqueries fit-taqsimiet in u join - jiġifieri, is-soluzzjoni mhix kompluta.

Madankollu, aħna wkoll niffaċċjaw sitwazzjoni bħal din. Eżempju partikolarment kanoniku huwa mistoqsijiet paġinati. Hemm rapport, għandu diversi paġni, u hemm talba għal limitu 10. Imbagħad l-istess ħaġa, iżda limitu 10,10. Imbagħad paġna oħra li jmiss. U l-mistoqsija hija, għaliex aħna ngħoddu dan kollu kull darba? Imma issa m'hemm l-ebda soluzzjoni, u m'hemm l-ebda mod kif tevitaha.

Hemm soluzzjoni alternattiva li titqiegħed bħala sidecar ħdejn ClickHouse - ClickHouse Proxy.

Kirill Shvakov: ClickHouse Proxy għandu limitatur tar-rata inkorporat u cache tar-riżultati inkorporat. Saru ħafna settings hemmhekk minħabba li problema simili kienet qed tiġi solvuta. Proxy jippermettilek tillimita t-talbiet billi tpoġġihom fil-kju u tikkonfigura kemm idum il-cache tat-talbiet. Jekk it-talbiet kienu verament l-istess, Proxy jibgħathom ħafna drabi, iżda se jmorru lil ClickHouse darba biss.

Nginx għandu wkoll cache fil-verżjoni ħielsa, u dan se jaħdem ukoll. Nginx saħansitra għandu settings li jekk it-talbiet jaslu fl-istess ħin, inaqqas il-mod lil oħrajn sakemm titlesta waħda. Iżda huwa fi ClickHouse Proxy li s-setup isir ħafna aħjar. Saret speċifikament għal ClickHouse, speċifikament għal dawn it-talbiet, għalhekk huwa aktar adattat. Ukoll, huwa faċli biex tinstalla.

Xi ngħidu dwar operazzjonijiet asinkroniċi u fehmiet immaterjalizzati?

Hemm problema li l-operazzjonijiet bil-magna replay huma asinkroniċi - l-ewwel tinkiteb id-dejta, imbagħad tikkollassa. Jekk pillola mmaterjalizzata b'xi aggregati tgħix taħt is-sinjal, allura duplikati jinkitbu lilha. U jekk ma jkunx hemm loġika kumplessa, allura d-dejta tkun duplikata. X'tista 'tagħmel dwar dan?

Hemm soluzzjoni ovvja - biex timplimenta grillu fuq ċerta klassi ta 'matviews waqt operazzjoni ta' kollass asinkroniku. Hemm xi balal tal-fidda jew pjanijiet biex tiġi implimentata funzjonalità simili?

Ta' min nifhmu kif taħdem id-deduplikazzjoni. Dak li jien ngħidlek issa mhuwiex rilevanti għall-mistoqsija, iżda fil-każ ta 'min jiftakar.

Meta tiddaħħal f'tabella replikata, hemm deduplikazzjoni tal-blokki mdaħħla kollha. Jekk terġa' ddaħħal l-istess blokka li fiha l-istess numru ta' l-istess ringieli fl-istess ordni, allura d-dejta tiġi deduplikata. Inti ser tirċievi "Ok" bi tweġiba biex daħħal, iżda fil-fatt pakkett wieħed ta 'dejta se jinkiteb, u mhux se jiġi duplikat.

Dan huwa meħtieġ għaċ-ċertezza. Jekk tirċievi "Ok" waqt l-inserzjoni, allura d-data tiegħek ġiet imdaħħla. Jekk tirċievi żball minn ClickHouse, dan ifisser li ma ġewx imdaħħla u trid tirrepeti l-inserzjoni. Imma jekk il-konnessjoni tinkiser waqt l-inserzjoni, allura ma tafx jekk id-data ddaħħlitx jew le. L-unika għażla hija li terġa 'tirrepeti l-inserzjoni. Jekk id-dejta ddaħħlet fil-fatt u int daħħalha mill-ġdid, hemm deduplikazzjoni tal-blokki. Dan huwa meħtieġ biex jiġu evitati duplikati.

U huwa importanti wkoll kif taħdem għal fehmiet immaterjalizzati. Jekk id-dejta ġiet deduplikata meta ddaħħlet fit-tabella prinċipali, allura lanqas ma tidħol fil-veduta mmaterjalizzata.

Issa dwar il-mistoqsija. Is-sitwazzjoni tiegħek hija aktar ikkumplikata għax qed tirreġistra duplikati ta' linji individwali. Jiġifieri, mhuwiex il-pakkett kollu li huwa duplikat, iżda linji speċifiċi, u jikkollassaw fl-isfond. Tabilħaqq, id-dejta se tikkollassa fit-tabella prinċipali, iżda d-dejta mhux ikkollassata tmur għall-veduta mmaterjalizzata, u waqt l-għaqdiet ma jiġri xejn għall-fehmiet materjali. Minħabba li veduta mmaterjalizzata hija xejn aktar minn grillu ta 'inserzjoni. Waqt operazzjonijiet oħra, ma jiġrilu xejn addizzjonali.

U ma nistax inkun kuntent hawn. Għandek bżonn biss li tfittex soluzzjoni speċifika għal dan il-każ. Per eżempju, huwa possibbli li terġa 'tirdaqqha b'mod materjalizzat, u l-metodu ta' deduplikazzjoni jista 'jaħdem bl-istess mod. Imma sfortunatament, mhux dejjem. Jekk tkun aggregazzjoni, mhux se taħdem.

Kirill Shvakov: Kellna wkoll kostruzzjoni tal-krozzi lura fil-ġurnata. Kien hemm problema li hemm impressjonijiet ta 'reklamar, u hemm xi dejta li nistgħu nuru f'ħin reali - dawn huma biss impressjonijiet. Rari huma duplikati, iżda jekk jiġri dan, xorta waħda se nikkollassawhom aktar tard. U kien hemm affarijiet li ma setgħux jiġu duplikati - klikks u din l-istorja kollha. Imma xtaqt ukoll nurihom kważi immedjatament.

Kif saru l-fehmiet immaterjalizzati? Kien hemm fehmiet fejn inkiteb direttament - inkiteb fuq data mhux maħduma, u nkiteb fuq fehmiet. Hemmhekk, f'xi punt id-dejta mhix korretta ħafna, hija duplikata, eċċ. U hemm it-tieni parti tat-tabella, fejn jidhru eżattament l-istess bħal fehmiet immaterjalizzati, jiġifieri, huma assolutament identiċi fl-istruttura. Darba kultant aħna nikkalkulaw mill-ġdid id-dejta, ngħoddu d-dejta mingħajr duplikati, ikteb lil dawk it-tabelli.

Aħna għaddejna mill-API - dan mhux se jaħdem fi ClickHouse manwalment. U l-API tidher: meta jkolli d-data tal-aħħar żieda mat-tabella, fejn ikun garantit li d-dejta korretta diġà ġiet ikkalkulata, u tagħmel talba lil tabella waħda u lil tabella oħra. Minn waħda t-talba tagħżel sa ċertu ammont ta 'żmien, u mill-oħra tikseb dak li għadu ma ġiex ikkalkulat. U jaħdem, iżda mhux permezz ta' ClickHouse biss.

Jekk għandek xi tip ta 'API - għall-analisti, għall-utenti - allura, fil-prinċipju, din hija għażla. Int dejjem tgħodd, dejjem tgħodd. Dan jista 'jsir darba kuljum jew f'xi ħin ieħor. Inti tagħżel għalik innifsek firxa li m'għandekx bżonn u mhix kritika.

ClickHouse għandha ħafna zkuk. Kif nista' nara dak kollu li jiġri lis-server f'daqqa t'għajn?

ClickHouse għandha numru kbir ħafna ta 'zkuk differenti, u dan in-numru qed jiżdied. F'verżjonijiet ġodda, xi wħud minnhom huma saħansitra attivati ​​awtomatikament; f'verżjonijiet eqdem iridu jkunu attivati ​​meta jiġu aġġornati. Madankollu, hemm aktar u aktar minnhom. Fl-aħħar mill-aħħar, nixtieq nara x'qed jiġri mas-server tiegħi issa, forsi fuq xi tip ta' dashboard sommarju.

Għandek tim ta' ClickHouse, jew timijiet ta' sħabek, li jappoġġaw xi funzjonalità ta' dashboards lesti li juru dawn ir-zkuk bħala prodott lest? Fl-aħħar mill-aħħar, sempliċement tħares lejn zkuk fi ClickHouse hija kbira. Iżda jkun jibred ħafna jekk ikun diġà ppreparat fil-forma ta 'dashboard. Nixtieq nikseb kick minnha.

Hemm dashboards, għalkemm mhumiex standardizzati. Fil-kumpanija tagħna, madwar 60 tim jużaw ClickHouse, u l-aktar ħaġa stramba hija li ħafna minnhom għandhom dashboards li għamlu għalihom infushom, u oħrajn kemmxejn differenti. Xi timijiet jużaw installazzjoni interna Yandex.Cloud. Hemm xi rapporti lesti, għalkemm mhux dawk kollha meħtieġa. Oħrajn għandhom tagħhom.

Il-kollegi tiegħi minn Metrica għandhom id-dashboard tagħhom stess fi Grafana, u jien għandi tiegħi għall-cluster tagħhom. Qed inħares lejn affarijiet bħal cache hit għall-serif cache. U aktar diffiċli hija li nużaw għodod differenti. Ħloqt id-daxxbord tiegħi billi tuża għodda antika ħafna msejħa Graphite-web. Huwa kompletament ikrah. U jien xorta nużaha b'dan il-mod, għalkemm Grafana probabbilment tkun aktar konvenjenti u sabiħa.

Il-ħaġa bażika fid-dashboards hija l-istess. Dawn huma metriċi tas-sistema għall-cluster: CPU, memorja, disk, netwerk. Oħrajn - numru ta 'talbiet simultanji, numru ta' għaqdiet simultanji, numru ta 'talbiet kull sekonda, numru massimu ta' biċċiet għal diviżorji tat-tabella MergeTree, dewmien ta 'replikazzjoni, daqs ta' kju ta 'replikazzjoni, numru ta' ringieli mdaħħla kull sekonda, numru ta 'blokki mdaħħla kull sekonda. Dan huwa dak kollu li jinkiseb mhux minn zkuk, iżda minn metriċi.

Vladimir Kolobaev: Alexey, nixtieq nikkoreġiha ftit. Hemm Grafana. Grafana għandha datasource, li hija ClickHouse. Jiġifieri, nista' nagħmel talbiet minn Grafana direttament lil ClickHouse. ClickHouse għandha tabella bi zkuk, hija l-istess għal kulħadd. Bħala riżultat, irrid naċċessa din it-tabella tal-log f'Grafana u nara t-talbiet li jagħmel is-server tiegħi. Ikun tajjeb li jkollok dashboard bħal dan.

Jien għamilt bir-rota. Imma għandi mistoqsija - jekk dan kollu huwa standardizzat, u Grafana jintuża minn kulħadd, għaliex Yandex m'għandux dashboard uffiċjali bħal dan?

Kirill Shvakov: Fil-fatt, is-sors tad-data li jmur għal ClickHouse issa jappoġġja Altinity. U nixtieq biss nagħti vettur ta 'fejn ħaffer u min jimbotta. Tista 'titlobhom, għax Yandex għadu jagħmel ClickHouse, u mhux l-istorja madwarha. Altinity hija l-kumpanija ewlenija li bħalissa qed tippromwovi ClickHouse. Huma mhux se jabbandunawh, iżda se jappoġġjawh. Minħabba li, fil-prinċipju, biex ittella' dashboard fuq il-websajt ta' Grafana, għandek bżonn biss tirreġistra u ttella' - m'hemmx problemi speċjali.

Alexey Milovidov: Matul is-sena li għaddiet, ClickHouse żiedet ħafna kapaċitajiet ta’ profili ta’ query. Hemm metriċi għal kull talba dwar l-użu tar-riżorsi. U dan l-aħħar, żidna profiler tal-mistoqsijiet ta' livell saħansitra aktar baxx biex naraw fejn mistoqsija qed tonfoq kull millisekonda. Imma biex nuża din il-funzjonalità, irrid niftaħ il-klijent tal-console u nikteb talba, li dejjem ninsa. Salvajtu x'imkien u nibqa' ninsa fejn eżatt.

Nixtieq li jkun hemm għodda li għadha kif qalet, hawn il-mistoqsijiet tqal tiegħek, miġbura skont il-klassi tal-mistoqsijiet. Jien għafast fuq waħda, u kienu jgħiduli li għalhekk huwa tqil. M'hemm l-ebda soluzzjoni bħal din issa. U hija tassew stramba li meta n-nies jistaqsuni: “Għidli, hemm xi dashboards lesti għal Grafana?”, jien ngħid: “Mur il-websajt ta’ Grafana, hemm komunità “Dashboards”, u hemm dashboard. minn Dimka, hemm dashboard minn Kostyan. Ma nafx x’inhu, jien ma użajtx jien.”

Kif tinfluwenza l-għaqdiet sabiex is-server ma jaħbatx f'OOM?

Għandi tabella, hemm partizzjoni waħda biss fit-tabella, hija ReplacingMergeTree. Ilni nikteb dejta fiha għal erba' snin. Kelli bżonn nagħmel alterazzjoni fiha u nħassar xi dejta.

Għamilt dan, u waqt l-ipproċessar ta 'din it-talba, il-memorja kollha fuq is-servers kollha fil-cluster ġiet ikkunsmata, u s-servers kollha fil-cluster marru f'OOM. Imbagħad qamu kollha flimkien, bdew jgħaqqdu din l-istess operazzjoni, dan il-blokk tad-data, u reġgħu waqgħu f'OOM. Imbagħad reġgħu qamu u reġgħu waqgħu. U din il-ħaġa ma waqfitx.

Imbagħad irriżulta li dan kien fil-fatt bug li l-guys iffissaw. Dan huwa sabiħ ħafna, grazzi ħafna. Iżda fadal fdal. U issa, meta naħseb li nagħmel xi tip ta 'għaqda fit-tabella, għandi mistoqsija - għaliex ma nistax b'xi mod ninfluwenza dawn l-għaqdiet? Pereżempju, illimitahom bl-ammont ta 'RAM meħtieġ, jew, fil-prinċipju, bl-ammont li se jipproċessa din it-tabella partikolari.

Għandi tabella msejħa "Metriċi", jekk jogħġbok ipproċessaha għalija f'żewġ ħjut. M'hemmx bżonn li toħloq għaxar jew ħames amalgamazzjonijiet b'mod parallel, agħmel dan fi tnejn. Naħseb li għandi memorja biżżejjed għal tnejn, iżda jista 'ma jkunx biżżejjed biex tipproċessa għaxra. Għaliex il-biża’ tibqa’? Minħabba li t-tabella qed tikber, u xi darba se niffaċċja sitwazzjoni li, fil-prinċipju, m'għadhiex dovuta għal bug, iżda minħabba li d-dejta tinbidel f'ammont tant kbir li sempliċement ma jkollix memorja biżżejjed fuq il- server. U mbagħad is-server se jikkraxxja f'OOM meta jingħaqad. Barra minn hekk, nista 'tikkanċella l-mutazzjoni, iżda Merji m'għadux hemm.

Taf, meta tgħaqqad, is-server mhux se jaqa 'f'OOM, għaliex meta jingħaqad, l-ammont ta' RAM jintuża biss għal firxa żgħira waħda ta 'dejta. Allura kollox se jkun tajjeb irrispettivament mill-ammont ta 'data.

Vladimir Kolobaev: Multa. Hawnhekk il-mument huwa tali li wara li l-bug ġie ffissat, niżżilt verżjoni ġdida għalija nnifsi, u fuq mejda oħra, waħda iżgħar, fejn hemm ħafna diviżorji, wettaqt operazzjoni simili. U waqt l-għaqda, madwar 100 GB ta 'RAM inħarqu fuq is-server. Kelli 150 okkupat, 100 jittiekel, u tieqa ta '50 GB fadal, għalhekk ma naqajtx f'OOM.

X'jipproteġini bħalissa milli naqa 'f'OOM jekk fil-fatt jikkonsma 100 GB ta' RAM? X'għandek tagħmel jekk f'daqqa waħda tispiċċa r-RAM fuq il-merges?

Alexey Milovidov: Hemm problema bħal din li l-konsum ta 'RAM speċifikament għall-għaqda mhuwiex limitat. U t-tieni problema hija li jekk xi tip ta 'għaqda tkun ġiet assenjata, allura trid tiġi eżegwita minħabba li hija rreġistrata fil-ġurnal tar-replikazzjoni. Il-log tar-replikazzjoni huwa l-azzjonijiet li huma meħtieġa biex ir-replika tinġieb fi stat konsistenti. Jekk ma tagħmilx manipulazzjonijiet manwali li jreġġgħu lura dan il-ġurnal tar-replikazzjoni, l-għaqda trid titwettaq b'xi mod jew ieħor.

Naturalment, ma jkunx superfluwu li jkun hemm limitazzjoni RAM li "fil-każ" tipproteġi kontra l-OOM. Mhux se jgħin biex jitlesta l-għaqda, jerġa 'jibda, jilħaq xi limitu, tarmi eċċezzjoni, u mbagħad jerġa' jibda - xejn tajjeb ma joħroġ minn dan. Iżda fil-prinċipju, ikun utli li tiġi introdotta din ir-restrizzjoni.

Kif se jiġi żviluppat is-sewwieq Golang għal ClickHouse?

Is-sewwieq Golang, li nkiteb minn Kirill Shvakov, issa huwa appoġġjat uffiċjalment mit-tim ClickHouse. Hu fir-repożitorju ClickHouse, issa huwa kbir u reali.

Nota żgħira. Hemm repożitorju mill-isbaħ u maħbub ta 'forom normali ta' ordni infinita - dan huwa Vertica. Huma għandhom ukoll is-sewwieq python uffiċjali tagħhom stess, li huwa appoġġjat mill-iżviluppaturi Vertica. U diversi drabi ġara li l-verżjonijiet tal-ħażna u l-verżjonijiet tas-sewwieq diverġew b'mod pjuttost drammatiku, u s-sewwieq f'xi punt waqaf jaħdem. U t-tieni punt. L-appoġġ għal dan is-sewwieq uffiċjali, jidhirli, jitwettaq mis-sistema "bżieżel" - tiktebhom kwistjoni, u tistrieħ għal dejjem.

Għandi żewġ mistoqsijiet. Issa s-sewwieq Golang ta 'Kirill huwa kważi l-mod awtomatiku biex jikkomunika minn Golang ma' ClickHouse. Sakemm xi ħadd għadu jikkomunika permezz tal-interface http minħabba li jħobb hekk. Kif se jipproċedi l-iżvilupp ta’ dan is-sewwieq? Se tkun sinkronizzata ma 'kwalunkwe bidliet ta' tkissir fir-repożitorju innifsu? U x'inhi l-proċedura biex tiġi kkunsidrata kwistjoni?

Kirill Shvakov: L-ewwel huwa kif kollox huwa organizzat b'mod burokratiku. Dan il-punt ma ġiex diskuss, għalhekk m'għandi xejn x'nwieġeb.

Biex inwieġbu l-mistoqsija dwar il-kwistjoni, għandna bżonn ftit storja tas-sewwieq. Ħdimt għal kumpanija li kellha ħafna dejta. Kien spinner tar-reklamar b'numru kbir ta 'avvenimenti li kellhom jinħażnu x'imkien. U f'xi punt deher ClickHouse. Imlieha bid-dejta, u għall-ewwel kollox kien tajjeb, iżda mbagħad ClickHouse ġġarraf. F'dak il-mument iddeċidejna li ma kellniex bżonnha.

Sena wara, erġajna lura għall-idea li nużaw ClickHouse, u kellna bżonn niktbu data hemmhekk b'xi mod. Il-messaġġ introduttorju kien dan: il-ħardwer huwa dgħajjef ħafna, hemm ftit riżorsi. Iżda dejjem ħdimna b'dan il-mod, u għalhekk ħares lejn il-protokoll nattiv.

Peress li konna naħdmu fil-Go, kien ċar li kellna bżonn sewwieq tal-Go. Għamiltha kważi full-time - kien ix-xogħol tiegħi. Ġibniha sa ċertu punt, u fil-prinċipju ħadd ma jassumi li ħaddieħor għajrna kien se jużaha. Imbagħad CloudFlare daħal eżattament bl-istess problema, u għal xi żmien ħdimna magħhom bla xkiel ħafna, għax kellhom l-istess kompiti. Barra minn hekk, għamilna dan kemm f'ClickHouse aħna stess kif ukoll fis-sewwieq.

F'xi punt, sempliċement waqaft nagħmilha, għaliex l-attività tiegħi f'termini ta 'ClickHouse u xogħol inbidlet ftit. Għalhekk kwistjonijiet mhumiex magħluqa. Perjodikament, nies li jeħtieġu xi ħaġa huma stess jimpenjaw ruħhom għar-repożitorju. Imbagħad inħares lejn ir-rikjesta tal-ġibda u xi kultant anke neditja xi ħaġa jien, imma dan iseħħ rarament.

Irrid nirritorna għand ix-xufier. Bosta snin ilu, meta bdiet din il-ħaġa kollha, ClickHouse kienet ukoll differenti u b'kapaċitajiet differenti. Issa għandna fehim ta 'kif terġa' s-sewwieq sabiex jaħdem tajjeb. Jekk jiġri dan, allura l-verżjoni 2 tkun inkompatibbli fi kwalunkwe każ minħabba l-krozzi akkumulati.

Ma nafx kif norganizza din il-kwistjoni. Jien ma tantx għandi ħin. Jekk xi nies jispiċċaw is-sewwieq, nista' ngħinhom u ngħidilhom x'għandhom jagħmlu. Iżda l-parteċipazzjoni attiva ta 'Yandex fl-iżvilupp tal-proġett għadha ma ġietx diskussa.

Alexey Milovidov: Fil-fatt, għad m'hemm l-ebda burokrazija dwar dawn is-sewwieqa. L-unika ħaġa hija li huma sottomessi lil organizzazzjoni uffiċjali, jiġifieri, dan is-sewwieq huwa rikonoxxut bħala s-soluzzjoni awtomatika uffiċjali għal Go. Hemm xi sewwieqa oħra, iżda dawn jiġu separatament.

M'għandna l-ebda żvilupp intern għal dawn is-sewwieqa. Il-mistoqsija hija jekk nistgħux nimpjegaw persuna individwali, mhux għal dan ix-xufier partikolari, iżda għall-iżvilupp tas-sewwieqa kollha tal-komunità, jew nistgħu nsibu xi ħadd minn barra.

Id-dizzjunarju estern ma jgħabbix wara reboot bl-issettjar lazy_load attivat. X'tagħmel?

Għandna l-issettjar lazy_load attivat, u wara li s-server jerġa 'jibda, id-dizzjunarju ma jgħabbix waħdu. Din titqajjem biss wara li l-utent jaċċessa dan id-dizzjunarju. U l-ewwel darba li naċċessha, tagħti żball. Huwa possibbli li b'xi mod awtomatikament tagħbija dizzjunarji billi tuża ClickHouse, jew għandek bżonn dejjem tikkontrolla l-prontezza tagħhom lilek innifsek sabiex l-utenti ma jirċievux żbalji?

Forsi għandna verżjoni l-qadima ta’ ClickHouse, għalhekk id-dizzjunarju ma tagħbijax awtomatikament. Dan jista' jkun il-każ?

L-ewwelnett, dizzjunarji jistgħu jitgħabbew sfurzati permezz ta' mistoqsija sistema reload dizzjunarji. It-tieni nett, fir-rigward tal-iżball - jekk id-dizzjunarju huwa diġà mgħobbi, allura l-mistoqsijiet se jaħdmu bbażati fuq id-dejta li kienet mgħobbija. Jekk id-dizzjunarju għadu ma ġiex mgħobbi, jitgħabba direttament waqt it-talba.

Dan mhux konvenjenti ħafna għal dizzjunarji tqal. Per eżempju, għandek bżonn tiġbed miljun ringiela minn MySQL. Xi ħadd jagħmel għażla sempliċi, iżda din l-għażla tistenna l-istess miljun ringieli. Hemm żewġ soluzzjonijiet hawn. L-ewwel huwa li titfi lazy_load. It-tieni, meta s-server ikun up, qabel ma tpoġġi t-tagħbija fuqu, tagħmel dizzjunarju reload tas-sistema jew sempliċement tagħmel mistoqsija li tuża dizzjunarju. Imbagħad id-dizzjunarju jitgħabba. Trid tikkontrolla d-disponibbiltà tad-dizzjunarji bl-issettjar lazy_load attivat, għaliex ClickHouse ma jgħabbihomx awtomatikament.

It-tweġiba għall-aħħar mistoqsija hija jew il-verżjoni hija antika jew jeħtieġ li tiġi debugged.

X'għandek tagħmel bil-fatt li d-dizzjunarji tas-sistema reload ma jgħabbi l-ebda mill-ħafna dizzjunarji jekk mill-inqas wieħed minnhom jiġġarraf bi żball?

Hemm mistoqsija oħra dwar id-dizzjunarji tat-tagħbija mill-ġdid tas-sistema. Għandna żewġ dizzjunarji - wieħed mhux mgħobbi, it-tieni huwa mgħobbi. F'dan il-każ, System reload dizzjunarji ma jillowdja l-ebda dizzjunarju, u inti għandek tagħbija punt b'punt wieħed speċifiku b'isimha billi tuża d-dizzjunarju reload tas-sistema. Dan huwa wkoll relatat mal-verżjoni ClickHouse?

Irrid inkun kuntent. Din l-imġieba kienet qed tinbidel. Dan ifisser li jekk taġġorna ClickHouse, din tinbidel ukoll. Jekk m'intix kuntent bl-imġieba attwali tiegħek sistema reload dizzjunarji, taġġorna, u ejja nittamaw li tinbidel għall-aħjar.

Hemm mod kif tikkonfigura d-dettalji fil-konfigurazzjoni tal-ClickHouse, iżda ma turihomx f'każ ta' żbalji?

Il-mistoqsija li jmiss hija dwar żbalji relatati mad-dizzjunarju, jiġifieri d-dettalji. Speċifikajna d-dettalji tal-konnessjoni fil-konfigurazzjoni tal-ClickHouse għad-dizzjunarju, u jekk ikun hemm żball, nirċievu dawn id-dettalji u l-password bħala tweġiba.

Solvejna dan l-iżball billi żidna dettalji fil-konfigurazzjoni tas-sewwieq ODBC. Hemm xi mod kif tikkonfigura d-dettalji fil-konfigurazzjoni tal-ClickHouse, iżda ma turix dawn id-dettalji f'każ ta 'żbalji?

Is-soluzzjoni vera hawnhekk hija li tispeċifika dawn il-kredenzjali f'odbc.ini, u f'ClickHouse stess tispeċifika biss l-Isem tas-Sors tad-Data ODBC. Dan mhux se jiġri għal sorsi oħra ta’ dizzjunarju – la għad-dizzjunarju bil-MySQL, u lanqas għall-oħrajn, m’għandekx tara l-password meta tirċievi messaġġ ta’ żball. Għal ODBC, ser inħares ukoll - jekk teżisti, għandek bżonn biss tneħħiha.

Bonus: sfondi għal Zoom minn laqgħat

Billi tikklikkja fuq l-istampa, sfondi bonus mill-laqgħat jinfetħu għall-qarrejja l-aktar persistenti. Aħna nitfu n-nar flimkien mal-mascots tat-teknoloġija Avito, nikkonferixxu ma 'kollegi mill-kamra tal-amministratur tas-sistema jew il-klabb tal-kompjuter tal-iskola l-antika, u nwettqu laqgħat ta' kuljum taħt il-pont fl-isfond tal-graffiti.

ClickHouse għal utenti avvanzati fil-mistoqsijiet u t-tweġibiet

Sors: www.habr.com

Żid kumment