ClickHouse fun awọn olumulo to ti ni ilọsiwaju ninu awọn ibeere ati awọn idahun

Ni Oṣu Kẹrin, awọn onimọ-ẹrọ Avito pejọ fun awọn ipade ori ayelujara pẹlu olupilẹṣẹ ClickHouse akọkọ Alexey Milovidov ati Kirill Shvakov, olupilẹṣẹ Golang lati Integros. A jiroro lori bawo ni a ṣe lo eto iṣakoso data ati awọn iṣoro wo ni a ba pade.

Da lori ipade naa, a ti ṣajọ nkan kan pẹlu awọn idahun awọn amoye si wa ati awọn ibeere ti olugbo nipa awọn afẹyinti, atunṣatunṣe data, awọn iwe-itumọ ita, awakọ Golang ati imudojuiwọn awọn ẹya ClickHouse. O le wulo fun awọn olupilẹṣẹ ti o ti n ṣiṣẹ tẹlẹ pẹlu Yandex DBMS ti o nifẹ si lọwọlọwọ ati ọjọ iwaju. Nipa aiyipada, awọn idahun jẹ nipasẹ Alexey Milovidov, ayafi ti bibẹẹkọ kọ.

Ṣọra, ọpọlọpọ ọrọ wa labẹ gige. A nireti pe akoonu pẹlu awọn ibeere yoo ran ọ lọwọ lati lilö kiri.

ClickHouse fun awọn olumulo to ti ni ilọsiwaju ninu awọn ibeere ati awọn idahun

Awọn akoonu

Ti o ko ba fẹ ka ọrọ naa, o le wo igbasilẹ ti awọn apejọ lori ikanni YouTube wa. Awọn koodu akoko wa ni asọye akọkọ labẹ fidio.

ClickHouse ti ni imudojuiwọn nigbagbogbo, ṣugbọn data wa kii ṣe. Kini lati ṣe nipa rẹ?

ClickHouse ti ni imudojuiwọn nigbagbogbo, ati pe data wa, eyiti o jẹ iṣapeye iṣapeye ni ipari, ko ni imudojuiwọn ati pe o wa ninu ẹda afẹyinti.

Jẹ ká sọ a ní diẹ ninu awọn isoro ati awọn data ti a ti sọnu. A pinnu lati mu pada, ati pe o wa ni pe awọn ipin atijọ, eyiti o wa ni ipamọ lori awọn olupin afẹyinti, yatọ pupọ si ẹya ti o lo lọwọlọwọ ti ClickHouse. Kini lati ṣe ni iru ipo bẹẹ, ati pe o ṣee ṣe?

Ipo kan ninu eyiti o mu data pada lati afẹyinti ni ọna kika atijọ, ṣugbọn ko sopọ si ẹya tuntun, ko ṣee ṣe. A rii daju pe ọna kika data ni ClickHouse nigbagbogbo maa wa sẹhin ibaramu. Eyi ṣe pataki pupọ diẹ sii ju ibaramu sẹhin ni iṣẹ ṣiṣe ti ihuwasi ti diẹ ninu iṣẹ ti a ko lo ti yipada. Ẹya tuntun ti ClickHouse yẹ ki o ni anfani nigbagbogbo lati ka data ti o fipamọ sori disiki. Eyi ni ofin.

Kini awọn iṣe ti o dara julọ lọwọlọwọ fun atilẹyin data lati ClickHouse?

Bii o ṣe le ṣe awọn afẹyinti, ni akiyesi pe a ni iṣapeye awọn iṣẹ ṣiṣe ikẹhin, data data nla ti terabytes, ati data ti o ti ni imudojuiwọn, sọ, fun awọn ọjọ mẹta sẹhin, ati lẹhinna ko si awọn ilana ti o ṣẹlẹ si?

A le ṣe ojutu tiwa ati kọ lori bash: gba awọn ẹda afẹyinti wọnyi ni iru ati iru ọna. Boya nibẹ ni ko si ye lati crutch ohunkohun, ati awọn kẹkẹ ti a se gun seyin?

Jẹ ká bẹrẹ pẹlu awọn ti o dara ju ise. Awọn ẹlẹgbẹ mi nigbagbogbo ni imọran, ni idahun si awọn ibeere nipa awọn afẹyinti, lati leti wọn nipa iṣẹ Yandex.Cloud, nibiti a ti yanju iṣoro yii tẹlẹ. Nitorina lo ti o ba ṣeeṣe.

Ko si ojutu pipe fun awọn afẹyinti, ọgọrun ogorun ti a ṣe sinu ClickHouse. Nibẹ ni o wa diẹ ninu awọn òfo ti o le ṣee lo. Lati gba ojutu pipe, iwọ yoo ni lati tinker diẹ pẹlu ọwọ, tabi ṣẹda awọn murasilẹ ni irisi awọn iwe afọwọkọ.

Emi yoo bẹrẹ pẹlu awọn solusan ti o rọrun julọ ati pari pẹlu awọn ti o ga julọ, ti o da lori iwọn data ati iwọn iṣupọ. Awọn iṣupọ ti o tobi julọ, diẹ sii ni idiju ojutu naa.

Ti tabili pẹlu data ba gba gigabytes diẹ, afẹyinti le ṣee ṣe bii eyi:

  1. Fi itumọ tabili pamọ ie metadata - show ṣẹda tabili.
  2. Ṣe idalenu nipa lilo alabara ClickHouse - yan * lati tabili lati faili. Nipa aiyipada iwọ yoo gba faili kan ni ọna kika TabSeparated. Ti o ba fẹ lati jẹ daradara siwaju sii, o le ṣe ni ọna kika abinibi.

Ti iye data ba tobi ju, lẹhinna afẹyinti yoo gba akoko diẹ sii ati aaye pupọ. Eyi ni a pe ni afẹyinti ọgbọn; ko so mọ ọna kika data ClickHouse. Ti o ba jẹ bẹ, lẹhinna bi ohun asegbeyin ti o le gba afẹyinti ati gbee si MySQL fun imularada.

Fun awọn ọran ilọsiwaju diẹ sii, ClickHouse ni agbara ti a ṣe sinu rẹ lati ṣẹda aworan ti awọn ipin ninu eto faili agbegbe. Ẹya yii wa bi ibeere kan paarọ tabili didi ipin. Tabi nìkan paarọ tabili di - Eyi jẹ aworan ti gbogbo tabili.

Aworan aworan yoo ṣẹda ni igbagbogbo fun tabili kan lori shard kan, iyẹn ni, ko ṣee ṣe lati ṣẹda aworan ti o ni ibamu ti gbogbo iṣupọ ni ọna yii. Ṣugbọn fun ọpọlọpọ awọn iṣẹ ṣiṣe ko si iru iwulo bẹ, ati pe o to lati ṣe ibeere kan lori shard kọọkan ati gba aworan ti o ni ibamu. O ṣẹda ni irisi awọn ọna asopọ lile ati nitorinaa ko gba aaye afikun. Nigbamii, o daakọ aworan aworan yii si olupin afẹyinti tabi si ibi ipamọ ti o lo fun awọn afẹyinti.

Pada iru afẹyinti pada jẹ ohun rọrun. Ni akọkọ, ṣẹda awọn tabili ni lilo awọn asọye tabili ti o wa tẹlẹ. Nigbamii, daakọ awọn fọto ti o fipamọ ti awọn ipin si Itọsọna-Detached fun awọn tabili wọnyi ati ṣiṣe ibeere naa so ipin. Ojutu yii dara fun awọn iwọn to ṣe pataki julọ ti data.

Nigba miiran o nilo nkankan paapaa tutu - ni awọn ọran nibiti o ni awọn mewa tabi paapaa awọn ọgọọgọrun ti terabyte lori olupin kọọkan ati awọn ọgọọgọrun awọn olupin. Ojutu kan wa nibi ti Mo gba lati ọdọ awọn ẹlẹgbẹ mi lati Yandex.Metrica. Emi kii yoo ṣeduro rẹ si gbogbo eniyan - ka ki o pinnu fun ara rẹ boya o dara tabi rara.

Ni akọkọ o nilo lati ṣẹda awọn olupin pupọ pẹlu awọn selifu disk nla. Nigbamii, lori awọn olupin wọnyi, gbe ọpọlọpọ awọn olupin ClickHouse dide ki o tunto wọn ki wọn ṣiṣẹ bi ẹda miiran fun awọn shards kanna. Ati lẹhinna lo eto faili kan tabi diẹ ninu ọpa lori awọn olupin wọnyi ti o fun ọ laaye lati ṣẹda awọn fọto. Awọn aṣayan meji wa nibi. Aṣayan akọkọ jẹ awọn aworan aworan LVM, aṣayan keji jẹ ZFS lori Lainos.

Lẹhin iyẹn, ni gbogbo ọjọ o nilo lati ṣẹda aworan kan, yoo dubulẹ ati gba aaye diẹ. Nipa ti, ti data ba yipada, iye aaye yoo pọ si ni akoko pupọ. A le mu fọtoyiya jade nigbakugba ati pada data naa, iru ojutu ajeji kan. Pẹlupẹlu, a tun nilo lati ṣe idinwo awọn ẹda wọnyi ni atunto ki wọn ko gbiyanju lati di awọn oludari.

Ṣe o ṣee ṣe lati ṣeto aisun iṣakoso ti awọn ẹda ni awọn ọpa?

Ni ọdun yii o n gbero lati ṣe awọn ọpa ni ClickHouse. Ṣe yoo ṣee ṣe lati ṣeto aisun iṣakoso ti awọn ẹda ninu wọn? A yoo fẹ lati lo lati daabobo ara wa lati awọn oju iṣẹlẹ odi pẹlu awọn iyipada ati awọn ayipada miiran.

Ṣe o ṣee ṣe lati ṣe diẹ ninu awọn ti yipo pada fun alters? Fun apẹẹrẹ, ninu ọpa ti o wa tẹlẹ, mu ki o sọ pe titi di akoko yii o lo awọn ayipada, ati lati akoko yii o dẹkun lilo awọn ayipada?

Ti aṣẹ kan ba wa si iṣupọ wa ti o fọ, lẹhinna a ni ẹda ti o ni majemu pẹlu aisun wakati kan, nibiti a ti le sọ pe jẹ ki a lo ni akoko yii, ṣugbọn a kii yoo lo awọn ayipada si i fun iṣẹju mẹwa to kẹhin?

Ni akọkọ, nipa aisun iṣakoso ti awọn ẹda. Iru ibeere bẹẹ wa lati ọdọ awọn olumulo, ati pe a ṣẹda ariyanjiyan lori Github pẹlu ibeere naa: “Ti ẹnikan ba nilo eyi, fẹran rẹ, fi ọkan si.” Ko si ẹnikan ti o firanṣẹ, ati pe ọrọ naa ti wa ni pipade. Sibẹsibẹ, o le gba aye yii tẹlẹ nipa siseto ClickHouse. Lootọ, bẹrẹ nikan lati ẹya 20.3.

ClickHouse nigbagbogbo n ṣe idapọ data ni abẹlẹ. Nigbati idapọ kan ba ti pari, ṣeto awọn ege data kan yoo rọpo pẹlu nkan nla kan. Ni akoko kanna, awọn ege data ti o wa ṣaaju ki o to tẹsiwaju lati wa lori disiki fun igba diẹ.

Ni akọkọ, wọn tẹsiwaju lati wa ni ipamọ niwọn igba ti awọn ibeere yiyan wa ti o lo wọn, lati pese iṣẹ ti kii ṣe idilọwọ. Yan awọn ibeere ni irọrun ka lati awọn ṣoki atijọ.

Ni ẹẹkeji, iloro akoko tun wa - awọn ege atijọ ti data dubulẹ lori disiki fun iṣẹju mẹjọ. Awọn iṣẹju mẹjọ wọnyi le jẹ adani ati paapaa yipada si ọjọ kan. Eyi yoo jẹ idiyele aaye disk: da lori ṣiṣan data, o wa ni pe ni ọjọ ikẹhin data kii yoo ni ilọpo meji, o le di igba marun diẹ sii. Ṣugbọn ti iṣoro pataki kan ba wa, o le da olupin ClickHouse duro ki o to ohun gbogbo jade.

Bayi ibeere naa waye bi eyi ṣe daabobo lodi si awọn iyipada. O tọ lati wo iwo jinlẹ nibi, nitori ni awọn ẹya agbalagba ti ClickHouse, iyipada naa ṣiṣẹ ni ọna ti o rọrun yipada awọn ege taara. Nkan data wa pẹlu awọn faili kan, ati pe a ṣe, fun apẹẹrẹ, paarọ silẹ iwe. Lẹhinna a yọ ọwọn yii kuro ni ti ara lati gbogbo awọn chunks.

Ṣugbọn bẹrẹ pẹlu ẹya 20.3, ẹrọ iyipada ti yipada patapata, ati ni bayi awọn ege data jẹ alaileyipada nigbagbogbo. Won ko ba ko yi ni gbogbo - alters bayi ṣiṣẹ ni Elo ni ọna kanna bi merges. Dipo ti a ropo kan nkan lori awọn iranran, a ṣẹda titun kan. Ninu chunk tuntun, awọn faili ti ko yipada di awọn ọna asopọ lile, ati pe ti a ba paarẹ iwe kan, yoo kan sonu ni chunk tuntun. Nkan atijọ yoo paarẹ nipasẹ aiyipada lẹhin iṣẹju mẹjọ, ati nibi o le tweak awọn eto ti a mẹnuba loke.

Kanna kan si awọn iyipada gẹgẹbi awọn iyipada. Nigbati o ba ṣe paarọ paarẹ tabi imudojuiwọn imudojuiwọn, ko yi nkan pada, ṣugbọn ṣẹda titun kan. Ati lẹhinna paarẹ ti atijọ.

