ClickHouse maka ndị ọrụ dị elu na ajụjụ na azịza

N'April, ndị injinia Avito gbakọtara maka nzukọ ịntanetị na onye nrụpụta ClickHouse bụ Alexey Milovidov na Kirill Shvakov, onye nrụpụta Golang sitere na Integros. Anyị tụlere ka anyị si eji usoro njikwa nchekwa data na ihe isi ike anyị na-ezute.

Dabere na nzukọ ahụ, anyị achịkọtala akụkọ na azịza ndị ọkachamara nye ajụjụ anyị na ndị na-ege ntị gbasara nkwado ndabere na mpaghara, nhazigharị data, akwụkwọ ọkọwa okwu mpụga, onye ọkwọ ụgbọ ala Golang na imelite ụdị ClickHouse. Ọ nwere ike ịba uru nye ndị mmepe na-arụsi ọrụ ike na Yandex DBMS ma nwee mmasị na ya ugbu a na ọdịnihu. Site na ndabara, azịza ya bụ Alexey Milovidov, ọ gwụla ma edere ya ọzọ.

Kpachara anya, enwere ọtụtụ ederede n'okpuru ịkpụ. Anyị nwere olileanya na ọdịnaya nwere ajụjụ ga-enyere gị aka ịnyagharịa.

ClickHouse maka ndị ọrụ dị elu na ajụjụ na azịza

Ihe

Ọ bụrụ na ịchọghị ịgụ ederede, ị nwere ike ilele ndekọ nke nnọkọ na ọwa YouTube anyị. Koodu oge dị na nkọwa mbụ n'okpuru vidiyo.

A na-emelite ClickHouse mgbe niile, mana data anyị adịghị. Kedu ihe a ga-eme maka ya?

A na-emelite ClickHouse mgbe niile, na data anyị, nke emeziri nke ọma nke ikpeazụ, adịghị emelite ma ọ nọ na nnomi ndabere.

Ka anyị kwuo na anyị nwere nsogbu na data ahụ furu efu. Anyị kpebiri iweghachite, ọ tụgharịrị na akụkụ ochie, nke echekwara na sava ndabere, dị nnọọ iche na ụdị ClickHouse a na-eji ugbu a. Kedu ihe ị ga-eme n'ọnọdụ dị otú ahụ, ọ ga-ekwe omume?

Ọnọdụ nke ị weghachite data site na ndabere na usoro ochie, mana ọ naghị ejikọta na ụdị ọhụrụ ahụ, agaghị ekwe omume. Anyị na-agba mbọ hụ na usoro data dị na ClickHouse na-anọgide na-adakọ azụ mgbe niile. Nke a dị oke mkpa karịa ndakọrịta azụ na arụ ọrụ ma ọ bụrụ na omume nke ụfọdụ ọrụ anaghị adịkarị agbanwe agbanwe. Ụdị ClickHouse ọhụrụ kwesịrị inwe ike ịgụ data echekwara na diski mgbe niile. Nke a bụ iwu.

Kedu omume kacha mma ugbu a maka ịkwado data sitere na ClickHouse?

Otu esi eme nkwado ndabere na mpaghara, na-eburu n'uche na anyị na-ebuli arụmọrụ ikpeazụ, nnukwu nchekwa data nke terabytes, na data emelitere, sịnụ, maka ụbọchị atọ gara aga, mgbe ahụ ọ dịghị usoro na-eme ya?

Anyị nwere ike ịme ihe ngwọta nke anyị wee dee na bash: chịkọta akwụkwọ nkwado ndị a n'ụzọ dị otú a. Ma eleghị anya, ọ dịghị mkpa ịkwanye ihe ọ bụla, na e chepụtara ịnyịnya ígwè ogologo oge gara aga?

Ka anyị malite na omume kacha mma. Ndị ọrụ ibe m na-enye ndụmọdụ mgbe niile, na nzaghachi nye ajụjụ gbasara ndabere, ichetara ha banyere ọrụ Yandex.Cloud, ebe edozila nsogbu a. Ya mere, jiri ya ma ọ bụrụ na o kwere omume.

Enweghị ngwọta zuru oke maka ndabere, otu narị pasent wuru n'ime ClickHouse. Enwere ụfọdụ oghere enwere ike iji. Iji nweta ngwọta zuru oke, ị ga-eji aka gị tinker ntakịrị, ma ọ bụ mepụta wrappers n'ụdị edemede.

M ga-amalite na ngwọta kachasị mfe ma kwụsị na ndị kachasị mgbagwoju anya, dabere na olu data na nha nke ụyọkọ ahụ. Ka ụyọkọ ahụ na-ebuwanye ibu, ka ihe ngwọta na-adịwanye mgbagwoju anya.

Ọ bụrụ na tebụl nwere data nwere naanị gigabytes ole na ole, enwere ike ime ndabere dị ka nke a:

  1. Chekwaa nkọwa okpokoro ya bụ metadata - gosi ike tebụl.
  2. Jiri onye ahịa ClickHouse mee kpofuo ihe - họrọ * site na tebụl ịgba akwụkwọ. Site na ndabara ị ga-enweta faịlụ n'ụdị TabSeparated. Ọ bụrụ na-ịchọrọ ị na-arụ ọrụ nke ọma, ị nwere ike ime ya n'ụdị obodo.

Ọ bụrụ na ọnụọgụ data buru ibu, mgbe ahụ nkwado ndabere na mpaghara ga-ewe oge na ọtụtụ ohere. A na-akpọ nke a ndabere ezi uche dị na ya; ejikọtaghị ya na usoro data ClickHouse. Ọ bụrụ na ọ bụ, mgbe ahụ dị ka ebe ikpeazụ ị nwere ike were ndabere wee bulite ya na MySQL maka mgbake.

Maka ikpe ndị dị elu karịa, ClickHouse nwere ikike arụnyere iji mepụta foto nkebi na sistemụ faịlụ mpaghara. Njirimara a dị ka arịrịọ gbanwee tebụl ifriizi nkebi. Ma ọ bụ naanị gbanwee tebụl ifriizi - nke a bụ foto nke tebụl dum.

A ga-emepụta foto ahụ mgbe niile maka otu tebụl na otu shard, ya bụ, ọ gaghị ekwe omume ịmepụta foto na-agbanwe agbanwe nke ụyọkọ dum n'ụzọ dị otú a. Mana maka ọtụtụ ọrụ enweghị mkpa dị otú ahụ, ma ọ ga-ezuru iji mezuo arịrịọ na shard ọ bụla wee nweta foto na-agbanwe agbanwe. A na-emepụta ya n'ụdị hardlinks na ya mere ọ naghị ewepụta ohere ọzọ. Na-esote, ị detuo foto a na ihe nkesa ndabere ma ọ bụ na nchekwa nke ị na-eji maka nkwado ndabere.

Iweghachi ndabere dị otú ahụ dị nnọọ mfe. Nke mbụ, mepụta tebụl site na iji nkọwa tebụl dị. Na-esote, detuo snapshots echekwara nke akụkụ ahụ gaa na ndekọ aha-Detached maka tebụl ndị a wee mee ajụjụ a. tinye nkebi. Ihe ngwọta a dabara adaba maka ọnụ ọgụgụ data kachasị njọ.

Mgbe ụfọdụ ị chọrọ ihe ọbụna ngwa nju oyi - n'ọnọdụ ebe ị nwere iri ma ọ bụ ọbụna narị terabytes na nke ọ bụla nkesa na ọtụtụ narị sava. Enwere ngwọta ebe a nke m nwetara n'aka ndị ọrụ ibe m site na Yandex.Metrica. Agaghị m akwado ya onye ọ bụla - gụọ ya wee kpebie n'onwe gị ma ọ dabara ma ọ bụ na ọ bụghị.

Mbụ ịkwesịrị ịmepụta ọtụtụ sava nwere nnukwu diski diski. Na-esote, na sava ndị a, bulie ọtụtụ sava ClickHouse wee hazie ha ka ha rụọ ọrụ dị ka oyiri ọzọ maka otu shards. Ma jiri usoro faịlụ ma ọ bụ ụfọdụ ngwá ọrụ na sava ndị a na-enye gị ohere ịmepụta snapshots. Enwere nhọrọ abụọ ebe a. Nhọrọ nke mbụ bụ snapshots LVM, nhọrọ nke abụọ bụ ZFS na Linux.

Mgbe nke ahụ gasịrị, kwa ụbọchị ịkwesịrị ịmepụta foto, ọ ga-edina ma were ụfọdụ ohere. Dị ka o kwesịrị ịdị, ọ bụrụ na data gbanwere, ọnụọgụ ohere ga-abawanye ka oge na-aga. Enwere ike ịwepụta foto a n'oge ọ bụla wee weghachi data ahụ, ngwọta dị ịtụnanya. Na mgbakwunye, anyị kwesịkwara ịmachi ụdị oyiri ndị a na nhazi ka ha ghara ịnwa ịghọ ndị isi.

Ọ ga-ekwe omume ịhazi lag a na-achịkwa nke replicas na ogwe osisi?

N'afọ a, ị na-eme atụmatụ ime ogwe osisi na ClickHouse. Ọ ga-ekwe omume ịhazi nkwụsịtụ nke oyiri n'ime ha? Ọ ga-amasị anyị iji ya chebe onwe anyị pụọ na ọnọdụ ọjọọ na mgbanwe na mgbanwe ndị ọzọ.

Ọ ga-ekwe omume ịme ụdị mpịakọta azụ maka mgbanwe? Dịka ọmụmaatụ, na ogwe dị ugbu a, were wee kwuo na ruo oge a ị na-etinye mgbanwe ndị ahụ, na site na oge a ị kwụsịrị itinye mgbanwe ndị ahụ?

Ọ bụrụ na iwu batara ụyọkọ anyị wee mebie ya, mgbe ahụ, anyị nwere ụdị oyiri nwere ọnọdụ elekere, ebe anyị nwere ike ikwu na ka anyị jiri ya ugbu a, mana anyị agaghị etinye mgbanwe na ya maka nkeji iri gara aga?

Nke mbụ, banyere nkwụsị nke achịkwa nke oyiri. Enwere arịrịọ dị otú ahụ site n'aka ndị ọrụ, anyị wee mepụta esemokwu na Github na arịrịọ: "Ọ bụrụ na mmadụ chọrọ nke a, dị ka ya, tinye obi." O nweghị onye wetara ya, e mechiri okwu ahụ. Otú ọ dị, ị nwere ike nwetaworị ohere a site na ịmepụta ClickHouse. N'ezie, naanị na-amalite site na ụdị 20.3.

ClickHouse na-arụkọ ọrụ ọnụ data n'azụ. Mgbe ngwakọta gwụchara, a na-eji ibe buru ibu dochie ụfọdụ mpempe data. N'otu oge ahụ, iberibe data ndị dị na mbụ na-anọgide na-adị na diski ruo oge ụfọdụ.

Nke mbụ, a na-echekwa ha ma ọ bụrụhaala na enwere ajụjụ ahọpụtara na-eji ha, iji nye ọrụ anaghị egbochi. Họrọ ajụjụ na-adị mfe ịgụ site na nkeji ochie.

Nke abuo, enwerekwa uzo oge - iberibe data ochie dina na diski maka nkeji asatọ. Enwere ike ịhazi nkeji asatọ ndị a na ọbụlagodi otu ụbọchị. Nke a ga-efu ohere diski: dabere na data data, ọ na-apụta na n'ụbọchị ikpeazụ data ahụ agaghị abụ naanị okpukpu abụọ, ọ nwere ike ịghọ ugboro ise. Ma ọ bụrụ na enwere nnukwu nsogbu, ị nwere ike ịkwụsị ihe nkesa ClickHouse wee dozie ihe niile.

Ugbu a ajụjụ na-ebilite ka nke a si echebe megide mgbanwe. Ọ bara uru ilebawanye anya ebe a, n'ihi na na ụdị ClickHouse ochie, mgbanwe ahụ na-arụ ọrụ n'ụzọ na ọ gbanwere iberibe ozugbo. Enwere mpempe data nwere ụfọdụ faịlụ, anyị na-eme, dịka ọmụmaatụ, gbanwee kọlụm dobe. Mgbe ahụ, a ga-ewepụ kọlụm a n'ụzọ anụ ahụ n'akụkụ niile.

Mana malite na ụdị 20.3, agbanweela usoro mgbanwe kpamkpam, ma ugbu a iberibe data enweghị ike ịgbanwe. Ha anaghị agbanwe agbanwe ma ọlị - ndị na-agbanwe ugbu a na-arụ ọrụ n'otu ụzọ ahụ dị ka njikọ. Kama dochie otu ibe na ntụpọ, anyị na-emepụta nke ọhụrụ. Na chunk ọhụrụ ahụ, faịlụ ndị na-agbanwebeghị na-aghọ hardlinks, ma ọ bụrụ na anyị ihichapụ kọlụm, ọ ga-efu efu na chunk ọhụrụ. A ga-ehichapụ mpempe ochie ahụ na ndabara mgbe nkeji asatọ gachara, ebe a ị nwere ike ịmegharị ntọala ndị a kpọtụrụ aha n'elu.

Otu a na-emetụta mgbanwe dịka mmụgharị. Mgbe ị na-eme ya gbanwee ihichapụ ma ọ bụ gbanwee mmelite, ọ dịghị agbanwe ibe, ma na-emepụta ọhụrụ. Mgbe ahụ na-ehichapụ nke ochie.

