ClickHouse rau cov neeg siv siab heev hauv cov lus nug thiab lus teb

Thaum lub Plaub Hlis, Avito engineers tau sib sau ua ke rau cov rooj sib tham hauv online nrog lub ntsiab ClickHouse tus tsim tawm Alexey Milovidov thiab Kirill Shvakov, tus tsim tawm Golang los ntawm Integros. Peb tau tham txog yuav ua li cas peb siv cov kev tswj hwm database thiab cov teeb meem uas peb ntsib.

Raws li lub rooj sib tham, peb tau sau ib tsab xov xwm nrog cov kws tshaj lij cov lus teb rau peb thiab cov neeg tuaj saib cov lus nug txog kev thaub qab, kev hloov pauv cov ntaub ntawv, cov phau ntawv txhais lus sab nraud, Golang tsav tsheb thiab hloov kho ClickHouse versions. Tej zaum nws yuav muaj txiaj ntsig rau cov neeg tsim khoom uas twb tau ua haujlwm nrog Yandex DBMS thiab txaus siab rau nws tam sim no thiab yav tom ntej. Los ntawm lub neej ntawd, cov lus teb yog los ntawm Alexey Milovidov, tshwj tsis yog sau lwm yam.

Ceev faj, muaj ntau cov ntawv hauv qab txiav. Peb cia siab tias cov ntsiab lus nrog cov lus nug yuav pab koj taug qab.

ClickHouse rau cov neeg siv siab heev hauv cov lus nug thiab lus teb

Txheem

Yog tias koj tsis xav nyeem cov ntawv nyeem, koj tuaj yeem saib cov ntaub ntawv kaw tseg ntawm peb YouTube channel. Timecodes nyob rau hauv thawj cov lus hauv qab video.

ClickHouse tau hloov kho tas li, tab sis peb cov ntaub ntawv tsis yog. Yuav ua li cas txog nws?

ClickHouse tau hloov kho tas li, thiab peb cov ntaub ntawv, uas tau ua kom zoo kawg nkaus ua tiav, tsis tau hloov kho thiab nyob rau hauv daim ntawv theej.

Cia peb hais tias peb muaj qee qhov teeb meem thiab cov ntaub ntawv ploj lawm. Peb txiav txim siab los kho, thiab nws tau muab tawm tias cov qub partitions, uas yog khaws cia nyob rau hauv lub backup servers, txawv heev los ntawm cov tam sim no siv version ntawm ClickHouse. Yuav ua li cas rau qhov xwm txheej zoo li no, thiab puas ua tau?

Ib qho xwm txheej uas koj rov qab kho cov ntaub ntawv los ntawm kev thaub qab hauv hom qub, tab sis nws tsis txuas mus rau qhov tshiab version, yog tsis yooj yim sua. Peb xyuas kom meej tias cov ntaub ntawv hom ntawv hauv ClickHouse ib txwm tseem rov qab sib xws. Qhov no yog qhov tseem ceeb tshaj qhov rov qab sib raug zoo hauv kev ua haujlwm yog tias tus cwj pwm ntawm qee qhov tsis tshua siv tau hloov pauv. Tus tshiab version ntawm ClickHouse yuav tsum ib txwm muaj peev xwm nyeem cov ntaub ntawv uas khaws cia rau hauv disk. Qhov no yog txoj cai.

Dab tsi yog cov kev coj ua zoo tshaj plaws tam sim no rau thaub qab cov ntaub ntawv los ntawm ClickHouse?

Yuav ua li cas rau thaub qab, coj mus rau hauv tus account tias peb tau optimize cov hauj lwm zaum kawg, ib tug loj database ntawm terabytes, thiab cov ntaub ntawv uas yog tshiab, hais, rau peb hnub kawg, thiab ces tsis muaj cov txheej txheem tshwm sim rau nws?

Peb tuaj yeem ua peb tus kheej cov kev daws teeb meem thiab sau rau ntawm bash: sau cov ntawv luam theej tawm no hauv txoj kev zoo li no. Tej zaum tsis muaj qhov yuav tsum tau ua ib yam dab tsi, thiab lub tsheb kauj vab tau tsim ntev dhau los?

Cia peb pib nrog cov kev coj ua zoo tshaj plaws. Kuv cov npoj yaig ib txwm qhia, hauv cov lus teb rau cov lus nug txog kev thaub qab, ceeb toom lawv txog Yandex.Cloud kev pabcuam, qhov teeb meem no twb tau daws lawm. Yog li siv nws yog tias ua tau.

Tsis muaj kev daws teeb meem rau kev thaub qab, ib puas feem pua ​​​​ua rau ClickHouse. Muaj qee qhov khoob uas tuaj yeem siv tau. Yuav kom tau txais cov kev daws teeb meem tiav, koj yuav tau tinker me ntsis manually, los yog tsim wrappers nyob rau hauv daim ntawv ntawm scripts.

Kuv yuav pib nrog cov kev daws teeb meem uas yooj yim tshaj plaws thiab xaus nrog cov kev sib tw tshaj plaws, nyob ntawm qhov ntim ntawm cov ntaub ntawv thiab qhov loj ntawm pawg. Qhov loj ntawm pawg, qhov kev daws teeb meem ntau dua.

Yog tias lub rooj nrog cov ntaub ntawv tsuas yog ob peb gigabytes, thaub qab tuaj yeem ua tau zoo li no:

  1. Txuag cov lus txhais piv txwv li metadata − qhia tsim rooj.
  2. Ua ib pob pov tseg siv cov neeg siv ClickHouse - xaiv * ntawm rooj ua ntaub ntawv. Los ntawm lub neej ntawd koj yuav tau txais cov ntaub ntawv hauv TabSeparated hom. Yog tias koj xav ua kom muaj txiaj ntsig zoo dua, koj tuaj yeem ua nws hauv Native hom.

Yog tias cov ntaub ntawv ntau dua, ces cov thaub qab yuav siv sij hawm ntau dua thiab ntau qhov chaw. Qhov no yog hu ua lub logical thaub qab; nws tsis khi rau ClickHouse cov ntaub ntawv hom. Yog tias nws yog, tom qab ntawd ua qhov chaw kawg koj tuaj yeem nqa thaub qab thiab xa mus rau MySQL kom rov qab tau.

Rau cov xwm txheej siab dua, ClickHouse muaj lub peev xwm tsim tau los tsim cov duab thaij duab ntawm cov ntaub ntawv hauv zos. Qhov no feature yog muaj raws li kev thov Hloov lub rooj khov muab faib. Los yog yooj yim hloov lub rooj khov - qhov no yog snapshot ntawm tag nrho cov rooj.

Lub snapshot yuav raug tsim tsis tu ncua rau ib lub rooj ntawm ib lub shard, uas yog, nws yog tsis yooj yim sua los tsim ib tug zoo ib yam snapshot ntawm tag nrho pawg nyob rau hauv no txoj kev. Tab sis rau feem ntau cov dej num tsis muaj qhov xav tau, thiab nws txaus los ua qhov kev thov ntawm txhua lub shard thiab tau txais ib daim duab zoo sib xws. Nws yog tsim nyob rau hauv daim ntawv ntawm hardlinks thiab yog li ntawd tsis siv qhov chaw ntxiv. Tom ntej no, koj luam qhov snapshot no mus rau backup server lossis rau qhov chaw cia uas koj siv rau thaub qab.

Restoring xws li ib tug thaub qab yog heev yooj yim. Ua ntej, tsim cov rooj siv cov lus txhais lus uas twb muaj lawm. Tom ntej no, luam cov snapshots khaws tseg ntawm cov partitions rau Directory-Detached rau cov ntxhuav no thiab khiav cov lus nug txuas muab faib. Qhov kev daws teeb meem no zoo heev rau cov ntaub ntawv loj tshaj plaws.

Qee lub sij hawm koj xav tau qee yam txawm tias txias dua - nyob rau hauv rooj plaub uas koj muaj kaum lossis ntau pua terabytes ntawm txhua tus neeg rau zaub mov thiab ntau pua servers. Muaj kev daws teeb meem ntawm no uas kuv khaws los ntawm kuv cov npoj yaig los ntawm Yandex.Metrica. Kuv yuav tsis pom zoo rau txhua tus - nyeem nws thiab txiav txim siab rau koj tus kheej seb nws tsim nyog lossis tsis.

Ua ntej koj yuav tsum tsim ob peb servers nrog loj disk rhawv. Tom ntej no, ntawm cov servers no, tsa ob peb ClickHouse servers thiab teeb tsa lawv kom lawv ua haujlwm li lwm tus replica rau tib shards. Thiab tom qab ntawd siv cov ntaub ntawv kaw lus lossis qee yam cuab yeej ntawm cov servers no uas tso cai rau koj los tsim cov duab thaij duab. Muaj ob txoj kev xaiv ntawm no. Thawj qhov kev xaiv yog LVM snapshots, qhov kev xaiv thib ob yog ZFS ntawm Linux.

Tom qab ntawd, txhua txhua hnub koj yuav tsum tau tsim ib qho snapshot, nws yuav dag thiab siv qee qhov chaw. Lawm, yog tias cov ntaub ntawv hloov pauv, qhov chaw yuav nce ntxiv raws sijhawm. Cov snapshot no tuaj yeem raug tshem tawm txhua lub sijhawm thiab cov ntaub ntawv rov qab, xws li kev daws teeb meem txawv txawv. Ntxiv rau, peb kuj yuav tsum txwv cov replicas hauv config kom lawv tsis txhob sim ua thawj coj.

Nws puas tuaj yeem npaj qhov kev lag luam tswj hwm ntawm cov khoom siv hauv cov shafts?

Xyoo no koj tab tom npaj ua shafts hauv ClickHouse. Nws puas tuaj yeem tsim kev tswj hwm lag luam ntawm cov qauv hauv lawv? Peb xav siv nws los tiv thaiv peb tus kheej los ntawm cov xwm txheej tsis zoo nrog kev hloov pauv thiab lwm yam kev hloov pauv.

Nws puas tuaj yeem ua qee yam rov qab rau kev hloov pauv? Piv txwv li, nyob rau hauv ib tug uas twb muaj lawm ncej, coj thiab hais tias kom txog rau thaum lub sij hawm no koj siv cov kev hloov, thiab los ntawm lub sij hawm no koj tsis siv cov kev hloov?

Yog hais tias ib qho lus txib tuaj rau peb pawg thiab tsoo nws, ces peb muaj ib qho kev hloov pauv nrog ib teev lag luam, qhov twg peb tuaj yeem hais tias cia siv nws tam sim no, tab sis peb yuav tsis siv cov kev hloov pauv rau kaum feeb dhau los?

Ua ntej, hais txog kev tswj lag luam ntawm replicas. Muaj qhov kev thov no los ntawm cov neeg siv, thiab peb tsim qhov teeb meem ntawm Github nrog kev thov: "Yog tias ib tus neeg xav tau qhov no, nyiam nws, muab lub siab rau." Tsis muaj leej twg xa, thiab qhov teeb meem raug kaw. Txawm li cas los xij, koj tuaj yeem tau txais lub sijhawm no los ntawm kev teeb tsa ClickHouse. Muaj tseeb, tsuas yog pib ntawm version 20.3.

ClickHouse tas li ua cov ntaub ntawv sib koom ua ke hauv keeb kwm yav dhau. Thaum ib qho kev sib koom ua tiav tiav, ib qho txheej txheem ntawm cov ntaub ntawv tau hloov nrog ib daim loj dua. Nyob rau tib lub sijhawm, cov ntaub ntawv uas nyob ntawd ua ntej tseem nyob hauv disk rau qee lub sijhawm.

Ua ntej, lawv tseem khaws cia ntev li ntev tau muaj cov lus nug xaiv uas siv lawv, txhawm rau muab kev lag luam tsis thaiv. Xaiv cov lus nug tau yooj yim nyeem los ntawm cov chunks qub.

Qhov thib ob, kuj tseem muaj lub sijhawm pib - cov ntawv qub ntawm cov ntaub ntawv pw ntawm lub disk rau yim feeb. Cov yim feeb no tuaj yeem hloov kho thiab txawm tig mus rau hauv ib hnub. Qhov no yuav raug nqi qhov chaw disk: nyob ntawm cov ntaub ntawv ntws, nws hloov tawm tias nyob rau hnub kawg cov ntaub ntawv yuav tsis tsuas yog ob npaug, nws tuaj yeem dhau los ua tsib zaug ntxiv. Tab sis yog tias muaj teeb meem loj, koj tuaj yeem nres ClickHouse server thiab txheeb txhua yam tawm.

Tam sim no cov lus nug tshwm sim li cas qhov no tiv thaiv kev hloov pauv. Nws tsim nyog ua tib zoo saib ntawm no, vim hais tias nyob rau hauv cov laus versions ntawm ClickHouse, lub hloov ua hauj lwm nyob rau hauv xws li ib tug txoj kev uas nws tsuas hloov tej daim ncaj qha. Muaj ib daim ntawv nrog qee cov ntaub ntawv, thiab peb ua, piv txwv li, hloov kho kab. Tom qab ntawd cov kab no raug tshem tawm ntawm txhua qhov chunks.

Tab sis pib nrog version 20.3, cov txheej txheem hloov pauv tau hloov pauv tag nrho, thiab tam sim no cov ntaub ntawv ib txwm hloov tsis tau. Lawv tsis hloov tag nrho - hloov tam sim no ua haujlwm zoo ib yam li kev sib koom ua ke. Es tsis txhob hloov ib daim ntawm qhov chaw, peb tsim ib qho tshiab. Hauv cov chunk tshiab, cov ntaub ntawv uas tsis tau hloov pauv dhau los ua hardlinks, thiab yog tias peb tshem tawm ib kem, nws tsuas yog ploj lawm hauv chunk tshiab. Cov khoom qub yuav raug muab tshem tawm los ntawm lub neej ntawd tom qab yim feeb, thiab ntawm no koj tuaj yeem tweak cov chaw hais saum toj no.