Ohun ti o ba ti tabili be ti yi pada?

Bii o ṣe le mu afẹyinti pada ti a ṣe pẹlu ero atijọ? Ati ibeere keji jẹ nipa ọran pẹlu awọn aworan aworan ati awọn irinṣẹ eto faili. Njẹ Btrfs dara nibi dipo ZFS lori Linux LVM?

Ti o ba ṣe so ipin awọn ipin pẹlu eto ti o yatọ, lẹhinna ClickHouse yoo sọ fun ọ pe eyi ko ṣee ṣe. Eyi ni ojutu. Ohun akọkọ ni lati ṣẹda tabili igba diẹ ti iru MergeTree pẹlu ẹya atijọ, so data wa nibẹ nipa lilo asomọ, ati ṣe ibeere iyipada. Lẹhinna o le daakọ tabi gbe data yii pada ki o tun somọ, tabi lo ibeere kan paarọ tabili gbe ipin.

Bayi ibeere keji ni boya Btrfs le ṣee lo. Lati bẹrẹ pẹlu, ti o ba ni LVM, lẹhinna LVM snapshots to, ati pe faili faili le jẹ ext4, ko ṣe pataki. Pẹlu Btrts, ohun gbogbo da lori iriri rẹ ni lilo rẹ. Eyi jẹ eto faili ti ogbo, ṣugbọn awọn ifura kan tun wa nipa bii ohun gbogbo yoo ṣe ṣiṣẹ ni adaṣe ni oju iṣẹlẹ kan pato. Emi kii yoo ṣeduro lilo eyi ayafi ti o ba ni Btrfs ni iṣelọpọ.

Kini awọn iṣe ti o dara julọ lọwọlọwọ ni ṣiṣatunṣe data?

Ọrọ ti atunto jẹ eka ati ọpọlọpọ. Ọpọlọpọ awọn idahun ti o ṣeeṣe wa nibi. O le lọ lati ẹgbẹ kan ki o sọ eyi - ClickHouse ko ni ẹya-ara atunto ti a ṣe sinu. Ṣugbọn Mo bẹru pe idahun yii ko ni ba ẹnikẹni mu. Nitorinaa, o le lọ lati apa keji ki o sọ pe ClickHouse ni ọpọlọpọ awọn ọna lati tun data pada.

Ti iṣupọ ba jade ni aaye tabi ko le mu ẹru naa, o ṣafikun awọn olupin tuntun. Ṣugbọn awọn olupin wọnyi ṣofo nipasẹ aiyipada, ko si data lori wọn, ko si fifuye. O nilo lati tunto data naa ki o di boṣeyẹ tan kaakiri tuntun, iṣupọ nla.

Ọna akọkọ eyi le ṣee ṣe ni lati daakọ apakan ti awọn ipin si awọn olupin titun nipa lilo ibeere kan paarọ tabili bu ipin. Fun apẹẹrẹ, o ni awọn ipin nipasẹ oṣu, ati pe o gba oṣu akọkọ ti 2017 ki o daakọ si olupin tuntun kan, lẹhinna daakọ oṣu kẹta si olupin tuntun miiran. Ati pe o ṣe eyi titi yoo fi di diẹ sii tabi kere si paapaa.

Gbigbe le ṣee ṣe nikan fun awọn ipin wọnyẹn ti ko yipada lakoko gbigbasilẹ. Fun awọn ipin tuntun, gbigbasilẹ yoo ni alaabo, nitori gbigbe wọn kii ṣe atomiki. Bibẹẹkọ, iwọ yoo pari pẹlu awọn ẹda-iwe tabi awọn ela ninu data naa. Sibẹsibẹ, ọna yii wulo ati ṣiṣẹ ni imunadoko. Awọn ipin fisinuirindigbindigbin ti o ti ṣetan ti wa ni gbigbe lori nẹtiwọọki, iyẹn ni, data naa ko ni fisinuirindigbindigbin tabi tun-ṣe koodu.

Ọna yii ni apadabọ kan, ati pe o da lori ero sharding, boya o ṣe adehun si ero sharding yii, kini bọtini sharding ti o ni. Ninu apẹẹrẹ rẹ fun ọran pẹlu awọn metiriki, bọtini sharding jẹ hash ti ọna naa. Nigbati o ba yan tabili Pipin, o lọ si gbogbo awọn shards ninu iṣupọ ni ẹẹkan ati gba data lati ibẹ.

Eyi tumọ si pe ko ṣe pataki fun ọ kini data ti pari lori iru shard. Ohun akọkọ ni pe data ni ọna kan dopin lori shard kan, ṣugbọn eyi ti ko ṣe pataki. Ni ọran yii, gbigbe awọn ipin ti a ti ṣetan jẹ pipe, nitori pẹlu awọn ibeere yiyan iwọ yoo tun gba data pipe - boya ṣaaju ṣiṣatunṣe tabi lẹhin, ero naa ko ṣe pataki gaan.

Ṣugbọn nibẹ ni o wa igba ti o wa ni eka sii. Ti o ba wa ni ipele kannaa ohun elo ti o gbẹkẹle ero sharding pataki kan, pe alabara yii wa lori iru ati iru shard kan, ati pe ibeere naa le firanṣẹ taara sibẹ, kii ṣe si tabili Pinpin. Tabi o nlo ẹya aipẹ aipẹ ti ClickHouse ati pe o ti mu eto ṣiṣẹ je ki foo ajeku shards. Ni ọran yii, lakoko ibeere ti o yan, ikosile ni apakan nibiti yoo ṣe itupalẹ ati pe yoo ṣe iṣiro iru awọn ege ti o nilo lati lo ni ibamu si ero sharding. Eyi ṣiṣẹ ni ipese pe data ti pin ni deede ni ibamu si ero sharding yii. Ti o ba tunto wọn pẹlu ọwọ, ifọrọranṣẹ le yipada.

Nitorinaa eyi jẹ nọmba akọkọ. Ati pe Mo n duro de idahun rẹ, boya ọna naa dara, tabi jẹ ki a tẹsiwaju.

Vladimir Kolobaev, oludari eto eto ni Avito: Alexey, ọna ti o mẹnuba ko ṣiṣẹ daradara nigbati o nilo lati tan ẹru naa, pẹlu kika. A le mu ipin kan ti o jẹ oṣooṣu ati pe o le mu oṣu ti tẹlẹ lọ si ipade miiran, ṣugbọn nigbati ibeere kan ba wa fun data yii, a yoo gbe e nikan. Ṣugbọn a fẹ lati ṣaja gbogbo iṣupọ, nitori bibẹẹkọ, fun igba diẹ gbogbo fifuye kika yoo ni ilọsiwaju nipasẹ awọn shards meji.

Alexei Milovidov: Idahun nibi jẹ ajeji - bẹẹni, o buru, ṣugbọn o le ṣiṣẹ. Emi yoo ṣe alaye gangan bi. O tọ lati wo oju iṣẹlẹ fifuye ti o wa lẹhin data rẹ. Ti eyi ba jẹ data ibojuwo, lẹhinna a le fẹrẹ sọ pe opo julọ ti awọn ibeere wa fun data tuntun.

O ti fi sori ẹrọ titun olupin, ṣilọ atijọ ipin, sugbon tun yi pada bi alabapade data ti wa ni gba silẹ. Ati pe data tuntun yoo tan jakejado iṣupọ naa. Nitorinaa, lẹhin iṣẹju marun nikan, awọn ibeere fun iṣẹju marun to kẹhin yoo kojọpọ iṣupọ naa ni deede; lẹhin ọjọ kan, awọn ibeere fun wakati XNUMX yoo kojọpọ iṣupọ naa. Ati awọn ibeere fun oṣu ti tẹlẹ, laanu, yoo lọ si apakan ti awọn olupin iṣupọ nikan.

Ṣugbọn nigbagbogbo iwọ kii yoo ni awọn ibeere pataki fun Kínní 2019. O ṣeese julọ, ti awọn ibeere ba lọ sinu ọdun 2019, lẹhinna wọn yoo wa fun gbogbo ọdun 2019 - fun akoko nla, kii ṣe fun iwọn kekere kan. Ati pe iru awọn ibeere bẹẹ yoo tun ni anfani lati kojọpọ iṣupọ naa boṣeyẹ. Ṣugbọn ni gbogbogbo, asọye rẹ jẹ deede pe eyi jẹ ojutu ad hoc ti ko tan data naa ni boṣeyẹ.

Mo ni awọn aaye diẹ sii lati dahun ibeere naa. Ọkan ninu wọn jẹ nipa bi o ṣe le kọkọ ṣe apẹrẹ ero sharding ki atunbere yoo fa irora diẹ. Eyi ko ṣee ṣe nigbagbogbo.

Fun apẹẹrẹ, o ni data ibojuwo. Awọn data ibojuwo n dagba fun awọn idi mẹta. Ni igba akọkọ ti ni ikojọpọ ti itan data. Awọn keji ni ijabọ idagbasoke. Ati pe ẹkẹta jẹ ilosoke ninu nọmba awọn nkan ti o wa labẹ abojuto. Awọn iṣẹ microservices titun wa ati awọn metiriki ti o nilo lati wa ni fipamọ.

O ṣee ṣe pe ninu iwọnyi, ilosoke ti o tobi julọ ni nkan ṣe pẹlu idi kẹta - ilosoke ninu lilo ibojuwo. Ati ninu ọran yii, o tọ lati wo iru ẹru naa, kini awọn ibeere yiyan akọkọ. Awọn ibeere yiyan ipilẹ yoo ṣeese julọ da lori diẹ ninu awọn ipin ti awọn metiriki.

Fun apẹẹrẹ, lilo Sipiyu lori diẹ ninu awọn olupin nipasẹ iṣẹ kan. O wa ni pe ipin kan wa ti awọn bọtini nipasẹ eyiti o gba data yii. Ati pe ibeere funrararẹ fun data yii ṣee ṣe rọrun pupọ ati pe o ti pari ni mewa ti milliseconds. Lo fun mimojuto awọn iṣẹ ati dashboards. Mo nireti pe MO loye eyi ni deede.

Vladimir Kolobaev: Otitọ ni pe a nigbagbogbo bẹbẹ si data itan, nitori a ṣe afiwe ipo lọwọlọwọ pẹlu ọkan itan ni akoko gidi. Ati pe o ṣe pataki fun wa lati ni wiwọle yara yara si iye nla ti data, ati ClickHouse ṣe iṣẹ ti o dara julọ pẹlu eyi.

O tọ ni pipe, a ni iriri pupọ julọ awọn ibeere kika ni ọjọ ikẹhin, bii eto ibojuwo eyikeyi. Ṣugbọn ni akoko kanna, fifuye lori data itan tun tobi pupọ. O jẹ ipilẹ lati eto titaniji ti o lọ ni ayika gbogbo ọgbọn iṣẹju ati sọ fun ClickHouse: “Fun mi data naa fun ọsẹ mẹfa to kọja. Ni bayi kọ mi ni iwọn gbigbe ni apapọ lati ọdọ wọn, ati pe jẹ ki a ṣe afiwe iye ti isiyi pẹlu eyiti itan-akọọlẹ. ”

Emi yoo fẹ lati sọ pe fun iru awọn ibeere aipẹ pupọ a ni tabili kekere miiran ninu eyiti a fipamọ awọn ọjọ meji ti data nikan, ati awọn ibeere akọkọ fò sinu rẹ. A fi awọn ibeere itan nla ranṣẹ si tabili ti o tobi ju.

Alexei Milovidov: Laanu, o wa ni ibi ti ko dara fun oju iṣẹlẹ rẹ, ṣugbọn Emi yoo sọ fun ọ apejuwe kan ti awọn ero buburu meji ati idiju ti ko nilo lati lo, ṣugbọn eyiti a lo ninu iṣẹ awọn ọrẹ mi.

Iṣupọ akọkọ wa pẹlu awọn iṣẹlẹ Yandex.Metrica. Awọn iṣẹlẹ jẹ awọn iwo oju-iwe, awọn titẹ, ati awọn iyipada. Pupọ awọn ibeere lọ si oju opo wẹẹbu kan pato. O ṣii iṣẹ Yandex.Metrica, o ni oju opo wẹẹbu kan - avito.ru, lọ si ijabọ naa, ati pe o ṣe ibeere kan fun oju opo wẹẹbu rẹ.

Ṣugbọn awọn ibeere miiran wa - itupalẹ ati agbaye - eyiti awọn atunnkanka inu ṣe ṣe. O kan ni ọran, Mo ṣe akiyesi pe awọn atunnkanka inu ṣe awọn ibeere fun awọn iṣẹ Yandex nikan. Ṣugbọn sibẹsibẹ, paapaa awọn iṣẹ Yandex gba ipin pataki ti gbogbo data. Iwọnyi jẹ awọn ibeere kii ṣe fun awọn iṣiro kan pato, ṣugbọn fun sisẹ gbooro.

Bii o ṣe le ṣeto data ni ọna ti ohun gbogbo n ṣiṣẹ daradara fun counter kan, ati awọn ibeere agbaye paapaa? Iṣoro miiran ni pe nọmba awọn ibeere ni ClickHouse fun iṣupọ Metrics jẹ ẹgbẹrun pupọ fun iṣẹju kan. Ni akoko kanna, olupin ClickHouse kan ko le mu awọn ibeere ti kii ṣe pataki, fun apẹẹrẹ, ọpọlọpọ ẹgbẹrun fun iṣẹju kan.