Gịnị ma ọ bụrụ na nhazi okpokoro agbanweela?

Kedu otu esi eweghachi ndabere nke ejiri atụmatụ ochie mee? Na ajụjụ nke abụọ bụ banyere ikpe na snapshots na faịlụ usoro ngwaọrụ. Btrfs ọ dị mma ebe a kama ZFS na Linux LVM?

Ọ bụrụ na ị na-eme ya tinye nkebi nkebi nwere usoro dị iche, mgbe ahụ ClickHouse ga-agwa gị na nke a agaghị ekwe omume. Nke a bụ ngwọta. Nke mbụ bụ imepụta tebụl nwa oge nke ụdị MergeTree nwere usoro ochie, tinye data ebe ahụ site na iji mgbakwunye, wee mee ajụjụ mgbanwe. Mgbe ahụ ị nwere ike idetuo ma ọ bụ bufee data a wee tinye ọzọ, ma ọ bụ jiri arịrịọ gbanwee okpokoro mmegharị nkebi.

Ugbu a ajụjụ nke abụọ bụ ma enwere ike iji Btrfs. Iji malite, ọ bụrụ na ị nwere LVM, mgbe ahụ LVM snapshots zuru ezu, na usoro faịlụ nwere ike ịbụ ext4, ọ dịghị mkpa. Site na Btrts, ihe niile dabere na ahụmịhe gị n'iji ya. Nke a bụ usoro faịlụ tozuru etozu, mana a ka nwere ụfọdụ enyo banyere otu ihe niile ga-esi arụ ọrụ na omume n'otu ọnọdụ. Agaghị m akwado iji nke a ma ọ bụrụ na ị nwere Btrfs na mmepụta.

Kedu omume kacha mma ugbu a na nhazigharị data?

Okwu nke nhazigharị dị mgbagwoju anya yana ọtụtụ akụkụ. Enwere ọtụtụ azịza ebe a. Ị nwere ike isi n'otu akụkụ gaa kwuo nke a - ClickHouse enweghị njirimara nrụgharị arụnyere. Mana m na-atụ ụjọ na azịza a agaghị adabara onye ọ bụla. Ya mere, ị nwere ike isi n'akụkụ nke ọzọ gaa na-ekwu na ClickHouse nwere ọtụtụ ụzọ iji megharịa data.

Ọ bụrụ na ụyọkọ ahụ agwụla ohere ma ọ bụ na ọ nweghị ike ijikwa ibu ahụ, ị ​​ga-agbakwunye sava ọhụrụ. Mana sava ndị a bụ ihe efu na ndabara, ọ nweghị data dị na ha, enweghị ibu. Ịkwesịrị ịhazigharị data ahụ ka ọ gbasaa nke ọma n'ofe ụyọkọ ọhụrụ, buru ibu.

Ụzọ mbụ e nwere ike isi mee nke a bụ iji arịrịọ detuo akụkụ nke akụkụ ahụ gaa na sava ọhụrụ gbanwee tebụl weta nkebi. Dịka ọmụmaatụ, ị nwere nkebi site na ọnwa, wee were ọnwa mbụ nke 2017 wee detuo ya na sava ọhụrụ, wee detuo ọnwa nke atọ gaa na nkesa ọhụrụ ọzọ. Na ị na-eme nke a ruo mgbe ọ ga-aghọ karịa ma ọ bụ obere ọbụna.

Enwere ike ịme mbufe naanị maka akụkụ ndị ahụ na-agbanweghị n'oge ndekọ. Maka akụkụ ọhụrụ, ndekọ ga-enwe nkwarụ, n'ihi na mbufe ha abụghị atomiki. Ma ọ bụghị ya, ị ga-ejedebe na oyiri ma ọ bụ oghere na data. Otú ọ dị, usoro a dị irè ma na-arụ ọrụ nke ọma. A na-ebufe akụkụ mkpakọ dị njikere na netwọkụ, ya bụ, data anaghị ejikọta ma ọ bụ degharịa ọzọ.

Usoro a nwere otu ndọghachi azụ, ọ dabere na atụmatụ sharding, ma ị kwere nkwa na atụmatụ sharding a, kedu igodo sharding ị nwere. N'ihe atụ gị maka ikpe nwere metrik, igodo sharding bụ hash nke ụzọ ahụ. Mgbe ịhọrọ tebụl ekesara, ọ na-aga na shards niile dị na ụyọkọ ahụ ozugbo wee wepụta data n'ebe ahụ.

Nke a pụtara na ọ nweghị ihe gbasara gị ihe data kwụsịrị na nke shard. Isi ihe bụ na data n'akụkụ otu ụzọ na-ejedebe n'otu shard, ma nke na-adịghị mkpa. N'okwu a, ịnyefe nkebi emebere dị mma zuru oke, n'ihi na site na ajụjụ ahọpụtara, ị ga-enwetakwa data zuru oke - ma tupu ebugharị ma ọ bụ emechaa, atụmatụ ahụ adịghị mkpa.

Mana enwere ikpe ndị dị mgbagwoju anya. Ọ bụrụ na n'ọkwa mgbagha ngwa ị dabere na atụmatụ sharding pụrụ iche, na onye ahịa a dị na ụdị shard dị otú ahụ, a pụkwara iziga arịrịọ ahụ ozugbo n'ebe ahụ, ọ bụghị na tebụl nkesa. Ma ọ bụ na ị na-eji ụdị ClickHouse na-adịbeghị anya wee mee ka ntọala ahụ nwee ike welie ihe nzacha na-ejighị ya. N'okwu a, n'oge ajụjụ a na-ahọrọ, a ga-enyocha okwu dị na ngalaba ebe a ga-agbakọkwa ihe nkedo dị mkpa iji mee ihe dịka atụmatụ sharding si dị. Nke a na-arụ ọrụ ma ọ bụrụhaala na ekesara data ahụ kpọmkwem dịka atụmatụ nzacha a siri dị. Ọ bụrụ na i jiri aka hazie ha, akwụkwọ ozi nwere ike ịgbanwe.

Yabụ na nke a bụ usoro nke mbụ. Ana m echere azịza gị, ma usoro ahụ ọ dabara, ma ọ bụ ka anyị gaa n'ihu.

Vladimir Kolobaev, onye ndu usoro nchịkwa na Avito: Alexey, usoro ị kwuru anaghị arụ ọrụ nke ọma mgbe ịchọrọ ịgbasa ibu, gụnyere ịgụ ihe. Anyị nwere ike were nkebi nke bụ kwa ọnwa ma nwee ike were ọnwa gara aga gaa n'ọnụ ọzọ, mana mgbe a rịọrọ maka data a, anyị ga-ebu ya naanị. Ma anyị ga-achọ ịkwanye ụyọkọ ahụ dum, n'ihi na ma ọ bụghị ya, ruo oge ụfọdụ, a ga-edozi ihe niile na-agụ ihe site na shards abụọ.

Alexei Milovidov: Azịza ya ebe a dị ịtụnanya - ee, ọ dị njọ, mana ọ nwere ike ịrụ ọrụ. M ga-akọwa kpọmkwem otú. Ọ bara uru ileba anya na ọnọdụ ibu na-abịa n'azụ data gị. Ọ bụrụ na nke a bụ nlekota data, mgbe ahụ anyị nwere ike ikwu n'ezie na ọnụ ọgụgụ ka ukwuu nke arịrịọ bụ maka data ọhụrụ.

Ị rụnyere sava ọhụrụ, nkebi ochie kwagara, mana gbanwee ka esi edekọ data ọhụrụ. A ga-agbasa data ọhụrụ n'ime ụyọkọ ahụ. Ya mere, mgbe naanị nkeji ise gachara, arịrịọ maka nkeji ise ikpeazụ ga-ebukwa ụyọkọ ahụ; mgbe otu ụbọchị gasịrị, arịrịọ maka awa 24 ga-ebukwa ụyọkọ ahụ. Na arịrịọ maka ọnwa gara aga, ọ dị mwute ikwu, ga-aga naanị akụkụ nke sava ụyọkọ.

Mana ọtụtụ mgbe ị gaghị enwe arịrịọ kpọmkwem maka February 2019. O yikarịrị, ọ bụrụ na arịrịọ na-abanye na 2019, mgbe ahụ, ha ga-abụ maka 2019 dum - maka oge buru ibu, ọ bụghị maka ụfọdụ obere nso. Arịrịọ ndị dị otú ahụ ga-enwekwa ike ịkwanye ụyọkọ ahụ nke ọma. Mana n'ozuzu, okwu gị ziri ezi na nke a bụ ngwọta ad hoc na-agbasaghị data ahụ kpamkpam.

Enwere m isi ihe ole na ole ọzọ iji zaa ajụjụ ahụ. Otu n'ime ha bụ maka otu esi amalite imepụta atụmatụ sharding ka mweghachi ya wee mee ka mgbu dị ntakịrị. Nke a anaghị ekwe omume mgbe niile.

Dịka ọmụmaatụ, ị nwere data nleba anya. Data nlekota oru na-eto eto n'ihi ihe atọ. Nke mbụ bụ nchịkọta akụkọ ihe mere eme. Nke abụọ bụ mmụba okporo ụzọ. Na nke atọ bụ mmụba nke ọnụ ọgụgụ nke ihe ndị a na-enyocha. Enwere microservice ọhụrụ na metrik ndị achọrọ ka echekwara.

O kwere omume na n'ime ndị a, mmụba kachasị ukwuu na-ejikọta ya na nke atọ kpatara ya - mmụba nke ojiji nlekota oru. Na na nke a, ọ bara uru ileba anya na ọdịdị nke ibu ahụ, kedu ihe bụ isi nhọrọ nhọrọ. Ajụjụ ndị bụ isi ahọpụtara ga-abụrịrị dabere na mpaghara ụfọdụ nke metrik.

Dịka ọmụmaatụ, ojiji CPU na ụfọdụ sava site na ụfọdụ ọrụ. Ọ tụgharịrị na enwere ụfọdụ obere igodo nke ị nweta data a. Na arịrịọ n'onwe ya maka data a yikarịrị ka ọ dị mfe ma mechaa ya na iri milliseconds. Ejiri ya maka ọrụ nlekota na dashboard. Enwere m olileanya na m ghọtara nke a nke ọma.

Vladimir Kolobaev: Nke bụ eziokwu bụ na anyị na-amasịkarị data akụkọ ihe mere eme, ebe ọ bụ na anyị na-atụnyere ọnọdụ dị ugbu a na akụkọ ihe mere eme ozugbo. Ma ọ dị mkpa ka anyị nweta ngwa ngwa ịnweta nnukwu data, na ClickHouse na-arụ ọrụ magburu onwe ya na nke a.

Ị dabara nke ọma, anyị na-enweta ọtụtụ arịrịọ agụ n'ụbọchị ikpeazụ, dị ka sistemụ nleba anya ọ bụla. Mana n'otu oge ahụ, ibu dị na data akụkọ ihe mere eme dịkwa oke ibu. Ọ bụ n'ụzọ bụ isi site na sistemụ ịdọ aka ná ntị nke na-aga gburugburu sekọnd iri atọ ọ bụla wee sị ClickHouse: “Nye m data maka izu isii gara aga. Ugbu a wulite m ụdị nkezi na-akpụ akpụ site na ha, ka anyị were uru dị ugbu a na nke akụkọ ihe mere eme. "

Ọ ga-amasị m ikwu na maka arịrịọ ndị dị otú ahụ na-adịbeghị anya anyị nwere obere tebụl ọzọ nke anyị na-echekwa naanị ụbọchị abụọ nke data, na arịrịọ ndị bụ isi na-efeba n'ime ya. Anyị na-eziga naanị nnukwu ajụjụ akụkọ ihe mere eme na nnukwu tebụl sharded.

Alexei Milovidov: N'ụzọ dị mwute, ọ na-apụta na ọ dabara nke ọma maka ọnọdụ gị, mana m ga-agwa gị nkọwa nke atụmatụ sharding abụọ ọjọọ na mgbagwoju anya nke na-adịghị mkpa ka e jiri ya mee ihe, mana nke a na-eji na ọrụ ndị enyi m.

Enwere nnukwu ụyọkọ nwere mmemme Yandex.Metrica. Ihe omume bụ nlele ibe, ọpịpị na ntụgharị. Ọtụtụ arịrịọ na-aga na webụsaịtị akọwapụtara. Ị mepee ọrụ Yandex.Metrica, ị nwere ebe nrụọrụ weebụ - avito.ru, gaa na akụkọ ahụ, a na-arịọkwa arịrịọ maka ebe nrụọrụ weebụ gị.

Mana enwere arịrịọ ndị ọzọ - nyocha na nke zuru ụwa ọnụ - nke ndị nyocha nke ime na-eme. Ọ bụrụ n'ezie, achọpụtara m na ndị nyocha ime na-arịọ arịrịọ naanị maka ọrụ Yandex. Mana ka o sina dị, ọbụlagodi ọrụ Yandex na-etinye oke nke data niile. Ndị a bụ arịrịọ ọ bụghị maka ọnụ ọgụgụ akọwapụtara, kama maka nzacha sara mbara.

Otu esi ahazi data n'ụzọ na ihe niile na-arụ ọrụ nke ọma maka otu counter, yana ajụjụ zuru ụwa ọnụ? Ihe isi ike ọzọ bụ na ọnụ ọgụgụ nke arịrịọ na ClickHouse maka ụyọkọ Metrics dị ọtụtụ puku kwa nkeji. N'otu oge ahụ, otu ihe nkesa ClickHouse enweghị ike ijikwa arịrịọ ndị na-adịghị mkpa, dịka ọmụmaatụ, ọtụtụ puku kwa sekọnd.