Tib yam siv rau kev hloov pauv xws li kev hloov pauv. Thaum koj ua hloov deleted los yog hloov kho tshiab, nws tsis hloov daim, tab sis tsim ib tug tshiab. Thiab ces deletes tus qub.

Yuav ua li cas yog lub rooj qauv hloov?

Yuav ua li cas rov qab tau ib qho thaub qab uas tau ua nrog cov txheej txheem qub? Thiab lo lus nug thib ob yog hais txog rooj plaub nrog snapshots thiab cov cuab yeej ua ntaub ntawv. Puas yog Btrfs zoo ntawm no tsis yog ZFS ntawm Linux LVM?

Yog koj ua txuas muab faib partitions nrog ib tug txawv qauv, ces ClickHouse yuav qhia rau koj tias qhov no yog tsis tau. Qhov no yog qhov kev daws teeb meem. Thawj yog los tsim ib lub rooj ib ntus ntawm MergeTree hom nrog cov qauv qub, muab cov ntaub ntawv txuas nrog, thiab ua cov lus nug hloov. Tom qab ntawd koj tuaj yeem luam lossis hloov cov ntaub ntawv no thiab txuas ntxiv, lossis siv daim ntawv thov hloov lub rooj txav muab faib.

Tam sim no lo lus nug thib ob yog seb Btrfs puas tuaj yeem siv tau. Pib nrog, yog tias koj muaj LVM, ces LVM snapshots txaus, thiab cov ntaub ntawv kaw lus tuaj yeem yog ext4, nws tsis muaj teeb meem. Nrog Btrts, txhua yam nyob ntawm koj qhov kev paub siv nws. Qhov no yog cov ntaub ntawv paub tab, tab sis tseem muaj qee qhov tsis txaus ntseeg txog yuav ua li cas txhua yam yuav ua tiav hauv kev xyaum hauv ib qho xwm txheej. Kuv yuav tsis pom zoo siv qhov no tshwj tsis yog tias koj muaj Btrfs hauv kev tsim khoom.

Dab tsi yog cov kev coj ua zoo tshaj plaws hauv kev hloov cov ntaub ntawv tam sim no?

Qhov teeb meem ntawm reshading yog complex thiab multifaceted. Muaj ob peb lo lus teb ntawm no. Koj tuaj yeem mus los ntawm ib sab thiab hais qhov no - ClickHouse tsis muaj qhov ua kom rov ua dua tshiab. Tab sis kuv ntshai cov lus teb no yuav tsis haum leej twg. Yog li ntawd, koj tuaj yeem mus ntawm lwm sab thiab hais tias ClickHouse muaj ntau txoj hauv kev los hloov cov ntaub ntawv.

Yog tias pawg khiav tawm ntawm qhov chaw lossis nws tsis tuaj yeem tuav lub nra, koj ntxiv cov servers tshiab. Tab sis cov servers no khoob los ntawm lub neej ntawd, tsis muaj cov ntaub ntawv ntawm lawv, tsis muaj kev thauj khoom. Koj yuav tsum rov npaj cov ntaub ntawv kom nws sib npaug sib npaug thoob plaws pawg tshiab, loj dua.

Thawj txoj hauv kev no tuaj yeem ua tiav yog luam ib feem ntawm cov partitions rau cov servers tshiab siv qhov kev thov hloov lub rooj fetch muab faib. Piv txwv li, koj muaj partitions los ntawm lub hli, thiab koj coj thawj lub hlis ntawm 2017 thiab luam nws mus rau ib tug tshiab server, ces luam lub hli thib peb mus rau lwm cov neeg rau zaub mov tshiab. Thiab koj ua qhov no kom txog thaum nws dhau los ua ntau lossis tsawg dua.

Kev hloov pauv tuaj yeem ua tau tsuas yog rau cov partitions uas tsis hloov thaum kaw. Rau cov partitions tshiab, cov ntaubntawv povthawj siv yuav tsum raug kaw, vim tias lawv cov kev hloov pauv tsis yog atomic. Txwv tsis pub, koj yuav xaus nrog duplicates lossis qhov khoob hauv cov ntaub ntawv. Txawm li cas los xij, txoj kev no yog siv tau thiab ua haujlwm zoo heev. Npaj-ua compressed partitions kis tau nyob rau hauv lub network, uas yog, cov ntaub ntawv tsis compressed los yog rov encoded.

Txoj kev no muaj ib qho tsis zoo, thiab nws nyob ntawm lub tswv yim sharding, seb koj puas tau cog lus rau qhov kev sib cog lus no, qhov tseem ceeb sharding koj muaj. Hauv koj qhov piv txwv rau rooj plaub nrog metrics, tus yuam sij sharding yog tus hash ntawm txoj kev. Thaum koj xaiv lub rooj Distributed, nws mus rau tag nrho cov shards hauv pawg ib zaug thiab siv cov ntaub ntawv los ntawm qhov ntawd.

Qhov no txhais tau tias nws yeej tsis muaj teeb meem rau koj li cas cov ntaub ntawv xaus rau ntawm qhov twg shard. Qhov tseem ceeb tshaj plaws yog cov ntaub ntawv raws ib txoj kev xaus rau ntawm ib qho nyuaj, tab sis qhov twg tsis tseem ceeb. Nyob rau hauv cov ntaub ntawv no, hloov pauv npaj-ua partitions yog zoo meej, vim hais tias nrog xaiv queries koj kuj yuav tau txais cov ntaub ntawv tiav - txawm tias ua ntej resharding los yog tom qab, lub tswv yim tsis tshua muaj teeb meem.

Tab sis muaj cov xwm txheej uas nyuaj dua. Yog hais tias nyob rau hauv daim ntawv thov logic theem koj cia siab rau ib tug tshwj xeeb sharding scheme, hais tias tus neeg no nyob rau ntawm xws li ib tug shard, thiab qhov kev thov yuav raug xa ncaj qha mus rau qhov no, thiab tsis mus rau lub Distributed rooj. Los yog koj tab tom siv qhov tsis ntev los no ntawm ClickHouse thiab tau qhib qhov chaw optimize hla cov shards tsis siv. Hauv qhov no, thaum xaiv cov lus nug, cov lus qhia nyob rau hauv qhov chaw yuav raug tshuaj xyuas thiab nws yuav raug suav tias cov shards yuav tsum tau siv raws li cov txheej txheem sharding. Qhov no ua hauj lwm muab hais tias cov ntaub ntawv yog muab faib raws nraim raws li no sharding scheme. Yog tias koj hloov kho lawv manually, cov ntawv sau tuaj yeem hloov pauv.

Yog li qhov no yog txoj kev thib ib. Thiab kuv tab tom tos koj cov lus teb, txawm tias txoj kev tsim nyog, lossis cia peb mus.

Vladimir Kolobaev, tus thawj coj tswj hwm ntawm Avito: Alexey, txoj kev uas koj tau hais tsis ua haujlwm zoo heev thaum koj xav tau kev nthuav dav, suav nrog kev nyeem ntawv. Peb tuaj yeem muab faib ua txhua hli thiab tuaj yeem nqa lub hli dhau los mus rau lwm qhov, tab sis thaum muaj kev thov los ntawm cov ntaub ntawv no, peb tsuas yog thauj khoom. Tab sis peb xav thauj tag nrho pawg, vim tias tsis yog, rau qee lub sijhawm, tag nrho cov ntawv nyeem yuav raug ua tiav los ntawm ob lub shards.

Alexey Milovidov: Cov lus teb ntawm no yog coj txawv txawv - yog, nws tsis zoo, tab sis nws yuav ua haujlwm. Kuv mam piav raws nraim li cas. Nws tsim nyog saib qhov xwm txheej load uas los tom qab koj cov ntaub ntawv. Yog tias qhov no yog kev soj ntsuam cov ntaub ntawv, ces peb yuav luag yeej hais tias feem coob ntawm kev thov yog cov ntaub ntawv tshiab.

Koj tau nruab cov servers tshiab, hloov pauv cov kev faib qub, tab sis kuj hloov pauv cov ntaub ntawv tshiab li cas. Thiab cov ntaub ntawv tshiab yuav kis thoob plaws hauv pawg. Yog li, tom qab tsib feeb xwb, kev thov rau tsib feeb kawg yuav sib npaug ntawm pawg; tom qab ib hnub, thov rau XNUMX teev yuav sib npaug ntawm pawg. Thiab kev thov rau lub hli dhau los, hmoov tsis, tsuas yog mus rau ib feem ntawm pawg servers.

Tab sis feem ntau koj yuav tsis muaj kev thov tshwj xeeb rau Lub Ob Hlis 2019. Feem ntau, yog tias kev thov mus rau 2019, ces lawv yuav yog rau tag nrho 2019 - rau lub sijhawm loj, thiab tsis yog rau qee qhov me me. Thiab cov kev thov no kuj tseem tuaj yeem thauj cov pawg sib npaug. Tab sis feem ntau, koj cov lus hais yog qhov tseeb tiag tiag tias qhov no yog qhov kev daws teeb meem ad hoc uas tsis kis cov ntaub ntawv kom sib npaug.

Kuv muaj ob peb lub ntsiab lus ntxiv los teb cov lus nug. Ib tug ntawm lawv yog hais txog yuav ua li cas pib tsim ib tug sharding scheme kom re-sharding yuav ua rau tsis tshua muaj mob. Qhov no tsis yog ib txwm ua tau.

Piv txwv li, koj muaj cov ntaub ntawv saib xyuas. Kev soj ntsuam cov ntaub ntawv yog loj hlob rau peb lub laj thawj. Qhov thib ib yog qhov tsub zuj zuj ntawm cov ntaub ntawv keeb kwm. Qhov thib ob yog kev tsheb loj hlob. Thiab qhov thib peb yog qhov nce ntawm cov khoom uas raug saib xyuas. Muaj cov tshiab microservices thiab metrics uas yuav tsum tau txais kev cawmdim.

Nws yog qhov ua tau ntawm cov no, qhov loj tshaj plaws nce yog txuam nrog qhov thib peb yog vim li cas - qhov nce hauv kev siv tshuaj xyuas. Thiab nyob rau hauv cov ntaub ntawv no, nws yog tsim nyog saib qhov xwm ntawm lub load, dab tsi yog lub ntsiab lus nug. Cov lus nug xaiv yooj yim feem ntau yuav yog nyob ntawm qee qhov kev ntsuas me me.

Piv txwv li, kev siv CPU ntawm qee lub servers los ntawm qee qhov kev pabcuam. Nws hloov tawm tias muaj qee qhov subset ntawm cov yuam sij uas koj tau txais cov ntaub ntawv no. Thiab qhov kev thov nws tus kheej rau cov ntaub ntawv no feem ntau yuav yooj yim heev thiab ua tiav hauv kaum milliseconds. Siv rau kev saib xyuas cov kev pabcuam thiab dashboards. Kuv vam tias kuv nkag siab qhov no raug.

Vladimir Kolobaev: Qhov tseeb yog tias peb feem ntau thov rau cov ntaub ntawv keeb kwm, txij li thaum peb piv cov xwm txheej tam sim no nrog cov keeb kwm hauv lub sijhawm. Thiab nws yog ib qho tseem ceeb rau peb kom nkag tau sai rau cov ntaub ntawv ntau, thiab ClickHouse ua haujlwm zoo nrog qhov no.

Koj hais yog lawm, peb muaj feem ntau ntawm cov ntawv thov nyeem nyob rau hnub kawg, zoo li txhua qhov kev saib xyuas. Tab sis tib lub sij hawm, lub load ntawm cov ntaub ntawv keeb kwm kuj tseem loj heev. Nws yog qhov pib los ntawm kev ceeb toom uas mus ncig txhua peb caug vib nas this thiab hais rau ClickHouse: "Muab cov ntaub ntawv rau kuv rau lub lim tiam dhau los. Tam sim no tsim kuv qee qhov kev hloov pauv nruab nrab ntawm lawv, thiab cia peb piv tus nqi tam sim no nrog cov keeb kwm yav dhau los. "

Kuv xav hais tias rau qhov kev thov tsis ntev los no peb muaj lwm lub rooj me me uas peb khaws cia tsuas yog ob hnub ntawm cov ntaub ntawv, thiab cov lus thov tseem ceeb ya mus rau hauv nws. Peb tsuas yog xa cov lus nug keeb kwm loj rau lub rooj loj sharded.

Alexey Milovidov: Hmoov tsis zoo, nws dhau los ua qhov tsis zoo rau koj qhov xwm txheej, tab sis kuv yuav qhia koj ib qho kev piav qhia ntawm ob qho kev phem thiab nyuaj sharding schemes uas tsis tas yuav siv, tab sis uas yog siv hauv kuv cov phooj ywg cov kev pabcuam.

Muaj ib pawg tseem ceeb nrog Yandex.Metrica cov xwm txheej. Cov xwm txheej yog nplooj ntawv saib, nyem, thiab hloov pauv. Feem ntau thov mus rau ib lub vev xaib tshwj xeeb. Koj qhib qhov kev pabcuam Yandex.Metrica, koj muaj lub vev xaib - avito.ru, mus rau daim ntawv tshaj tawm, thiab thov rau koj lub vev xaib.

Tab sis muaj lwm qhov kev thov - kev tshuaj xyuas thiab thoob ntiaj teb - uas yog tsim los ntawm cov kws tshuaj ntsuam sab hauv. Tsuas yog nyob rau hauv rooj plaub, kuv nco ntsoov tias cov kws tshuaj ntsuam sab hauv ua kev thov rau Yandex cov kev pabcuam nkaus xwb. Txawm li cas los xij, txawm tias Yandex cov kev pabcuam muaj feem cuam tshuam ntawm txhua cov ntaub ntawv. Cov no yog kev thov tsis yog rau cov txee tshwj xeeb, tab sis rau kev lim dej dav dua.