Iwọn iṣupọ jẹ awọn olupin ọgọrun-ẹgbẹta-nkankan. Ti o ba kan fa tabili Pipin lori iṣupọ yii ki o firanṣẹ ọpọlọpọ awọn ibeere sibẹ, yoo buru paapaa ju fifiranṣẹ wọn lọ si olupin kan. Ni apa keji, aṣayan ti data ti tan kaakiri, ati pe a lọ ati beere lati ọdọ gbogbo awọn olupin, ti yọkuro lẹsẹkẹsẹ.

Nibẹ jẹ ẹya aṣayan ti o jẹ diametrically idakeji. Fojuinu ti a ba fọ data naa kọja awọn aaye, ati ibeere kan fun aaye kan lọ si shard kan. Bayi iṣupọ yoo ni anfani lati mu awọn ibeere ẹgbẹrun mẹwa fun iṣẹju kan, ṣugbọn lori shard kan eyikeyi ibeere kan yoo ṣiṣẹ laiyara pupọ. Kii yoo ṣe iwọn mọ ni awọn ofin ti iṣelọpọ. Paapa ti eyi ba jẹ aaye avito.ru. Emi kii yoo ṣafihan aṣiri naa ti MO ba sọ pe Avito jẹ ọkan ninu awọn aaye ti o ṣabẹwo julọ ni RuNet. Ati ṣiṣe rẹ lori shard kan yoo jẹ isinwin.

Nitorinaa, ero sharding jẹ apẹrẹ ni ọna arekereke diẹ sii. Gbogbo iṣupọ ti pin si nọmba awọn iṣupọ, eyiti a pe ni awọn ipele. Iṣupọ kọọkan ni lati mejila si ọpọlọpọ awọn shards mejila. Iru awọn iṣupọ bii mọkandinlogoji lo wa lapapọ.

Bawo ni gbogbo eyi ṣe iwọn? Nọmba awọn iṣupọ ko yipada - bi o ti jẹ ọgbọn-mẹsan ni ọdun diẹ sẹhin, o wa bẹ. Ṣugbọn laarin ọkọọkan wọn, a maa n pọ si nọmba awọn shards bi a ṣe n ṣajọ data. Ati ero sharding lapapọ jẹ bii eyi: awọn iṣupọ wọnyi ti pin si awọn oju opo wẹẹbu, ati lati le loye oju opo wẹẹbu wo lori iru iṣupọ, metabase lọtọ ni MySQL ti lo. Aaye kan - lori iṣupọ kan. Ati ninu rẹ, sharding waye ni ibamu si awọn ID alejo.

Nigba gbigbasilẹ, a pin wọn nipasẹ awọn iyokù ti awọn pipin ti alejo ID. Ṣugbọn nigba fifi shard tuntun kun, ero sharding naa yipada; a tẹsiwaju lati pin, ṣugbọn pẹlu iyokù pipin nipasẹ nọmba miiran. Eyi tumọ si pe alejo kan ti wa tẹlẹ lori awọn olupin pupọ, ati pe o ko le gbẹkẹle eyi. Eyi ni a ṣe nikan lati rii daju pe data naa dara julọ fun fisinuirindigbindigbin. Ati nigba ṣiṣe awọn ibeere, a lọ si tabili Pipin, eyiti o wo iṣupọ ati wọle si awọn dosinni ti awọn olupin. Eyi jẹ iru ero aimọgbọnwa bẹẹ.

Ṣugbọn itan mi yoo pe ti Emi ko ba sọ pe a kọ ero yii silẹ. Ninu ero tuntun, a yipada ohun gbogbo ati daakọ gbogbo data nipa lilo clickhouse-copier.

Ninu ero tuntun, gbogbo awọn aaye ti pin si awọn ẹka meji - nla ati kekere. Emi ko mọ bi a ti yan iloro naa, ṣugbọn abajade ni pe awọn aaye nla ti wa ni igbasilẹ lori iṣupọ kan, nibiti awọn shards 120 wa pẹlu awọn ẹda mẹta kọọkan - iyẹn ni, awọn olupin 360. Ati pe ero sharding jẹ iru pe eyikeyi ibeere lọ si gbogbo awọn shards ni ẹẹkan. Ti o ba ṣii oju-iwe ijabọ eyikeyi fun avito.ru ni Yandex.Metrica, ibeere naa yoo lọ si awọn olupin 120. Awọn aaye nla diẹ wa ni RuNet. Ati awọn ibeere kii ṣe ẹgbẹrun fun iṣẹju-aaya, ṣugbọn paapaa kere ju ọgọrun. Gbogbo eyi jẹ laiparuwo nipasẹ tabili Pipin, eyiti ọkọọkan wọn ṣe ilana pẹlu awọn olupin 120.

Ati iṣupọ keji jẹ fun awọn aaye kekere. Eyi ni ero sharding kan ti o da lori ID aaye naa, ati pe ibeere kọọkan lọ si shard kan pato.

ClickHouse ni o ni a clickhouse-daakọ IwUlO. Ṣe o le sọ fun mi nipa rẹ?

Emi yoo sọ lẹsẹkẹsẹ pe ojutu yii jẹ irẹwẹsi diẹ sii ati pe o kere si iṣelọpọ. Awọn anfani ni wipe o smears awọn data patapata ni ibamu si awọn Àpẹẹrẹ ti o pato. Ṣugbọn awọn drawback ti awọn IwUlO ni wipe o ko ni reshard ni gbogbo. O daakọ data lati inu ero iṣupọ kan si ero iṣupọ miiran.

Eyi tumọ si pe lati ṣiṣẹ o gbọdọ ni awọn iṣupọ meji. Wọn le wa lori awọn olupin kanna, ṣugbọn, sibẹsibẹ, data naa kii yoo gbe ni afikun, ṣugbọn yoo ṣe daakọ.

Fun apẹẹrẹ, awọn olupin mẹrin wa, bayi o jẹ mẹjọ. O ṣẹda tabili Pinpin tuntun lori gbogbo awọn olupin, awọn tabili agbegbe tuntun ati ifilọlẹ clickhouse-copier, nfihan ninu rẹ ero iṣẹ ti o yẹ ki o ka lati ibẹ, gba ero sharding tuntun ati gbe data sibẹ. Ati lori awọn olupin atijọ iwọ yoo nilo aaye kan ati idaji diẹ sii ju ti o wa ni bayi, nitori pe data atijọ gbọdọ wa lori wọn, ati idaji data atijọ kanna yoo de lori wọn. Ti o ba ro ni ilosiwaju pe data nilo lati tun tunṣe ati aaye wa, lẹhinna ọna yii dara.

Bawo ni Clickhouse-copier ṣiṣẹ inu? O fọ gbogbo iṣẹ naa sinu akojọpọ awọn iṣẹ ṣiṣe fun sisẹ ipin kan ti tabili kan lori shard kan. Gbogbo awọn iṣẹ-ṣiṣe wọnyi ni a le ṣe ni afiwe, ati pe ile-ẹda-ẹda le ṣee ṣiṣẹ lori awọn ẹrọ oriṣiriṣi ni awọn igba pupọ, ṣugbọn ohun ti o ṣe fun ipin kan kii ṣe diẹ sii ju fifi sii yan. Awọn data ti wa ni ka, decompressed, repartitioned, ki o si fisinuirindigbindigbin lẹẹkansi, kọ ibikan, ki o si tun-to awọn. Eleyi jẹ kan tougher ipinnu.

O ni ohun awaoko ti a npe ni resharding. Kini pẹlu rẹ?

Pada ni ọdun 2017, o ni ohun awakọ awakọ kan ti a pe ni resharding. Paapaa aṣayan kan wa ni ClickHouse. Bi mo ṣe ye mi, ko gba kuro. Ṣe o le sọ fun mi idi ti eyi fi ṣẹlẹ? O dabi pe o wulo pupọ.

Gbogbo iṣoro naa ni pe ti o ba jẹ dandan lati tun data pada si aaye, a nilo amuṣiṣẹpọ eka pupọ lati le ṣe eyi ni atomiki. Nigba ti a bẹrẹ lati wo bi amuṣiṣẹpọ yii ṣe n ṣiṣẹ, o han gbangba pe awọn iṣoro ipilẹ wa. Ati pe awọn iṣoro pataki wọnyi kii ṣe imọ-jinlẹ nikan, ṣugbọn lẹsẹkẹsẹ bẹrẹ lati fi ara wọn han ni iṣe ni irisi nkan ti o le ṣalaye ni irọrun - ko si ohun ti o ṣiṣẹ.

Ṣe o ṣee ṣe lati dapọ gbogbo awọn ege data papọ ṣaaju gbigbe si awọn disiki fa fifalẹ?

Ibeere nipa TTL pẹlu gbigbe lati fa fifalẹ aṣayan disk ni aaye ti awọn akojọpọ. Ṣe ọna kan wa, yatọ si nipasẹ cron, lati dapọ gbogbo awọn ẹya sinu ọkan ṣaaju gbigbe wọn si awọn disks fa fifalẹ?

Idahun si ibeere naa ni o ṣee ṣe lati lẹẹmọ laifọwọyi gbogbo awọn ege sinu ọkan ṣaaju gbigbe wọn - rara. Emi ko ro pe eyi jẹ dandan. O ko ni lati dapọ gbogbo awọn ẹya sinu ọkan, ṣugbọn ka lori otitọ pe wọn yoo gbe lọ si awọn disiki fa fifalẹ laifọwọyi.

A ni awọn ilana meji fun awọn ofin gbigbe. Eyi akọkọ jẹ bi o ti kun. Ti ipele ibi ipamọ lọwọlọwọ ba kere ju ipin kan ti aaye ọfẹ, a yan ṣoki kan ki o gbe lọ si ibi ipamọ ti o lọra. Tabi dipo, kii ṣe losokepupo, ṣugbọn atẹle - bi o ṣe tunto.

Iwọn keji jẹ iwọn. O jẹ nipa gbigbe awọn ege nla. O le ṣatunṣe ala ni ibamu si aaye ọfẹ lori disiki yara, ati pe data naa yoo gbe lọ laifọwọyi.

Bii o ṣe le jade lọ si awọn ẹya tuntun ti ClickHouse ti ko ba si ọna lati ṣayẹwo ibamu ni ilosiwaju?

Yi koko ti wa ni sísọ deede ni ClickHouse telegram iwiregbe mu sinu iroyin orisirisi awọn ẹya, ki o si tun. Bawo ni ailewu lati ṣe igbesoke lati ẹya 19.11 si 19.16 ati, fun apẹẹrẹ, lati 19.16 si 20.3. Kini ọna ti o dara julọ lati jade lọ si awọn ẹya tuntun laisi ni anfani lati ṣayẹwo ibamu ninu apoti iyanrin ni ilosiwaju?

Awọn ofin “goolu” pupọ wa nibi. Akoko - ka changelog. O tobi, ṣugbọn awọn paragira lọtọ wa nipa awọn iyipada ti ko ni ibamu. Maṣe tọju awọn aaye wọnyi bi asia pupa. Iwọnyi jẹ awọn aiṣedeede kekere ti o kan diẹ ninu iṣẹ ṣiṣe eti ti o ṣeeṣe pupọ ko lo.

Ni ẹẹkeji, ti ko ba si ọna lati ṣayẹwo ibamu ni apoti iyanrin, ati pe o fẹ lati mu imudojuiwọn lẹsẹkẹsẹ ni iṣelọpọ, iṣeduro ni pe o ko nilo lati ṣe eyi. Ni akọkọ ṣẹda apoti iyanrin ati idanwo. Ti ko ba si agbegbe idanwo, lẹhinna o ṣeese julọ ko ni ile-iṣẹ ti o tobi pupọ, eyiti o tumọ si pe o le daakọ diẹ ninu data naa si kọnputa agbeka rẹ ati rii daju pe ohun gbogbo ṣiṣẹ ni deede lori rẹ. O le paapaa gbe awọn ẹda pupọ soke ni agbegbe lori ẹrọ rẹ. Tabi o le gbe ẹya tuntun kan si ibikan nitosi ki o gbe diẹ ninu awọn data sibẹ - iyẹn ni, ṣẹda agbegbe idanwo imudara.

Ofin miiran kii ṣe imudojuiwọn fun ọsẹ kan lẹhin itusilẹ ti ikede nitori mimu awọn idun ni iṣelọpọ ati awọn atunṣe iyara to tẹle. Jẹ ki a ro nọmba ti awọn ẹya ClickHouse ki a maṣe daamu.

O wa ti ikede 20.3.4. Nọmba 20 tọkasi ọdun ti iṣelọpọ - 2020. Lati oju-ọna ti ohun ti o wa ninu, eyi ko ṣe pataki, nitorinaa a kii yoo ṣe akiyesi rẹ. Nigbamii - 20.3. A mu nọmba keji pọ si - ninu ọran yii 3 - ni gbogbo igba ti a ba tu idasilẹ pẹlu diẹ ninu awọn iṣẹ ṣiṣe tuntun. Ti a ba fẹ lati ṣafikun ẹya kan si ClickHouse, a gbọdọ pọ si nọmba yii. Iyẹn ni, ni ẹya 20.4 ClickHouse yoo ṣiṣẹ paapaa dara julọ. Nọmba kẹta jẹ 20.3.4. Nibi 4 ni nọmba awọn idasilẹ alemo ninu eyiti a ko ṣafikun awọn ẹya tuntun, ṣugbọn ti o wa titi diẹ ninu awọn idun. Ati pe 4 tumọ si pe a ṣe ni igba mẹrin.