Ogo ụyọkọ ahụ bụ sava narị ihe isii. Ọ bụrụ na ị dọkpụrụ tebụl kesara n'elu ụyọkọ a wee zipu ọtụtụ puku arịrịọ ebe ahụ, ọ ga-adị njọ karịa iziga ha na otu sava. N'aka nke ọzọ, nhọrọ na data na-agbasa n'otu n'otu, na anyị na-aga na-arịọ n'aka niile sava, ozugbo na-ewepụ.

Enwere nhọrọ nke na-emegiderịta onwe ya. Cheedị ma ọ bụrụ na anyị kewaa data n'ofe saịtị, na arịrịọ maka otu saịtị na-aga n'otu shard. Ugbu a ụyọkọ ahụ ga-enwe ike ijikwa arịrịọ puku iri kwa nkeji, mana n'otu shard ọ bụla otu arịrịọ ga-arụ ọrụ nwayọ nwayọ. Ọ gaghịzi abawanye n'ihe gbasara ntinye. Karịsịa ma ọ bụrụ na nke a bụ saịtị avito.ru. Agaghị m ekpughe ihe nzuzo ahụ ma ọ bụrụ na m kwuo na Avito bụ otu n'ime saịtị ndị a kacha eleta na RuNet. Na nhazi ya na otu shard ga-abụ ara.

Ya mere, a na-emepụta atụmatụ sharding n'ụzọ aghụghọ karị. A na-ekewa ụyọkọ dum n'ime ọtụtụ ụyọkọ, nke anyị na-akpọ n'ígwé. Ụyọkọ ọ bụla nwere site na iri na abuo ruo ọtụtụ iri na abuo. Enwere ụyọkọ iri atọ na itoolu na mkpokọta.

Kedu ka ihe a niile si abawanye? Ọnụ ọgụgụ nke ụyọkọ anaghị agbanwe - dịka ọ dị iri atọ na itoolu afọ ole na ole gara aga, ọ ka dị. Ma n'ime nke ọ bụla n'ime ha, anyị na-eji nwayọọ nwayọọ na-amụba ọnụ ọgụgụ nke shards ka anyị na-achịkọta data. Na atụmatụ sharding n'ozuzu ya dị ka nke a: a na-ekewa ụyọkọ ndị a na webụsaịtị, na iji ghọta weebụsaịtị nke dị na ụyọkọ, a na-eji metabase dị iche iche na MySQL. Otu saịtị - na otu ụyọkọ. Na n'ime ya, sharding na-eme dịka NJ ndị ọbịa si dị.

Mgbe ị na-edekọ, anyị na-ekewa ha site na nke fọdụrụ nke nkewa nke ID ọbịa. Mana mgbe ị na-agbakwunye shard ọhụrụ, atụmatụ sharding na-agbanwe; anyị na-aga n'ihu na-ekewa, ma na nke fọdụrụ nke nkewa site na nọmba ọzọ. Nke a pụtara na otu onye ọbịa adịlarị n'ọtụtụ sava, ị nweghị ike ịdabere na nke a. A na-eme nke a naanị iji hụ na abịakọrọ data ka mma. Na mgbe ị na-arịọ arịrịọ, anyị na-aga na tebụl nkesa, nke na-eleba anya na ụyọkọ ahụ wee nweta ọtụtụ sava. Nke a bụ atụmatụ nzuzu dị otú ahụ.

Mana akụkọ m agaghị ezu oke ma ọ bụrụ na asịghị m na anyị hapụrụ atụmatụ a. N'ime atụmatụ ọhụrụ ahụ, anyị gbanwere ihe niile wee depụtaghachi data niile site na iji clickhouse-copier.

N'ime atụmatụ ọhụrụ ahụ, a na-ekewa saịtị niile n'ime ụzọ abụọ - nnukwu na obere. Amaghị m ka esi ahọrọ ọnụ ụzọ ahụ, mana ihe si na ya pụta bụ na a na-edekọ nnukwu saịtị n'otu ụyọkọ, ebe e nwere 120 shards nwere nsụgharị atọ nke ọ bụla - ya bụ, sava 360. Na atụmatụ sharding bụ nke na arịrịọ ọ bụla na-aga na shards niile ozugbo. Ọ bụrụ na ị mepee akwụkwọ akụkọ ọ bụla maka avito.ru na Yandex.Metrica, arịrịọ ahụ ga-aga na sava 120. Enwere nnukwu saịtị ole na ole na RuNet. Na arịrịọ ndị ahụ abụghị otu puku kwa sekọnd, ma ọ bụdị ihe na-erughị otu narị. A na-eji nwayọọ na-ata ihe a niile site na tebụl Distributed, nke onye ọ bụla n'ime ha na-eji sava 120 na-arụ ọrụ.

Na ụyọkọ nke abụọ bụ maka obere saịtị. Nke a bụ atụmatụ sharding dabere na NJ saịtị, arịrịọ ọ bụla na-aga kpọmkwem otu shard.

ClickHouse nwere akụrụngwa ihe nbibi-clickhouse. Ị nwere ike ịgwa anyị gbasara ya?

M ga-ekwu ozugbo na ngwọta a na-akawanye njọ ma na-arụpụta ihe. Uru ya bụ na ọ na-emebi data ahụ kpamkpam dịka ụkpụrụ ị kọwapụtara si dị. Mana ihe ndọghachi azụ nke akụrụngwa bụ na ọ naghị emegharị ya ma ọlị. Ọ na-eṅomi data site na otu atụmatụ ụyọkọ gaa na atụmatụ ụyọkọ ọzọ.

Nke a pụtara na ka ọ rụọ ọrụ, ị ga-enwerịrị ụyọkọ abụọ. Ha nwere ike ịnọ n'otu sava ahụ, mana, ka o sina dị, a gaghị emegharị data ahụ agbakwunyere, mana a ga-e copyomi ya.

Dịka ọmụmaatụ, enwere sava anọ, ugbu a enwere asatọ. Ị na-emepụta tebụl kesara ọhụrụ na sava niile, tebụl mpaghara ọhụrụ wee malite pịa-copier, na-egosi n'ime ya atụmatụ ọrụ na ọ kwesịrị ịgụ site n'ebe ahụ, nabata atụmatụ sharding ọhụrụ ma nyefee data n'ebe ahụ. Na na sava ochie ị ga-achọ otu na ọkara ohere karịa ka ọ dị ugbu a, n'ihi na data ochie ga-anọgide na ha, na ọkara nke otu ochie data ga-abata n'elu ha. Ọ bụrụ na ị chere n'ọdịnihu na data kwesịrị ịkegharịa na enwere ohere, mgbe ahụ, usoro a dabara adaba.

Kedu ka clickhouse-copier si arụ ọrụ n'ime? Ọ na-agbaji ọrụ niile n'ime usoro ọrụ maka ịhazi otu akụkụ nke otu tebụl n'otu shard. Enwere ike ịrụ ọrụ ndị a niile n'otu oge, yana clickhouse-copier nwere ike na-agba ọsọ na igwe dị iche iche n'ọtụtụ oge, mana ihe ọ na-eme maka otu akụkụ abụghị ihe ọzọ karịa ntinye họrọ. A na-agụ data ahụ, mebie ya, kewaa ya, wee chịkọta ya ọzọ, dee ya ebe, ma hazie ya ọzọ. Nke a bụ mkpebi siri ike karị.

Ị nwere ihe na-anya ụgbọelu a na-akpọ resharding. Gịnị na ya?

Laa azụ na 2017, ị nwere ihe pilot akpọrọ resharding. Enwere ọbụna nhọrọ na ClickHouse. Dị ka m ghọtara ya, ọ pụtaghị. Ị nwere ike ịgwa m ihe kpatara nke a ji mee? O yiri ka ọ bara ezigbo uru.

Nsogbu niile bụ na ọ bụrụ na ọ dị mkpa ịtụgharị data n'ebe, a chọrọ mmekọrịta dị mgbagwoju anya iji mee nke a na atọm. Mgbe anyị malitere ileba anya ka mmekọrịta a si arụ ọrụ, ọ bịara doo anya na enwere nsogbu ndị bụ isi. Na nsogbu ndị a bụ isi abụghị naanị usoro iwu, ma ozugbo malitere igosi onwe ha na omume n'ụdị ihe nwere ike ịkọwa n'ụzọ dị mfe - ọ dịghị ihe na-arụ ọrụ.

Ọ ga-ekwe omume ijikọ data niile ọnụ tupu ebuga ya ka ọ dị nwayọ?

Ajụjụ gbasara TTL na ịkwaga iji mee ka nhọrọ diski kwụsịlata n'ọnọdụ nke njikọta. Enwere ụzọ, karịa site na cron, iji jikọta akụkụ niile n'ime otu tupu ịkwaga ha ka ha jiri nwayọọ nwayọọ?

Azịza nke ajụjụ a bụ na ọ ga-ekwe omume n'ụzọ ụfọdụ na-akpaghị aka gluu niile iberibe n'ime otu tupu ebufe ha - mba. Echeghị m na nke a dị mkpa. Ọ bụghị na ị ga-ejikọta akụkụ niile n'ime otu, mana naanị tụlere na a ga-ebufe ha na diski ngwa ngwa na-akpaghị aka.

Anyị nwere njirisi abụọ maka iwu mbufe. Nke mbụ bụ ka ọ na-ejupụta. Ọ bụrụ na ọkwa nchekwa dị ugbu a nwere ihe na-erughị pasentị ụfọdụ nke ohere efu, anyị na-ahọrọ otu mkpọ ma bugharịa ya na nchekwa nwayọ. Ma ọ bụ kama, ọ bụghị nwayọ, mana nke na-esote - ka ị na-ahazi.

Usoro nke abụọ bụ nha. Ọ bụ maka ịkwagharị nnukwu iberibe. Ị nwere ike ịhazigharị ọnụ ụzọ dị ka ohere efu na diski ngwa ngwa, a ga-ebufe data ahụ na-akpaghị aka.

Otu esi akwaga na ụdị ClickHouse ọhụrụ ma ọ bụrụ na ọ nweghị ụzọ ịlele ndakọrịta n'ọdịnihu?

A na-atụle isiokwu a mgbe niile na ClickHouse telegram nkata na-eburu n'uche ụdị dị iche iche, ma ka. Kedu ka ọ dị mma ịkwalite site na ụdị 19.11 ruo 19.16 na, dịka ọmụmaatụ, site na 19.16 ruo 20.3. Kedu ụzọ kachasị mma isi kwaga na ụdị ọhụrụ na-enweghị ike ịlele ndakọrịta na igbe ájá n'ọdịnihu?

Enwere ọtụtụ iwu "ọlaedo" ebe a. Mbụ - gụọ akwụkwọ mgbanwe. Ọ buru ibu, mana enwere paragraf dị iche iche gbasara mgbanwe mgbanwe na-ekwekọghị n'azụ. Ejila isi ihe ndị a dị ka ọkọlọtọ uhie. Ndị a na-abụkarị obere ndakọrịta na-agụnye ụfọdụ ọrụ ihu nke ị naghị eji.

Nke abuo, ọ bụrụ na ọ nweghị ụzọ iji lelee ndakọrịta na igbe ájá, ma ịchọrọ imelite ozugbo na mmepụta, ndụmọdụ bụ na ọ dịghị mkpa ka ị mee nke a. Mbụ mepụta igbe ájá wee nwalee. Ọ bụrụ na enweghị ebe nnwale, mgbe ahụ ị nwere ike ị nweghị nnukwu ụlọ ọrụ, nke pụtara na ị nwere ike idetuo ụfọdụ data na laptọọpụ gị wee hụ na ihe niile na-arụ ọrụ nke ọma na ya. Ị nwere ike welie ọtụtụ oyiri na mpaghara gị na igwe gị. Ma ọ bụ ị nwere ike iburu ụdị ọhụrụ ebe dị nso wee bulite ụfọdụ data n'ebe ahụ - ya bụ, mepụta gburugburu ule nyocha.

Iwu ọzọ abụghị imelite otu izu mgbe ahapụchara nsụgharị ahụ n'ihi ijide ahụhụ na mmepụta na nhazi ngwa ngwa na-esote. Ka anyị chepụta ọnụọgụ nke ụdị ClickHouse ka ọ ghara inwe mgbagwoju anya.

Enwere ụdị 20.3.4. Ọnụ ọgụgụ 20 na-egosi afọ mmepụta - 2020. Site n'echiche nke ihe dị n'ime, nke a adịghị mkpa, n'ihi ya, anyị agaghị aṅa ntị na ya. Na-esote - 20.3. Anyị na-abawanye nọmba nke abụọ - na nke a 3 - oge ọ bụla anyị wepụtara ntọhapụ nwere ụfọdụ ọrụ ọhụrụ. Ọ bụrụ na anyị chọrọ ịgbakwunye ụfọdụ atụmatụ na ClickHouse, anyị ga-amụba nọmba a. Nke ahụ bụ, na ụdị 20.4 ClickHouse ga-arụ ọrụ nke ọma. Ọnụọgụ nke atọ bụ 20.3.4. Ebe 4 bụ ọnụọgụ mwepụta nke anyị etinyeghị atụmatụ ọhụrụ, mana doziri ụfọdụ ahụhụ. Ma 4 pụtara na anyị mere ya ugboro anọ.