Yuav npaj cov ntaub ntawv li cas kom txhua yam ua haujlwm zoo rau ib lub txee, thiab cov lus nug thoob ntiaj teb ib yam nkaus? Lwm qhov nyuaj yog tias tus naj npawb ntawm kev thov hauv ClickHouse rau Metrics pawg yog ob peb txhiab ib ob. Nyob rau tib lub sijhawm, ib tus neeg rau zaub mov ClickHouse tsis tuaj yeem ua cov lus thov tsis tseem ceeb, piv txwv li, ntau txhiab ib ob.

Cov pawg loj yog rau pua-ib yam dab tsi servers. Yog tias koj tsuas rub lub Rooj Sib Tham hauv pawg no thiab xa ntau txhiab qhov kev thov rau ntawd, nws yuav ua phem dua li xa lawv mus rau ib tus neeg rau zaub mov. Ntawm qhov tod tes, qhov kev xaiv uas cov ntaub ntawv nthuav tawm tusyees, thiab peb mus thiab thov los ntawm txhua tus servers, raug tso tseg tam sim ntawd.

Muaj ib qho kev xaiv uas yog diametrically opposite. Xav txog yog tias peb shard cov ntaub ntawv hla qhov chaw, thiab kev thov rau ib lub xaib mus rau ib qho shard. Tam sim no cov pawg yuav muaj peev xwm lis kaum txhiab qhov kev thov ib ob, tab sis ntawm ib qho shard ib qho kev thov yuav ua haujlwm qeeb dhau. Nws yuav tsis scale nyob rau hauv cov nqe lus ntawm throughput. Tshwj xeeb tshaj yog tias qhov no yog lub vev xaib avito.ru. Kuv yuav tsis qhia qhov zais cia yog tias kuv hais tias Avito yog ib qho ntawm cov chaw mus xyuas ntau tshaj plaws hauv RuNet. Thiab ua nws ntawm ib qho shard yuav vwm.

Yog li ntawd, lub tswv yim sharding yog tsim nyob rau hauv ib tug ntau cunning txoj kev. Tag nrho pawg tau muab faib ua ntau pawg, uas peb hu ua txheej. Txhua pawg muaj los ntawm kaum rau kaum rau ntau lub kaum os shards. Muaj peb caug cuaj pawg li no nyob rau hauv tag nrho.

Yuav ua li cas tag nrho cov scale? Tus naj npawb ntawm pawg tsis hloov - raws li nws yog peb caug cuaj ob peb xyoos dhau los, nws tseem yog li ntawd. Tab sis nyob rau hauv txhua tus ntawm lawv, peb maj mam nce tus naj npawb ntawm shards thaum peb sau cov ntaub ntawv. Thiab cov phiaj xwm sib faib tag nrho yog zoo li no: cov pawg no tau muab faib ua cov vev xaib, thiab txhawm rau nkag siab lub vev xaib twg nyob ntawm pawg twg, cais cov metabase hauv MySQL siv. Ib qhov chaw - ntawm ib pawg. Thiab hauv nws, sharding tshwm sim raws li tus qhua IDs.

Thaum sau cia, peb faib lawv los ntawm qhov seem ntawm kev faib ntawm tus qhua ID. Tab sis thaum ntxiv ib tug tshiab shard, lub sharding scheme hloov; peb txuas ntxiv phua, tab sis nrog ib tug seem ntawm kev faib los ntawm lwm tus lej. Qhov no txhais tau hais tias ib tus qhua twb nyob ntawm ntau lub servers, thiab koj tsis tuaj yeem tso siab rau qhov no. Qhov no tsuas yog ua kom ntseeg tau tias cov ntaub ntawv zoo dua compressed. Thiab thaum ua kev thov, peb mus rau Distributed table, uas saib ntawm pawg thiab nkag mus rau ntau lub servers. Qhov no yog ib txoj kev ruam.

Tab sis kuv zaj dab neeg yuav ua tsis tiav yog tias kuv tsis hais tias peb tso tseg txoj kev xav no. Hauv cov tswv yim tshiab, peb hloov txhua yam thiab theej tag nrho cov ntaub ntawv siv clickhouse-copier.

Hauv cov tswv yim tshiab, txhua qhov chaw muab faib ua ob pawg - loj thiab me. Kuv tsis paub tias qhov pib raug xaiv li cas, tab sis qhov tshwm sim yog qhov chaw loj tau sau tseg ntawm ib pawg, qhov twg muaj 120 shards nrog peb replicas txhua - uas yog, 360 servers. Thiab cov txheej txheem sharding yog xws li tias txhua qhov kev thov mus rau txhua qhov shards ib zaug. Yog tias koj tam sim no qhib ib nplooj ntawv qhia rau avito.ru hauv Yandex.Metrica, qhov kev thov yuav mus rau 120 servers. Muaj ob peb qhov chaw loj hauv RuNet. Thiab qhov kev thov tsis yog ib txhiab ib ob, tab sis txawm tsawg dua ib puas. Tag nrho cov no yog ntsiag to chewed los ntawm Distributed rooj, uas txhua tus ntawm lawv cov txheej txheem nrog 120 servers.

Thiab pawg thib ob yog rau cov chaw me me. Ntawm no yog ib tug sharding scheme raws li lub site ID, thiab txhua qhov kev thov mus rau raws nraim ib tug shard.

ClickHouse muaj cov cuab yeej clickhouse-copier. Koj puas tuaj yeem qhia peb txog nws?

Kuv mam li hais tam sim ntawd tias qhov kev daws teeb meem no yog qhov nyuaj dua thiab ua haujlwm tsawg dua. Qhov kom zoo dua yog tias nws smears cov ntaub ntawv tag nrho raws li tus qauv koj qhia. Tab sis lub drawback ntawm cov nqi hluav taws xob yog tias nws tsis reshold kiag li. Nws theej cov ntaub ntawv los ntawm ib pawg schema mus rau lwm pawg schema.

Qhov no txhais tau tias rau nws ua haujlwm koj yuav tsum muaj ob pawg. Lawv tuaj yeem nyob ntawm tib lub servers, tab sis, txawm li cas los xij, cov ntaub ntawv yuav tsis txav mus ntxiv, tab sis yuav tau theej.

Piv txwv li, muaj plaub servers, tam sim no muaj yim. Koj tsim ib lub rooj tshiab Distributed rau tag nrho cov servers, cov rooj tshiab hauv zos thiab tso tawm clickhouse-copier, qhia hauv nws txoj haujlwm uas nws yuav tsum tau nyeem los ntawm qhov ntawd, lees txais cov phiaj xwm tshiab sharding thiab hloov cov ntaub ntawv rau ntawd. Thiab ntawm cov qub servers koj yuav xav tau ib thiab ib nrab ntawm qhov chaw ntau dua li tam sim no, vim tias cov ntaub ntawv qub yuav tsum nyob twj ywm rau ntawm lawv, thiab ib nrab ntawm tib cov ntaub ntawv qub yuav tuaj txog saum lawv. Yog tias koj xav ua ntej tias cov ntaub ntawv yuav tsum tau rov kho dua thiab muaj qhov chaw, ces txoj kev no yog qhov tsim nyog.

Clickhouse-copier ua haujlwm li cas hauv? Nws tawg tag nrho cov hauj lwm rau hauv ib txheej ntawm cov dej num rau kev ua ib qho kev faib ntawm ib lub rooj ntawm ib tug shard. Tag nrho cov haujlwm no tuaj yeem ua tiav nyob rau hauv qhov sib npaug, thiab clickhouse-copier tuaj yeem khiav ntawm cov tshuab sib txawv hauv ntau zaus, tab sis nws ua dab tsi rau ib qho kev faib tawm tsis muaj dab tsi ntau tshaj li qhov ntxig xaiv. Cov ntaub ntawv yog nyeem, decompressed, repartitioned, ces compressed dua, sau qhov chaw, thiab rov txheeb. Qhov no yog qhov kev txiav txim siab nyuaj dua.

Koj muaj ib tug pilot yam hu ua resharding. Yuav ua li cas nrog nws?

Rov qab rau xyoo 2017, koj muaj ib qho kev tsav tsheb hu ua resharding. Muaj txawm tias ib qho kev xaiv hauv ClickHouse. Raws li kuv nkag siab, nws tsis tau tawm mus. Koj puas tuaj yeem qhia kuv tias vim li cas qhov no tshwm sim? Nws zoo nkaus li muaj feem cuam tshuam.

Tag nrho cov teeb meem yog hais tias yog hais tias nws yog tsim nyog rau reshard cov ntaub ntawv nyob rau hauv qhov chaw, heev complex synchronization yuav tsum tau nyob rau hauv thiaj li yuav ua qhov no atomically. Thaum peb pib saib seb qhov synchronization ua haujlwm li cas, nws tau pom tseeb tias muaj teeb meem tseem ceeb. Thiab cov teeb meem tseem ceeb no tsis yog tsuas yog theoretical xwb, tab sis tam sim ntawd pib qhia lawv tus kheej hauv kev xyaum ua ib yam dab tsi uas tuaj yeem piav qhia yooj yim heev - tsis muaj dab tsi ua haujlwm.

Nws puas tuaj yeem ua ke tag nrho cov ntaub ntawv ua ke ua ntej txav mus rau qeeb disks?

Lo lus nug txog TTL nrog rau kev txav mus rau qeeb disk xaiv hauv cov ntsiab lus ntawm kev sib koom ua ke. Puas muaj ib txoj hauv kev, tsis yog ntawm cron, los ua ke tag nrho cov khoom rau hauv ib qho ua ntej txav mus rau qeeb disks?

Cov lus teb rau lo lus nug yog nws muaj peev xwm ua tau qee yam cia li muab txhua daim rau hauv ib qho ua ntej hloov lawv - tsis yog. Kuv tsis xav tias qhov no yog qhov tsim nyog. Koj tsis tas yuav muab tag nrho cov seem rau hauv ib qho, tab sis tsuas yog suav nrog qhov tseeb tias lawv yuav raug xa mus rau qeeb disks txiav.

Peb muaj ob txoj cai rau kev hloov pauv. Thawj tus yog raws li nws sau. Yog tias qhov chaw cia khoom tam sim no muaj tsawg dua li qhov feem pua ​​​​ntawm qhov chaw dawb, peb xaiv ib lub chunks thiab txav mus rau qeeb cia. Los yog theej, tsis qeeb, tab sis tus tom ntej - raws li koj teeb tsa.

Qhov thib ob ntsuas yog qhov loj. Nws yog hais txog kev txav cov khoom loj. Koj tuaj yeem kho qhov pib raws li qhov chaw dawb ntawm qhov ceev disk, thiab cov ntaub ntawv yuav raug xa mus.

Yuav ua li cas tsiv mus nyob rau tshiab versions ntawm ClickHouse yog tias tsis muaj txoj hauv kev los kuaj xyuas ua ntej?

Lub ntsiab lus no tau tham tsis tu ncua hauv ClickHouse telegram tham noj mus rau hauv tus account txawv versions, thiab tseem. Nws muaj kev nyab xeeb npaum li cas los hloov kho los ntawm version 19.11 txog 19.16 thiab, piv txwv li, los ntawm 19.16 txog 20.3. Dab tsi yog txoj hauv kev zoo tshaj plaws los hloov mus rau cov ntawv tshiab yam tsis tuaj yeem tshawb xyuas kev sib raug zoo hauv sandbox ua ntej?

Muaj ob peb txoj cai "golden" ntawm no. Ua ntej - nyeem cov changelog. Nws yog qhov loj, tab sis muaj cov kab lus cais hais txog kev hloov pauv tsis sib xws. Tsis txhob kho cov ntsiab lus no ua tus chij liab. Cov no feem ntau yog me me incompatibilities uas koom nrog ib co ntug functionality uas koj yuav tsis siv.

Qhov thib ob, yog tias tsis muaj txoj hauv kev los txheeb xyuas kev sib raug zoo hauv sandbox, thiab koj xav hloov kho tam sim hauv kev tsim khoom, qhov kev pom zoo yog tias koj tsis tas yuav ua qhov no. Ua ntej tsim lub sandbox thiab sim. Yog tias tsis muaj qhov chaw sim, ces koj feem ntau yuav tsis muaj lub tuam txhab loj heev, uas txhais tau tias koj tuaj yeem luam qee cov ntaub ntawv rau koj lub laptop thiab xyuas kom meej tias txhua yam ua haujlwm raug rau nws. Koj tuaj yeem nce ntau qhov sib txawv hauv zos ntawm koj lub tshuab. Lossis koj tuaj yeem khaws cov ntawv tshiab rau qhov chaw nyob ze thiab xa qee cov ntaub ntawv nyob rau ntawd - uas yog, tsim ib qho chaw sim improvised.

Lwm txoj cai yog tsis hloov tshiab rau ib lub lim tiam tom qab tso tawm ntawm lub version vim ntes cov kab hauv kev tsim khoom thiab kev kho sai tom ntej. Cia peb txheeb xyuas tus lej ntawm ClickHouse versions thiaj li tsis txhob tsis meej pem.

Muaj version 20.3.4. Tus naj npawb 20 qhia txog lub xyoo ntawm kev tsim khoom - 2020. Los ntawm qhov pom ntawm dab tsi nyob hauv, qhov no tsis muaj teeb meem, yog li peb yuav tsis xyuam xim rau nws. Tom ntej no - 20.3. Peb nce tus lej thib ob - hauv qhov no 3 - txhua zaus peb tso tawm nrog qee qhov haujlwm tshiab. Yog tias peb xav ntxiv qee qhov tshwj xeeb rau ClickHouse, peb yuav tsum nce tus lej no. Ntawd yog, hauv version 20.4 ClickHouse yuav ua haujlwm zoo dua. Tus lej thib peb yog 20.3.4. Ntawm no 4 yog tus naj npawb ntawm thaj tso tawm uas peb tsis tau ntxiv cov yam ntxwv tshiab, tab sis kho qee cov kab. Thiab 4 txhais tau tias peb tau ua plaub zaug.