Maṣe ro pe eyi jẹ nkan ẹru. Nigbagbogbo olumulo le fi ẹya tuntun sori ẹrọ ati pe yoo ṣiṣẹ laisi eyikeyi awọn iṣoro pẹlu akoko akoko fun ọdun kan. Ṣugbọn fojuinu pe ni diẹ ninu awọn iṣẹ fun sisẹ awọn bitmaps, eyiti a ṣafikun nipasẹ awọn ẹlẹgbẹ Kannada wa, olupin naa kọlu nigbati awọn ariyanjiyan ti ko tọ kọja. A ni ojuse lati ṣatunṣe eyi. A yoo tu ẹya tuntun patch silẹ ati ClickHouse yoo di iduroṣinṣin diẹ sii.

Ti o ba ni ClickHouse ti n ṣiṣẹ ni iṣelọpọ, ati ẹya tuntun ti ClickHouse wa pẹlu awọn ẹya afikun - fun apẹẹrẹ, 20.4.1 jẹ ọkan akọkọ, maṣe yara lati fi sii sinu iṣelọpọ ni ọjọ akọkọ. Kini idi ti o nilo rara? Ti o ko ba ti lo ClickHouse tẹlẹ, lẹhinna o le fi sii, ati pe o ṣee ṣe pe ohun gbogbo yoo dara. Ṣugbọn ti ClickHouse ti n ṣiṣẹ ni iduroṣinṣin, lẹhinna tọju awọn abulẹ ati awọn imudojuiwọn lati rii iru awọn iṣoro ti a n ṣatunṣe.

Kirill Shvakov: Emi yoo fẹ lati ṣafikun diẹ nipa awọn agbegbe idanwo. Gbogbo eniyan bẹru pupọ ti awọn agbegbe idanwo ati fun idi kan wọn gbagbọ pe ti o ba ni iṣupọ ClickHouse ti o tobi pupọ, lẹhinna agbegbe idanwo ko yẹ ki o kere tabi o kere ju igba mẹwa kere. Ko ri bee rara.

Mo le sọ fun ọ lati apẹẹrẹ ti ara mi. Mo ni ise agbese kan, ati ki o ClickHouse. Ayika idanwo wa jẹ fun u nikan - eyi jẹ ẹrọ foju kekere ni Hetzner fun ogun awọn owo ilẹ yuroopu, nibiti ohun gbogbo ti gbe lọ patapata. Lati ṣe eyi, a ni adaṣe ni kikun ni Ansible, ati nitorinaa, ni ipilẹ, ko ṣe iyatọ nibiti o le lọ - si awọn olupin ohun elo tabi o kan ran lọ ni awọn ẹrọ foju.

Kini o le ṣee ṣe? Yoo dara lati pese apẹẹrẹ ninu iwe ClickHouse lori bi o ṣe le fi iṣupọ kekere ranṣẹ si ile tirẹ - ni Docker, ni LXC, boya ṣẹda iwe-iṣere Ansible, nitori awọn eniyan oriṣiriṣi ni awọn imuṣiṣẹ oriṣiriṣi. Eyi yoo jẹ ki o rọrun pupọ. Nigbati o ba mu ati mu iṣupọ kan ṣiṣẹ ni iṣẹju marun, o rọrun pupọ lati gbiyanju lati ro ero nkan kan. Eyi jẹ irọrun pupọ diẹ sii, nitori yiyi sinu ẹya iṣelọpọ ti o ko ṣe idanwo jẹ opopona si ibikibi. Nigba miiran o ṣiṣẹ ati nigba miiran kii ṣe. Ati nitorinaa, ireti fun aṣeyọri jẹ buburu.

Maxim Kotyakov, ẹlẹrọ ẹhin agba agba Avito: Emi yoo ṣafikun diẹ diẹ nipa awọn agbegbe idanwo lati ọpọlọpọ awọn iṣoro ti o dojuko nipasẹ awọn ile-iṣẹ nla. A ni iṣupọ itẹwọgba ClickHouse ti o ni kikun; ni awọn ofin ti awọn ero data ati awọn eto, o jẹ ẹda gangan ti ohun ti o wa ni iṣelọpọ. Iṣupọ yii ti wa ni ransogun sinu awọn apoti isunsilẹ iṣẹtọ pẹlu awọn orisun ti o kere ju. A kọ kan awọn ogorun ti gbóògì data nibẹ, da o jẹ ṣee ṣe lati tun awọn ṣiṣan ni Kafka. Ohun gbogbo ti o wa nibẹ ni a muuṣiṣẹpọ ati iwọn - mejeeji ni awọn ofin ti agbara ati sisan, ati, ni imọran, gbogbo awọn ohun miiran jẹ dọgba, o yẹ ki o huwa bi iṣelọpọ ni awọn ofin ti awọn metiriki. Ohun gbogbo ti o le fa ibẹjadi ni akọkọ yiyi sori iduro yii ati fi silẹ nibẹ fun ọpọlọpọ awọn ọjọ titi di igba ti o ṣetan. Ṣugbọn nipa ti ara, ojutu yii jẹ gbowolori, nira ati pe o ni awọn idiyele atilẹyin ti kii-odo.

Alexei Milovidov: Emi yoo sọ fun ọ kini agbegbe idanwo ti awọn ọrẹ wa lati Yandex.Metrica dabi. Iṣupọ kan ni awọn olupin 600-odd, miiran ni 360, ati pe ẹgbẹ kẹta wa ati ọpọlọpọ awọn iṣupọ. Ayika idanwo fun ọkan ninu wọn jẹ awọn shards meji nikan pẹlu awọn ẹda meji ni ọkọọkan. Kí nìdí meji shards? Ki o ko ba wa nikan. Ati pe awọn ẹda tun yẹ ki o wa. O kan kan awọn kere iye ti o le irewesi.

Ayika idanwo yii gba ọ laaye lati ṣayẹwo boya awọn ibeere rẹ n ṣiṣẹ ati ti ohunkohun pataki ba bajẹ. Ṣugbọn nigbagbogbo awọn iṣoro dide ti iseda ti o yatọ patapata, nigbati ohun gbogbo ba ṣiṣẹ, ṣugbọn awọn ayipada kekere wa ninu ẹru naa.

Jẹ ki n fun ọ ni apẹẹrẹ. A pinnu lati fi ẹya tuntun ti ClickHouse sori ẹrọ. O ti fiweranṣẹ lori agbegbe idanwo, awọn idanwo adaṣe ti pari ni Yandex.Metrica funrararẹ, eyiti o ṣe afiwe data lori ẹya atijọ ati tuntun, ṣiṣe gbogbo opo gigun ti epo. Ati pe dajudaju, awọn idanwo alawọ ewe ti CI wa. Bibẹẹkọ a kii yoo paapaa ti dabaa ẹya yii.

Ohun gbogbo dara. A bẹrẹ lati lọ si iṣelọpọ. Mo gba ifiranṣẹ kan pe fifuye lori awọn aworan ti pọ ni igba pupọ. A n yi ẹya naa pada. Mo wo aworan naa ki o rii: ẹru naa pọ si ni ọpọlọpọ igba lakoko yiyi, ati dinku sẹhin nigbati wọn yipo. Lẹhinna a bẹrẹ si yiyi ẹya naa pada. Ati ẹru naa pọ ni ọna kanna o si ṣubu pada ni ọna kanna. Nitorina ipari ni eyi: fifuye ti pọ si nitori ifilelẹ, ko si ohun iyanu.

Lẹhinna o nira lati parowa fun awọn ẹlẹgbẹ lati fi ẹya tuntun sori ẹrọ. Mo sọ pe: “O dara, yi jade. Jeki awọn ika ọwọ rẹ kọja, ohun gbogbo yoo ṣiṣẹ. Bayi fifuye lori awọn aworan ti pọ si, ṣugbọn ohun gbogbo dara. Duro nibẹ." Ni gbogbogbo, a ṣe eyi, ati pe iyẹn ni - ẹya ti tu silẹ fun iṣelọpọ. Ṣugbọn fere pẹlu gbogbo akọkọ awọn iṣoro ti o jọra dide.

Ibeere pipa ni o yẹ lati pa awọn ibeere, ṣugbọn kii ṣe. Kí nìdí?

Olumulo kan, diẹ ninu iru atunnkanka, wa si mi o ṣẹda ibeere ti o fi iṣupọ ClickHouse mi. Diẹ ninu awọn ipade tabi gbogbo iṣupọ, da lori iru ẹda tabi shard ti ibeere naa lọ si. Mo rii pe gbogbo awọn orisun Sipiyu lori olupin yii wa ni selifu, ohun gbogbo jẹ pupa. Ni akoko kanna, ClickHouse funrararẹ dahun si awọn ibeere. Ati pe Mo kọ: “Jọwọ fihan mi, atokọ ilana, ibeere wo ni o ṣẹda isinwin yii.”

Mo wa ibeere yii ati kọ pa si. Mo si rii pe ko si nkan ti o ṣẹlẹ. Olupin mi wa ni selifu, ClickHouse lẹhinna fun mi ni diẹ ninu awọn aṣẹ, fihan pe olupin wa laaye, ati pe ohun gbogbo dara. Ṣugbọn Mo ni ibajẹ ni gbogbo awọn ibeere olumulo, ibajẹ bẹrẹ pẹlu awọn igbasilẹ ni ClickHouse, ati pe ibeere pipa mi ko ṣiṣẹ. Kí nìdí? Mo ro pe pa ibeere yẹ lati pa awọn ibeere, sugbon ko.

Bayi nibẹ ni yio je kan dipo ajeji idahun. Awọn ojuami ni wipe pa ìbéèrè ko ni pa awọn ibeere.

Pa ibeere ti o ṣayẹwo apoti kekere kan ti a pe ni "Mo fẹ ki a pa ibeere yii." Ati pe ibeere funrararẹ n wo asia yii nigbati o ba n ṣiṣẹ bulọọki kọọkan. Ti o ba ṣeto, ibeere naa ma duro ṣiṣẹ. O wa ni pe ko si ẹnikan ti o pa ibeere naa, on tikararẹ gbọdọ ṣayẹwo ohun gbogbo ki o da duro. Ati pe eyi yẹ ki o ṣiṣẹ ni gbogbo awọn ọran nibiti ibeere naa wa ni ipo ti awọn bulọọki sisẹ data. Yoo ṣe ilana bulọọki data atẹle, ṣayẹwo asia, ati da duro.

Eyi ko ṣiṣẹ ni awọn ọran nibiti ibeere ti dinamọ lori diẹ ninu awọn iṣẹ ṣiṣe. Otitọ, o ṣeese julọ pe eyi kii ṣe ọran rẹ, nitori, ni ibamu si rẹ, o nlo pupọ ti awọn orisun olupin. O ṣee ṣe pe eyi ko ṣiṣẹ ninu ọran ti iyasọtọ ita ati ni diẹ ninu awọn alaye miiran. Ṣugbọn ni gbogbogbo eyi ko yẹ ki o ṣẹlẹ, o jẹ kokoro kan. Ati pe ohun kan ti Mo le ṣeduro ni lati ṣe imudojuiwọn ClickHouse.

Bii o ṣe le ṣe iṣiro akoko idahun labẹ fifuye kika?

Tabili kan wa ti o tọju awọn akojọpọ ohun kan - awọn iṣiro oriṣiriṣi. Nọmba awọn ila jẹ isunmọ ọgọrun milionu. Ṣe o ṣee ṣe lati ka lori akoko esi asọtẹlẹ ti o ba tú 1K RPS fun awọn ohun 1K?

Ni idajọ nipasẹ ọrọ-ọrọ, a n sọrọ nipa fifuye kika, nitori pe ko si awọn iṣoro pẹlu kikọ - paapaa ẹgbẹrun, paapaa ọgọrun ẹgbẹrun, ati nigbakan ọpọlọpọ awọn ori ila milionu le fi sii.

Awọn ibeere kika yatọ pupọ. Ni yiyan 1, ClickHouse le ṣe nipa awọn ẹgbẹẹgbẹrun awọn ibeere fun iṣẹju keji, nitorinaa paapaa awọn ibeere fun bọtini kan yoo nilo awọn orisun tẹlẹ. Ati pe iru awọn ibeere aaye yoo nira sii ju diẹ ninu awọn apoti isura data iye-bọtini, nitori fun kika kọọkan o jẹ dandan lati ka bulọọki data nipasẹ atọka. Awọn adirẹsi atọka wa kii ṣe igbasilẹ kọọkan, ṣugbọn sakani kọọkan. Iyẹn ni, iwọ yoo ni lati ka gbogbo ibiti - eyi jẹ awọn laini 8192 nipasẹ aiyipada. Ati pe iwọ yoo ni lati decompress bulọọki data fisinuirindigbindigbin lati 64 KB si 1 MB. Ni deede, iru awọn ibeere ifọkansi bẹẹ gba awọn milliseconds diẹ lati pari. Ṣugbọn eyi jẹ aṣayan ti o rọrun julọ.

Jẹ ká gbiyanju diẹ ninu awọn ti o rọrun isiro. Ti o ba sọ awọn milliseconds diẹ sii nipasẹ ẹgbẹrun, o gba iṣẹju diẹ. O dabi ẹnipe ko ṣee ṣe lati tọju awọn ibeere ẹgbẹrun fun iṣẹju keji, ṣugbọn ni otitọ o ṣee ṣe, nitori a ni ọpọlọpọ awọn ohun kohun ero isise. Nitorinaa, ni ipilẹ, ClickHouse le mu 1000 RPS nigbakan, ṣugbọn fun awọn ibeere kukuru, awọn ti a fojusi ni pataki.

Ti o ba nilo lati ṣe iwọn iṣupọ ClickHouse nipasẹ nọmba awọn ibeere ti o rọrun, lẹhinna Mo ṣeduro ohun ti o rọrun julọ - pọ si nọmba awọn ẹda ati firanṣẹ awọn ibeere si ajọra laileto. Ti ẹda kan ba mu awọn ibeere ọgọrun marun ni iṣẹju-aaya, eyiti o jẹ ojulowo patapata, lẹhinna awọn ẹda mẹta yoo mu ẹgbẹrun kan ati idaji.