Echela na nke a bụ ihe dị egwu. Na-emekarị onye ọrụ nwere ike iwunye ọhụrụ version na ọ ga-arụ ọrụ na-enweghị nsogbu ọ bụla na uptime kwa afọ. Mana were ya na n'ime ụfọdụ ọrụ maka nhazi bitmaps, nke ndị enyi China anyị gbakwunyere, ihe nkesa na-akụda mgbe ọ na-agafe arụmụka na-ezighi ezi. Anyị nwere ọrụ imezi nke a. Anyị ga-ahapụ ụdị patch ọhụrụ yana ClickHouse ga-adịkwu mma.

Ọ bụrụ na ị nwere ClickHouse na-agba ọsọ na mmepụta, a na-ahapụkwa ụdị ClickHouse ọhụrụ na njirimara ndị ọzọ - dịka ọmụmaatụ, 20.4.1 bụ nke mbụ, emela ngwa ngwa tinye ya na mmepụta na ụbọchị mbụ. Gịnị mere o ji dị mkpa ọbụna? Ọ bụrụ na ijibeghị ClickHouse, ị nwere ike ịwụnye ya, yana yikarịrị ka ihe niile ga-adị mma. Mana ọ bụrụ na ClickHouse na-arụ ọrụ nke ọma, wee lekwasị anya na patches na mmelite ka ịhụ nsogbu anyị na-edozi.

Kirill Shvakov: Ọ ga-amasị m itinye ntakịrị gbasara gburugburu ule. Onye ọ bụla na-atụ egwu gburugburu ule na n'ihi ihe ụfọdụ ha kwenyere na ọ bụrụ na ị nwere nnukwu ụyọkọ ClickHouse, mgbe ahụ, ebe nlele ahụ kwesịrị ịbụ ihe na-erughị ma ọ bụ ma ọ dịkarịa ala ugboro iri. Ọ dịghị otú ahụ ma ọlị.

Enwere m ike ịgwa gị site na ihe atụ nke m. Enwere m oru ngo, ma enwere ClickHouse. Ebe ule anyị bụ naanị ya - nke a bụ obere igwe mebere na Hetzner maka euro iri abụọ, ebe a na-ebugharị ihe niile. Iji mee nke a, anyị nwere zuru akpaaka na ike, ya mere, na ụkpụrụ, ọ na-eme ka ọ dịghị ihe dị iche ebe na-aga - na ngwaike sava ma ọ bụ naanị deploy na mebere igwe.

Gịnị ka a pụrụ ime? Ọ ga-adị mma ịnye ihe atụ na akwụkwọ ClickHouse maka otu esi ebuga obere ụyọkọ n'ụlọ nke gị - na Docker, na LXC, ikekwe mepụta akwụkwọ egwuregwu nwere ike ime, n'ihi na ndị dị iche iche nwere nhazi dị iche iche. Nke a ga-eme ka ọ dị mfe. Mgbe ị na-ewere ma tinye otu ụyọkọ n'ime nkeji ise, ọ na-adị mfe ịnwa ịchọpụta ihe. Nke a dị mfe karịa, n'ihi na ịtụgharị na ụdị mmepụta nke ị nwalebeghị bụ ụzọ na-agaghị ebe ọ bụla. Mgbe ụfọdụ ọ na-arụ ọrụ ma mgbe ụfọdụ ọ naghị arụ ọrụ. Ya mere, ịtụ anya ihe ịga nke ọma dị njọ.

Maxim Kotyakov, onye injinia azụ azụ Avito: M ga-agbakwunye ntakịrị banyere gburugburu ule site na nsogbu nke nnukwu ụlọ ọrụ chere ihu. Anyị nwere ụyọkọ nnabata ClickHouse zuru oke; n'ihe gbasara atụmatụ data na ntọala, ọ bụ ezigbo nnomi nke ihe a na-emepụta. A na-ebunye ụyọkọ a n'ime arịa ndị nwere opekata mpe. Anyị na-ede ụfọdụ pasent nke mmepụta data n'ebe ahụ, ọ dabara nke ọma na ọ ga-ekwe omume ịmegharị iyi na Kafka. A na-emekọrịta ihe niile dị n'ebe ahụ na nha - ma n'ihe gbasara ikike na eruba, na, na tiori, ihe ndị ọzọ niile hà nhata, ọ kwesịrị ịdị ka mmepụta na usoro nke metrics. A na-ebu ụzọ tụgharịa ihe ọ bụla nwere ike ịgbawa n'elu oche a ma hapụ ya ruo ọtụtụ ụbọchị ruo mgbe ọ dị njikere. Ma n'ụzọ nkịtị, ngwọta a dị oke ọnụ, siri ike ma nwee ụgwọ nkwado na-abụghị efu.

Alexei Milovidov: M ga-agwa gị ihe ọnọdụ ule nke ndị enyi anyị si Yandex.Metrica dị. Otu ụyọkọ nwere sava 600, nke ọzọ nwere 360, ma enwere ụyọkọ nke atọ na ọtụtụ. Ebe ule maka otu n'ime ha bụ naanị shards abụọ nwere ihe atụ abụọ na nke ọ bụla. Gịnị mere shards abụọ? Ka ị ghara ịnọ naanị gị. Na e kwesịkwara oyiri kwa. Naanị obere ego ole ị nwere ike imeli.

Gburugburu ule a na-enye gị ohere ịlele ma ajụjụ gị na-arụ ọrụ yana ọ bụrụ na ihe ọ bụla agbajiri agbaji. Ma mgbe mgbe nsogbu na-ebilite nke a kpamkpam dị iche iche ọdịdị, mgbe ihe niile na-arụ ọrụ, ma e nwere ụfọdụ obere mgbanwe na ibu.

Ka m nye gị ihe atụ. Anyị kpebiri ịwụnye ụdị ClickHouse ọhụrụ. Edewo ya na ebe nyocha, a na-emecha ule akpaghị aka na Yandex.Metrica n'onwe ya, nke na-atụnyere data na ụdị ochie na nke ọhụrụ, na-agba ọsọ dum pipeline. Na n'ezie, green ule nke anyị CI. Ma ọ bụghị ya, anyị agaraghị atụpụta ụdịdị a.

Ihe niile dị mma. Anyị na-amalite ịkwaga n'ime mmepụta. Ana m enweta ozi na ibu dị na eserese ahụ abawanyela ọtụtụ ugboro. Anyị na-atụgharị azụ mbipute ahụ. M na-ele eserese ahụ wee hụ: ibu ahụ abawanyela ọtụtụ ugboro n'oge a na-ebugharị, ma na-ebelata azụ mgbe ha na-atụgharị. Mgbe ahụ, anyị malitere ịtụgharị azụ mbipute ahụ. Ibu ahu we ba uba n'otù uzọ ahu, we daghachi azu n'otù uzọ ahu. Ya mere, nkwubi okwu bụ nke a: ibu abawanyela n'ihi nhazi, ọ dịghị ihe ijuanya.

Mgbe ahụ, ọ siri ike ime ka ndị ọrụ ibe ha wụnye ụdị ọhụrụ ahụ. M na-asị: “Ọ dị mma, tụgharịa. Debe mkpịsị aka gị, ihe niile ga-arụ ọrụ. Ugbu a ibu dị na eserese abawanyela, mana ihe niile dị mma. Daalụ n'ebe ahụ." N'ozuzu, anyị mere nke a, ma nke ahụ bụ ya - e wepụtara nsụgharị ahụ maka mmepụta. Ma ihe fọrọ nke nta ka ọ bụrụ na nhazi ọ bụla nwere nsogbu ndị yiri ya.

Ajụjụ igbu egbu kwesịrị igbu ajụjụ, mana ọ naghị eme ya. Gịnị kpatara?

Onye ọrụ, ụfọdụ ụdị nyocha, bịakwutere m wee mepụta arịrịọ nke tinye ụyọkọ ClickHouse m. Ụfọdụ ọnụ ma ọ bụ ụyọkọ dum, dabere na ụdị oyiri ma ọ bụ shard nke arịrịọ a gara. Ahụrụ m na ihe niile CPU dị na ihe nkesa a dị na shelf, ihe niile na-acha ọbara ọbara. N'otu oge ahụ, ClickHouse n'onwe ya na-aza arịrịọ. M na-edekwa: "Biko gosi m, usoro ndepụta, ihe arịrịọ kpatara ara a."

Achọtara m arịrịọ a wee dee igbu ya. M na-ahụkwa na ọ dịghị ihe na-eme. Ihe nkesa m dị na shelf, ClickHouse na-enye m ụfọdụ iwu, na-egosi na ihe nkesa dị ndụ, na ihe niile dị mma. Mana enwere m mmebi na arịrịọ onye ọrụ niile, mmebi iwu na-amalite site na ndekọ na ClickHouse, ajụjụ igbu m anaghị arụ ọrụ. Gịnị kpatara? Echere m na igbu ajụjụ kwesịrị igbu ajụjụ, mana o meghị.

Ugbu a, a ga-enwe a kama iju azịza. Isi ihe bụ na ajụjụ igbu mmadụ anaghị egbu ajụjụ.

Gbuo ajụjụ na-enyocha obere igbe akpọrọ "Achọrọ m ka e gbuo ajụjụ a." Na arịrịọ n'onwe ya na-eleba anya ọkọlọtọ a mgbe ị na-ahazi ngọngọ ọ bụla. Ọ bụrụ na edobere ya, arịrịọ ahụ akwụsị ịrụ ọrụ. Ọ na-apụta na ọ dịghị onye na-egbu arịrịọ ahụ, ya onwe ya aghaghị ịlele ihe niile ma kwụsị. Na nke a kwesịrị ịrụ ọrụ n'ọnọdụ niile ebe arịrịọ ahụ dị na steeti nhazi blocks nke data. Ọ ga-ahazi ngọngọ data na-esote, lelee ọkọlọtọ, ma kwụsị.

Nke a anaghị arụ ọrụ n'ọnọdụ ebe egbochiri arịrịọ a na ụfọdụ ọrụ. N'ezie, o yikarịrị ka nke a abụghị ikpe gị, n'ihi na, dị ka gị, ọ na-eji ton nke ihe nkesa ihe. Ọ ga-ekwe omume na nke a anaghị arụ ọrụ na nhazi nke mpụga na nkọwa ndị ọzọ. Ma n'ozuzu nke a ekwesịghị ime, ọ bụ ahụhụ. Naanị ihe m nwere ike ịkwado bụ imelite ClickHouse.

Kedu ka esi agbakọ oge nzaghachi n'okpuru ibu ọgụgụ?

Enwere tebụl nke na-echekwa mkpokọta ihe - counters dị iche iche. Ọnụ ọgụgụ ahịrị dị ihe dịka otu narị nde. Ọ ga-ekwe omume ịgụta oge nzaghachi amụma ma ọ bụrụ na ị wụsa 1K RPS maka ihe 1K?

N'ikpe ikpe site na ihe ndị gbara ya gburugburu, anyị na-ekwu maka ibu ịgụ ihe, n'ihi na enweghi nsogbu na ide ihe - ọbụna otu puku, ọbụna otu narị puku, na mgbe ụfọdụ enwere ike itinye ọtụtụ nde ahịrị.

Arịrịọ ịgụ akwụkwọ dị nnọọ iche. Na họrọ 1, ClickHouse nwere ike ime ihe dị ka iri puku kwuru iri puku arịrịọ kwa sekọnd, yabụ na arịrịọ maka otu igodo ga-achọrịrị ụfọdụ akụrụngwa. Na ajụjụ ndị dị otú ahụ ga-esi ike karịa na ụfọdụ ọdụ data isi-uru, n'ihi na maka onye ọ bụla na-agụ ọ dị mkpa ịgụ ngọngọ nke data site na ndeksi. Ndekọ ndeksi anyị anaghị edekọ ndekọ ọ bụla, mana oke ọ bụla. Ya bụ, ị ga-agụrịrị usoro niile - nke a bụ ahịrị 8192 na ndabara. Ị ga-ewepụkwa ngọngọ data abịakọrọ site na 64 KB ruo 1 MB. Ọ na-adịkarị, ajụjụ ndị a ezubere iche na-ewe mili sekọnd ole na ole iji mechaa. Mana nke a bụ nhọrọ kachasị mfe.

Ka anyị nwalee mgbako dị mfe. Ọ bụrụ na ị na-amụba ole na ole milliseconds site na otu puku, ị ga-enweta nkeji ole na ole. Ọ dị ka a ga-asị na ọ gaghị ekwe omume idobe arịrịọ otu puku kwa nkeji, mana n'ezie ọ ga-ekwe omume, n'ihi na anyị nwere ọtụtụ cores processor. Yabụ, na ụkpụrụ, ClickHouse nwere ike ijide 1000 RPS mgbe ụfọdụ, mana maka arịrịọ dị mkpụmkpụ, ndị ezubere iche.

Ọ bụrụ na ịchọrọ ịbawanye ụyọkọ ClickHouse site na ọnụ ọgụgụ nke arịrịọ dị mfe, m na-akwado ihe kachasị mfe - mụbaa ọnụ ọgụgụ nke oyiri ma ziga arịrịọ na oyiri na-enweghị usoro. Ọ bụrụ na otu oyiri esetịpụ narị ise arịrịọ kwa nke abụọ, nke bụ kpamkpam ezi uche, mgbe ahụ, atọ oyiri ga-aka otu na ọkara puku.