Tsis txhob xav tias qhov no yog ib yam uas txaus ntshai. Feem ntau tus neeg siv tuaj yeem nruab qhov tseeb version thiab nws yuav ua haujlwm yam tsis muaj teeb meem nrog uptime ib xyoos twg. Tab sis xav txog tias hauv qee qhov kev ua haujlwm rau kev ua cov bitmaps, uas tau ntxiv los ntawm peb cov phooj ywg Suav, cov neeg rau zaub mov poob thaum dhau cov lus tsis raug. Peb muaj lub luag haujlwm los kho qhov no. Peb yuav tso tawm ib thaj tshiab thiab ClickHouse yuav ruaj khov dua.

Yog tias koj muaj ClickHouse khiav hauv kev tsim khoom, thiab ib qho tshiab ntawm ClickHouse tau tso tawm nrog cov yam ntxwv ntxiv - piv txwv li, 20.4.1 yog thawj zaug, tsis txhob maj muab tso rau hauv kev tsim khoom thawj hnub. Vim li cas ho xav tau? Yog tias koj tsis siv ClickHouse tsis tau, koj tuaj yeem nruab nws, thiab feem ntau txhua yam yuav zoo. Tab sis yog tias ClickHouse twb ua haujlwm ruaj khov, tom qab ntawd khaws lub qhov muag ntawm thaj ua rau thaj thiab hloov kho kom pom cov teeb meem dab tsi peb kho.

Kirill Shvakov: XNUMX Lab tus kiv cua tos koj rau Webtalk! Kuv xav ntxiv me ntsis txog kev xeem ib puag ncig. Txhua leej txhua tus ntshai heev ntawm kev xeem ib puag ncig thiab rau qee qhov lawv ntseeg tias yog tias koj muaj pawg ClickHouse loj heev, ces qhov chaw xeem yuav tsum tsis muaj tsawg lossis tsawg dua kaum zaus. Nws tsis zoo li ntawd kiag li.

Kuv tuaj yeem qhia koj los ntawm kuv tus kheej piv txwv. Kuv muaj ib qhov project, thiab muaj ClickHouse. Peb ib puag ncig kev sim tsuas yog rau nws - qhov no yog lub tshuab virtual me me hauv Hetzner rau nees nkaum euros, qhov twg txhua yam raug xa mus. Ua li no, peb muaj tag nrho automation nyob rau hauv Ansible, thiab yog li ntawd, nyob rau hauv lub hauv paus ntsiab lus, nws tsis muaj qhov txawv qhov twg mus - rau hardware servers los yog cia li xa mus rau hauv virtual machines.

Yuav ua li cas? Nws yuav yog qhov zoo los muab ib qho piv txwv hauv ClickHouse cov ntaub ntawv hais txog yuav ua li cas xa ib pawg me me hauv koj lub tsev - hauv Docker, hauv LXC, tej zaum tsim Ansible playbook, vim tias cov neeg sib txawv muaj ntau qhov sib txawv. Qhov no yuav yooj yim heev. Thaum koj coj thiab xa ib pawg hauv tsib feeb, nws yooj yim dua los sim txiav txim siab ib yam dab tsi. Qhov no yooj yim dua, vim tias dov mus rau hauv cov khoom tsim tawm uas koj tsis tau sim yog txoj kev mus rau qhov twg. Qee zaum nws ua haujlwm thiab qee zaus nws tsis ua haujlwm. Thiab yog li ntawd, kev cia siab rau kev vam meej yog qhov tsis zoo.

Maxim Kotyakov, senior backend engineer Avito: Kuv mam li ntxiv me ntsis txog qhov chaw sim los ntawm cov teeb meem uas tau ntsib los ntawm cov tuam txhab loj. Peb muaj tag nrho-fledged ClickHouse txais pawg; hais txog cov ntaub ntawv schemes thiab chaw, nws yog ib daim ntawv tseeb ntawm dab tsi yog nyob rau hauv ntau lawm. Cov pawg no yog siv rau hauv cov thawv ntim khoom zoo nrog tsawg kawg ntawm cov peev txheej. Peb sau qee feem pua ​​​​ntawm cov ntaub ntawv ntau lawm nyob rau ntawd, hmoov zoo nws muaj peev xwm rov ua dua cov kwj hauv Kafka. Txhua yam muaj synchronized thiab scaled - ob qho tib si nyob rau hauv cov nqe lus ntawm lub peev xwm thiab ntws, thiab, nyob rau hauv txoj kev xav, tag nrho lwm yam yog sib npaug, nws yuav tsum coj zoo li ntau lawm nyob rau hauv cov nqe lus ntawm metrics. Txhua yam uas muaj peev xwm tawg tau yog thawj zaug dov mus rau qhov chaw muag khoom no thiab tawm mus rau ob peb hnub kom txog thaum npaj txhij. Tab sis ib txwm, qhov kev daws teeb meem no kim, nyuaj thiab tsis muaj nqi them nyiaj yug.

Alexey Milovidov: Kuv mam li qhia koj seb qhov chaw sim ntawm peb cov phooj ywg los ntawm Yandex.Metrica zoo li cas. Ib pawg muaj 600-khoob servers, lwm tus muaj 360, thiab muaj ib feem peb thiab ob peb pawg. Qhov chaw sim rau ib qho ntawm lawv tsuas yog ob lub shards nrog ob replicas hauv txhua. Vim li cas ob lub shards? Yog li ntawd koj tsis nyob ib leeg. Thiab yuav tsum muaj replicas ib yam nkaus. Tsuas yog qee qhov tsawg kawg nkaus uas koj tuaj yeem them taus.

Qhov chaw sim no tso cai rau koj los xyuas seb koj cov lus nug puas ua haujlwm thiab yog tias muaj dab tsi loj puas lawm. Tab sis feem ntau cov teeb meem tshwm sim ntawm qhov sib txawv kiag li, thaum txhua yam ua haujlwm, tab sis muaj qee qhov kev hloov pauv me me hauv kev thauj khoom.

Cia kuv muab piv txwv rau koj. Peb txiav txim siab los nruab ib qho tshiab ntawm ClickHouse. Nws tau muab tso rau hauv ib puag ncig kev sim, kev ntsuas kev ua haujlwm tau ua tiav hauv Yandex.Metrica nws tus kheej, uas sib piv cov ntaub ntawv ntawm cov qub version thiab tus tshiab, khiav tag nrho cov kav dej. Thiab tau kawg, ntsuab kuaj ntawm peb CI. Txwv tsis pub peb yuav tsis txawm tau npaj qhov version no.

Txhua yam zoo. Peb tab tom pib txav mus rau hauv kev tsim khoom. Kuv tau txais cov lus hais tias lub nra ntawm cov duab tau nce ntau zaus. Peb tab tom dov rov qab version. Kuv saib ntawm daim duab thiab pom: qhov load tau nce ntau zaus thaum lub sijhawm tso tawm, thiab poob rov qab thaum lawv dov tawm. Tom qab ntawd peb pib dov rov qab version. Thiab lub load nce nyob rau hauv tib txoj kev thiab poob rov qab nyob rau hauv tib txoj kev. Yog li cov lus xaus yog qhov no: lub load tau nce vim qhov layout, tsis muaj dab tsi xav tsis thoob.

Tom qab ntawd nws nyuaj rau kev yaum cov npoj yaig kom nruab qhov tshiab version. Kuv hais tias: "Tsis muaj, tawm mus. Khaws koj cov ntiv tes hla, txhua yam yuav ua haujlwm. Tam sim no lub nra ntawm cov duab tau nce, tab sis txhua yam zoo. Nyob rau hauv. " Feem ntau, peb tau ua qhov no, thiab qhov ntawd yog nws - lub version tau tso tawm rau kev tsim khoom. Tab sis yuav luag txhua qhov teeb meem zoo sib xws tshwm sim.

Cov lus nug tua yuav tsum tua cov lus nug, tab sis nws tsis yog. Vim li cas?

Ib tus neeg siv, qee tus kws tshuaj ntsuam xyuas, tuaj rau kuv thiab tsim ib qho kev thov uas tso kuv cov ClickHouse pawg. Qee cov node lossis tag nrho pawg, nyob ntawm seb qhov twg replica lossis shard qhov kev thov mus rau. Kuv pom tias tag nrho cov peev txheej CPU ntawm lub server no nyob hauv txee, txhua yam yog liab. Tib lub sijhawm, ClickHouse nws tus kheej teb rau cov lus thov. Thiab kuv sau: "Thov qhia kuv, daim ntawv teev npe, qhov kev thov dab tsi ua rau qhov kev vwm no."

Kuv nrhiav tau qhov kev thov no thiab sau tua rau nws. Thiab kuv pom tias tsis muaj dab tsi tshwm sim. Kuv cov neeg rau zaub mov nyob hauv txee, ClickHouse ces muab qee cov lus txib rau kuv, qhia tias cov neeg rau zaub mov tseem muaj sia nyob, thiab txhua yam zoo heev. Tab sis kuv muaj degradation nyob rau hauv tag nrho cov neeg siv thov, degradation pib nrog cov ntaub ntawv nyob rau hauv ClickHouse, thiab kuv tua query tsis ua hauj lwm. Vim li cas? Kuv xav tias tua cov lus nug yuav tsum tua cov lus nug, tab sis nws tsis yog.

Tam sim no yuav muaj lus teb txawv txawv. Lub ntsiab lus yog tias tua cov lus nug tsis tua cov lus nug.

Tua cov lus nug kos ib lub thawv me me hu ua "Kuv xav kom cov lus nug no raug tua." Thiab qhov kev thov nws tus kheej saib tus chij no thaum ua txhua qhov thaiv. Yog tias nws tau teeb tsa, qhov kev thov yuav tsis ua haujlwm. Nws hloov tawm tias tsis muaj leej twg tua qhov kev thov, nws tus kheej yuav tsum tau kuaj txhua yam thiab nres. Thiab qhov no yuav tsum ua haujlwm nyob rau hauv txhua rooj plaub uas qhov kev thov yog nyob rau hauv lub xeev ntawm kev ua cov blocks ntawm cov ntaub ntawv. Nws yuav ua cov ntaub ntawv thaiv tom ntej, txheeb xyuas tus chij, thiab nres.

Qhov no tsis ua haujlwm thaum qhov kev thov raug thaiv ntawm qee qhov haujlwm. Muaj tseeb, feem ntau qhov no tsis yog koj li, vim hais tias, raws li koj, nws siv ib tuj ntawm cov khoom siv server. Nws muaj peev xwm hais tias qhov no tsis ua hauj lwm nyob rau hauv cov ntaub ntawv ntawm sab nraud sorting thiab nyob rau hauv ib co lwm yam ntsiab lus. Tab sis feem ntau qhov no yuav tsum tsis txhob tshwm sim, nws yog kab laum. Thiab tib yam uas kuv tuaj yeem pom zoo yog hloov kho ClickHouse.

Yuav ua li cas xam lub sij hawm teb nyob rau hauv kev nyeem ntawv load?

Muaj ib lub rooj uas khaws cov khoom sib sau ua ke - ntau lub txee. Tus naj npawb ntawm kab yog kwv yees li ib puas lab. Puas yog nws tuaj yeem suav rau lub sijhawm teb uas xav tau yog tias koj nchuav 1K RPS rau 1K cov khoom?

Kev txiav txim los ntawm cov ntsiab lus, peb tab tom tham txog kev nyeem ntawv, vim tias tsis muaj teeb meem nrog kev sau ntawv - txawm tias ib txhiab, ib puas txhiab, thiab qee zaum ntau lab kab tuaj yeem tso.

Kev thov nyeem ntawv txawv heev. Hauv kev xaiv 1, ClickHouse tuaj yeem ua tau txog kaum tawm txhiab qhov kev thov ib ob, yog li txawm tias kev thov rau ib qho tseem ceeb yuav xav tau qee qhov kev pab. Thiab cov lus nug ntawm cov ntsiab lus no yuav nyuaj dua li hauv qee cov ntaub ntawv tseem ceeb, vim hais tias rau txhua qhov kev nyeem nws yog qhov tsim nyog los nyeem cov ntaub ntawv thaiv los ntawm kev ntsuas. Peb qhov ntsuas ntsuas tsis yog txhua cov ntaub ntawv, tab sis txhua qhov ntau. Ntawd yog, koj yuav tsum tau nyeem tag nrho ntau yam - qhov no yog 8192 kab los ntawm lub neej ntawd. Thiab koj yuav tsum decompress cov ntaub ntawv thaiv los ntawm 64 KB rau 1 MB. Feem ntau, cov ntsiab lus nug no siv ob peb milliseconds kom tiav. Tab sis qhov no yog qhov kev xaiv yooj yim tshaj plaws.

Cia peb sim qee qhov kev lej lej yooj yim. Yog tias koj muab ob peb milliseconds los ntawm ib txhiab, koj tau txais ob peb vib nas this. Nws zoo li nws tsis tuaj yeem ua raws li ib txhiab qhov kev thov ib ob, tab sis qhov tseeb nws muaj peev xwm, vim tias peb muaj ntau lub processor cores. Yog li, hauv txoj cai, ClickHouse qee zaum tuaj yeem tuav 1000 RPS, tab sis rau kev thov luv luv, tshwj xeeb yog cov phiaj xwm.

Yog tias koj xav tau teev ib pawg ClickHouse los ntawm tus lej ntawm kev thov yooj yim, tom qab ntawd kuv pom zoo qhov yooj yim tshaj plaws - nce tus naj npawb ntawm cov replicas thiab xa cov lus thov mus rau qhov hloov pauv. Yog hais tias ib tug replica tuav tsib puas thov ib ob, uas yog kiag li muaj tseeb, ces peb replicas yuav lis ib thiab ib nrab txhiab.

Qee zaum, tau kawg, koj tuaj yeem teeb tsa ClickHouse rau qhov siab tshaj plaws ntawm cov ntsiab lus nyeem. Dab tsi yog qhov xav tau rau qhov no? Thawj yog kom txo cov granularity ntawm qhov ntsuas. Nyob rau hauv cov ntaub ntawv no, nws yuav tsum tsis txhob raug txo mus rau ib tug, tab sis nyob rau hauv lub hauv paus uas tus naj npawb ntawm nkag mus rau hauv lub Performance index yuav yog ob peb lab los yog kaum lab lab ntawm ib lub server. Yog hais tias lub rooj muaj ib puas lab kab, ces lub granularity yuav teem rau 64.