Nigba miiran, nitorinaa, o le tunto ClickHouse fun nọmba ti o pọ julọ ti awọn kika aaye. Kini a nilo fun eyi? Ohun akọkọ ni lati dinku granularity ti atọka. Ni idi eyi, ko yẹ ki o dinku si ọkan, ṣugbọn lori ipilẹ pe nọmba awọn titẹ sii ninu atọka yoo jẹ milionu pupọ tabi awọn mewa ti milionu fun olupin. Ti tabili ba ni awọn ori ila ọgọrun miliọnu, lẹhinna granularity le ṣeto si 64.

O le din awọn iwọn ti awọn fisinuirindigbindigbin Àkọsílẹ. Awọn eto wa fun eyi min compress Àkọsílẹ iwọn, max compress Àkọsílẹ iwọn. Wọn le dinku, tun kun pẹlu data, lẹhinna awọn ibeere ifọkansi yoo yarayara. Ṣugbọn sibẹ, ClickHouse kii ṣe aaye data-iye bọtini. Nọmba nla ti awọn ibeere kekere jẹ antipattern fifuye kan.

Kirill Shvakov: Emi yoo fun imọran ti o ba jẹ pe awọn akọọlẹ lasan wa nibẹ. Eyi jẹ ipo idiwọn deede nigbati ClickHouse tọju iru counter kan. Mo ni olumulo kan, o wa lati iru ati iru orilẹ-ede kan, ati diẹ ninu awọn aaye kẹta, ati pe Mo nilo lati mu nkan pọ si ni afikun. Mu MySQL, ṣe bọtini alailẹgbẹ - ni MySQL o jẹ bọtini ẹda-ẹda, ati ni PostgreSQL o jẹ rogbodiyan - ati ṣafikun ami afikun kan. Eleyi yoo ṣiṣẹ Elo dara.

Nigbati o ko ba ni data pupọ, ko si aaye pupọ ni lilo ClickHouse. Awọn apoti isura infomesonu deede wa ati pe wọn ṣe eyi daradara.

Kini MO le tweak ni ClickHouse ki data diẹ sii wa ninu kaṣe naa?

Jẹ ki a fojuinu ipo kan - awọn olupin ni 256 GB ti Ramu, ni ṣiṣe ojoojumọ ClickHouse gba nipa 60-80 GB, ni tente oke - to 130. Kini o le mu ṣiṣẹ ati tweaked ki data diẹ sii wa ninu kaṣe ati, ni ibamu, awọn irin ajo diẹ si disiki naa?

Ni deede, kaṣe oju-iwe ti ẹrọ ṣiṣe n ṣe iṣẹ to dara ti eyi. Ti o ba kan ṣii oke, wo nibẹ cache tabi ọfẹ - o tun sọ iye ti o wa ni ipamọ - lẹhinna o yoo ṣe akiyesi pe gbogbo iranti ọfẹ ni a lo fun kaṣe naa. Ati nigba kika data yii, kii ṣe lati disk, ṣugbọn lati Ramu. Ni akoko kanna, Mo le sọ pe a lo kaṣe naa ni imunadoko nitori pe o jẹ data fisinuirindigbindigbin ti o jẹ cache.

Sibẹsibẹ, ti o ba fẹ lati yara diẹ ninu awọn ibeere ti o rọrun paapaa diẹ sii, o ṣee ṣe lati mu kaṣe kan ṣiṣẹ ninu data idinku ninu ClickHouse. O ti wa ni a npe ni uncompressed kaṣe. Ninu faili atunto config.xml, ṣeto iwọn kaṣe ti ko ni iwọn si iye ti o nilo - Mo ṣeduro ko ju idaji Ramu ọfẹ lọ, nitori iyokù yoo lọ labẹ kaṣe oju-iwe naa.

Ni afikun, awọn eto ipele ibeere meji wa. Eto akọkọ - lo uncompressed kaṣe - pẹlu lilo rẹ. O ti wa ni niyanju lati jeki o fun gbogbo awọn ibeere, ayafi eru, eyi ti o le ka gbogbo awọn data ki o si fọ awọn kaṣe. Ati eto keji jẹ nkan bi nọmba ti o pọju ti awọn ila lati lo kaṣe. O ṣe idinwo awọn ibeere nla laifọwọyi ki wọn fori kaṣe naa.

Bawo ni MO ṣe le tunto ipamọ_configuration fun ibi ipamọ ni Ramu?

Ninu iwe ClickHouse tuntun Mo ka apakan ti o ni ibatan pẹlu ipamọ data. Apejuwe naa ni apẹẹrẹ pẹlu SSD iyara.

Mo Iyanu bawo ni ohun kanna le wa ni tunto pẹlu iwọn didun gbona iranti. Ati ibeere kan diẹ sii. Bawo ni yan iṣẹ pẹlu agbari data yii, yoo ka gbogbo eto tabi ọkan ti o wa lori disiki nikan, ati pe data yii jẹ fisinuirindigbindigbin ni iranti? Ati bawo ni apakan ibi-iṣaaju ṣiṣẹ pẹlu iru agbari data kan?

Eto yii ni ipa lori ibi ipamọ data chunks, ati pe ọna kika wọn ko yipada ni eyikeyi ọna.
Jẹ ki a ṣe akiyesi diẹ sii.

O le tunto ibi ipamọ data ni Ramu. Gbogbo ohun ti o tunto fun disk ni ọna rẹ. O ṣẹda ipin tmpfs ti a gbe si ọna diẹ ninu eto faili naa. O pato ọna yii bi ọna fun titoju data fun ipin ti o gbona julọ, awọn ege data bẹrẹ lati de ati kọ sibẹ, ohun gbogbo dara.

Ṣugbọn Emi ko ṣeduro ṣiṣe eyi nitori igbẹkẹle kekere, botilẹjẹpe ti o ba ni o kere ju awọn ẹda mẹta ni awọn ile-iṣẹ data oriṣiriṣi, lẹhinna o ṣee ṣe. Ti ohunkohun ba ṣẹlẹ, data naa yoo pada. Jẹ ki a fojuinu pe olupin naa ti wa ni pipa lojiji o si tan-an pada. Awọn ipin ti a agesin lẹẹkansi, ṣugbọn nibẹ ni ohunkohun nibẹ. Nigbati olupin ClickHouse bẹrẹ, o rii pe ko ni awọn ege wọnyi, botilẹjẹpe, ni ibamu si metadata ZooKeeper, wọn yẹ ki o wa nibẹ. O wo iru awọn ẹda ti o ni wọn, beere wọn ati ṣe igbasilẹ wọn. Ni ọna yii a yoo mu data pada.

Ni ori yii, titoju data ni Ramu ko yatọ si ipilẹ lati titoju lori disiki, nitori nigbati a ba kọ data si disk, o tun pari ni akọkọ ni kaṣe oju-iwe ati pe a kọ ni ti ara nigbamii. Eyi da lori aṣayan iṣagbesori eto faili. Ṣugbọn ni ọran, Emi yoo sọ pe ClickHouse ko ṣiṣẹ nigbati o ba fi sii.

Ni idi eyi, data ti o wa ninu Ramu ti wa ni ipamọ ni ọna kika kanna gẹgẹbi lori disk. Ibeere yiyan ni ọna kanna yan awọn ege ti o nilo lati ka, yan awọn sakani data pataki ni awọn ege, ki o ka wọn. Ati pe ibi iṣaaju n ṣiṣẹ gangan kanna, laibikita boya data wa ni Ramu tabi lori disiki.

Titi di nọmba awọn iye alailẹgbẹ wo ni Cardinality Low munadoko?

Kekere Cardinality ti wa ni cleverly apẹrẹ. O ṣe akojọpọ awọn iwe-itumọ data, ṣugbọn wọn jẹ agbegbe. Ni akọkọ, awọn iwe-itumọ oriṣiriṣi wa fun nkan kọọkan, ati keji, paapaa laarin nkan kan wọn le yatọ fun iwọn kọọkan. Nigbati nọmba awọn iye alailẹgbẹ ba de nọmba ala-ilẹ kan — miliọnu kan, Mo ro pe — iwe-itumọ ti wa ni ipamọ nirọrun ati pe a ṣẹda tuntun kan.

Idahun si jẹ ni gbogbogbo: fun agbegbe kọọkan - sọ, fun ọjọ kọọkan - ni ibi kan to awọn iye alailẹgbẹ miliọnu kan kekere Cardinality jẹ doko. Lẹhin naa yoo jẹ ifẹhinti lasan, ninu eyiti ọpọlọpọ awọn iwe-itumọ oriṣiriṣi yoo ṣee lo, kii ṣe ọkan kan. Yoo ṣiṣẹ ni isunmọ kanna bi iwe okun deede, boya diẹ kere si daradara, ṣugbọn kii yoo si ibajẹ iṣẹ ṣiṣe to ṣe pataki.

Kini awọn iṣe ti o dara julọ fun wiwa tabili ni kikun-ọrọ pẹlu awọn ori ila bilionu marun?

Awọn idahun oriṣiriṣi wa. Akọkọ ni lati sọ pe ClickHouse kii ṣe ẹrọ wiwa ọrọ-kikun. Awọn eto pataki wa fun eyi, fun apẹẹrẹ, Elasticsearch и Sphinx. Sibẹsibẹ, Mo n rii diẹ sii awọn eniyan ti n sọ pe wọn yipada lati Elasticsearch si ClickHouse.

Kini idi ti eyi fi ṣẹlẹ? Wọn ṣe alaye eyi nipasẹ otitọ pe Elasticsearch dawọ lati koju ẹru naa ni diẹ ninu awọn ipele, bẹrẹ pẹlu ikole awọn atọka. Awọn atọka di pupọ ju, ati pe ti o ba gbe data nirọrun si ClickHouse, o han pe wọn ti fipamọ ni ọpọlọpọ igba diẹ sii daradara ni awọn ofin ti iwọn didun. Ni akoko kanna, awọn ibeere wiwa nigbagbogbo kii ṣe iru bẹ pe o jẹ dandan lati wa gbolohun kan ni gbogbo iwọn didun ti data, ni akiyesi morphology, ṣugbọn awọn ti o yatọ patapata. Fun apẹẹrẹ, wa diẹ ninu awọn atẹle ti awọn baiti ninu awọn akọọlẹ ni awọn wakati diẹ sẹhin.

Ni idi eyi, o ṣẹda atọka ni ClickHouse, aaye akọkọ eyiti yoo jẹ ọjọ ati akoko. Ati gige data ti o tobi julọ yoo da lori iwọn ọjọ. Laarin awọn sakani ọjọ ti a yan, gẹgẹbi ofin, o ti ṣee ṣe tẹlẹ lati ṣe wiwa ọrọ ni kikun, paapaa ni lilo ọna agbara iro ni lilo bii. Oṣiṣẹ bii ni ClickHouse jẹ imudara julọ bi oniṣẹ ti o le rii. Ti o ba ri nkan ti o dara julọ, sọ fun mi.

Ṣugbọn sibẹ, bii ọlọjẹ kikun. Ati pe ọlọjẹ kikun le lọra kii ṣe lori Sipiyu nikan, ṣugbọn tun lori disiki naa. Ti o ba ni data lojiji terabyte kan fun ọjọ kan, ti o ba wa ọrọ kan lakoko ọsan, lẹhinna o ni lati ṣayẹwo terabyte naa. Ati pe o ṣee ṣe lori awọn dirafu lile deede, ati ni ipari wọn yoo jẹ fifuye ni ọna ti iwọ kii yoo ni anfani lati wọle si olupin yii nipasẹ SSH.

Ni idi eyi, Mo ṣetan lati funni ni ẹtan kekere kan diẹ sii. O jẹ adanwo - o le ṣiṣẹ, o le ma ṣe. ClickHouse ni awọn atọka ọrọ-kikun ni irisi trigram Bloom Ajọ. Awọn ẹlẹgbẹ wa ni Arenadata ti gbiyanju awọn atọka wọnyi tẹlẹ, ati pe wọn nigbagbogbo ṣiṣẹ ni deede bi a ti pinnu.

Lati le lo wọn ni deede, o yẹ ki o ni oye ti o dara ni deede bi wọn ṣe n ṣiṣẹ: kini trigram Bloom àlẹmọ ati bii o ṣe le yan iwọn rẹ. Mo le sọ pe wọn yoo ṣe iranlọwọ fun awọn ibeere lori diẹ ninu awọn gbolohun ọrọ to ṣọwọn, awọn gbolohun ọrọ ti a ko rii ninu data naa. Ni ọran yii, awọn ipin-ipin yoo yan nipasẹ awọn atọka ati pe data kere yoo jẹ kika.

Laipẹ, ClickHouse ti ṣafikun paapaa awọn iṣẹ ilọsiwaju diẹ sii fun wiwa ọrọ-kikun. Eyi ni, ni akọkọ, wiwa fun opo kan ti awọn gbolohun ọrọ ni ẹẹkan ni iwe-iwọle kan, pẹlu awọn aṣayan ti o jẹ aibikita, ọran-aibikita, pẹlu atilẹyin fun UTF-8 tabi fun ASCII nikan. Yan eyi ti o munadoko julọ ti o nilo.

Wa fun ọpọ awọn ikosile deede ni iwe-iwọle kan tun ti han. Iwọ ko nilo lati kọ X bii okun-okun kan tabi X bii okun-okun miiran. O kọ lẹsẹkẹsẹ, ati pe ohun gbogbo ni a ṣe daradara bi o ti ṣee.