Mgbe ụfọdụ, n'ezie, ị nwere ike hazie ClickHouse maka ọnụ ọgụgụ kachasị nke ọgụgụ isi. Kedu ihe achọrọ maka nke a? Nke mbụ bụ ibelata granularity nke index. N'okwu a, e kwesịghị ibelata ya na otu, ma na ndabere na ọnụ ọgụgụ nke ndenye na index ga-abụ ọtụtụ nde ma ọ bụ iri nde nde kwa nkesa. Ọ bụrụ na tebụl nwere otu narị nde ahịrị, mgbe ahụ, granularity nwere ike ịtọ 64.

Ị nwere ike belata nha nke ngọngọ abịakọrọ. Enwere ntọala maka nke a min mpikota onu ngọngọ size, max mpikota onu ngọngọ size. Enwere ike belata ha, mejupụta data, wee jụọ ajụjụ ndị ezubere iche ga-adị ngwa ngwa. Mana ka, ClickHouse abụghị nchekwa data bara uru. Ọnụ ọgụgụ dị ukwuu nke obere arịrịọ bụ ibu antipattern.

Kirill Shvakov: M ga-enye ndụmọdụ ma ọ bụrụ na enwere akaụntụ nkịtị n'ebe ahụ. Nke a bụ ọnọdụ ọkọlọtọ mgbe ClickHouse na-echekwa ụdị counter. Enwere m onye ọrụ, ọ si n'obodo dị otú ahụ na obodo dị otú ahụ, yana ụfọdụ ubi nke atọ, ọ dịkwa m mkpa ịbawanye ihe na-abawanye. Were MySQL, mee igodo pụrụ iche - na MySQL ọ bụ igodo oyiri, na na PostgreSQL ọ bụ esemokwu - ma tinye akara mgbakwunye. Nke a ga-arụ ọrụ nke ọma karị.

Mgbe ị nweghị data buru ibu, ọ nweghị nnukwu uru iji ClickHouse. Enwere ọdụ data mgbe niile ma ha na-eme nke a nke ọma.

Kedu ihe m nwere ike tweak na ClickHouse ka data ndị ọzọ dị na cache?

Ka anyị chee echiche banyere ọnọdụ - ndị sava nwere 256 GB nke RAM, na-eme kwa ụbọchị ClickHouse na-ewe banyere 60-80 GB, na ọnụ ọgụgụ kasị elu - ruo 130. Gịnị nwere ike na-enyere na tweaked ka ndị ọzọ data dị na cache na, otú ahụ, enwere njem ole na ole na diski?

Dịka, cache ibe nke sistemụ arụmọrụ na-arụ ọrụ nke ọma na nke a. Ọ bụrụ na ịmepee elu, lelee ebe ahụ cache ma ọ bụ n'efu - ọ na-ekwukwa ego ole echekwara - mgbe ahụ, ị ​​​​ga-achọpụta na a na-eji ebe nchekwa efu niile maka cache. Ma mgbe ị na-agụ data a, a ga-agụ ya ọ bụghị na diski, kama site na RAM. N'otu oge ahụ, enwere m ike ịsị na a na-eji cache eme ihe nke ọma n'ihi na ọ bụ data abịakọrọ na-echekwa.

Agbanyeghị, ọ bụrụ na ịchọrọ ịgbalite ajụjụ ụfọdụ dị mfe ọbụna karịa, ọ ga-ekwe omume ịme ka cache dị na data decompressed n'ime ClickHouse. A na-akpọ ya cache na-enweghị mkpakọ. N'ime faịlụ nhazi config.xml, debe nha cache na-enweghị mgbagwoju anya na uru ị chọrọ - Ana m akwado ihe karịrị ọkara nke RAM efu, n'ihi na ndị ọzọ ga-abanye n'okpuru cache ibe.

Na mgbakwunye, enwere ntọala ọkwa arịrịọ abụọ. Ntọala mbụ - jiri cache na-enweghị mkpakọ - na-agụnye ojiji ya. A na-atụ aro ka ị mee ya maka arịrịọ niile, ma e wezụga ndị dị arọ, nke nwere ike ịgụ data niile wee kpochapụ cache. Na ntọala nke abụọ bụ ihe dị ka ọnụọgụ kachasị nke ahịrị iji jiri cache. Ọ na-amachi nnukwu ajụjụ na-akpaghị aka ka ha gafere ebe nchekwa.

Kedu otu m ga-esi hazie storage_configuration maka nchekwa na RAM?

Na ọhụrụ ClickHouse akwụkwọ m na-agụ ngalaba metụtara na nchekwa data. Nkọwa ahụ nwere ihe atụ nwere ngwa ngwa SSD.

M na-eche otú e nwere ike isi hazie otu ihe ahụ na olu na-ekpo ọkụ ebe nchekwa. Na otu ajụjụ ọzọ. Kedu ka họrọ ọrụ na nzukọ data a, ọ ga-agụ ihe niile ma ọ bụ naanị nke dị na diski, yana data a etinyere na ebe nchekwa? Kedukwa ka ngalaba prewhere si arụ ọrụ na nzukọ data dị otú ahụ?

Ntọala a na-emetụta nchekwa nke chunk data, na usoro ha anaghị agbanwe n'ụzọ ọ bụla.
Ka anyị lebakwuo anya.

Ị nwere ike hazie nchekwa data na RAM. Ihe niile ahaziri maka diski bụ ụzọ ya. Ị na-emepụta akụkụ tmpfs nke etinyere n'ụzọ ụfọdụ na sistemụ faịlụ. Ị na-akọwapụta ụzọ a dị ka ụzọ maka ịchekwa data maka nkebi kachasị mma, ibe data na-amalite ịbịarute ma dee ya ebe ahụ, ihe niile dị mma.

Ma anaghị m akwado ime nke a n'ihi ntụkwasị obi dị ala, ọ bụ ezie na ọ bụrụ na ị nwere ma ọ dịkarịa ala ugboro atọ na ebe data dị iche iche, mgbe ahụ ọ ga-ekwe omume. Ọ bụrụ na ihe ọ bụla emee, a ga-eweghachi data ahụ. Ka anyị were ya na agbanyụrụ ihe nkesa ahụ na mberede wee gbanye ya azụ. Ekwukwasiri nkebi ahụ ọzọ, mana ọ nweghị ihe ọ bụla. Mgbe ihe nkesa ClickHouse malitere, ọ na-ahụ na ọ nweghị iberibe ndị a, ọ bụ ezie na, dị ka ZooKeeper metadata, ha kwesịrị ịnọ ebe ahụ. Ọ na-ele anya nke oyiri nwere ha, rịọ ha ma budata ha. N'ụzọ dị otú a, a ga-eweghachi data ahụ.

N'echiche a, ịchekwa data na RAM adịghị iche na ịchekwa ya na diski, n'ihi na mgbe edere data na diski, ọ na-ebute ụzọ na cache ibe ma dee ya n'ụzọ anụ ahụ ma emechaa. Nke a dabere na nhọrọ ịrịgo sistemụ faịlụ. Mana ọ bụrụ naanị na, m ga-ekwu na ClickHouse anaghị emegharị mgbe ị na-etinye ya.

N'okwu a, a na-echekwa data dị na RAM n'otu usoro ahụ dị na diski ahụ. Nhọrọ nhọrọ n'otu ụzọ ahụ na-ahọrọ iberibe ndị achọrọ ịgụ, họrọ oke data dị mkpa na mpempe akwụkwọ, wee gụọ ha. Na ebe mbụ na-arụ ọrụ kpọmkwem otu ihe ahụ, n'agbanyeghị ma data ahụ dị na RAM ma ọ bụ na diski.

Ruo kedu ọnụ ọgụgụ nke ụkpụrụ pụrụ iche nke Low Cardinality dị irè?

Kadịnal dị ala ka eji akọ mee ya. Ọ na-achịkọta akwụkwọ ọkọwa okwu data, mana ha bụ mpaghara. Nke mbụ, enwere akwụkwọ ọkọwa okwu dị iche iche maka ibe ọ bụla, nke abụọ, ọbụlagodi n'ime otu ibe ha nwere ike ịdị iche maka oke ọ bụla. Mgbe ọnụ ọgụgụ nke ụkpụrụ pụrụ iche ruru ọnụọgụ ọnụ ụzọ—otu nde, echere m—akwụkwọ ọkọwa okwu a na-echekwa ma mepụta nke ọhụrụ.

Azịza ya bụ n'ozuzu: maka mpaghara mpaghara ọ bụla - kwuo, maka ụbọchị ọ bụla - ebe ihe ruru otu nde ụkpụrụ pụrụ iche Low Cardinality dị irè. E mesịa, a ga-enwe nanị ndaghachi azụ, nke a ga-eji ọtụtụ akwụkwọ ọkọwa okwu dị iche iche, ọ bụghị nanị otu. Ọ ga-arụ ọrụ dịka otu kọlụm eriri mgbe niile, ma eleghị anya na-arụ ọrụ nke ọma, mana a gaghị enwe mmebi arụmọrụ siri ike.

Kedu omume kacha mma maka ịchọ tebụl nwere ahịrị ijeri ise?

Enwere azịza dị iche iche. Nke mbụ bụ ikwu na ClickHouse abụghị ihe nchọta ederede zuru oke. Enwere usoro pụrụ iche maka nke a, dịka ọmụmaatụ, Elasticsearch и sphinx. Agbanyeghị, m na-ahụwanye ka ndị mmadụ na-ekwu na ha na-atụgharị site na Elasticsearch gaa ClickHouse.

Gịnị mere nke a ji eme? Ha na-akọwa nke a site n'eziokwu ahụ bụ na Elasticsearch na-akwụsị ịnagide ibu ahụ na mpịakọta ụfọdụ, na-amalite site na iwu nke indexes. Index na-adị oke egwu, ma ọ bụrụ na ị bufee data ahụ na ClickHouse, ọ ga-abụ na echekwara ha ọtụtụ ugboro karịa nke ọma n'ihe gbasara olu. N'otu oge ahụ, ajụjụ ọchụchọ anaghị adịkarị na ọ dị mkpa ịchọta ụfọdụ nkebi ahịrịokwu n'ime mpịakọta dum nke data, na-eburu n'uche morphology, ma dị iche iche. Dịka ọmụmaatụ, chọta ụfọdụ ihe na-esote bytes n'ime ndekọ n'ime awa ole na ole gara aga.

N'okwu a, ị mepụtara ndeksi na ClickHouse, nke mbụ ubi nke ga-abụ ụbọchị na oge. Na nbibi data kachasị ukwuu ga-adabere na oke ụbọchị. N'ime ụbọchị ahọpụtara, dịka iwu, ọ ga-ekwe omume ịme nyocha ederede zuru oke, ọbụlagodi na-eji usoro ike brute na-eji dị ka. Onye na-arụ ọrụ dị ka na ClickHouse bụ nke kachasị arụ ọrụ dị ka onye ọrụ ị nwere ike ịchọta. Ọ bụrụ na ịchọta ihe ka mma, gwa m.

Mana ka, dị ka nyocha zuru oke. Na nyocha zuru ezu nwere ike ịdị ngwa ọ bụghị naanị na CPU, kamakwa na diski. Ọ bụrụ na mberede ị nwere otu terabyte nke data kwa ụbọchị, wee chọọ otu mkpụrụ okwu n'ụbọchị, mgbe ahụ ị ga-enyocha terabyte ahụ. Ma eleghị anya ọ bụ na draịva siri ike mgbe niile, na n'ikpeazụ a ga-ebuba ha n'ụzọ na ị gaghị enwe ike ịnweta ihe nkesa a site na SSH.

N'okwu a, adị m njikere ịnye otu obere aghụghọ ọzọ. Ọ bụ nnwale - ọ nwere ike ịrụ ọrụ, ọ nwere ike ọ gaghị arụ ọrụ. ClickHouse nwere ndenye ederede zuru oke n'ụdị trigram Bloom filter. Ndị ọrụ ibe anyị na Arenadata anwalela ndepụta ndeksi ndị a, ha na-arụkarịkwa ọrụ dịka ebumnobi ha.

Iji jiri ha mee ihe n'ụzọ ziri ezi, ị kwesịrị ị maara nke ọma otú ha si arụ ọrụ: ihe trigram Bloom filter bụ na otu esi ahọrọ nha ya. Enwere m ike ịsị na ha ga-enyere aka maka ajụjụ na ụfọdụ akpaokwu ndị na-adịghị ahụkebe, eriri nke a na-adịghị ahụkebe na data. N'okwu a, a ga-ahọrọ subranges site na ndeksi ma ga-agụ obere data.

Na nso nso a, ClickHouse agbakwunyela ọbụna ọrụ dị elu karịa maka ọchụchọ ederede zuru oke. Nke a bụ, nke mbụ, nchọta ụyọkọ nke substrings n'otu oge n'otu ngafe, gụnyere nhọrọ ndị nwere mmetụta, nke na-enweghị mmetụta, na nkwado maka UTF-8 ma ọ bụ naanị maka ASCII. Họrọ nke kacha dị irè ị chọrọ.

Chọọ ọtụtụ okwu oge niile n'otu ngafe apụtakwala. Ịkwesighi ide X dị ka otu obere eriri ma ọ bụ X dị ka eriri ọzọ. Ị na-ede akwụkwọ ozugbo, a na-emekwa ihe niile nke ọma dị ka o kwere mee.