Koj tuaj yeem txo qhov loj ntawm qhov compressed block. Muaj kev teeb tsa rau qhov no min compress block loj, max compress block loj. Lawv tuaj yeem txo qis, rov ua dua nrog cov ntaub ntawv, thiab tom qab ntawd cov lus nug tsom yuav nrawm dua. Tab sis tseem, ClickHouse tsis yog qhov tseem ceeb-tus nqi database. Ib tug loj tus naj npawb ntawm kev thov me me yog load antipattern.

Kirill Shvakov: XNUMX Lab tus kiv cua tos koj rau Webtalk! Kuv yuav muab tswv yim yog tias muaj cov account zoo tib yam nyob ntawd. Qhov no yog qhov xwm txheej ncaj ncees thaum ClickHouse khw muag qee yam ntawm lub txee. Kuv muaj ib tug neeg siv, nws yog los ntawm xws li thiab xws li ib lub teb chaws, thiab ib co peb teb, thiab kuv yuav tsum tau nce ib yam dab tsi incrementally. Siv MySQL, ua tus yuam sij tshwj xeeb - hauv MySQL nws yog qhov tseem ceeb dua, thiab hauv PostgreSQL nws yog qhov tsis sib haum xeeb - thiab ntxiv ib qho ntxiv kos npe. Qhov no yuav ua haujlwm zoo dua.

Thaum koj tsis muaj cov ntaub ntawv ntau, tsis muaj qhov taw qhia ntau hauv kev siv ClickHouse. Muaj cov databases tsis tu ncua thiab lawv ua qhov no zoo.

Kuv tuaj yeem tweak dab tsi hauv ClickHouse kom cov ntaub ntawv ntau dua nyob hauv cache?

Cia peb xav txog qhov xwm txheej - cov servers muaj 256 GB ntawm RAM, nyob rau hauv niaj hnub niaj hnub ClickHouse yuav siv li ntawm 60-80 GB, thaum ncov - mus txog 130. Yuav ua li cas enabled thiab tweaked thiaj li hais tias ntau cov ntaub ntawv nyob rau hauv lub cache thiab, raws li, muaj tsawg dua mus rau lub disk?

Feem ntau, lub operating system nplooj ntawv cache ua haujlwm zoo ntawm qhov no. Yog tias koj tsuas yog qhib rau sab saum toj, saib muaj cached lossis dawb - nws kuj hais tias ntau npaum li cas yog cached - tom qab ntawd koj yuav pom tias tag nrho cov cim xeeb dawb yog siv rau lub cache. Thiab thaum nyeem cov ntaub ntawv no, nws yuav nyeem tsis yog los ntawm disk, tab sis los ntawm RAM. Tib lub sijhawm, kuv tuaj yeem hais tias lub cache siv tau zoo vim nws yog cov ntaub ntawv compressed uas yog cached.

Txawm li cas los xij, yog tias koj xav kom ceev qee cov lus nug yooj yim dua, nws muaj peev xwm ua kom lub cache hauv cov ntaub ntawv decompressed hauv ClickHouse. Nws yog hu ua uncompressed cache. Nyob rau hauv cov ntaub ntawv config.xml configuration, teem lub uncompressed cache loj rau tus nqi koj xav tau - Kuv pom zoo kom tsis pub ntau tshaj ib nrab ntawm RAM dawb, vim hais tias tus so yuav mus nyob rau hauv cov nplooj ntawv cache.

Tsis tas li ntawd, muaj ob qhov kev thov theem. Thawj qhov teeb tsa - siv uncompressed cache - suav nrog nws siv. Nws raug nquahu kom qhib nws rau txhua qhov kev thov, tshwj tsis yog qhov hnyav, uas tuaj yeem nyeem tag nrho cov ntaub ntawv thiab yaug lub cache. Thiab qhov thib ob qhov chaw yog ib yam dab tsi zoo li cov kab ntau tshaj plaws los siv lub cache. Nws cia li txwv cov lus nug loj kom lawv hla lub cache.

Kuv tuaj yeem kho qhov chaw khaws cia_configuration li cas rau kev cia hauv RAM?

Hauv cov ntaub ntawv ClickHouse tshiab kuv nyeem cov ntu ntsig txog nrog cov ntaub ntawv khaws cia. Cov lus piav qhia muaj piv txwv nrog ceev SSD.

Kuv xav li cas tib yam yuav configured nrog ntim kub nco. Thiab ib lo lus nug ntxiv. Kev xaiv ua haujlwm li cas nrog lub koom haum cov ntaub ntawv no, nws puas yuav nyeem tag nrho cov txheej txheem lossis tsuas yog ib qho uas nyob hauv disk, thiab cov ntaub ntawv no puas tau ntim hauv lub cim xeeb? Thiab yuav ua li cas cov ntu prewhere ua haujlwm nrog xws li cov ntaub ntawv koom haum?

Qhov kev teeb tsa no cuam tshuam rau qhov khaws cia ntawm cov ntaub ntawv chunks, thiab lawv cov hom ntawv tsis hloov txhua txoj kev.
Cia wb mus saib ntxiv.

Koj tuaj yeem teeb tsa cov ntaub ntawv khaws cia hauv RAM. Txhua yam uas tau teeb tsa rau lub disk yog nws txoj hauv kev. Koj tsim ib tug tmpfs muab faib uas yog mounted rau ib co txoj kev nyob rau hauv cov ntaub ntawv system. Koj qhia txoj hauv kev no raws li txoj hauv kev rau khaws cov ntaub ntawv rau qhov sib faib kub tshaj plaws, cov ntaub ntawv pib tuaj txog thiab sau rau ntawd, txhua yam zoo.

Tab sis kuv tsis pom zoo ua qhov no vim tias tsis muaj kev ntseeg siab, txawm hais tias koj muaj tsawg kawg yog peb qhov sib txawv hauv cov chaw sib txawv, ces nws muaj peev xwm. Yog tias muaj dab tsi tshwm sim, cov ntaub ntawv yuav rov qab los. Cia peb xav txog tias tus neeg rau zaub mov tam sim ntawd muab tua thiab tig rov qab. Qhov muab faib tau rov qab, tab sis tsis muaj dab tsi nyob ntawd. Thaum lub ClickHouse server pib, nws pom tias nws tsis muaj cov khoom no, txawm hais tias, raws li ZooKeeper metadata, lawv yuav tsum nyob ntawd. Nws saib cov replicas twg muaj lawv, thov lawv thiab downloads lawv. Li no cov ntaub ntawv yuav rov qab los.

Hauv qhov kev nkag siab no, kev khaws cov ntaub ntawv hauv RAM tsis yog qhov txawv ntawm kev khaws cia rau hauv disk, vim tias thaum cov ntaub ntawv sau rau disk, nws tseem ua ntej xaus rau nplooj ntawv cache thiab sau lub cev tom qab. Qhov no nyob ntawm cov ntaub ntawv system mounting xaiv. Tab sis nyob rau hauv rooj plaub no, kuv mam li hais tias ClickHouse tsis fsync thaum ntxig.

Nyob rau hauv cov ntaub ntawv no, cov ntaub ntawv nyob rau hauv lub RAM yog khaws cia nyob rau hauv raws nraim tib hom ntawv raws li nyob rau hauv lub disk. Cov lus nug xaiv tib yam xaiv cov ntawv uas yuav tsum tau nyeem, xaiv cov ntaub ntawv tsim nyog nyob rau hauv daim, thiab nyeem lawv. Thiab prewhere ua hauj lwm raws nraim tib yam, tsis hais seb cov ntaub ntawv nyob rau hauv RAM los yog nyob rau hauv disk.

Txog pes tsawg tus nqi tshwj xeeb yog Low Cardinality siv tau?

Tsawg Cardinality yog cleverly tsim. Nws compiles cov ntaub ntawv dictionaries, tab sis lawv nyob hauv zos. Ua ntej, muaj cov phau ntawv txhais lus sib txawv rau txhua daim, thiab qhov thib ob, txawm nyob hauv ib thooj lawv tuaj yeem sib txawv rau txhua qhov. Thaum tus naj npawb ntawm qhov tseem ceeb nce mus txog tus lej pib—ib lab, kuv xav tias—cov phau ntawv txhais lus tsuas yog muab tso rau hauv thiab tsim ib qho tshiab.

Cov lus teb yog feem ntau: rau txhua qhov chaw hauv cheeb tsam - hais, rau txhua hnub - qhov chaw mus txog ib lab tus nqi qis qis Cardinality yog siv tau. Tom qab ntawd yuav muaj ib qho kev poob qis, uas yuav siv ntau phau ntawv txhais lus sib txawv, thiab tsis yog ib qho xwb. Nws yuav ua haujlwm kwv yees ib yam li cov kab ke ib txwm muaj, tej zaum yuav ua haujlwm tsawg dua, tab sis yuav tsis muaj kev puas tsuaj loj.

Dab tsi yog cov kev coj ua zoo tshaj plaws rau cov ntawv sau puv nrhiav lub rooj nrog tsib txhiab kab?

Muaj lus teb txawv. Thawj zaug yog hais tias ClickHouse tsis yog ib lub tshuab tshawb nrhiav puv. Muaj cov tshuab tshwj xeeb rau qhov no, piv txwv li, Elasticsearch и sphinx. Txawm li cas los xij, kuv pom ntau tus neeg hais tias lawv tab tom hloov ntawm Elasticsearch mus rau ClickHouse.

Vim li cas qhov no tshwm sim? Lawv piav qhia qhov no los ntawm qhov tseeb tias Elasticsearch tsis kam tiv nrog cov khoom thauj ntawm qee qhov ntim, pib nrog kev tsim kho ntawm indexes. Indexs dhau los ua cumbersome, thiab yog tias koj tsuas hloov cov ntaub ntawv mus rau ClickHouse, nws hloov tawm tias lawv tau khaws cia ob peb zaug ua tau zoo dua ntawm cov ntim. Nyob rau tib lub sijhawm, cov lus nug tshawb fawb feem ntau tsis yog qhov uas yuav tsum tau nrhiav qee cov kab lus hauv tag nrho cov ntaub ntawv, suav nrog morphology, tab sis txawv kiag li. Piv txwv li, pom qee qhov tom qab ntawm bytes hauv cov cav hauv ob peb teev dhau los.

Hauv qhov no, koj tsim qhov ntsuas hauv ClickHouse, thawj daim teb uas yuav yog hnub thiab sijhawm. Thiab cov ntaub ntawv loj tshaj plaws txiav tawm yuav yog raws li hnub tim. Nyob rau hauv lub hnub xaiv ntau yam, raws li txoj cai, nws yog twb muaj peev xwm mus nqa tawm ib tug puv-ntawv tshawb fawb, txawm siv brute quab yuam txoj kev siv zoo li. Tus neeg teb xov tooj zoo li hauv ClickHouse yog qhov ua tau zoo tshaj plaws zoo li tus neeg teb xov tooj koj tuaj yeem pom. Yog tias koj pom ib yam dab tsi zoo dua, qhia rau kuv.

Tab sis tseem, zoo li yog ib qho scan tag nrho. Thiab tag nrho scan tuaj yeem qeeb tsis yog ntawm CPU xwb, tab sis kuj nyob rau ntawm disk. Yog tias mam li nco dheev koj muaj ib qho terabyte ntawm cov ntaub ntawv ib hnub, thiab koj tshawb nrhiav ib lo lus thaum nruab hnub, ces koj yuav tsum luam theej duab terabyte. Thiab nws yog tej zaum nyob rau hauv ib txwm hard drives, thiab thaum kawg lawv yuav tsum loaded nyob rau hauv xws li ib txoj kev uas koj yuav tsis muaj peev xwm nkag mus rau lub server ntawm SSH.

Nyob rau hauv cov ntaub ntawv no, kuv npaj siab muab ib tug ntxiv me ntsis dag zog. Nws yog kev sim - nws yuav ua haujlwm, nws yuav tsis. ClickHouse muaj cov ntawv sau tag nrho hauv daim ntawv ntawm trigram Bloom lim. Peb cov npoj yaig ntawm Arenadata twb sim cov ntsuas no, thiab lawv feem ntau ua haujlwm raws nraim li qhov xav tau.

Txhawm rau siv lawv kom raug, koj yuav tsum muaj kev nkag siab zoo txog qhov lawv ua haujlwm li cas: lub trigram Bloom lim yog dab tsi thiab xaiv nws qhov loj me. Kuv tuaj yeem hais tias lawv yuav pab tau cov lus nug ntawm qee cov kab lus tsis tshua muaj, cov kab ntawv uas tsis tshua pom hauv cov ntaub ntawv. Hauv qhov no, subranges yuav raug xaiv los ntawm indexes thiab cov ntaub ntawv tsawg dua yuav raug nyeem.

Tsis ntev los no, ClickHouse tau ntxiv cov haujlwm tseem ceeb tshaj plaws rau kev tshawb nrhiav cov ntawv nyeem. Qhov no yog, ua ntej, kev tshawb nrhiav ib pawg ntawm substrings ib zaug hauv ib qho dhau los, suav nrog cov kev xaiv uas yog cov ntaub ntawv-sensitive, case-insensitive, nrog kev txhawb nqa rau UTF-8 lossis tsuas yog rau ASCII. Xaiv qhov zoo tshaj plaws uas koj xav tau.

Tshawb nrhiav ntau cov lus qhia tsis tu ncua hauv ib qho dhau los kuj tshwm sim. Koj tsis tas yuav sau X zoo li ib txoj hlua lossis X zoo li lwm txoj hlua. Koj sau tam sim ntawd, thiab txhua yam ua tiav raws li qhov ua tau.