Ẹkẹta, wiwa isunmọ wa fun awọn regexps ati wiwa isunmọ fun awọn gbolohun ọrọ. Ti ẹnikan ba ṣi ọrọ kan, yoo wa fun ibaamu ti o pọju.

Kini ọna ti o dara julọ lati ṣeto iraye si ClickHouse fun nọmba nla ti awọn olumulo?

Sọ fun wa bii o ṣe dara julọ lati ṣeto iraye si fun nọmba nla ti awọn alabara ati awọn atunnkanka. Bii o ṣe le ṣe isinyi, ṣe pataki awọn ibeere igbakọọkan ti o pọju, ati pẹlu awọn irinṣẹ wo?

Ti iṣupọ ba tobi to, lẹhinna ojutu ti o dara yoo jẹ lati gbe awọn olupin meji diẹ sii, eyiti yoo di aaye titẹsi fun awọn atunnkanka. Iyẹn ni, maṣe gba awọn atunnkanka laaye lati wọle si awọn shards kan pato ninu iṣupọ, ṣugbọn nirọrun ṣẹda awọn olupin ṣofo meji, laisi data, ati tunto awọn ẹtọ wiwọle si wọn. Ni idi eyi, awọn eto olumulo fun awọn ibeere ti o pin ni a gbe lọ si olupin latọna jijin. Iyẹn ni, o tunto ohun gbogbo lori awọn olupin meji wọnyi, ati awọn eto ni ipa lori gbogbo iṣupọ.

Ni opo, awọn olupin wọnyi ko ni data, ṣugbọn iye Ramu lori wọn jẹ pataki pupọ fun ṣiṣe awọn ibeere. Disiki naa tun le ṣee lo fun data igba diẹ ti akopọ ita tabi tito lẹsẹsẹ ita ti ṣiṣẹ.

O ṣe pataki lati wo awọn eto ti o ni nkan ṣe pẹlu gbogbo awọn opin ti o ṣeeṣe. Ti MO ba lọ si iṣupọ Yandex.Metrica bayi bi oluyanju ati beere ibeere kan yan kika lati deba, lẹhinna Emi yoo fun mi ni imukuro lẹsẹkẹsẹ ti Emi ko le ṣe ibeere naa. Nọmba ti o pọ julọ ti awọn ori ila ti a gba mi laaye lati ṣayẹwo jẹ ọgọrun bilionu, ati ni apapọ wọn jẹ aadọta aimọye ninu tabili kan lori iṣupọ naa. Eyi ni aropin akọkọ.

Jẹ ká sọ pé mo ti yọ awọn kana iye ati ṣiṣe awọn ibeere lẹẹkansi. Lẹhinna Emi yoo rii imukuro atẹle - eto ṣiṣẹ ipa atọka nipa ọjọ. Mi o le pari ibeere naa ti Emi ko ba ti ṣalaye ibiti ọjọ kan. O ko ni lati gbẹkẹle awọn atunnkanka lati sọ pato rẹ pẹlu ọwọ. Ọran aṣoju jẹ nigbati a ti kọ iwọn ọjọ kan nibiti ọjọ iṣẹlẹ laarin ọsẹ. Ati lẹhin naa wọn ṣalaye akọmọ kan ni aaye ti ko tọ, ati dipo ati pe o wa ni tabi - tabi ibaramu URL. Ti ko ba si opin, yoo ra oju-iwe URL ati ki o kan padanu pupọ ti awọn orisun.

Ni afikun, ClickHouse ni awọn eto pataki meji. Laanu, wọn jẹ alakoko pupọ. Ọkan ti wa ni nìkan a npe ni ni ayo. Ti o ba ti ni ayo ≠ 0, ati awọn ibeere pẹlu diẹ ninu awọn ayo ti wa ni ṣiṣe, ṣugbọn a ìbéèrè pẹlu kan ni ayo iye ti o kere ju, eyi ti o tumo si kan ti o ga ni ayo, ki o si a ìbéèrè pẹlu kan ayo iye ti o tobi, eyi ti o tumo a kekere ni ayo. , ti wa ni nìkan ti daduro ati ki o ko yoo ṣiṣẹ ni gbogbo nigba akoko yi.

Eyi jẹ eto robi pupọ ati pe ko dara fun awọn ọran nibiti iṣupọ naa ni ẹru igbagbogbo. Ṣugbọn ti o ba ni kukuru, awọn ibeere ti nwaye ti o ṣe pataki, ati iṣupọ naa ko ṣiṣẹ, iṣeto yii dara.

Eto ayo atẹle ni a npe ni OS o tẹle ayo. O rọrun ṣeto iye to wuyi fun gbogbo awọn okun ipaniyan ibeere fun oluṣeto Linux. O ṣiṣẹ bẹ-bẹ, ṣugbọn o tun ṣiṣẹ. Ti o ba ṣeto iye ti o wuyi ti o kere ju - o jẹ ti o tobi julọ ni iye, ati nitorinaa ni ayo ti o kere julọ - ati ṣeto -19 fun awọn ibeere pẹlu pataki giga, lẹhinna Sipiyu yoo jẹ awọn ibeere pataki-kekere ni igba mẹrin kere ju awọn pataki-pataki lọ.

O tun nilo lati tunto akoko ipaniyan ibeere ti o pọju - sọ, iṣẹju marun. Iyara ti o kere ju ti ipaniyan ibeere jẹ ohun tutu julọ. Eto yii ti wa ni ayika fun igba pipẹ, ati pe o nilo kii ṣe lati sọ nikan pe ClickHouse ko fa fifalẹ, ṣugbọn lati fi ipa mu u.

Fojuinu, o ṣeto: ti diẹ ninu awọn ilana ibeere kere ju awọn ori ila miliọnu kan fun iṣẹju kan, o ko le ṣe iyẹn. Eyi dojuti orukọ rere wa, ibi ipamọ data ti o dara wa. Jẹ ká kan gbesele yi. Nibẹ ni o wa kosi meji eto. Ọkan ni a npe ni min iyara ipaniyan - ni awọn laini fun iṣẹju-aaya, ati pe keji ni a pe ni akoko asiko ṣaaju ṣiṣe ayẹwo iyara ipaniyan min - iṣẹju-aaya mẹdogun nipasẹ aiyipada. Iyẹn ni, awọn aaya mẹdogun ṣee ṣe, ati lẹhinna, ti o ba lọra, lẹhinna kan jabọ imukuro kan ki o fagile ibeere naa.

O tun nilo lati ṣeto awọn ipin. ClickHouse ni ẹya-ara ipin-itumọ ti o ka agbara awọn orisun. Ṣugbọn, laanu, kii ṣe awọn orisun ohun elo bii Sipiyu, awọn disiki, ṣugbọn awọn ọgbọn - nọmba awọn ibeere ti a ṣe ilana, awọn ila ati awọn baiti ka. Ati pe o le tunto, fun apẹẹrẹ, o pọju awọn ibeere ọgọrun laarin iṣẹju marun ati ẹgbẹrun awọn ibeere fun wakati kan.

Kini idi ti o ṣe pataki? Nitori diẹ ninu awọn ibeere atupale yoo ṣee ṣe pẹlu ọwọ taara lati ọdọ alabara ClickHouse. Ati pe gbogbo rẹ yoo dara. Ṣugbọn ti o ba ni awọn atunnkanka to ti ni ilọsiwaju ninu ile-iṣẹ rẹ, wọn yoo kọ iwe afọwọkọ, ati pe aṣiṣe le wa ninu iwe afọwọkọ naa. Ati aṣiṣe yii yoo fa ki ibeere naa ṣiṣẹ ni lupu ailopin. Eyi ni ohun ti a nilo lati daabobo ara wa lati.

Ṣe o ṣee ṣe lati fun awọn abajade ibeere kan si awọn alabara mẹwa?

A ni ọpọlọpọ awọn olumulo ti o nifẹ lati wọle pẹlu awọn ibeere ti o tobi pupọ ni aaye kanna ni akoko. Ibeere naa tobi ati, ni opo, ti a ṣe ni kiakia, ṣugbọn nitori otitọ pe ọpọlọpọ awọn ibeere bẹ ni akoko kanna, o di irora pupọ. Ṣe o ṣee ṣe lati ṣiṣẹ ibeere kanna, eyiti o de igba mẹwa ni ọna kan, lẹẹkan, ati fun abajade si awọn alabara mẹwa?

Iṣoro naa ni pe a ko ni awọn abajade ti kaṣe tabi kaṣe ti data agbedemeji. Kaṣe oju-iwe kan wa ti ẹrọ ṣiṣe, eyiti yoo ṣe idiwọ fun ọ lati ka data lati disiki lẹẹkansi, ṣugbọn, laanu, data naa yoo tun jẹ idinku, deserialized ati tun ṣe.

Emi yoo fẹ lati yago fun eyi bakan, boya nipa caching data agbedemeji, tabi nipa tito awọn ibeere ti o jọra ni iru isinyi ati fifi kaṣe esi kan kun. Lọwọlọwọ a ni ibeere fa ọkan ninu idagbasoke ti o ṣafikun kaṣe ibeere kan, ṣugbọn fun awọn ibeere abẹlẹ nikan ni inu ati darapọ mọ awọn apakan - iyẹn ni, ojutu naa ko pe.

Sibẹsibẹ, a tun koju iru ipo bẹẹ. Apeere pataki kan jẹ awọn ibeere oju-iwe. Iroyin kan wa, o ni awọn oju-iwe pupọ, ati pe ibeere kan wa fun opin 10. Lẹhinna ohun kanna, ṣugbọn opin 10,10. Lẹhinna oju-iwe atẹle miiran. Ati ibeere naa ni, kilode ti a fi ka gbogbo eyi ni gbogbo igba? Ṣugbọn nisisiyi ko si ojutu, ati pe ko si ọna lati yago fun.

Ojutu yiyan wa ti o gbe bi ọkọ ayọkẹlẹ ẹgbẹ lẹgbẹẹ ClickHouse - Aṣoju ClickHouse.

Kirill Shvakov: Aṣoju ClickHouse ni aropin oṣuwọn ti a ṣe sinu ati kaṣe abajade abajade. Ọpọlọpọ awọn eto ni a ṣe nibẹ nitori pe iru iṣoro kan ti n yanju. Aṣoju n gba ọ laaye lati ṣe idinwo awọn ibeere nipa tite wọn ati tunto bi kaṣe ibeere naa ṣe gun to. Ti awọn ibeere naa ba jẹ kanna, Aṣoju yoo firanṣẹ wọn ni ọpọlọpọ igba, ṣugbọn yoo lọ si ClickHouse ni ẹẹkan.

Nginx tun ni kaṣe ninu ẹya ọfẹ, ati pe eyi yoo tun ṣiṣẹ. Nginx paapaa ni awọn eto ti awọn ibeere ba de ni akoko kanna, yoo fa fifalẹ awọn miiran titi ọkan yoo fi pari. Ṣugbọn o wa ni Aṣoju ClickHouse pe iṣeto naa ti ṣe dara julọ. O ṣe pataki fun ClickHouse, pataki fun awọn ibeere wọnyi, nitorinaa o dara julọ. O dara, o rọrun lati fi sori ẹrọ.

Kini nipa awọn iṣẹ asynchronous ati awọn iwo ohun elo?

Iṣoro kan wa pe awọn iṣẹ pẹlu ẹrọ atunwi jẹ asynchronous - akọkọ data ti kọ, lẹhinna o ṣubu. Ti tabulẹti ti a fi nkan ṣe pẹlu diẹ ninu awọn akojọpọ n gbe labẹ ami naa, lẹhinna awọn ẹda-ẹda yoo kọ si. Ati pe ti ko ba si imọran ti o nipọn, lẹhinna data naa yoo jẹ pidánpidán. Kini o le ṣe nipa rẹ?

Ojutu ti o han gedegbe wa - lati ṣe imuse okunfa kan lori kilasi kan ti awọn iwoye lakoko iṣẹ iṣubu asynchronous. Ṣe awọn ọta ibọn fadaka eyikeyi tabi awọn ero lati ṣe iṣẹ ṣiṣe ti o jọra bi?

O tọ lati ni oye bi iyokuro iṣẹ. Ohun ti Emi yoo sọ fun ọ ni bayi ko ṣe pataki si ibeere naa, ṣugbọn o kan ni ọran ti o tọ lati ranti.

Nigbati o ba nfi sii sinu tabili ti a ṣe atunṣe, iyọkuro ti gbogbo awọn bulọọki ti a fi sii wa. Ti o ba tun fi bulọọki kanna sii ti o ni nọmba kanna ti awọn ori ila kanna ni ilana kanna, lẹhinna data naa ti yọkuro. Iwọ yoo gba “Ok” ni esi lati fi sii, ṣugbọn ni otitọ apo-iwe data kan yoo kọ, ati pe kii yoo ṣe pidánpidán.

Eyi jẹ pataki fun idaniloju. Ti o ba gba “Ok” lakoko fifi sii, lẹhinna data rẹ ti fi sii. Ti o ba gba aṣiṣe lati ClickHouse, o tumọ si pe wọn ko fi sii ati pe o nilo lati tun fi sii. Ṣugbọn ti asopọ ba bajẹ lakoko fifi sii, lẹhinna o ko mọ boya o ti fi data sii tabi rara. Aṣayan nikan ni lati tun fi sii lẹẹkansi. Ti o ba ti fi data sii gangan ati pe o tun fi sii, iyọkuro idina wa. Eyi nilo lati yago fun awọn ẹda-ẹda.

Ati pe o tun ṣe pataki bi o ṣe n ṣiṣẹ fun awọn iwo ohun elo. Ti data naa ba ti yọkuro nigbati o ba fi sii sinu tabili akọkọ, lẹhinna kii yoo lọ sinu wiwo ohun elo boya.