Nke ato, enwere ugbua ochoro oruru maka regexps na ochoro odika nke substrings. Ọ bụrụ na mmadụ akụọ mkpụrụ okwu, a ga-achọ ya maka egwuregwu kacha.

Kedu ụzọ kachasị mma iji hazie ohere ịbanye na ClickHouse maka ọnụ ọgụgụ buru ibu nke ndị ọrụ?

Gwa anyị otu kacha mma isi hazie ohere maka ọnụ ọgụgụ buru ibu nke ndị ahịa na ndị nyocha. Otu esi eme kwụ n'ahịrị, na-ebute ụzọ ajụjụ ọnụ na-aga n'ihu, yana ngwa ndị dị aṅaa?

Ọ bụrụ na ụyọkọ ahụ buru ibu, mgbe ahụ ezigbo ngwọta ga-abụ ịkwalite sava abụọ ọzọ, nke ga-aghọ ebe ntinye maka ndị nyocha. Ya bụ, ekwela ka ndị nyocha nweta ụfọdụ shards na ụyọkọ ahụ, mana naanị mepụta sava abụọ efu, na-enweghị data, ma hazie ikike ịnweta na ha. N'okwu a, a na-ebufe ntọala onye ọrụ maka arịrịọ ekesa na sava dịpụrụ adịpụ. Ya bụ, ị na-ahazi ihe niile na sava abụọ a, na ntọala nwere mmetụta na ụyọkọ dum.

Na ụkpụrụ, sava ndị a enweghị data, mana ọnụọgụ RAM dị na ha dị ezigbo mkpa maka imezu arịrịọ. Enwere ike iji diski ahụ maka data nwa oge ma ọ bụrụ na agbanyere nchịkọta mpụga ma ọ bụ nhazi mpụta.

Ọ dị mkpa ileba anya na ntọala ndị ejikọtara na oke niile enwere ike. Ọ bụrụ na m gaa na ụyọkọ Yandex.Metrica dị ka onye nyocha wee jụọ arịrịọ họrọ ọnụ ọgụgụ site na hits, mgbe ahụ, a ga-enye m ohere ozugbo na enweghị m ike ịme arịrịọ ahụ. Ọnụ ọgụgụ kachasị nke ahịrị ndị enyere m ohere inyocha bụ otu narị ijeri, na mkpokọta enwere puku ijeri iri ise n'ime ha n'otu tebụl n'ụyọkọ. Nke a bụ njedebe nke mbụ.

Ka anyị kwuo na m wepụrụ oke ahịrị wee mee ajụjụ ahụ ọzọ. Mgbe ahụ, m ga-ahụ ihe ndị a ewepu - agbanyere ntọala ike index site ụbọchị. Enweghị m ike ịmecha ajụjụ a ma ọ bụrụ na akọwapụtaghị m oke ụbọchị. Ịkwesighi ịdabere na ndị nyocha iji aka kọwaa ya. A na-ahụkarị ikpe bụ mgbe edere oke ụbọchị ebe ụbọchị mmemme dị n'etiti izu. Na mgbe ahụ, ha kpọmkwem kpọmkwem ihe nkwadobe n'ebe na-ezighị ezi, na kama ọ tụgharịrị bụrụ ma ọ bụ - ma ọ bụ URL dakọtara. Ọ bụrụ na enweghị oke, ọ ga-akpụ akpụ na kọlụm URL wee mefusịa ọtụtụ akụ.

Na mgbakwunye, ClickHouse nwere ntọala abụọ kacha mkpa. N'ụzọ dị mwute, ha bụ nnọọ oge ochie. A na-akpọ otu mkpa. Ọ bụrụ na a na-eme ihe dị mkpa ≠ 0, na arịrịọ ndị nwere ihe ndị ka mkpa, ma a na-eme arịrịọ nke nwere uru dị mkpa nke na-erughị, nke pụtara ihe dị elu karịa, mgbe ahụ, a na-eme arịrịọ nke nwere uru dị mkpa karịa, nke pụtara na ọ dị ala karịa. , bụ naanị kwụsịtụrụ na ọ gaghị arụ ọrụ ma ọlị n'oge a.

Nke a bụ ntọala siri ike na ọ dịghị mma maka ikpe ebe ụyọkọ ahụ nwere ibu mgbe niile. Mana ọ bụrụ na ị nwere arịrịọ dị mkpụmkpụ, gbawara agbawa nke dị mkpa, na ụyọkọ ahụ na-abụkarị enweghị ọrụ, nhazi a dabara adaba.

A na-akpọ ntọala mkpa na-esote Os eri mkpa. Ọ na-edobe uru dị mma maka eriri mmezu niile maka onye nhazi Linux. Ọ na-arụ ọrụ otú ahụ, ma ọ ka na-arụ ọrụ. Ọ bụrụ na ịtọọ uru kachasị mma nke kacha nta - ọ bụ nke kachasị na uru, ya mere ihe kacha mkpa - ma setịpụ -19 maka arịrịọ ndị nwere mkpa dị elu, mgbe ahụ CPU ga-eri arịrịọ ndị dị obere ihe dị ka okpukpu anọ na-erughị ndị dị elu.

Ịkwesịrị ịhazi oge mmezu arịrịọ kacha elu - sị, nkeji ise. Opekempe ọsọ nke mmezu ajụjụ bụ ihe kacha mma. Ntọala a adịla ogologo oge, ọ na-achọkwa ọ bụghị nanị iji kwupụta na ClickHouse adịghị akwụsịlata, kama ịmanye ya.

Cheedị, ị na-ahazi: ọ bụrụ na usoro ajụjụ ụfọdụ na-erughị otu nde ahịrị kwa sekọnd, ịgaghị eme nke ahụ. Nke a na-akparị aha ọma anyị, ezigbo nchekwa data anyị. Ka anyị machibido ihe a. Enwere ntọala abụọ n'ezie. A na-akpọ otu min ogbugbu ọsọ - n'ahịrị kwa sekọnd, na nke abụọ ka a na-akpọ oge nkwụsị tupu ịlele ọsọ ọsọ m - sekọnd iri na ise na ndabara. Nke ahụ bụ, sekọnd iri na ise ga-ekwe omume, mgbe ahụ, ọ bụrụ na ọ dị ngwa, mgbe ahụ, tụfuo ihe dị iche iche ma wepụ arịrịọ ahụ.

Ị ga-achọkwa ịtọlite ​​oke. ClickHouse nwere njirimara nkwekọ arụnyere na-agụta oriri akụrụngwa. Ma, ọ dị mwute ikwu, ọ bụghị ngwaike akụrụngwa dị ka CPU, disks, ma ezi uche - ọnụ ọgụgụ nke ahazi arịrịọ, ahịrị na bytes na-agụ. Ma ị nwere ike hazie, dịka ọmụmaatụ, karịa otu narị arịrịọ n'ime nkeji ise na otu puku arịrịọ kwa elekere.

Gịnị mere o ji dị mkpa? N'ihi na a ga-eji aka mee ụfọdụ ajụjụ nyocha ozugbo site na onye ahịa ClickHouse. Na ihe niile ga-adị mma. Ma ọ bụrụ na ị nwere ndị nyocha dị elu na ụlọ ọrụ gị, ha ga-ede edemede, ma enwere ike inwe njehie na edemede ahụ. Na njehie a ga-eme ka e mezuo arịrịọ ahụ na akaghị ngwụcha. Nke a bụ ihe anyị kwesịrị iji chebe onwe anyị.

Ọ ga-ekwe omume ịnye ndị ahịa iri nsonaazụ nke otu ajụjụ?

Anyị nwere ọtụtụ ndị ọrụ na-amasị iji nnukwu arịrịọ bata n'otu oge n'otu oge. Arịrịọ ahụ buru ibu ma, n'ụkpụrụ, a na-eme ngwa ngwa, ma n'ihi eziokwu ahụ bụ na e nwere ọtụtụ arịrịọ dị otú ahụ n'otu oge ahụ, ọ na-aghọ ihe na-egbu mgbu. Ọ ga-ekwe omume ịme otu arịrịọ ahụ, nke rutere ugboro iri n'usoro, otu ugboro, ma nye ndị ahịa iri nsonaazụ?

Nsogbu bụ na anyị enweghị nsonaazụ nke cache ma ọ bụ cache nke data etiti. Enwere cache ibe nke sistemụ arụmọrụ, nke ga-egbochi gị ịgụ data sitere na diski ọzọ, mana, ọ dị nwute, data ahụ ka ga-emebi, mebie ma megharịa ya.

Ọ ga-amasị m ịzere nke a n'ụzọ ụfọdụ, ma ọ bụ site na caching data etiti, ma ọ bụ site na ịhazi ajụjụ ndị yiri ya n'ụdị kwụ n'ahịrị na ịgbakwunye cache nsonaazụ. Ugbu a, anyị nwere otu arịrịọ na-adọta na mmepe nke na-agbakwunye cache arịrịọ, mana naanị maka subqueries na ntinye na sonye ngalaba - ya bụ, ngwọta ezughị ezu.

Otú ọ dị, anyị na-echekwa ọnọdụ dị otú ahụ ihu. Otu ihe atụ nke akwụkwọ nsọ bụ ajụjụ ndị e depụtara n'akwụkwọ. Enwere akụkọ, ọ nwere ọtụtụ ibe, yana arịrịọ maka njedebe 10. Mgbe ahụ otu ihe ahụ, mana njedebe 10,10. Mgbe ahụ ibe ọzọ na-esote. Ma ajụjụ bụ, gịnị kpatara anyị ji agụ ihe a niile oge ọ bụla? Ma ugbu a, ọ dịghị ihe ngwọta, ọ dịghịkwa ụzọ isi zere ya.

Enwere ngwọta ọzọ etinyere dị ka ụgbọ ala n'akụkụ ClickHouse - ClickHouse Proxy.

Kirill Shvakov: ClickHouse Proxy nwere ihe mgbochi ọnụego arụnyere na ebe nchekwa nsonaazụ arụnyere arụnyere. Emebere ọtụtụ ntọala ebe ahụ n'ihi na a na-edozi nsogbu yiri ya. Proxy na-enye gị ohere ịmachi arịrịọ site n'ịkpọ ha n'ahịrị wee hazie ogologo oge cache arịrịọ ahụ dị. Ọ bụrụ na arịrịọ ndị ahụ bụ otu, Proxy ga-eziga ha ọtụtụ oge, mana ọ ga-aga ClickHouse naanị otu ugboro.

Nginx nwekwara cache na ụdị efu, nke a ga-arụkwa ọrụ. Nginx nwekwara ntọala na ọ bụrụ na arịrịọ abịarute n'otu oge, ọ ga-ebelata ndị ọzọ ruo mgbe emechara. Mana ọ bụ na ClickHouse Proxy ka a na-eme nhazi nke ọma. Emere ya maka ClickHouse, kpọmkwem maka arịrịọ ndị a, yabụ na ọ dabara adaba. Ọfọn, ọ dị mfe ịwụnye.

Kedu maka arụmọrụ asynchronous na nlele ihe n'ezie?

Enwere nsogbu na arụ ọrụ na engine replay bụ asynchronous - nke mbụ edere data, wee daa. Ọ bụrụ na mbadamba ihe nwoghara nke nwere mkpokọta ụfọdụ bi n'okpuru akara ahụ, mgbe ahụ, a ga-edegara ya oyiri. Ma ọ bụrụ na enweghị mgbagwoju anya mgbagwoju anya, mgbe ahụ, a ga-emepụta data ahụ. Kedu ihe ị ga-eme maka ya?

Enwere ngwọta doro anya - iji mejuputa ihe na-akpalite na klas ụfọdụ nke matview n'oge arụ ọrụ ọdịda asynchronous. Enwere mgbọ ọlaọcha ma ọ bụ atụmatụ iji mejuputa ọrụ yiri ya?

Ọ bara uru ịghọta ka mwepu si arụ ọrụ. Ihe m ga-agwa gị ugbu a abaghị uru na ajụjụ ahụ, ma ọ bụrụ na ọ bara uru icheta.

Mgbe ị na-etinye n'ime tebụl emegharịrị, a na-ewepụ ihe mgbochi niile etinyere. Ọ bụrụ na ịtinyeghachi otu ngọngọ nwere otu ọnụọgụ nke otu ahịrị n'otu usoro ahụ, ewepụrụ data ahụ. Ị ga-enweta "Ok" na nzaghachi itinye, ma n'ezie otu ngwungwu data ga-ede, na ọ gaghị oyiri.

Nke a dị mkpa maka eziokwu. Ọ bụrụ na ịnata “Ok” n'oge ntinye, etinyela data gị. Ọ bụrụ na ịnweta njehie site na ClickHouse, ọ pụtara na etinyeghị ha ma ịkwesịrị ịmegharị ntinye ahụ. Ma ọ bụrụ na njikọ ahụ agbajiri n'oge ntinye, mgbe ahụ ị maghị ma etinyere data ma ọ bụ na etinyeghị ya. Naanị nhọrọ bụ ịmegharị ntinye ọzọ. Ọ bụrụ na etinyere data ahụ n'ezie wee tinyeghachi ya, enwere mwepu ngọngọ. Nke a dị mkpa iji zere oyiri.

Ma ọ dịkwa mkpa ka ọ na-arụ ọrụ maka echiche ihe onwunwe. Ọ bụrụ na ewepụrụ data ahụ mgbe etinyere ya na tebụl bụ isi, mgbe ahụ ọ gaghị abanye n'ime ihe nlere anya.

