Lumela, habr.
Haeba motho a sebelisa tsamaiso hampe
ClickHouse e rarolla mathata a hlalositsoeng hantle. Ka mohlala, ka mor'a ho fetisetsa 2TiB ea data ho tloha ho hoeshetsa, li kena ho 300GiB. Ha ke na ho bua ka papiso ka botlalo; ho na le lingoliloeng tse ngata tse mabapi le sehlooho sena. Ho phaella moo, ho fihlela morao tjena, hase ntho e 'ngoe le e' ngoe e neng e nepahetse ka polokelo ea rona ea ClickHouse.
Mathata a sebaka se jetsoeng
Ha u sheba ka lekhetlo la pele, ntho e 'ngoe le e' ngoe e lokela ho sebetsa hantle. Ho latela retention
), ebe u theha tafole ho latela khothaletso ea "backend e khethiloeng bakeng sa graphite-web:
E le hore u utloisise hore na ke efe, u lokela ho tseba hore na ho kenya mosebetsi joang le tsela e tsoelang pele ea bophelo ea data litafoleng tsa enjine ea lelapa la *MergeTree ClickHouse (lichate tse nkiloeng ho
- Kenyelitsoe
блок
data. Tabeng ea rona, e ne e le metrics e fihlileng.
- Sebaka se seng le se seng se joalo se hlophisoa ho latela senotlolo pele se ngolloa ho disk.
ORDER BY
e boletsoeng ha ho etsoa tafole. - Ka mor'a ho hlophisoa,
кусок
(part
) data e ngotsoe ho disk.
- Seva e hlokomela ka morao e le hore ho se be le likotoana tse ngata tse joalo, 'me e qala ka morao
слияния
(merge
, ka mor'a moo kopanya).
- Seva e emisa ho kopanya e le mong hang ha data e emisa ho phalla ka mafolofolo ho
партицию
(partition
), empa o ka qala ts'ebetso ka letsoho ka taeloOPTIMIZE
. - Haeba ho na le karolo e le 'ngoe feela e setseng karohanong, joale u ke ke ua khona ho kopanya ho sebelisa taelo e tloaelehileng; u tlameha ho e sebelisa.
OPTIMIZE ... FINAL
Kahoo, metrics ea pele e fihla. Mme ba nka sebaka se itseng. Liketsahalo tse latelang li ka fapana ho latela lintlha tse ngata:
- Senotlolo sa ho arola se ka ba se senyenyane haholo (letsatsi) kapa se seholo haholo (likhoeli tse 'maloa).
- Tokiso ea ho boloka e kanna ea lekana likarolo tse 'maloa tsa bohlokoa tsa ho kopanya lintlha ka har'a karolo e sebetsang (moo ho rekotiloeng lipalo), kapa mohlomong che.
- Haeba ho na le lintlha tse ngata, likotoana tsa pele, tseo ka lebaka la ho kopana ha morao li ka 'na tsa se li le khōlō (haeba u khetha senotlolo sa ho arola hantle), li ke ke tsa ikopanya le likotoana tse nyenyane tse ncha.
Mme e fela ka ho tshwana. Sebaka se hapiloeng ke metrics ho ClickHouse se eketseha ha feela:
- se ke oa sebetsa
OPTIMIZE ... FINAL
ka letsoho kapa - se ke oa kenya data ho li-partitions tsohle ka mokhoa o tsoelang pele, e le hore kapele kapa hamorao ho kopanya bokamorao ho tla qala
Mokhoa oa bobeli o bonahala o le bonolo ka ho fetisisa ho o kenya ts'ebetsong, ka hona, ha oa nepahala 'me o ile oa lekoa pele.
Ke ngotse script e bonolo ea python e neng e romella metrics ea dummy bakeng sa letsatsi le leng le le leng bakeng sa lilemo tse fetileng tsa 4 mme ke matha cron hora e 'ngoe le e 'ngoe.
Kaha ts'ebetso eohle ea ClickHouse DBMS e ipapisitse le taba ea hore sistimi ena haufinyane e tla etsa mosebetsi oohle oa morao-rao, empa ha e tsejoe hore na ke neng, ha kea khona ho emela nako eo likotoana tse kholo tsa khale li qalang ho kopana le tsona. tse ntjha tse nyane. Ho ile ha totobala hore re hloka ho batla mokhoa oa ho iketsetsa lintlafatso tse qobelloang.
Lintlha ho litafole tsa sistimi ea ClickHouse
Ha re shebeng sebopeho sa tafole
- db lebitso (
database
); - lebitso la tafole (
table
); - lebitso la karohano le ID (
partition
&partition_id
); - ha sekotoana se entsoe (
modification_time
); - bonyane le letsatsi le phahameng ka ho fetesisa (karohano e etsoa ka letsatsi) (
min_date
&max_date
);
Ho boetse ho na le tafole
- db lebitso (
Tables.database
); - lebitso la tafole (
Tables.table
); - lilemo tsa metric ha ho lokela ho sebelisoa kakaretso e latelang (
age
);
E le:
- Re na le tafole ea likotoana le tafole ea melao ea aggregation.
- Re kopanya mateano a bona mme re fumana litafole tsohle *GraphiteMergeTree.
- Re batla li-partitions tsohle tseo ho tsona:
- karolo e fetang bonngwe
- kapa nako e fihlile ea ho sebelisa molao o latelang oa aggregation, le
modification_time
moholo hofeta motsotso ona.
Ts'ebetsong
Kopo ena
SELECT
concat(p.database, '.', p.table) AS table,
p.partition_id AS partition_id,
p.partition AS partition,
-- Самое "старое" правило, которое может быть применено для
-- партиции, но не в будущем, см (*)
max(g.age) AS age,
-- Количество кусков в партиции
countDistinct(p.name) AS parts,
-- За самую старшую метрику в партиции принимается 00:00:00 следующего дня
toDateTime(max(p.max_date + 1)) AS max_time,
-- Когда партиция должна быть оптимизированна
max_time + age AS rollup_time,
-- Когда самый старый кусок в партиции был обновлён
min(p.modification_time) AS modified_at
FROM system.parts AS p
INNER JOIN
(
-- Все правила для всех таблиц *GraphiteMergeTree
SELECT
Tables.database AS database,
Tables.table AS table,
age
FROM system.graphite_retentions
ARRAY JOIN Tables
GROUP BY
database,
table,
age
) AS g ON
(p.table = g.table)
AND (p.database = g.database)
WHERE
-- Только активные куски
p.active
-- (*) И только строки, где правила аггрегации уже должны быть применены
AND ((toDateTime(p.max_date + 1) + g.age) < now())
GROUP BY
table,
partition
HAVING
-- Только партиции, которые младше момента оптимизации
(modified_at < rollup_time)
-- Или с несколькими кусками
OR (parts > 1)
ORDER BY
table ASC,
partition ASC,
age ASC
e khutlisetsa e 'ngoe le e 'ngoe ea likarolo tsa tafole tsa *GraphiteMergeTree tseo ho kopanngoa ha tsona ho lokelang ho lokolla sebaka sa disk. Ntho feela e setseng ho etsoa ke ho feta ho tsona kaofela ka kopo OPTIMIZE ... FINAL
. Ts'ebetsong ea ho qetela e boetse e ela hloko taba ea hore ha ho hlokahale ho ama likaroloana ka ho rekota ka mafolofolo.
Sena ke sona hantle seo morero o se etsang
Haeba o tsamaisa lenaneo ho seva ka ClickHouse, e tla qala ho sebetsa ka mokhoa oa daemon. Hang ka hora kopo e tla etsoa, ho hlahloba hore na likarolo tse ncha tsa khale ho feta matsatsi a mararo li hlahile tse ka ntlafatsoang.
Merero ea rona ea hanghang ke ho fana ka bonyane liphutheloana tsa deb, 'me haeba ho khoneha, le rpm.
Ho e-na phetheha
Likhoeling tse 9+ tse fetileng ke bile ka har'a k'hamphani ea ka
Lilithara tse 'maloa tsa biri le matsatsi a admin li ile tsa sebelisoa ho nts'etsapele kopo, hammoho le
Source: www.habr.com