Bayi nipa ibeere naa. Ipo rẹ jẹ idiju diẹ sii nitori pe o n ṣe igbasilẹ awọn ẹda-iwe ti awọn laini kọọkan. Iyẹn ni, kii ṣe gbogbo idii naa ni a ṣe ẹda-iwe, ṣugbọn awọn laini pato, wọn si ṣubu ni abẹlẹ. Nitootọ, data naa yoo ṣubu ni tabili akọkọ, ṣugbọn data ti a ko kọlu yoo lọ si wiwo ohun elo, ati lakoko awọn akojọpọ ko si ohunkan ti yoo ṣẹlẹ si awọn iwo ohun elo. Nitori wiwo ohun elo kii ṣe nkan diẹ sii ju okunfa ifibọ lọ. Lakoko awọn iṣẹ ṣiṣe miiran, ko si ohun afikun ti o ṣẹlẹ si.

Ati pe Emi ko le mu inu rẹ dun nibi. O kan nilo lati wa ojutu kan pato fun ọran yii. Fun apẹẹrẹ, ṣe o ṣee ṣe lati tun ṣe ni wiwo ohun elo, ati pe ọna yiyọkuro le ṣiṣẹ ni ọna kanna. Ṣugbọn laanu, kii ṣe nigbagbogbo. Ti o ba n ṣajọpọ, kii yoo ṣiṣẹ.

Kirill Shvakov: A tun ní crutch ikole pada ninu awọn ọjọ. Iṣoro kan wa pe awọn ifihan ipolowo wa, ati pe data kan wa ti a le ṣafihan ni akoko gidi - iwọnyi jẹ awọn iwunilori nikan. Wọn kii ṣe pidánpidán, ṣugbọn ti eyi ba ṣẹlẹ, a yoo ṣubu lulẹ nigbamii lonakona. Ati pe awọn nkan wa ti ko le ṣe pidánpidán - awọn tẹ ati gbogbo itan yii. Sugbon mo tun fe lati fi wọn fere lẹsẹkẹsẹ.

Bawo ni a ṣe ṣe awọn iwo ohun elo? Awọn iwo wa nibiti o ti kọ taara - o ti kọ si data aise, ati kọ si awọn iwo. Nibe, ni aaye kan data ko pe pupọ, o ti ṣe ẹda, ati bẹbẹ lọ. Ati pe apakan keji wa ti tabili, nibiti wọn ti wo deede kanna bi awọn iwo ohun elo, iyẹn ni, wọn jẹ aami kanna ni eto. Ni ẹẹkan ni igba diẹ a tun ṣe iṣiro data naa, ka data laisi awọn ẹda-iwe, kọ si awọn tabili yẹn.

A lọ nipasẹ API - eyi kii yoo ṣiṣẹ ni ClickHouse pẹlu ọwọ. Ati API wo: nigbati mo ba ni awọn ọjọ ti awọn ti o kẹhin afikun si awọn tabili, ibi ti o ti wa ni ẹri ti awọn ti o tọ data ti tẹlẹ a ti iṣiro, ati awọn ti o mu ki a ìbéèrè si ọkan tabili ati si miiran tabili. Lati ọkan ibeere naa yan titi di iye akoko kan, ati lati ekeji o gba ohun ti ko tii ṣe iṣiro. Ati pe o ṣiṣẹ, ṣugbọn kii ṣe nipasẹ ClickHouse nikan.

Ti o ba ni diẹ ninu iru API - fun awọn atunnkanka, fun awọn olumulo - lẹhinna, ni ipilẹ, eyi jẹ aṣayan kan. O n ka nigbagbogbo, nigbagbogbo ka. Eyi le ṣee ṣe lẹẹkan ni ọjọ kan tabi ni akoko miiran. O yan fun ara rẹ ibiti o ko nilo ati pe ko ṣe pataki.

ClickHouse ni ọpọlọpọ awọn akọọlẹ. Bawo ni MO ṣe le rii ohun gbogbo ti o ṣẹlẹ si olupin ni iwo kan?

ClickHouse ni nọmba ti o tobi pupọ ti awọn akọọlẹ oriṣiriṣi, ati pe nọmba yii n pọ si. Ni awọn ẹya titun, diẹ ninu wọn paapaa ti ṣiṣẹ nipasẹ aiyipada; ni awọn ẹya agbalagba wọn gbọdọ ṣiṣẹ nigbati o nmu imudojuiwọn. Sibẹsibẹ, nibẹ ni o wa siwaju ati siwaju sii ti wọn. Ni ipari, Emi yoo fẹ lati rii kini n ṣẹlẹ pẹlu olupin mi ni bayi, boya lori iru dasibodu akopọ kan.

Ṣe o ni ninu ẹgbẹ ClickHouse rẹ, tabi ni awọn ẹgbẹ awọn ọrẹ rẹ, ti o ṣe atilẹyin diẹ ninu awọn iṣẹ ṣiṣe ti awọn dasibodu ti a ti ṣetan ti yoo ṣafihan awọn akọọlẹ wọnyi bi ọja ti a ti ṣetan? Ni ipari, wiwo awọn akọọlẹ ni ClickHouse jẹ nla. Ṣugbọn yoo dara pupọ ti o ba ti pese tẹlẹ ni irisi dasibodu kan. Emi yoo gba tapa ninu rẹ.

Awọn dasibodu wa, botilẹjẹpe wọn ko ni idiwọn. Ni ile-iṣẹ wa, nipa awọn ẹgbẹ 60 lo ClickHouse, ati pe ohun ti o yanilenu ni pe ọpọlọpọ ninu wọn ni dashboards ti wọn ṣe fun ara wọn, ati awọn ti o yatọ diẹ. Diẹ ninu awọn ẹgbẹ lo fifi sori Yandex.Cloud inu. Diẹ ninu awọn ijabọ ti a ti ṣetan, botilẹjẹpe kii ṣe gbogbo awọn pataki. Awọn miiran ni tiwọn.

Awọn ẹlẹgbẹ mi lati Metrica ni dasibodu tiwọn ni Grafana, ati pe Mo ni tirẹ fun iṣupọ wọn. Mo n wo awọn nkan bii kaṣe lu fun kaṣe serif. Ati paapaa iṣoro diẹ sii ni pe a lo awọn irinṣẹ oriṣiriṣi. Mo ṣẹda dasibodu mi nipa lilo ohun elo atijọ ti a pe ni Graphite-web. O si jẹ patapata ilosiwaju. Ati pe Mo tun lo ni ọna yii, botilẹjẹpe Grafana yoo jẹ irọrun diẹ sii ati lẹwa.

Ohun ipilẹ ni awọn dasibodu jẹ kanna. Iwọnyi jẹ awọn metiriki eto fun iṣupọ: Sipiyu, iranti, disk, nẹtiwọki. Awọn ẹlomiiran - nọmba awọn ibeere nigbakanna, nọmba awọn akojọpọ igbakana, nọmba awọn ibeere fun iṣẹju keji, nọmba ti o pọju fun awọn ipin tabili MergeTree, aisun atunṣe, iwọn isinyi atunṣe, nọmba awọn ori ila ti a fi sii fun iṣẹju keji, nọmba awọn bulọọki ti a fi sii fun iṣẹju keji. Eyi ni gbogbo eyiti a gba kii ṣe lati awọn akọọlẹ, ṣugbọn lati awọn metiriki.

Vladimir Kolobaev: Alexey, Emi yoo fẹ lati ṣe atunṣe diẹ diẹ. Grafana wa. Grafana ni orisun data kan, eyiti o jẹ ClickHouse. Iyẹn ni, Mo le ṣe awọn ibeere lati Grafana taara si ClickHouse. ClickHouse ni tabili pẹlu awọn akọọlẹ, o jẹ kanna fun gbogbo eniyan. Bi abajade, Mo fẹ lati wọle si tabili log yii ni Grafana ati wo awọn ibeere ti olupin mi ṣe. Yoo jẹ nla lati ni dasibodu bii eyi.

Mo keke o ara mi. Ṣugbọn Mo ni ibeere kan - ti gbogbo rẹ ba jẹ iwọntunwọnsi, ati pe gbogbo eniyan lo Grafana, kilode ti Yandex ko ni iru dasibodu osise kan?

Kirill Shvakov: Ni otitọ, orisun data ti o lọ si ClickHouse bayi ṣe atilẹyin Altinity. Ati ki o Mo kan fẹ lati fun fekito kan ti ibi ti lati ma wà ati tani lati Titari. O le beere lọwọ wọn, nitori Yandex tun ṣe ClickHouse, kii ṣe itan-akọọlẹ ni ayika rẹ. Altinity jẹ ile-iṣẹ akọkọ ti n ṣe igbega ClickHouse lọwọlọwọ. Wọn kì yóò kọ̀ ọ́ sílẹ̀, ṣùgbọ́n wọn yóò tì í lẹ́yìn. Nitoripe, ni ipilẹ, lati gbe dasibodu kan si oju opo wẹẹbu Grafana, iwọ nikan nilo lati forukọsilẹ ati gbejade - ko si awọn iṣoro pataki.

Alexei Milovidov: Ni ọdun to kọja, ClickHouse ti ṣafikun ọpọlọpọ awọn agbara profaili ibeere. Awọn metiriki wa fun ibeere kọọkan lori lilo awọn orisun. Ati pe laipẹ kan, a ṣafikun paapaa profaili ibeere ti ipele kekere lati rii ibiti ibeere kan ti n na ni gbogbo awọn iṣẹju-aaya. Ṣugbọn lati lo iṣẹ ṣiṣe yii, Mo ni lati ṣii alabara console ki o tẹ ibeere kan, eyiti Mo gbagbe nigbagbogbo. Mo ti fipamọ si ibikan ki o si ma gbagbe ibi ti gangan.

Mo fẹ pe ohun elo kan wa ti o kan sọ, eyi ni awọn ibeere ti o wuwo rẹ, ti a ṣe akojọpọ nipasẹ kilasi ibeere. Mo tẹ ọkan, wọn yoo sọ fun mi pe iyẹn ni idi ti o fi wuwo. Ko si iru ojutu bayi. Ati pe o jẹ iyalẹnu gaan pe nigba ti awọn eniyan ba beere lọwọ mi: “Sọ fun mi, ṣe awọn dasibodu ti a ṣe tẹlẹ fun Grafana?”, Mo sọ pe: “Lọ si oju opo wẹẹbu Grafana, agbegbe “Dashboards” wa, ati pe dasibodu kan wa. lati Dimka, nibẹ ni a Dasibodu lati Kostyan. Emi ko mọ kini o jẹ, Emi ko lo funrararẹ. ”

Bii o ṣe le ni agba awọn akojọpọ ki olupin ko ba ja sinu OOM?

Mo ni tabili, ipin kan ṣoṣo ni tabili, o jẹ RirọpoMergeTree. Mo ti kọ data sinu rẹ fun ọdun mẹrin. Mo nilo lati ṣe iyipada ninu rẹ ki o pa diẹ ninu awọn data rẹ.

Mo ṣe eyi, ati lakoko sisẹ ibeere yii, gbogbo iranti lori gbogbo awọn olupin ti o wa ninu iṣupọ ti run, ati gbogbo awọn olupin ti o wa ninu iṣupọ naa lọ sinu OOM. Lẹhinna gbogbo wọn dide papọ, bẹrẹ si dapọ iṣẹ ṣiṣe kanna, bulọki data yii, wọn tun ṣubu sinu OOM lẹẹkansi. Nigbana ni nwọn dide lẹẹkansi nwọn si ṣubu lẹẹkansi. Nkan yi ko si duro.

Lẹhinna o wa jade pe eyi jẹ kosi kokoro kan ti awọn eniyan ṣe atunṣe. Eyi dara pupọ, o ṣeun pupọ. Ṣugbọn iyokù kan wa. Ati ni bayi, nigbati Mo ronu nipa ṣiṣe diẹ ninu iru iṣọpọ ninu tabili, Mo ni ibeere kan - kilode ti Emi ko le ni ipa bakan awọn iṣọpọ wọnyi? Fun apẹẹrẹ, ṣe idinwo wọn nipasẹ iye Ramu ti o nilo, tabi, ni ipilẹ, nipasẹ iye ti yoo ṣe ilana tabili pato yii.

Mo ni tabili kan ti a pe ni “Metrics”, jọwọ ṣe ilana rẹ fun mi ni awọn okun meji. Ko si ye lati ṣẹda mẹwa tabi marun merges ni afiwe, ṣe ni meji. Mo ro pe mo ni to iranti fun meji, ṣugbọn o le ma to lati ilana mẹwa. Kini idi ti iberu wa? Nitoripe tabili n dagba, ati ni ọjọ kan Emi yoo dojuko pẹlu ipo kan ti, ni ipilẹ, ko si nitori kokoro kan, ṣugbọn nitori pe data yoo yipada ni iye nla ti Emi kii yoo ni iranti to lori olupin. Ati lẹhinna olupin yoo jamba sinu OOM nigbati o ba dapọ. Pẹlupẹlu, Mo le fagilee iyipada, ṣugbọn Merji ko si nibẹ mọ.

O mọ, nigbati o ba dapọ, olupin naa kii yoo ṣubu sinu OOM, nitori nigbati o ba dapọ, iye Ramu ti lo nikan fun iwọn kekere kan ti data. Nitorinaa ohun gbogbo yoo dara laibikita iye data.