Ugbu a gbasara ajụjụ a. Ọnọdụ gị gbagwojuru anya karịa n'ihi na ị na-edekọ ahịrị ndị nke ọ bụla. Ya bụ, ọ bụghị mkpọ dum ka emegharịrị, kama ahịrị ndị akọwapụtara, ha na-adakwa n'azụ. N'ezie, data ahụ ga-adaba na tebụl bụ isi, ma data na-adịghị emebi emebi ga-aga na-ele ihe anya, na n'oge njikọta ọ dịghị ihe ga-eme n'echiche ndị ahụ. N'ihi na echiche ihe n'ahụ abụghị ihe ọzọ karịa ntinye ntinye. N'oge ọrụ ndị ọzọ, ọ nweghị ihe ọzọ na-eme ya.

Enweghị m ike ime gị obi ụtọ ebe a. Naanị ịchọrọ ịchọta ngwọta akọwapụtara maka ikpe a. Dịka ọmụmaatụ, ọ ga-ekwe omume ịmegharị ya n'echiche efu, na usoro mwepụ nwere ike ịrụ ọrụ n'otu ụzọ ahụ. Ma ọ dị mwute ikwu, ọ bụghị mgbe niile. Ọ bụrụ na ọ na-agbakọta, ọ gaghị arụ ọrụ.

Kirill Shvakov: Anyị na-arụkwa crutch n'oge ahụ. Enwere nsogbu na enwere mmetụta mgbasa ozi, yana enwere ụfọdụ data anyị nwere ike igosi ozugbo - ndị a bụ naanị echiche. A naghị emepụtakarị ha, mana ọ bụrụ na nke a emee, anyị ga-adaba ha ma emechaa. Ma enwere ihe ndị na-enweghị ike ịmegharị - pịa na akụkọ a dum. Ma, m chọkwara igosi ha ozugbo.

Olee otú e si mee echiche ndị ahụ n'ezie? Enwere echiche ebe edere ya ozugbo - edere ya na data raw, ma dee ya na nlele. N'ebe ahụ, n'oge ụfọdụ data adịghị mma, a na-emegharị ya, na ihe ndị ọzọ. Na e nwere akụkụ nke abụọ nke tebụl, ebe ha na-ele anya kpọmkwem dị ka ihe onwunwe echiche, ya bụ, ha bụ nnọọ otu na nhazi. N'otu oge, anyị na-atụgharị data ahụ, gụọ data na-enweghị oyiri, dee na tebụl ndị ahụ.

Anyị gafere API - nke a agaghị eji aka rụọ ọrụ na ClickHouse. Na API anya: mgbe m nwere ụbọchị nke ikpeazụ mgbakwunye na tebụl, ebe a na-ekwe nkwa na a gbakọọlarị data ziri ezi, ọ na-arịọkwa arịrịọ maka otu tebụl na tebụl ọzọ. Site na otu arịrịọ ahụ na-ahọrọ ruo oge ụfọdụ, na nke ọzọ ọ na-enweta ihe a na-agbakọbeghị. Ọ na-arụkwa ọrụ, mana ọ bụghị site na ClickHouse naanị.

Ọ bụrụ na ị nwere ụdị API - maka ndị nyocha, maka ndị ọrụ - mgbe ahụ, na ụkpụrụ, nke a bụ nhọrọ. Ị na-agụ mgbe niile, na-agụ mgbe niile. Enwere ike ime nke a otu ugboro n'ụbọchị ma ọ bụ n'oge ọzọ. Ị na-ahọrọ onwe gị nso nso nke ị na-adịghị mkpa na ọ dịghị mkpa.

ClickHouse nwere ọtụtụ ndekọ. Kedu ka m ga-esi hụ ihe niile na-eme ihe nkesa na nlele?

ClickHouse nwere ọnụ ọgụgụ dị ukwuu nke ndekọ ndekọ dị iche iche, ọnụ ọgụgụ a na-abawanye. Na nsụgharị ọhụrụ, ụfọdụ n'ime ha na-enyere aka na ndabara; na nsụgharị ochie ha ga-agbanyerịrị mgbe ha na-emelite. Agbanyeghị, enwere ọtụtụ n'ime ha. N'ikpeazụ, ọ ga-amasị m ịhụ ihe na-eme na ihe nkesa m ugbu a, ikekwe na ụfọdụ ụdị nchịkọta dashboard.

Ị nwere otu ClickHouse, ma ọ bụ otu ndị enyi gị, na-akwado ụfọdụ ọrụ nke dashboards emebere nke ga-egosipụta ndekọ ndị a dị ka ngwaahịa emechara? N'ikpeazụ, naanị ilele ndekọ na ClickHouse dị mma. Mana ọ ga-adị mma ma ọ bụrụ na akwadolarị ya n'ụdị dashboard. M ga-enweta ịgba na ya.

Enwere dashboards, n'agbanyeghị na ha ahazibeghị ha. N'ime ụlọ ọrụ anyị, ihe dị ka otu 60 na-eji ClickHouse, na ihe dị ịtụnanya bụ na ọtụtụ n'ime ha nwere dashboard nke ha mere maka onwe ha, yana ndị dịtụ iche. Ụfọdụ otu na-eji nwụnye Yandex.Cloud dị n'ime. Enwere ụfọdụ akụkọ emebere, n'agbanyeghị na ọ bụghị ihe niile dị mkpa. Ndị ọzọ nwere nke ha.

Ndị ọrụ ibe m si Metrica nwere dashboard nke ha na Grafana, enwekwara m nke m maka ụyọkọ ha. Ana m ele ihe dị ka cache kụrụ maka oghere serif. Na ihe siri ike karị bụ na anyị na-eji ngwá ọrụ dị iche iche eme ihe. Eji m ngwá ọrụ ochie a na-akpọ Graphite-web mepụta dashboard m. Ọ jọrọ njọ kpamkpam. M ka na-ejikwa ya n'ụzọ dị otú a, ọ bụ ezie na Grafana ga-adị mma karịa ma maa mma.

Ihe bụ isi na dashboards bụ otu ihe ahụ. Ndị a bụ metrik sistemụ maka ụyọkọ: CPU, ebe nchekwa, diski, netwọkụ. Ndị ọzọ - ọnụ ọgụgụ nke arịrịọ n'out oge, ọnụ ọgụgụ nke imekotaotuugbo merges, ọnụ ọgụgụ nke arịrịọ kwa sekọnd, kacha ọnụ ọgụgụ nke chunks maka MergeTree table partitions, replication lag, replication kwụ n'ahịrị size, ọnụ ọgụgụ nke ntinye ahịrị kwa nkeji, ọnụ ọgụgụ nke ntinye blocks kwa sekọnd. Nke a bụ ihe niile a na-enweta ọ bụghị site na ndekọ, kama site na metrics.

Vladimir Kolobaev: Alexey, ọ ga-amasị m idozi ya ntakịrị. Enwere Grafana. Grafana nwere isi iyi data, nke bụ ClickHouse. Ya bụ, enwere m ike ịrịọ Grafana ozugbo gaa na ClickHouse. ClickHouse nwere tebụl nwere ndekọ, ọ bụ otu maka onye ọ bụla. N'ihi ya, achọrọ m ịnweta tebụl log a na Grafana wee hụ arịrịọ nke ihe nkesa m na-arịọ. Ọ ga-adị mma ịnwe dashboard dị ka nke a.

M gbara ya n'onwe m. Ma enwere m ajụjụ - ọ bụrụ na ọ bụ ahaziri ahaziri, yana onye ọ bụla na-eji Grafana, gịnị kpatara Yandex enweghị dashboard gọọmentị dị otú ahụ?

Kirill Shvakov: N'ezie, isi iyi data na-aga ClickHouse na-akwado Altinity ugbu a. Ma achọrọ m ịnye vector ebe m ga-egwu ala na onye m ga-akwali. Ị nwere ike ịjụ ha, n'ihi na Yandex ka na-eme ClickHouse, ọ bụghị akụkọ gbara ya gburugburu. Altinity bụ isi ụlọ ọrụ na-akwalite ClickHouse ugbu a. Ha agaghị agbahapụ ya, kama ha ga-akwado ya. N'ihi na, n'ụkpụrụ, iji bulite dashboard na weebụsaịtị Grafana, naanị ị ga-edebanye aha na bulite ya - enweghị nsogbu pụrụ iche.

Alexei Milovidov: N'ime afọ gara aga, ClickHouse agbakwunyela ọtụtụ ikike ịkọwapụta ajụjụ. Enwere metrik maka arịrịọ ọ bụla maka iji akụrụngwa. Ma n'oge na-adịbeghị anya, anyị gbakwunyere profaịlụ ajụjụ nke ọkwa dị ala iji hụ ebe ajụjụ na-emefu milisekọnd ọ bụla. Mana iji rụọ ọrụ a, m ga-emepe onye ahịa njikwa wee pịnye arịrịọ, nke m na-echefu mgbe niile. Echekwara m ya ebe ma na-echefu ebe kpọmkwem.

Ọ dị m ka ya bụrụ na enwere ngwaọrụ nke kwuru, nke a bụ ajụjụ gị dị arọ, nke klas ajụjụ chịkọtara. M pịa otu, ha ga-agwa m na ọ bụ ya mere o ji dị arọ. Enweghị ngwọta dị otú ahụ ugbu a. Ma ọ bụ ihe ijuanya na mgbe ndị mmadụ na-ajụ m: “Gwa m, enwere dashboard dị njikere maka Grafana?”, M na-ekwu: “Gaa na webụsaịtị Grafana, e nwere obodo “Dashboards” na enwere dashboard. site na Dimka, enwere dashboard sitere na Kostyan. Amaghị m ihe ọ bụ, ejibeghị m ya n'onwe m. "

Otu esi emetụta njikọta ka ihe nkesa ghara ịdaba na OOM?

Enwere m tebụl, enwere naanị otu akụkụ na tebụl, ọ bụ ReplacingMergeTree. A na m ede data n'ime ya afọ anọ. Achọrọ m ime mgbanwe na ya ma hichapụ ụfọdụ data.

Emere m nke a, na n'oge nhazi nke arịrịọ a, ihe nchekwa niile dị na sava niile dị na ụyọkọ ahụ na-eripịa, na sava niile dị na ụyọkọ ahụ wee banye OOM. Mgbe ahụ, ha niile biliri ọnụ, malite ijikọ otu ọrụ a, ngọngọ data a, wee daba na OOM ọzọ. Ha we bilie ọzọ daa ọzọ. Ihe a akwụsịghịkwa.

Mgbe ahụ, ọ bịara bụrụ na nke a bụ n'ezie ahụhụ ụmụ okorobịa ahụ doziri. Nke a dị ezigbo mma, daalụ nke ukwuu. Ma nke fọdụrụ fọdụrụ. Ma ugbu a, mgbe m na-eche banyere ime ka ụfọdụ ụdị njikọ na tebụl, enwere m ajụjụ - gịnị kpatara na m na-apụghị n'ụzọ ụfọdụ imetụta ndị a merges? Dịka ọmụmaatụ, kpachie ha site na ọnụọgụ RAM achọrọ, ma ọ bụ, n'ụkpụrụ, site na ego ga-ahazi tebụl a.

Enwere m tebụl akpọrọ "Metrics", biko haziere m ya na eriri abụọ. Ọ dịghị mkpa ịmepụta iri ma ọ bụ ise merges n'otu aka ahụ, mee ya na abụọ. Echere m na enwere m ebe nchekwa zuru oke maka abụọ, mana ọ nwere ike ọ gaghị ezu iji hazie iri. Gịnị mere ụjọ ji nọrọ? N'ihi na tebụl na-eto eto, na otu ụbọchị, m ga-eche ihu na ọnọdụ na, na ụkpụrụ, bụ agaghịkwa n'ihi ahụhụ, ma n'ihi na data ga-agbanwe na ndị dị otú ahụ a nnukwu ego na m nanị agaghị enwe ezuru ebe nchekwa na. ihe nkesa. Ma mgbe ahụ, ihe nkesa ahụ ga-adaba na OOM mgbe ọ na-ejikọta. Ọzọkwa, enwere m ike ịkagbu ngbanwe ahụ, mana Merji anọghị ebe ahụ.

Ị mara, mgbe ị na-ejikọta, ihe nkesa agaghị adaba na OOM, n'ihi na mgbe ị na-ejikọta ọnụ, a na-eji ego RAM naanị maka otu obere data. Ya mere, ihe niile ga-adị mma n'agbanyeghị ọnụọgụ data.

Vladimir Kolobaev: Ọ dị mma. N'ebe a, oge a bụ na mgbe edozichara ahụhụ ahụ, ebudatara m ụdị ọhụrụ maka onwe m, na na tebụl ọzọ, nke dị ntakịrị, ebe enwere ọtụtụ akụkụ, arụrụ m ọrụ yiri nke ahụ. Na n'oge njikọta, ihe dị ka 100 GB nke RAM gbara ọkụ na ihe nkesa ahụ. Enwere m mmadụ 150, 100 rie, yana windo 50 GB fọdụrụ, yabụ adaghị m n'ime OOM.

Kedu ihe na-echebe m ugbu a ịdaba na OOM ma ọ bụrụ na ọ na-eri 100 GB nke RAM n'ezie? Kedu ihe ị ga-eme ma ọ bụrụ na RAM na-agwụ na mberede?

