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.
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.
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.
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.
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.
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.
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.
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?
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?
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.
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?
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.