Thib peb, tam sim no muaj kev tshawb nrhiav kwv yees rau regexps thiab kev tshawb nrhiav kwv yees rau substrings. Yog tias ib tug neeg sau ib lo lus yuam kev, nws yuav raug tshawb nrhiav qhov sib tw siab tshaj plaws.

Dab tsi yog txoj hauv kev zoo tshaj plaws los npaj nkag mus rau ClickHouse rau ntau tus neeg siv?

Qhia peb yuav ua li cas thiaj li zoo tshaj plaws los npaj kev nkag mus rau ntau tus neeg siv khoom thiab cov kws tshuaj ntsuam xyuas. Yuav ua li cas los tsim ib txoj kab, ua qhov tseem ceeb max concurrent queries, thiab nrog dab tsi cov cuab yeej?

Yog tias pawg loj txaus, ces qhov kev daws teeb meem zoo yuav yog los tsa ob lub servers ntxiv, uas yuav dhau los ua qhov nkag rau cov kws tshuaj ntsuam. Ntawd yog, tsis txhob tso cai rau cov kws tshuaj ntsuam xyuas kom nkag mus rau cov shards tshwj xeeb hauv pawg, tab sis tsuas yog tsim ob lub servers khoob, tsis muaj cov ntaub ntawv, thiab teeb tsa txoj cai nkag rau lawv. Hauv qhov no, cov neeg siv kev teeb tsa rau kev thov xa tawm raug xa mus rau cov chaw taws teeb tswj. Ntawd yog, koj teeb tsa txhua yam ntawm ob lub servers no, thiab cov kev teeb tsa muaj kev cuam tshuam rau tag nrho pawg.

Raws li txoj cai, cov servers no tsis muaj cov ntaub ntawv, tab sis tus nqi ntawm RAM ntawm lawv yog qhov tseem ceeb heev rau kev ua raws li kev thov. Lub disk kuj tseem siv tau rau cov ntaub ntawv ib ntus yog tias kev sib sau sab nraud lossis kev xaiv sab nraud tau qhib.

Nws yog ib qho tseem ceeb uas yuav tau saib cov kev teeb tsa uas cuam tshuam nrog txhua qhov kev txwv. Yog tias kuv tam sim no mus rau Yandex.Metrica pawg ua tus kws tshuaj ntsuam thiab nug qhov kev thov xaiv suav los ntawm hits, ces kuv yuav tam sim ntawd tau txais ib qho kev zam uas kuv tsis tuaj yeem ua tiav qhov kev thov. Cov kab ntau tshaj plaws uas kuv tau tso cai luam tawm yog ib puas billion, thiab tag nrho muaj tsib caug trillion ntawm lawv hauv ib lub rooj ntawm pawg. Nov yog thawj qhov txwv.

Wb hais tias kuv tshem cov kab txwv thiab khiav cov lus nug dua. Tom qab ntawd kuv yuav pom qhov kev zam hauv qab no - teeb tsa qhib quab yuam index los ntawm hnub. Kuv tsis tuaj yeem ua tiav cov lus nug yog tias kuv tsis tau teev hnub ntau. Koj tsis tas yuav cia siab rau cov kws tshuaj ntsuam kom qhia nws manually. Ib qho xwm txheej yog thaum lub sijhawm sau hnub uas tshwm sim hnub nruab nrab ntawm lub lim tiam. Thiab tom qab ntawd lawv tsuas tau teev ib lub cim rau hauv qhov chaw tsis ncaj ncees lawm, thiab tsis yog thiab nws tau tig los ua lossis - lossis URL match. Yog tias tsis muaj kev txwv, nws yuav nkag mus rau kab URL thiab tsuas yog nkim ib tuj ntawm cov peev txheej.

Tsis tas li ntawd, ClickHouse muaj ob qhov chaw tseem ceeb. Hmoov tsis, lawv yog cov primitive heev. Ib tug tsuas yog hu ua feem. Yog tias qhov tseem ceeb ≠ 0, thiab kev thov nrog qee qhov tseem ceeb tau raug ua tiav, tab sis qhov kev thov nrog tus nqi tseem ceeb ntawm tsawg dua, uas txhais tau tias qhov tseem ceeb dua, tab tom ua tiav, ces qhov kev thov nrog tus nqi tseem ceeb ntawm ntau dua, uas txhais tau tias qhov tseem ceeb dua. , tsuas yog raug tshem tawm thiab tsis ua haujlwm txhua lub sijhawm no.

Qhov no yog ib qho teeb meem crude heev thiab tsis haum rau cov xwm txheej uas cov pawg muaj kev thauj khoom tas li. Tab sis yog tias koj muaj luv luv, bursty thov uas tseem ceeb, thiab pawg feem ntau tsis ua haujlwm, qhov kev teeb tsa no tsim nyog.

Qhov kev teeb tsa tseem ceeb tom ntej yog hu ua OS thread priority. Nws tsuas yog teeb tsa tus nqi zoo rau txhua qhov kev thov ua tiav xov rau Linux teem sijhawm. Nws ua haujlwm li ntawd, tab sis nws tseem ua haujlwm. Yog tias koj teeb tsa qhov tsawg kawg nkaus tus nqi zoo - nws yog qhov loj tshaj plaws ntawm tus nqi, thiab yog li qhov tseem ceeb tshaj plaws - thiab teeb tsa -19 rau kev thov nrog qhov tseem ceeb, ces CPU yuav haus cov kev thov qis dua li plaub zaug tsawg dua qhov tseem ceeb tshaj plaws.

Koj kuj yuav tsum tau teeb tsa lub sijhawm thov ua tiav siab tshaj plaws - hais, tsib feeb. Qhov tsawg kawg nkaus ceev ntawm cov lus nug ua tiav yog qhov txias tshaj plaws. Qhov teeb tsa no tau nyob ib puag ncig ntev, thiab nws yuav tsum tsis yog tsuas yog lees paub tias ClickHouse tsis qeeb, tab sis kom yuam nws.

Xav txog, koj teeb tsa: yog tias qee cov lus nug ua haujlwm tsawg dua ib lab kab ib ob, koj ua tsis tau li ntawd. Qhov no ua rau peb lub npe zoo, peb cov ntaub ntawv zoo. Cia li txwv qhov no. Qhov tseeb muaj ob qhov chaw. Ib tug hu ua min execution ceev - nyob rau hauv kab ib ob, thiab qhov thib ob yog hu ua timeout ua ntej kuaj min execution ceev - kaum tsib vib nas this los ntawm lub neej ntawd. Qhov ntawd yog, kaum tsib vib nas this yog ua tau, thiab tom qab ntawd, yog tias nws qeeb, ces tsuas yog pov qhov kev zam thiab rho tawm qhov kev thov.

Koj kuj yuav tsum tau teeb tsa quotas. ClickHouse muaj ib qho kev sib koom ua ke uas suav nrog kev siv peev txheej. Tab sis, hmoov tsis, tsis yog cov khoom siv kho vajtse xws li CPU, disks, tab sis cov laj thawj - tus naj npawb ntawm cov kev thov ua tiav, kab thiab bytes nyeem. Thiab koj tuaj yeem teeb tsa, piv txwv li, qhov siab tshaj plaws ntawm ib puas thov hauv tsib feeb thiab ib txhiab thov ib teev.

Vim li cas thiaj tseem ceeb? Vim tias qee cov lus nug analytics yuav ua manually ncaj qha los ntawm ClickHouse tus neeg siv khoom. Thiab txhua yam yuav zoo. Tab sis yog tias koj muaj cov kws tshuaj ntsuam xyuas qib siab hauv koj lub tuam txhab, lawv yuav sau ib tsab ntawv, thiab tej zaum yuav muaj qhov yuam kev hauv tsab ntawv. Thiab qhov kev ua yuam kev no yuav ua rau qhov kev thov raug tua nyob rau hauv ib lub voj infinite. Nov yog qhov peb yuav tsum tiv thaiv peb tus kheej.

Nws puas tuaj yeem muab cov txiaj ntsig ntawm ib qho lus nug rau kaum tus neeg siv khoom?

Peb muaj ntau tus neeg siv uas nyiam tuaj nrog kev thov loj heev ntawm tib lub sijhawm. Qhov kev thov yog loj thiab, nyob rau hauv lub hauv paus ntsiab lus, ua kom sai, tab sis vim lub fact tias muaj ntau yam kev thov nyob rau tib lub sij hawm, nws yuav mob heev. Puas yog nws tuaj yeem ua raws li qhov kev thov, uas tuaj txog kaum zaug ua ke, ib zaug, thiab muab qhov tshwm sim rau kaum tus neeg siv khoom?

Qhov teeb meem yog tias peb tsis muaj cov txiaj ntsig ntawm cache lossis cache ntawm cov ntaub ntawv nruab nrab. Muaj nplooj ntawv cache ntawm lub operating system, uas yuav tiv thaiv koj los ntawm kev nyeem cov ntaub ntawv los ntawm disk dua, tab sis, hmoov tsis, cov ntaub ntawv tseem yuav raug decompressed, deserialized thiab reprocessed.

Kuv xav kom zam dhau qhov no, los ntawm caching cov ntaub ntawv nruab nrab, lossis los ntawm cov lus nug zoo sib xws hauv qee hom kab thiab ntxiv cov txiaj ntsig cache. Peb tam sim no muaj ib qho kev thov rub tawm hauv kev txhim kho uas ntxiv cov ntawv thov cache, tab sis tsuas yog rau cov lus nug hauv cov lus hauv thiab koom nrog - uas yog, kev daws teeb meem tsis tiav.

Txawm li cas los xij, peb kuj ntsib qhov xwm txheej zoo li no. Ib qho piv txwv tshwj xeeb canonical yog cov lus nug paginated. Muaj ib daim ntawv qhia, nws muaj ob peb nplooj ntawv, thiab muaj kev thov txwv 10. Ces tib yam, tab sis txwv 10,10. Ces lwm nplooj ntawv tom ntej. Thiab lo lus nug yog, vim li cas peb suav tag nrho cov no txhua lub sijhawm? Tab sis tam sim no tsis muaj kev daws teeb meem, thiab tsis muaj txoj hauv kev los zam nws.

Muaj lwm txoj kev daws teeb meem uas tau muab tso rau hauv ib lub tsheb nyob ib sab ntawm ClickHouse - ClickHouse Proxy.

Kirill Shvakov: XNUMX Lab tus kiv cua tos koj rau Webtalk! ClickHouse Proxy muaj qhov txwv tus nqi built-in thiab cov txiaj ntsig tau ua tiav. Ntau qhov chaw tau ua nyob rau ntawd vim tias qhov teeb meem zoo sib xws tau raug daws. Proxy tso cai rau koj txwv kev thov los ntawm queuing lawv thiab teeb tsa ntev npaum li cas qhov kev thov cache nyob. Yog tias qhov kev thov tau zoo ib yam, Proxy yuav xa lawv ntau zaus, tab sis yuav mus rau ClickHouse ib zaug xwb.

Nginx kuj tseem muaj cache hauv cov dawb version, thiab qhov no kuj yuav ua haujlwm. Nginx txawm muaj qhov chaw uas yog tias kev thov tuaj txog tib lub sijhawm, nws yuav ua rau lwm tus qeeb kom txog thaum ib qho tiav. Tab sis nws yog nyob rau hauv ClickHouse Proxy tias qhov teeb tsa tau ua tiav zoo dua. Nws tau tsim tshwj xeeb rau ClickHouse, tshwj xeeb rau cov kev thov no, yog li nws tsim nyog dua. Zoo, nws yooj yim rau nruab.

Yuav ua li cas rau asynchronous kev khiav hauj lwm thiab materialized views?

Muaj ib qho teeb meem uas kev khiav hauj lwm nrog lub replay engine yog asynchronous - thawj cov ntaub ntawv yog sau, ces nws vau. Yog hais tias ib lub ntsiav tshuaj materialized nrog ib co aggregates nyob rau hauv lub kos npe rau, ces duplicates yuav muab sau rau nws. Thiab yog tias tsis muaj qhov nyuaj logic, ces cov ntaub ntawv yuav duplicated. Koj tuaj yeem ua li cas txog nws?

Muaj ib qho kev daws teeb meem - los siv qhov ua rau ntawm qee chav kawm ntawm matviews thaum lub sijhawm ua haujlwm asynchronous. Puas muaj cov mos txwv nyiaj lossis cov phiaj xwm los siv cov haujlwm zoo sib xws?

Nws tsim nyog nkag siab tias kev rho tawm ua haujlwm li cas. Qhov kuv yuav qhia koj tam sim no tsis cuam tshuam rau cov lus nug, tab sis tsuas yog nyob rau hauv rooj plaub nws tsim nyog nco qab.

Thaum muab tso rau hauv ib lub rooj replicated, muaj deduplication ntawm tag nrho cov inserted blocks. Yog tias koj rov ntxiv tib lub thaiv uas muaj tib tus lej ntawm tib kab hauv tib qhov kev txiav txim, ces cov ntaub ntawv yog deduplicated. Koj yuav tau txais "Ok" nyob rau hauv cov lus teb rau ntxig, tab sis qhov tseeb ib pob ntawv ntawm cov ntaub ntawv yuav raug sau, thiab nws yuav tsis muab duplicated.

Qhov no yog qhov tsim nyog rau qhov tseeb. Yog tias koj tau txais "Ok" thaum lub sijhawm tso, ces koj cov ntaub ntawv tau muab tso rau. Yog tias koj tau txais qhov yuam kev los ntawm ClickHouse, nws txhais tau tias lawv tsis tau muab tso rau hauv thiab koj yuav tsum rov ua qhov kev ntxig ntxiv. Tab sis yog hais tias qhov kev twb kev txuas yog tawg thaum lub sij hawm insertion, ces koj tsis paub seb cov ntaub ntawv tau muab tso los yog tsis. Qhov kev xaiv nkaus xwb yog rov ua qhov ntxig ntxiv. Yog hais tias cov ntaub ntawv tau muab tso rau tiag tiag thiab koj reinserted nws, muaj block deduplication. Qhov no yog xav tau kom tsis txhob duplicate.