Alexei Milovidov: Enwere nsogbu dị otú ahụ na oriri RAM kpọmkwem maka ijikọ ejedebeghị. Na nsogbu nke abụọ bụ na ọ bụrụ na e kenyere ụdị njikọ, mgbe ahụ, a ga-egbu ya n'ihi na e dekọrọ ya na ndekọ ndekọ. Ndekọ ndegharị bụ omume ndị achọrọ iji weta oyiri ahụ na steeti na-agbanwe agbanwe. Ọ bụrụ na ịmeghị mmegharị aka nke ga-atụgharị ndekọ ndekọgharị a, a ga-emerịrị njikọ ahụ n'otu ụzọ ma ọ bụ ọzọ.

N'ezie, ọ gaghị abụ ihe na-enweghị atụ ịnwe oke RAM nke "ọ bụrụ na" na-echebe megide OOM. Ọ gaghị enyere njikọ ahụ aka iji mechaa, ọ ga-amalite ọzọ, ruo ụfọdụ ọnụ ụzọ, tụfuo ihe dị iche, wee malite ọzọ - ọ dịghị ihe ọma ga-esi na nke a pụta. Mana na ụkpụrụ, ọ ga-aba uru iwebata mmachi a.

Kedu ka esi emepụta onye ọkwọ ụgbọ ala Golang maka ClickHouse?

Onye ọkwọ ụgbọ ala Golang, nke Kirill Shvakov dere, na-akwado ndị otu ClickHouse ugbu a. Ọ na ebe nchekwa ClickHouse, ọ bụ ugbu a nnukwu na ezigbo.

Obere ndetu. Enwere ebe nchekwa mara mma na nke a hụrụ n'anya nke ụdị nkịtị nke usoro enweghị ngwụcha - nke a bụ Vertica. Ha nwekwara onye ọkwọ ụgbọ ala Python nke ha, nke ndị mmepe Vertica na-akwado. Na ọtụtụ oge, ọ mere na nsụgharị nchekwa na ụdị ọkwọ ụgbọ ala na-agbanwe n'ụzọ dị ịrịba ama, na onye ọkwọ ụgbọ ala n'oge ụfọdụ kwụsịrị ịrụ ọrụ. Na isi ihe nke abụọ. Nkwado maka onye ọkwọ ụgbọ ala gọọmentị a, ọ dị m ka ọ na-eme ya site na usoro "ipple" - ị na-ede ha okwu, ọ na-akwụkwa ruo mgbe ebighị ebi.

Enwere m ajụjụ abụọ. Ugbu a onye ọkwọ ụgbọ ala Golang nke Kirill fọrọ nke nta ka ọ bụrụ ụzọ ndabara iji kparịta ụka site na Golang na ClickHouse. Ọ gwụla ma mmadụ ka na-ekwurịta okwu site na interface http n'ihi na ọ masịrị ya otú ahụ. Kedu ka mmepe nke onye ọkwọ ụgbọ ala a ga-esi gaa n'ihu? A ga-emekọrịta ya na mgbanwe ọ bụla na-emebi emebi na ebe nchekwa n'onwe ya? Gịnịkwa bụ usoro a ga-eji tụlee ihe iseokwu?

Kirill Shvakov: Nke mbụ bụ ka esi ahazi ihe niile n'ụzọ ọchịchị. A tụleghị isi ihe a, yabụ enweghị m ihe m ga-aza.

Iji zaa ajụjụ banyere okwu ahụ, anyị chọrọ obere akụkọ ihe mere eme nke onye ọkwọ ụgbọ ala. M rụrụ ọrụ na ụlọ ọrụ nwere ọtụtụ data. Ọ bụ mgbasa ozi mgbasa ozi nwere ọnụ ọgụgụ dị ukwuu nke ihe omume dị mkpa ka echekwara ebe. Na mgbe ụfọdụ ClickHouse pụtara. Anyị jupụtara na data, na mbụ ihe niile dị mma, ma ClickHouse dara. N'oge ahụ, anyị kpebiri na anyị achọghị ya.

Otu afọ ka e mesịrị, anyị laghachiri n'echiche nke iji ClickHouse, anyị kwesịrị ide data ebe ahụ n'ụzọ ụfọdụ. Ozi mmeghe bụ nke a: ngwaike adịghị ike nke ukwuu, enwere ihe onwunwe ole na ole. Ma anyị na-arụ ọrụ mgbe niile otú a, ya mere anyị na-ele anya kwupụta nwa afọ protocol.

Ebe anyị na-arụ ọrụ na Go, o doro anya na anyị chọrọ onye ọkwọ ụgbọ ala Go. Emere m ya ihe fọrọ nke nta ka ọ bụrụ oge zuru oke - ọ bụ ọrụ ọrụ m. Anyị wetara ya n'otu ebe, na ụkpụrụ ọ dịghị onye chere na onye ọzọ ma e wezụga anyị ga-eji ya mee ihe. Mgbe ahụ CloudFlare bịara na otu nsogbu ahụ, ma ruo oge ụfọdụ anyị na ha na-arụ ọrụ nke ọma, n'ihi na ha nwere otu ọrụ ahụ. Ọzọkwa, anyị mere nke a ma na ClickHouse n'onwe anyị na onye ọkwọ ụgbọ ala.

N'oge ụfọdụ, m kwụsịrị ime ya, n'ihi na ọrụ m n'ihe gbasara ClickHouse na ọrụ gbanwere ntakịrị. Ya mere okwu anaghị emechi. Mgbe ụfọdụ, ndị chọrọ ihe n'onwe ha na-etinye aka na ebe nchekwa. Mgbe ahụ, m na-ele anya na-adọta arịrịọ na mgbe ụfọdụ m na-edezi ihe n'onwe m, ma nke a na-eme adịkarịghị.

Achọrọ m ịlaghachikwuru onye ọkwọ ụgbọ ala. Ọtụtụ afọ gara aga, mgbe ihe a niile malitere, ClickHouse dịkwa iche ma nwee ikike dị iche iche. Ugbu a, anyị nwere nghọta ka esi emegharị onye ọkwọ ụgbọ ala ka ọ rụọ ọrụ nke ọma. Ọ bụrụ na nke a emee, mgbe ahụ mbipute 2 ga-adaba adaba n'ọnọdụ ọ bụla n'ihi crutches na-akwakọba.

Amaghị m ka esi ahazi okwu a. Enweghị m oge dị ukwuu n'onwe m. Ọ bụrụ na ụfọdụ ndị mechaa ọkwọ ụgbọala ahụ, m nwere ike inyere ha aka gwa ha ihe ha ga-eme. Ma aka na-arụsi ọrụ ike nke Yandex na mmepe nke oru ngo a ka ekwubeghị.

Alexei Milovidov: N'ezie, o nwebeghị ọchịchị gbasara ndị ọkwọ ụgbọala a. Naanị ihe bụ na a na-edobe ha n'aka ụlọ ọrụ gọọmentị, ya bụ, a ghọtara onye ọkwọ ụgbọ ala a dị ka ihe ngwọta ndabere maka Go. Enwere ụfọdụ ndị ọkwọ ụgbọ ala, mana ha na-abịa iche.

Anyị enweghị mmepe ime maka ndị ọkwọ ụgbọ ala a. Ajụjụ a bụ ma anyị nwere ike iku onye ọ bụla, ọ bụghị maka onye ọkwọ ụgbọ ala a, kama maka mmepe nke ndị ọkwọ ụgbọ ala obodo niile, ma ọ bụ anyị nwere ike ịchọta onye si n'èzí.

Akwụkwọ ọkọwa okwu dị n'èzí anaghị ebu ma ọ malitegharịa site na iji ntọala lazy_load agbanyere. Ihe a ga-eme?

Anyị nwere ntọala lazy_load agbanyere, ma ka emegharịrị ihe nkesa ahụ, akwụkwọ ọkọwa okwu anaghị ebu n'onwe ya. A na-ewelite ya naanị mgbe onye ọrụ nwetachara akwụkwọ ọkọwa okwu a. Na oge mbụ m nwetara ya, ọ na-enye njehie. Ọ ga-ekwe omume n'ụzọ ụfọdụ iji ClickHouse na-ebunye akwụkwọ ọkọwa okwu na-akpaghị aka, ma ọ bụ na ị ga-achọkwa ịchịkwa njikere ha n'onwe gị ka ndị ọrụ ghara ịnata mmejọ?

Ikekwe anyị nwere ụdị ClickHouse ochie, yabụ akwụkwọ ọkọwa okwu anaghị ebu na akpaghị aka. Nke a nwere ike ịbụ ikpe?

Nke mbụ, enwere ike ịmanye akwụkwọ ọkọwa okwu site na iji ajụjụ usoro bugharia ọkọwa okwu. Nke abuo, banyere njehie - ọ bụrụ na akwụkwọ ọkọwa okwu eburularị, mgbe ahụ ajụjụ ndị ahụ ga-arụ ọrụ dabere na data nke eburu. Ọ bụrụ na ebubeghị akwụkwọ ọkọwa okwu ahụ, a ga-ebunye ya ozugbo mgbe a na-arịọ ya.

Nke a adịghị mma maka akwụkwọ ọkọwa okwu dị arọ. Dịka ọmụmaatụ, ịkwesịrị ịdọrọ otu nde ahịrị na MySQL. Onye na-eme nhọrọ dị mfe, mana nhọrọ a ga-echere otu ahịrị nde. Enwere ngwọta abụọ ebe a. Nke mbụ bụ ịgbanyụ lazy_load. Nke abuo, mgbe ihe nkesa na-ebili, tupu itinye ibu na ya, mee usoro bughari ọkọwa okwu ma ọ bụ mee naanị ajụjụ na-eji akwụkwọ ọkọwa okwu. Mgbe ahụ, a ga-ebunye akwụkwọ ọkọwa okwu. Ịkwesịrị ijikwa ohere nke akwụkwọ ọkọwa okwu na-arụ ọrụ lazy_load, n'ihi na ClickHouse anaghị ebu ha ozugbo.

Azịza nke ajụjụ ikpeazụ bụ ma mbipute ochie ma ọ bụ na ọ dị mkpa ka ehichapụ ya.

Kedu ihe ị ga-eme n'eziokwu na akwụkwọ ọkọwa okwu na-ebughari sistemụ anaghị ebu nke ọ bụla n'ime ọtụtụ akwụkwọ ọkọwa okwu ma ọ bụrụ na opekata mpe otu n'ime ha daa na njehie?

Enwere ajụjụ ọzọ gbasara akwụkwọ ọkọwa okwu bugharia sistemu. Anyị nwere akwụkwọ ọkọwa okwu abụọ - otu anaghị ebu, nke abụọ na-ebu. N'okwu a, akwụkwọ ọkọwa okwu mbugharị sistemụ anaghị ebu akwụkwọ ọkọwa okwu ọ bụla, ma ị ga-ebunye otu aha n'otu n'otu site na iji akwụkwọ ọkọwa okwu mbugharị sistemụ. Nke a ọ metụtakwara ụdị ClickHouse?

Achọrọ m ime gị obi ụtọ. Omume a na-agbanwe. Nke a pụtara na ọ bụrụ na imelite ClickHouse, ọ ga-agbanwekwa. Ọ bụrụ na ị naghị enwe obi ụtọ na omume gị ugbu a usoro bugharia ọkọwa okwu, melite, ka anyị nwee olileanya na ọ ga-agbanwe maka mma.

Enwere ụzọ isi hazie nkọwa na ClickHouse config, mana ọ bụghị igosipụta ha ma ọ bụrụ na emehieghị?

Ajụjụ na-esote bụ maka njehie metụtara akwụkwọ ọkọwa okwu, ya bụ nkọwa. Anyị akọwapụtala nkọwa njikọ na ClickHouse config maka akwụkwọ ọkọwa okwu, ma ọ bụrụ na enwere njehie, anyị na-enweta nkọwa ndị a na paswọọdụ na nzaghachi.

Anyị doziri njehie a site na ịgbakwunye nkọwa na nhazi ọkwọ ụgbọala ODBC. Ọ nwere ụzọ ọ bụla isi hazie nkọwa na ClickHouse config, mana egosighi nkọwa ndị a ma ọ bụrụ na emehieghị?

Ezigbo ngwọta ebe a bụ ịkọwapụta nzere ndị a na odbc.ini, na na ClickHouse n'onwe ya ezipụta naanị ODBC Data Source Aha. Nke a agaghị eme maka akwụkwọ ọkọwa okwu ndị ọzọ - ọ bụghị maka ọkọwa okwu nwere MySQL, ma ọ bụ maka ndị ọzọ, ị gaghị ahụ paswọọdụ mgbe ị nwetara ozi njehie. Maka ODBC, a ga m ele anya - ọ bụrụ na ọ dị, naanị ị ga-ewepụ ya.

Bonus: ndabere maka mbugharị site na nnọkọ

Site na ịpị foto a, nzụlite ego sitere na nnọkọ ga-emeghe maka ndị na-agụ akwụkwọ na-adịgide adịgide. Anyị na ndị ọrụ teknụzụ Avito na-emenyụ ọkụ, anyị na ndị ọrụ ibe anyị si n'ọnụ ụlọ onye na-ahụ maka sistemụ ma ọ bụ ụlọ ọrụ kọmputa nke ụlọ akwụkwọ ochie na-ekwurịta okwu, anyị na-eduzikwa nzukọ kwa ụbọchị n'okpuru akwa mmiri megide ndabere nke graffiti.

ClickHouse maka ndị ọrụ dị elu na ajụjụ na azịza

isi: www.habr.com

Tinye a comment