Vladimir Kolobaev: O dara. Nibi akoko jẹ iru pe lẹhin ti kokoro ti wa ni atunṣe, Mo ṣe igbasilẹ ẹya tuntun fun ara mi, ati lori tabili miiran, ti o kere ju, nibiti ọpọlọpọ awọn ipin wa, Mo ṣe iru iṣẹ kan. Ati lakoko apapọ, nipa 100 GB ti Ramu ti sun lori olupin naa. Mo ni 150 ti tẹdo, 100 jẹun, ati ferese 50 GB ti o ku, nitorina Emi ko ṣubu sinu OOM.

Kini o ṣe aabo fun mi lọwọlọwọ lati ṣubu sinu OOM ti o ba jẹ 100 GB ti Ramu gangan? Kini lati ṣe ti Ramu lori awọn akojọpọ ba jade lojiji?

Alexei Milovidov: Iru iṣoro bẹ wa pe lilo Ramu pataki fun sisopọ ko ni opin. Ati pe iṣoro keji ni pe ti o ba ti yan iru iṣọpọ kan, lẹhinna o gbọdọ ṣiṣẹ nitori pe o ti gbasilẹ sinu iwe ẹda. Iwe akọọlẹ ẹda jẹ awọn iṣe ti o nilo lati mu ẹda naa wa si ipo deede. Ti o ko ba ṣe awọn ifọwọyi afọwọṣe ti yoo yi akọọlẹ ẹda yii pada, apapọ yoo ni lati ṣe ni ọna kan tabi omiiran.

Nitoribẹẹ, kii yoo jẹ aibikita lati ni aropin Ramu ti “o kan ni ọran” ṣe aabo lodi si OOM. Kii yoo ṣe iranlọwọ idapọpọ lati pari, yoo bẹrẹ lẹẹkansi, de ẹnu-ọna kan, jabọ imukuro, ati lẹhinna bẹrẹ lẹẹkansi - ko si ohun ti o dara yoo wa ninu eyi. Ṣugbọn ni ipilẹ, yoo wulo lati ṣafihan ihamọ yii.

Bawo ni awakọ Golang fun ClickHouse yoo ṣe ni idagbasoke?

Awakọ Golang, eyiti a kọ nipasẹ Kirill Shvakov, ni atilẹyin ni ifowosi nipasẹ ẹgbẹ ClickHouse. Oun ni ibi ipamọ ClickHouse, o ti tobi ni bayi ati gidi.

Akọsilẹ kekere kan. Ibi ipamọ iyanu ati olufẹ wa ti awọn fọọmu deede ti aṣẹ ailopin - eyi ni Vertica. Wọn tun ni awakọ Python osise tiwọn, eyiti o jẹ atilẹyin nipasẹ awọn olupilẹṣẹ Vertica. Ati ni ọpọlọpọ igba o ṣẹlẹ pe awọn ẹya ipamọ ati awọn ẹya awakọ diverged pupọ pupọ, ati pe awakọ ni aaye kan duro ṣiṣẹ. Ati ojuami keji. Atilẹyin fun awakọ osise yii, o dabi si mi, ni a ṣe nipasẹ eto “ọmu” - o kọ wọn ni ọrọ kan, ati pe o duro titi lailai.

Mo ni ibeere meji. Bayi awakọ Golang ti Kirill fẹrẹ jẹ ọna aiyipada lati ṣe ibasọrọ lati Golang pẹlu ClickHouse. Ayafi ti ẹnikan ba tun sọrọ nipasẹ wiwo http nitori pe o fẹran ni ọna yẹn. Bawo ni idagbasoke ti awakọ yii yoo tẹsiwaju? Ṣe yoo muuṣiṣẹpọ pẹlu eyikeyi awọn iyipada fifọ ni ibi ipamọ funrararẹ bi? Ati pe ilana wo ni lati gbero ọrọ kan?

Kirill Shvakov: Ni igba akọkọ ti ni bi ohun gbogbo ti wa ni ṣeto bureaucratically. A ko jiroro lori aaye yii, nitorinaa Emi ko ni nkankan lati dahun.

Lati dahun ibeere naa nipa ọran naa, a nilo itan-akọọlẹ diẹ ti awakọ naa. Mo ṣiṣẹ fun ile-iṣẹ kan ti o ni data pupọ. O jẹ alayipo ipolowo pẹlu nọmba nla ti awọn iṣẹlẹ ti o nilo lati wa ni fipamọ ni ibikan. Ati ni aaye kan ClickHouse han. A kun pẹlu data, ati ni akọkọ ohun gbogbo dara, ṣugbọn lẹhinna ClickHouse kọlu. Ni akoko yẹn a pinnu pe a ko nilo rẹ.

Ni ọdun kan nigbamii, a pada si imọran ti lilo ClickHouse, ati pe a nilo lati kọ data nibẹ bakan. Ifiranṣẹ iforowero jẹ eyi: ohun elo ko lagbara pupọ, awọn orisun diẹ wa. Ṣugbọn a ti ṣiṣẹ nigbagbogbo ni ọna yii, nitorinaa a wo si ilana ilana abinibi.

Niwọn bi a ti n ṣiṣẹ ni Go, o han gbangba pe a nilo awakọ Go kan. Mo ti ṣe o fere ni kikun akoko - o jẹ iṣẹ-ṣiṣe mi. A mu u wá si aaye kan, ati ni ipilẹ ko si ẹnikan ti o ro pe ẹnikẹni miiran yatọ si wa yoo lo. Lẹhinna CloudFlare wa pẹlu iṣoro kanna gangan, ati fun igba diẹ a ṣiṣẹ pẹlu wọn laisiyonu, nitori wọn ni awọn iṣẹ ṣiṣe kanna. Pẹlupẹlu, a ṣe eyi mejeeji ni ClickHouse funrararẹ ati ninu awakọ naa.

Ni aaye kan, Mo dawọ duro lati ṣe, nitori iṣẹ ṣiṣe mi ni awọn ofin ti ClickHouse ati iṣẹ yipada diẹ. Nitorinaa awọn ọran ko ni pipade. Lẹẹkọọkan, awọn eniyan ti o nilo nkan ti ara wọn ṣe si ibi ipamọ naa. Lẹhinna Mo wo ibeere fifa ati nigbakan Emi paapaa ṣatunkọ nkan funrararẹ, ṣugbọn eyi ṣẹlẹ ṣọwọn.

Mo fẹ lati pada si awakọ. Ni ọpọlọpọ ọdun sẹyin, nigbati gbogbo nkan yii bẹrẹ, ClickHouse tun yatọ ati pẹlu awọn agbara oriṣiriṣi. Bayi a ni oye bi a ṣe le tun awakọ naa ṣe ki o le ṣiṣẹ daradara. Ti eyi ba ṣẹlẹ, lẹhinna ẹya 2 yoo jẹ ibamu ni eyikeyi ọran nitori awọn crutches ti a kojọpọ.

Emi ko mọ bi a ṣe le ṣeto ọrọ yii. Emi ko ni akoko pupọ funrarami. Bí àwọn kan bá parí awakọ̀ náà, mo lè ràn wọ́n lọ́wọ́ kí n sì sọ ohun tí wọ́n máa ṣe fún wọn. Ṣugbọn ikopa ti nṣiṣe lọwọ ti Yandex ni idagbasoke iṣẹ naa ko tii jiroro.

Alexei Milovidov: Ni otitọ, ko si bureaucracy nipa awọn awakọ wọnyi sibẹsibẹ. Ohun kan ṣoṣo ni pe wọn fi silẹ si ile-iṣẹ osise, iyẹn ni, awakọ yii jẹ idanimọ bi ojutu aiyipada osise fun Go. Awọn awakọ miiran wa, ṣugbọn wọn wa lọtọ.

A ko ni idagbasoke inu eyikeyi fun awọn awakọ wọnyi. Ibeere naa ni boya a le gba ẹni kọọkan, kii ṣe fun awakọ pato yii, ṣugbọn fun idagbasoke gbogbo awọn awakọ agbegbe, tabi a le rii ẹnikan lati ita.

Iwe-itumọ ita ko ṣe fifuye lẹhin atunbere pẹlu eto lazy_load ṣiṣẹ. Kin ki nse?

A ni eto lazy_load ṣiṣẹ, ati lẹhin atunbere olupin naa, iwe-itumọ ko ni fifuye funrararẹ. O ti dide nikan lẹhin olumulo ti wọle si iwe-itumọ yii. Ati ni igba akọkọ ti mo wọle si o, yoo fun aṣiṣe. Ṣe o ṣee ṣe lati bakan laifọwọyi fifuye awọn iwe-itumọ nipa lilo ClickHouse, tabi ṣe o nilo nigbagbogbo lati ṣakoso imurasilẹ wọn funrararẹ ki awọn olumulo ko gba awọn aṣiṣe?

Boya a ni ẹya atijọ ti ClickHouse, nitorinaa iwe-itumọ ko ṣe fifuye laifọwọyi. Ṣe eyi le jẹ ọran?

Ni akọkọ, awọn iwe-itumọ le fi agbara mu ni lilo ibeere kan eto gbee si awọn iwe-itumọ. Ni ẹẹkeji, nipa aṣiṣe naa - ti iwe-itumọ ti kojọpọ tẹlẹ, lẹhinna awọn ibeere yoo ṣiṣẹ da lori data ti o kojọpọ. Ti iwe-itumọ naa ko ba tii kojọpọ, yoo kojọpọ taara lakoko ibeere naa.

Eyi ko rọrun pupọ fun awọn iwe-itumọ ti o wuwo. Fun apẹẹrẹ, o nilo lati fa awọn ori ila miliọnu kan lati MySQL. Ẹnikan ṣe yiyan ti o rọrun, ṣugbọn yiyan yii yoo duro fun awọn ori ila miliọnu kanna. Awọn ojutu meji wa nibi. Ohun akọkọ ni lati pa lazy_load. Ni ẹẹkeji, nigbati olupin ba wa ni oke, ṣaaju fifi ẹru sori rẹ, ṣe eto gbee si dictionary tabi o kan ṣe ibeere ti o nlo iwe-itumọ. Lẹhinna iwe-itumọ yoo jẹ ti kojọpọ. O nilo lati ṣakoso wiwa ti awọn iwe-itumọ pẹlu eto lazy_load ṣiṣẹ, nitori ClickHouse kii ṣe fifuye wọn laifọwọyi.

Idahun si ibeere ti o kẹhin jẹ boya ẹya naa ti darugbo tabi o nilo lati ṣatunṣe.

Kini lati ṣe pẹlu otitọ pe awọn iwe-itumọ atunkọ eto ko ṣe fifuye eyikeyi ninu ọpọlọpọ awọn iwe-itumọ ti o ba kere ju ọkan ninu wọn kọlu pẹlu aṣiṣe kan?

Ibeere miiran wa nipa awọn iwe-itumọ atungbejade eto. A ni awọn iwe-itumọ meji - ọkan ko kojọpọ, ekeji ti kojọpọ. Ni ọran yii, awọn iwe-itumọ atunbere eto ko gbe iwe-itumọ eyikeyi, ati pe o ni lati fi aaye-si-ojuami fifuye kan pato nipasẹ orukọ rẹ nipa lilo iwe-itumọ atunbere eto. Njẹ eyi tun ni ibatan si ẹya ClickHouse?

Mo fe ki inu yin dun. Iwa yii n yipada. Eyi tumọ si pe ti o ba ṣe imudojuiwọn ClickHouse, yoo tun yipada. Ti o ko ba ni idunnu pẹlu ihuwasi lọwọlọwọ rẹ eto gbee si awọn iwe-itumọ, imudojuiwọn, ki o si jẹ ki ká lero ti o ayipada fun awọn dara.

Ṣe ọna kan wa lati tunto awọn alaye ni atunto ClickHouse, ṣugbọn kii ṣe afihan wọn ni ọran awọn aṣiṣe?

Ibeere ti o tẹle jẹ nipa awọn aṣiṣe ti o ni ibatan si iwe-itumọ, eyun awọn alaye. A ti ṣalaye awọn alaye asopọ ni atunto ClickHouse fun iwe-itumọ, ati pe ti aṣiṣe kan ba wa, a gba awọn alaye wọnyi ati ọrọ igbaniwọle ni idahun.

A yanju aṣiṣe yii nipa fifi awọn alaye kun si atunto awakọ ODBC. Njẹ ọna eyikeyi wa lati tunto awọn alaye ni atunto ClickHouse, ṣugbọn kii ṣe afihan awọn alaye wọnyi ni ọran awọn aṣiṣe?

Ojutu gidi nibi ni lati pato awọn iwe-ẹri wọnyi ni odbc.ini, ati ni ClickHouse funrararẹ pato Orukọ Orisun Data ODBC nikan. Eyi kii yoo ṣẹlẹ fun awọn orisun iwe-itumọ miiran - bẹni fun iwe-itumọ pẹlu MySQL, tabi fun awọn miiran, ko yẹ ki o wo ọrọ igbaniwọle nigbati o gba ifiranṣẹ aṣiṣe kan. Fun ODBC, Emi yoo tun wo - ti o ba wa, o kan nilo lati yọ kuro.

Bonus: awọn ipilẹṣẹ fun Sun-un lati awọn apejọ

Nipa tite lori aworan naa, awọn ipilẹṣẹ ẹbun lati awọn apejọ yoo ṣii fun awọn oluka ti o tẹpẹlẹ julọ. A pa ina naa pọ pẹlu awọn mascots imọ-ẹrọ Avito, a ba awọn alabaṣiṣẹpọ sọrọ lati yara alabojuto eto tabi ẹgbẹ kọnputa ti ile-iwe atijọ, ati pe a ṣe awọn ipade ojoojumọ labẹ afara lodi si ẹhin graffiti.

ClickHouse fun awọn olumulo to ti ni ilọsiwaju ninu awọn ibeere ati awọn idahun

orisun: www.habr.com

Fi ọrọìwòye kun