Thiab nws tseem ceeb npaum li cas nws ua haujlwm rau cov ntsiab lus pom. Yog hais tias cov ntaub ntawv raug deduplicated thaum muab tso rau hauv lub ntsiab lus, ces nws yuav tsis mus rau hauv lub materialized saib yog.

Tam sim no hais txog cov lus nug. Koj qhov xwm txheej nyuaj dua vim tias koj tau sau cov kab sib npaug ntawm tus kheej. Ntawd yog, nws tsis yog tag nrho cov pob uas duplicated, tab sis cov kab tshwj xeeb, thiab lawv tawg rau hauv keeb kwm yav dhau. Tseeb, cov ntaub ntawv yuav vau nyob rau hauv lub ntsiab lus, tab sis cov ntaub ntawv uncollapsed yuav mus rau lub materialized saib, thiab thaum sib koom ua ke yuav tsis muaj dab tsi tshwm sim rau cov materialized views. Vim hais tias ib tug materialized saib tsis muaj dab tsi ntau tshaj li ib tug insert trigger. Thaum lub sijhawm ua haujlwm, tsis muaj dab tsi ntxiv tshwm sim rau nws.

Thiab kuv tsis tuaj yeem ua rau koj zoo siab ntawm no. Koj tsuas yog yuav tsum nrhiav kev daws teeb meem tshwj xeeb rau rooj plaub no. Piv txwv li, nws puas tuaj yeem rov ua nws hauv qhov kev pom zoo, thiab txoj kev rho tawm yuav ua haujlwm zoo ib yam. Tab sis hmoov tsis, tsis tas li. Yog tias nws sib sau ua ke, nws yuav tsis ua haujlwm.

Kirill Shvakov: XNUMX Lab tus kiv cua tos koj rau Webtalk! Peb kuj muaj kev tsim kho vaj tse rov qab rau hnub. Muaj ib qho teeb meem uas muaj kev xav tshaj tawm, thiab muaj qee cov ntaub ntawv uas peb tuaj yeem pom hauv lub sijhawm tiag tiag - cov no tsuas yog kev xav xwb. Lawv tsis tshua muaj duplicated, tab sis yog tias qhov no tshwm sim, peb yuav tsoo lawv tom qab lawm. Thiab muaj tej yam uas yuav tsis tau duplicated - clicks thiab tag nrho zaj dab neeg no. Tab sis kuv kuj xav qhia lawv yuav luag tam sim ntawd.

Yuav ua li cas cov kev xav ntawm materialized? Muaj kev pom qhov twg nws tau sau ncaj qha - nws tau sau rau cov ntaub ntawv nyoos, thiab sau rau kev pom. Muaj, ntawm qee kis cov ntaub ntawv tsis raug, nws yog duplicated, thiab lwm yam. Thiab muaj ib feem thib ob ntawm lub rooj, qhov uas lawv saib raws nraim tib yam li materialized views, uas yog, lawv yog kiag li zoo tib yam nyob rau hauv cov qauv. Ib zaug nyob rau hauv ib lub sij hawm peb rov xam cov ntaub ntawv, suav cov ntaub ntawv tsis muaj duplicates, sau rau cov ntxhuav.

Peb mus dhau API - qhov no yuav tsis ua haujlwm hauv ClickHouse manually. Thiab qhov API zoo li: thaum kuv muaj hnub kawg ntawm kev ntxiv rau lub rooj, qhov twg nws tau lees paub tias cov ntaub ntawv raug raug suav nrog, thiab nws ua rau kev thov rau ib lub rooj thiab rau lwm lub rooj. Los ntawm ib qho kev thov xaiv mus txog rau qee lub sijhawm, thiab los ntawm lwm qhov nws tau txais dab tsi tseem tsis tau suav. Thiab nws ua haujlwm, tab sis tsis yog los ntawm ClickHouse ib leeg.

Yog tias koj muaj qee yam API - rau cov kws tshuaj ntsuam, rau cov neeg siv - ces, hauv txoj cai, qhov no yog qhov kev xaiv. Koj ib txwm suav, nco ntsoov suav. Qhov no tuaj yeem ua tau ib zaug ib hnub lossis qee lub sijhawm. Koj xaiv rau koj tus kheej ib thaj tsam uas koj tsis xav tau thiab tsis tseem ceeb.

ClickHouse muaj ntau lub cav. Kuv tuaj yeem pom txhua yam uas tshwm sim rau lub server ntawm ib nrais muag?

ClickHouse muaj ntau tus lej sib txawv, thiab tus lej no nce ntxiv. Nyob rau hauv cov tshiab versions, ib txhia ntawm lawv txawm enabled los ntawm lub neej ntawd; nyob rau hauv cov laus versions lawv yuav tsum tau enabled thaum muab kho dua. Txawm li cas los xij, muaj ntau thiab ntau ntawm lawv. Thaum kawg, kuv xav pom dab tsi tshwm sim nrog kuv tus neeg rau zaub mov tam sim no, tej zaum ntawm qee yam ntawm cov ntsiab lus dashboard.

Koj puas muaj pab pawg ClickHouse, lossis koj cov phooj ywg pab pawg, uas txhawb nqa qee qhov kev ua haujlwm ntawm cov phiaj xwm npaj ua tiav uas yuav tso tawm cov cav no ua cov khoom tiav? Thaum kawg, tsuas yog saib cov cav hauv ClickHouse yog qhov zoo. Tab sis nws yuav txias heev yog tias nws twb tau npaj nyob rau hauv daim ntawv ntawm dashboard. Kuv yuav tau ncaws tawm ntawm nws.

Muaj cov dashboards, txawm tias lawv tsis yog tus qauv. Hauv peb lub tuam txhab, kwv yees li 60 pawg siv ClickHouse, thiab qhov txawv tshaj plaws yog tias ntau ntawm lawv muaj cov dashboards uas lawv tsim rau lawv tus kheej, thiab sib txawv me ntsis. Qee pab pawg siv qhov kev teeb tsa hauv Yandex.Cloud. Muaj qee cov ntaub ntawv npaj txhij, txawm tias tsis yog txhua qhov tsim nyog. Lwm tus muaj lawv tus kheej.

Kuv cov npoj yaig los ntawm Metrica muaj lawv tus kheej dashboard hauv Grafana, thiab kuv muaj kuv tus kheej rau lawv pawg. Kuv tab tom saib tej yam xws li cache ntaus rau serif cache. Thiab qhov nyuaj tshaj yog tias peb siv cov cuab yeej sib txawv. Kuv tsim kuv lub dashboard siv lub cuab yeej qub hu ua Graphite-web. Nws yog dab tuag kiag li. Thiab kuv tseem siv nws li no, txawm tias Grafana tej zaum yuav yooj yim dua thiab zoo nkauj.

Qhov yooj yim tshaj plaws hauv dashboards yog tib yam. Cov no yog cov qauv ntsuas rau pawg: CPU, nco, disk, network. Lwm tus - tus naj npawb ntawm kev thov ib txhij, tus naj npawb ntawm kev sib koom ua ke, tus naj npawb ntawm kev thov ib thib ob, qhov siab tshaj plaws ntawm chunks rau MergeTree rooj partitions, replication lag, replication queue loj, tus naj npawb ntawm cov kab tso rau ib ob, tus naj npawb ntawm cov ntawv ntxig ib ob. Qhov no yog txhua yam uas tau txais tsis yog los ntawm cov cav, tab sis los ntawm kev ntsuas.

Vladimir Kolobaev: Alexey, Kuv xav kho nws me ntsis. Muaj Grafana. Grafana muaj cov ntaub ntawv, uas yog ClickHouse. Ntawd yog, kuv tuaj yeem thov los ntawm Grafana ncaj qha rau ClickHouse. ClickHouse muaj lub rooj nrog cov cav, nws yog tib yam rau txhua tus. Yog li ntawd, kuv xav nkag mus rau lub rooj log no hauv Grafana thiab pom cov kev thov uas kuv lub server ua. Nws yuav zoo rau muaj dashboard zoo li no.

Kuv biked nws tus kheej. Tab sis kuv muaj lus nug - yog tias nws yog tag nrho cov qauv, thiab Grafana siv los ntawm txhua tus, yog vim li cas Yandex tsis muaj xws li ib tug nom dashboard?

Kirill Shvakov: XNUMX Lab tus kiv cua tos koj rau Webtalk! Qhov tseeb, cov ntaub ntawv uas mus rau ClickHouse tam sim no txhawb Altinity. Thiab kuv tsuas yog xav muab vector ntawm qhov twg los khawb thiab leej twg thawb. Koj tuaj yeem nug lawv, vim Yandex tseem ua rau ClickHouse, thiab tsis yog dab neeg nyob ib puag ncig nws. Altinity yog lub tuam txhab tseem ceeb tam sim no txhawb ClickHouse. Lawv yuav tsis tso nws tseg, tiamsis yuav txhawb nqa nws. Vim tias, hauv txoj cai, txhawm rau rub lub dashboard rau Grafana lub vev xaib, koj tsuas yog yuav tsum tau sau npe thiab xa nws - tsis muaj teeb meem tshwj xeeb.

Alexey Milovidov: Xyoo dhau los, ClickHouse tau ntxiv ntau cov lus nug profileing peev xwm. Muaj kev ntsuas rau txhua qhov kev thov ntawm kev siv cov peev txheej. Thiab tsis ntev los no, peb tau ntxiv cov lus nug qis dua profiler kom pom qhov twg cov lus nug tau siv txhua millisecond. Tab sis siv qhov kev ua haujlwm no, kuv yuav tsum qhib tus neeg siv khoom console thiab ntaus ntawv thov, uas kuv ib txwm tsis nco qab. Kuv khaws cia rau qhov twg thiab tsis nco qab qhov twg tiag.

Kuv xav tias muaj ib lub cuab yeej uas nyuam qhuav hais, ntawm no yog koj cov lus nug hnyav, pab pawg los ntawm cov lus nug hauv chav kawm. Kuv nias rau ntawm ib qho, thiab lawv yuav qhia kuv tias yog vim li cas nws hnyav. Tsis muaj kev daws teeb meem tam sim no. Thiab nws yog qhov txawv heev uas thaum tib neeg nug kuv tias: "Qhia rau kuv, puas muaj cov dashboards npaj txhij rau Grafana?", Kuv hais tias: "Mus rau Grafana lub vev xaib, muaj "Dashboards" zej zog, thiab muaj lub dashboard. Los ntawm Dimka, muaj lub dashboard los ntawm Kostyan. Kuv tsis paub nws yog dab tsi, Kuv tsis tau siv nws tus kheej. "

Yuav ua li cas cuam tshuam kev sib koom ua ke kom lub server tsis sib tsoo rau OOM?

Kuv muaj ib lub rooj, tsuas muaj ib tug muab faib nyob rau hauv lub rooj, nws yog HloovMergeTree. Kuv tau sau cov ntaub ntawv rau hauv nws tau plaub xyoos. Kuv yuav tsum tau ua ib qho kev hloov hauv nws thiab rho tawm qee cov ntaub ntawv.

Kuv tau ua qhov no, thiab thaum ua qhov kev thov no, tag nrho cov cim xeeb ntawm tag nrho cov servers hauv pawg tau noj, thiab tag nrho cov servers hauv pawg tau mus rau hauv OOM. Tom qab ntawd lawv sawv daws tau sib sau ua ke, pib sib koom ua ke tib txoj haujlwm, cov ntaub ntawv thaiv no, thiab poob rau hauv OOM dua. Ces lawv sawv rov los thiab poob dua. Thiab qhov no tsis tau nres.

Tom qab ntawd nws muab tawm tias qhov no yog kab laum uas cov txiv neej kho. Qhov no txias heev, ua tsaug ntau. Tab sis ib tug residue tseem. Thiab tam sim no, thaum kuv xav txog kev ua qee yam kev sib koom ua ke hauv lub rooj, kuv muaj lus nug - vim li cas kuv tsis tuaj yeem cuam tshuam cov kev sib koom ua ke no? Piv txwv li, txwv lawv los ntawm tus nqi ntawm RAM xav tau, lossis, hauv txoj cai, los ntawm tus nqi uas yuav ua cov lus tshwj xeeb no.

Kuv muaj lub rooj hu ua "Metrics", thov ua nws rau kuv hauv ob txoj xov. Tsis tas yuav tsim kaum lossis tsib qhov sib koom ua ke, ua ob. Kuv xav tias kuv muaj lub cim xeeb txaus rau ob, tab sis nws yuav tsis txaus rau txheej kaum. Vim li cas kev ntshai nyob twj ywm? Vim tias lub rooj loj hlob tuaj, thiab muaj ib hnub kuv yuav ntsib qhov xwm txheej uas, hauv paus ntsiab lus, tsis yog vim muaj kab laum, tab sis vim tias cov ntaub ntawv yuav hloov pauv ntau npaum li kuv tsuas yog yuav tsis muaj lub cim xeeb txaus ntawm cov ntaub ntawv. server. Thiab ces tus neeg rau zaub mov yuav tsoo rau OOM thaum sib koom ua ke. Ntxiv mus, kuv tuaj yeem thim qhov kev hloov pauv, tab sis Merji tsis nyob ntawd lawm.

Koj paub, thaum sib koom ua ke, tus neeg rau zaub mov yuav tsis poob rau hauv OOM, vim hais tias thaum sib koom ua ke, RAM tsuas yog siv rau ib qho me me ntawm cov ntaub ntawv. Yog li txhua yam yuav zoo tsis hais tus nqi ntawm cov ntaub ntawv.

Vladimir Kolobaev: Zoo. Ntawm no yog lub sijhawm zoo li tias tom qab cov kab laum raug kho, kuv rub tawm ib qho tshiab rau kuv tus kheej, thiab ntawm lwm lub rooj, ib qho me me, qhov twg muaj ntau qhov sib faib, kuv tau ua haujlwm zoo sib xws. Thiab thaum lub sijhawm sib koom ua ke, kwv yees li 100 GB ntawm RAM raug hlawv ntawm lub server. Kuv muaj 150 nyob, 100 noj, thiab 50 GB qhov rais sab laug, yog li kuv tsis poob rau hauv OOM.

Tam sim no dab tsi tiv thaiv kuv kom poob rau hauv OOM yog tias nws siv 100 GB ntawm RAM tiag tiag? Yuav ua li cas yog tias tam sim ntawd lub RAM ntawm kev sib koom ua ke khiav tawm?

Alexey Milovidov: Muaj qhov teeb meem zoo li no tias kev noj RAM tshwj xeeb rau kev sib koom ua ke tsis txwv. Thiab qhov teeb meem thib ob yog tias yog qee yam kev sib koom ua ke tau raug muab, ces nws yuav tsum raug tua vim tias nws tau sau tseg rau hauv daim ntawv teev npe. Lub replication log yog cov kev ua uas yuav tsum tau coj tus replica rau hauv ib lub xeev zoo ib yam. Yog hais tias koj tsis ua manually manipulations uas yuav yob rov qab no replication log, lub merge yuav tsum tau ua ib txoj kev los yog lwm yam.

Tau kawg, nws yuav tsis yog superfluous kom muaj kev txwv RAM uas "tsuas yog hauv rooj plaub" tiv thaiv OOM. Nws yuav tsis pab kev sib koom ua ke kom tiav, nws yuav pib dua, ncav cuag qee qhov pib, pov qhov kev zam, thiab tom qab ntawd pib dua - tsis muaj dab tsi zoo yuav los ntawm qhov no. Tab sis hauv txoj cai, nws yuav muaj txiaj ntsig los qhia txog qhov kev txwv no.

Yuav ua li cas tus neeg tsav tsheb Golang rau ClickHouse yuav tsim?

Tus tsav tsheb Golang, uas tau sau los ntawm Kirill Shvakov, tam sim no tau txais kev txhawb nqa los ntawm pab pawg ClickHouse. Nws hauv ClickHouse repository, nws tam sim no loj thiab tiag.

Ib daim ntawv me me. Muaj ib qho chaw zoo thiab ntxim nyiam ntawm cov ntaub ntawv ntawm kev txiav txim tsis kawg - qhov no yog Vertica. Lawv kuj muaj lawv tus kheej tsav tsheb python, uas tau txais kev txhawb nqa los ntawm Vertica developers. Thiab ob peb zaug nws tau tshwm sim tias cov ntawv khaws cia thiab cov tsav tsheb versions sib txawv heev, thiab tus tsav tsheb ntawm qee lub sijhawm nres ua haujlwm. Thiab qhov thib ob point. Kev them nyiaj yug rau tus neeg tsav tsheb no, zoo li kuv, yog ua los ntawm "txiv mis" system - koj sau lawv qhov teeb meem, thiab nws dai mus ib txhis.

Kuv muaj ob lo lus nug. Tam sim no Kirill tus Golang tsav tsheb yuav luag yog txoj hauv kev los sib txuas lus los ntawm Golang nrog ClickHouse. Tsuas yog ib tug neeg tseem sib txuas lus ntawm http interface vim nws nyiam nws li ntawd. Txoj kev loj hlob ntawm tus tsav tsheb no yuav ua li cas? Nws puas yuav synchronized nrog kev hloov pauv hauv qhov chaw cia nws tus kheej? Thiab dab tsi yog txheej txheem rau kev txiav txim siab txog qhov teeb meem?

Kirill Shvakov: XNUMX Lab tus kiv cua tos koj rau Webtalk! Thawj yog yuav ua li cas txhua yam yog bureaucratically. Cov ntsiab lus no tsis tau tham, yog li kuv tsis muaj dab tsi los teb.

Txhawm rau teb cov lus nug txog qhov teeb meem, peb xav tau me ntsis keeb kwm ntawm tus neeg tsav tsheb. Kuv ua haujlwm rau ib lub tuam txhab uas muaj ntaub ntawv ntau heev. Nws yog kev tshaj tawm spinner nrog ntau tus lej ntawm cov xwm txheej uas yuav tsum tau muab khaws cia rau qhov chaw. Thiab ntawm qee kis ClickHouse tau tshwm sim. Peb tau sau nws nrog cov ntaub ntawv, thiab thaum xub thawj txhua yam zoo, tab sis tom qab ntawd ClickHouse poob. Lub sijhawm ntawd peb txiav txim siab tias peb tsis xav tau.

Ib xyoos tom qab, peb rov qab mus rau lub tswv yim ntawm kev siv ClickHouse, thiab peb yuav tsum tau sau cov ntaub ntawv muaj qee yam. Cov lus taw qhia yog qhov no: cov khoom siv tsis muaj zog heev, muaj ob peb cov peev txheej. Tab sis peb ib txwm ua haujlwm li no, thiab yog li ntawd peb tau saib ntawm cov txheej txheem ib txwm muaj.

Txij li thaum peb tau ua haujlwm hauv Go, nws pom tseeb tias peb xav tau tus neeg tsav tsheb Go. Kuv tau ua nws yuav luag puv sijhawm - nws yog kuv txoj haujlwm ua haujlwm. Peb coj nws mus rau ib qho chaw, thiab hauv txoj cai tsis muaj leej twg xav tias lwm tus neeg uas tsis yog peb yuav siv nws. Tom qab ntawd CloudFlare tuaj nrog cov teeb meem tib yam nkaus, thiab rau qee lub sijhawm peb ua haujlwm nrog lawv zoo heev, vim tias lawv muaj cov haujlwm qub. Ntxiv mus, peb tau ua qhov no ob qho tib si hauv ClickHouse peb tus kheej thiab hauv tus neeg tsav tsheb.

Qee lub sij hawm, kuv tsuas tso tseg tsis ua, vim tias kuv txoj haujlwm ntawm ClickHouse thiab kev ua haujlwm tau hloov me ntsis. Yog li cov teeb meem tsis raug kaw. Nyob rau tib lub sijhawm, cov neeg uas xav tau ib yam dab tsi lawv tus kheej tau cog lus rau lub chaw cia khoom. Tom qab ntawd kuv saib qhov kev thov rub thiab qee zaum kuv txawm hloov qee yam ntawm kuv tus kheej, tab sis qhov no tshwm sim tsis tshua muaj.

Kuv xav rov qab mus rau tus tsav tsheb. Ob peb xyoos dhau los, thaum tag nrho qhov no tau pib, ClickHouse kuj txawv thiab muaj peev xwm sib txawv. Tam sim no peb muaj kev nkag siab txog yuav ua li cas remake tus tsav tsheb kom nws ua haujlwm zoo. Yog hais tias qhov no tshwm sim, ces version 2 yuav incompatible nyob rau hauv txhua rooj plaub vim lub sau crutches.

Kuv tsis paub yuav npaj qhov teeb meem no li cas. Kuv tsis muaj sijhawm ntau rau kuv tus kheej. Yog tias muaj qee tus neeg tsav tsheb tiav, kuv tuaj yeem pab lawv thiab qhia lawv yuav ua li cas. Tab sis kev koom tes nquag ntawm Yandex hauv kev txhim kho qhov project tseem tsis tau tham txog.

Alexey Milovidov: Qhov tseeb, tsis muaj bureaucracy txog cov tsav tsheb no. Qhov tsuas yog tias lawv raug xa mus rau lub koom haum nom tswv, uas yog, tus neeg tsav tsheb no tau lees paub tias yog qhov kev daws teeb meem raug cai rau Go. Muaj qee tus neeg tsav tsheb, tab sis lawv tuaj sib cais.

Peb tsis muaj kev txhim kho sab hauv rau cov tsav tsheb no. Cov lus nug yog seb peb puas tuaj yeem ntiav ib tus neeg, tsis yog rau tus neeg tsav tsheb tshwj xeeb no, tab sis rau kev txhim kho txhua tus neeg tsav tsheb hauv zej zog, lossis peb puas tuaj yeem nrhiav ib tus neeg los ntawm sab nraud.

Cov phau ntawv txhais lus sab nraud tsis thauj khoom tom qab rov pib dua nrog lub lazy_load chaw qhib. Yuav ua li cas?

Peb muaj qhov chaw lazy_load tau qhib, thiab tom qab lub server rov pib dua, phau ntawv txhais lus tsis thauj khoom ntawm nws tus kheej. Nws raug tsa tsuas yog tom qab tus neeg siv nkag mus rau phau ntawv txhais lus no. Thiab thawj zaug kuv nkag mus rau nws, nws muab qhov yuam kev. Puas yog nws ua tau rau qee yam cia li rub cov ntawv txhais lus siv ClickHouse, lossis koj puas yuav tsum tswj hwm lawv qhov kev npaj koj tus kheej kom cov neeg siv tsis tau txais qhov yuam kev?

Tej zaum peb muaj ib qho qub version ntawm ClickHouse, yog li phau ntawv txhais lus tsis thauj khoom tau. Qhov no puas tuaj yeem ua tau?

Ua ntej, phau ntawv txhais lus tuaj yeem raug yuam kom thauj khoom siv cov lus nug system reload phau ntawv txhais lus. Thib ob, hais txog qhov yuam kev - yog tias phau ntawv txhais lus tau thauj khoom, ces cov lus nug yuav ua haujlwm raws li cov ntaub ntawv uas tau thauj khoom. Yog tias phau ntawv txhais lus tseem tsis tau thauj khoom, nws yuav raug thauj ncaj qha thaum thov.

Qhov no tsis yooj yim heev rau cov phau ntawv txhais lus hnyav. Piv txwv li, koj yuav tsum rub ib lab kab los ntawm MySQL. Ib tug neeg ua ib qho yooj yim xaiv, tab sis qhov kev xaiv no yuav tos tib lab kab. Muaj ob txoj kev daws teeb meem ntawm no. Thawj yog tua lazy_load. Thib ob, thaum tus neeg rau zaub mov nce, ua ntej muab lub nra rau nws, ua system reload phau ntawv txhais lus los yog tsuas yog ua cov lus nug uas siv phau ntawv txhais lus. Ces cov phau ntawv txhais lus yuav tsum loaded. Koj yuav tsum tswj hwm qhov muaj cov phau ntawv txhais lus nrog rau lub lazy_load chaw qhib, vim ClickHouse tsis cia li thauj lawv.

Lo lus teb rau lo lus nug kawg yog qhov version yog qub los yog nws yuav tsum tau debugged.

Yuav ua li cas nrog qhov tseeb tias qhov system reload dictionaries tsis thauj khoom ntawm ntau phau ntawv txhais lus yog tias tsawg kawg yog ib qho ntawm lawv tsoo nrog qhov yuam kev?

Muaj lwm lo lus nug txog qhov system reload dictionaries. Peb muaj ob phau ntawv txhais lus - ib qho tsis thauj khoom, qhov thib ob yog thauj khoom. Hauv qhov no, System reload dictionaries tsis thauj cov phau ntawv txhais lus, thiab koj yuav tsum taw tes-los-taw tes thauj ib qho tshwj xeeb los ntawm nws lub npe siv cov lus txhais lus rov qab. Puas yog qhov no tseem cuam tshuam rau ClickHouse version?

Kuv xav ua kom koj zoo siab. Tus cwj pwm no tau hloov pauv. Qhov no txhais tau tias yog koj hloov ClickHouse, nws kuj yuav hloov. Yog tias koj tsis txaus siab rau koj tus cwj pwm tam sim no system reload phau ntawv txhais lus, hloov tshiab, thiab cia siab tias nws hloov mus rau qhov zoo dua.

Puas muaj ib txoj hauv kev los teeb tsa cov ntsiab lus hauv ClickHouse config, tab sis tsis tso rau lawv thaum muaj teeb meem?

Cov lus nug tom ntej no yog hais txog qhov yuam kev cuam tshuam nrog phau ntawv txhais lus, uas yog cov ntsiab lus. Peb tau teev cov ntsiab lus sib txuas hauv ClickHouse config rau phau ntawv txhais lus, thiab yog tias muaj qhov yuam kev, peb tau txais cov ntsiab lus no thiab lo lus zais teb.

Peb daws qhov yuam kev no los ntawm kev ntxiv cov ntsiab lus rau ODBC tus tsav tsheb config. Puas muaj ib txoj hauv kev los teeb tsa cov ntsiab lus hauv ClickHouse config, tab sis tsis qhia cov ntsiab lus no thaum muaj teeb meem?

Qhov kev daws teeb meem tiag tiag ntawm no yog txhawm rau txheeb xyuas cov ntaub ntawv pov thawj no hauv odbc.ini, thiab hauv ClickHouse nws tus kheej tsuas yog qhia txog ODBC Cov Ntaub Ntawv Lub Npe. Qhov no yuav tsis tshwm sim rau lwm cov phau ntawv txhais lus - tsis yog rau phau ntawv txhais lus nrog MySQL, lossis rau lwm tus, koj yuav tsum tsis txhob pom tus password thaum koj tau txais cov lus yuam kev. Rau ODBC, kuv tseem yuav saib - yog tias nws muaj, koj tsuas yog xav tau tshem nws.

Nyiaj tshwj xeeb: keeb kwm yav dhau rau Zoom los ntawm kev sib sau

Los ntawm txhaj rau ntawm daim duab, cov keeb kwm yav dhau los ntawm kev sib sau ua ke yuav qhib rau cov neeg nyeem tsis tu ncua. Peb tua hluav taws ua ke nrog Avito thev naus laus zis mascots, peb sib tham nrog cov npoj yaig los ntawm cov neeg ua haujlwm hauv chav tsev lossis lub tsev kawm ntawv lub khoos phis tawj qub, thiab peb ua cov rooj sib tham txhua hnub hauv qab tus choj tiv thaiv cov duab kos duab.

ClickHouse rau cov neeg siv siab heev hauv cov lus nug thiab lus teb

Tau qhov twg los: www.hab.com

Ntxiv ib saib