แแแแแ แฏแแแ, แฐแแแ .
แแฃ แแแแแ แแงแแแแแก แกแแกแขแแแแก
ClickHouse แแแ แแแ แฌแงแแแขแก แแฆแฌแแ แแ แแ แแแแแแแแก. แแแแแแแแแ, แฉแฃแ แฉแฃแแแแแ 2TiB แแแแแชแแแแแแก แแแแแชแแแแก แจแแแแแ แแกแแแ แฏแแแแ 300GiB-แจแ. แจแแแแ แแแแแ แแแขแแแฃแ แแ แแ แจแแแฉแแ แแแแ, แแ แแแแแแ แฃแแแ แแแ แกแขแแขแแแ. แแแ แแ แแแแกแ, แแแแ แแ แแแแ, แงแแแแแคแแ แ แแ แแงแ แกแ แฃแแงแแคแแแ แฉแแแแก ClickHouse แกแแชแแแจแ.
แแ แแแแแแแแ แแแฎแแแ แแแฃแ แกแแแ แชแแจแ
แแ แแ แจแแฎแแแแแ, แงแแแแแคแแ แ แแแ แแแ แฃแแแ แแฃแจแแแแแแก. แแแฐแงแแแแ retention
), แจแแแแแ แจแแฅแแแแแ แชแฎแ แแแ แจแแ แฉแแฃแแ แแแฅแแแแแก แ แแแแแแแแแชแแแก แแแฎแแแแแ แแ แแคแแข-แแแแแกแแแแก:
แแแแกแแแแแก, แ แแ แแแแแแ แ แแแแแ, แแฅแแแ แฃแแแ แแชแแแแ แ แแแแ แแฃแจแแแแก แฉแแแแ แแแแ แแ แแแแแชแแแแ แจแแแแแแแ แชแฎแแแ แแแแก แแแ * แแฏแแฎแแก แซแ แแแแแแก แชแฎแ แแแแแจแ.MergeTree ClickHouse (แกแฅแแแแแ แแฆแแแฃแแแ
- แฉแแกแแฃแแแ
ะฑะปะพะบ
แแแแแชแแแแแ. แฉแแแแก แจแแแแฎแแแแแจแ, แแก แแงแ แแแขแ แแแ, แ แแแแแแช แแแแแแ.
- แแแแแแฃแแ แแกแแแ แแแแแ แแแแแแแแฃแแแ แแแกแแฆแแแแก แแแฎแแแแแ แแแกแแแ แฉแแฌแแ แแแแ.
ORDER BY
แแแแแแแแฃแแ แชแฎแ แแแแก แจแแฅแแแแกแแก. - แแแฎแแ แแกแฎแแแแก แจแแแแแ,
ะบััะพะบ
(part
) แแแแแชแแแแแ แแฌแแ แแแ แแแกแแแ.
- แกแแ แแแ แ แแแแแ แแแแ แคแแแแ แแกแ, แ แแ แแแแ แ แแกแแแ แแแฌแแแ แแ แแงแแก แแ แแแฃแจแแแแก แคแแแก
ัะปะธัะฝะธั
(merge
, แจแแแแแแแจแ แจแแ แฌแงแแ).
- แกแแ แแแ แ แแแแแกแแแแแ แฌแงแแแขแก แจแแ แฌแงแแแก, แ แแแแ แช แแ แแแแแชแแแแแ แจแแฌแงแแแขแก แแแกแจแ แแฅแขแแฃแ แแแแแแก
ะฟะฐััะธัะธั
(partition
), แแแแ แแ แแฅแแแ แจแแแแซแแแแ แแแแฌแงแแ แแ แแชแแกแ แฎแแแแ แแ แซแแแแแแOPTIMIZE
. - แแฃ แแแแแงแแคแจแ แแแ แฉแ แแฎแแแแ แแ แแ แแแฌแแแ, แแแจแแ แแแ แจแแซแแแแ แจแแ แฌแงแแแก แแแจแแแแแก แฉแแแฃแแแแ แแแ แแ แซแแแแแแก แแแแแงแแแแแแ; แแฅแแแ แฃแแแ แแแแแแงแแแแ
OPTIMIZE ... FINAL
แแกแ แ แแ, แแแ แแแแ แแแขแ แแแ แแแแแก. แแ แแกแแแ แแแแแแแแ แแแ แแแแฃแ แแแแแแก. แจแแแแแแแ แแแแแแแแแ แจแแแซแแแแ แแแ แแแแฃแแฌแแแแ แแแแกแฎแแแแแแแแแแก แแ แแแแแ แคแแฅแขแแ แแแแ แแแแแแแแแแ แ:
- แแแแแงแแคแแก แแแกแแฆแแแ แจแแแซแแแแ แแงแแก แซแแแแแ แแชแแ แ (แแฆแแจแ) แแ แซแแแแแ แแแแ (แ แแแแแแแแ แแแ).
- แจแแแแฎแแแก แแแแคแแแฃแ แแชแแ แจแแแซแแแแ แจแแแกแแแแแแแแแแก แ แแแแแแแแ แแแแจแแแแแแแแ แแแแแชแแแแ แแแ แแแแชแแแก แแฆแฃแ แแแก แแฅแขแแฃแ แแแแแงแแคแจแ (แกแแแแช แแแขแ แแแ แแ แแก แฉแแฌแแ แแแ), แแ แจแแแซแแแแ แแ แ.
- แแฃ แแแแ แ แแแแแชแแแแ, แแแจแแ แงแแแแแแ แแแ แแฃแแ แแแฌแแแแแแแ, แ แแแแแแแช แคแแแแก แจแแ แฌแงแแแก แแแแ แจแแแซแแแแ แฃแแแ แแแแ แแงแแก (แแฃ แแแ แฉแแแ แแ แแแแขแแแแแฃแ แ แแแแแงแแคแแก แแแกแแฆแแแก), แแ แแแแ แแแแแแแแ แแฎแแ แแแขแแ แ แแแฌแแแแแแแ.
แแ แงแแแแแแแแก แแ แแแแแ แแ แแแแแ แแแแ. ClickHouse-แจแ แแแขแ แแแแก แแแแ แแแแแแแแฃแแ แกแแแ แชแ แแแ แแแแ แแฎแแแแ แแ แจแแแแฎแแแแแจแ, แแฃ:
- แแ แแ แชแแแแแแ
OPTIMIZE ... FINAL
แฎแแแแ แแ - แแ แฉแแแแ แแแแแชแแแแแ แงแแแแ แแแแแงแแคแจแ แแฃแแแแแแ, แ แแแ แแแ แ แแฃ แแแแแ แแแแฌแงแแก แคแแแแก แจแแ แฌแงแแ
แแแแ แ แแแแแแ, แ แแแแ แช แฉแแแก, แฃแแแ แขแแแแกแแ แแแแกแแฎแแ แชแแแแแแแแแ แแ, แจแแกแแแแแแกแแ, แแก แแ แแกแฌแแ แแ แแ แแแ แแแ แ แแแจแ แกแชแแแแก.
แแ แแแแฌแแ แ แกแแแแแแ แแแ แขแแแ แแแแแแแก แกแแ แแแขแ, แ แแแแแแช แแแแแแแแแ แชแ แฃ แแแขแ แแแก แงแแแแ แแฆแ แแแแ 4 แฌแแแก แแแแแแแแแแแจแ แแ แแแฌแแ แแแแแแ cron-แก แงแแแแ แกแแแแจแ.
แแแแแแแแ ClickHouse DBMS-แแก แแแแแ แแแฅแแแแแแ แแแงแแ แแแ แแ แคแแฅแขแก, แ แแ แแก แกแแกแขแแแ แแแ แ แแฃ แแแแแ แจแแแกแ แฃแแแแก แงแแแแ แคแแแฃแ แแฃแจแแแแแก, แแแแ แแ แฃแชแแแแแ แ แแแแก, แแ แแแ แแแแแแแแ แแ แแแแแแขแก, แ แแแแกแแช แซแแแแ แฃแแแ แแแแแ แ แแแฌแแแแแ แจแแ แฌแงแแแก แแแแฌแงแแแแ. แแฎแแแ แแแขแแ แแแ. แชแฎแแแ แแแฎแแ, แ แแ แฉแแแ แแแญแแ แแแแแแ แแซแฃแแแแแแ แแแขแแแแแแชแแแก แแแขแแแแขแแแแชแแแก แแแ.
แแแคแแ แแแชแแ ClickHouse แกแแกแขแแแแก แชแฎแ แแแแแจแ
แแแแแ แจแแแฎแแแแ แชแฎแ แแแแก แกแขแ แฃแฅแขแฃแ แแก
- แแ แกแแฎแแแ (
database
); - แแแแแแแก แกแแฎแแแ (
table
); - แแแแแงแแคแแก แกแแฎแแแ แแ ID (
partition
&partition_id
); - แ แแแแกแแช แชแแแ แจแแแฅแแแ (
modification_time
); - แแแแแแแแฃแ แ แแ แแแฅแกแแแแแฃแ แ แแแ แแฆแ แชแแแ (แแแงแแคแ แฎแแแแ แแฆแแกแแ) (
min_date
&max_date
);
แแกแแแ แแ แแก แแแแแแ
- แแ แกแแฎแแแ (
Tables.database
); - แแแแแแแก แกแแฎแแแ (
Tables.table
); - แแแขแ แฃแแ แแกแแแ, แ แแแแก แฃแแแ แแฅแแแก แแแแแงแแแแแฃแแ แจแแแแแแ แแแ แแแแชแแ (
age
);
แแกแ แ แแ:
- แฉแแแ แแแแฅแแก แแแฌแแแแแแแแก แชแฎแ แแแ แแ แแแ แแแแชแแแก แฌแแกแแแแก แชแฎแ แแแ.
- แฉแแแ แแแแแแจแแ แแแ แแแ แแแแแแก แแ แแแฆแแแ แงแแแแ แชแฎแ แแแก *GraphiteMergeTree.
- แฉแแแ แแแซแแแ แงแแแแ แแแแแงแแคแก, แ แแแแแจแแช:
- แแ แแแ แแแขแ แชแแแ
- แแ แแแแแ แแแ แแแ แแแ แแแแชแแแก แฌแแกแแก แแแแแงแแแแแแก แแ แ แแ
modification_time
แฃแคแ แ แซแแแแ แแแแ แ แแ แแแแแแขแจแ.
ะ ะตะฐะปะธะทะฐัะธั
แแก แแฎแแแแ
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
แแแ แฃแแแแก *GraphiteMergeTree แชแฎแ แแแแก แแแแแแฃแ แแแแแงแแคแก, แ แแแแแแ แจแแ แฌแงแแแ แฃแแแ แแแแแแแแกแฃแคแแแก แแแแแแ แแแกแแแ. แแ แแแแแ แแ, แ แแช แแแกแแแแแแแแแแ, แแ แแก แงแแแแ แแแแแแแแก แแฎแแแแแ แแแแแ OPTIMIZE ... FINAL
. แกแแแแแแ แแแแฎแแ แชแแแแแแ แแกแแแ แแแแแแแกแฌแแแแแก แแ แคแแฅแขแก, แ แแ แแ แแ แแก แกแแญแแ แ แขแแฎแ แแแแก แจแแฎแแแ แแฅแขแแฃแ แ แฉแแแแฌแแ แแ.
แแก แแ แแก แแฃแกแขแแ แแก, แ แแกแแช แแ แแแฅแขแ แแแแแแแก
แแฃ แแ แแแ แแแแก แกแแ แแแ แแ ClickHouse-แแ แแแฃแจแแแ, แแก แฃแแ แแแแ แแแแฌแงแแแก แแฃแจแแแแแก แแแแแแแก แ แแแแแจแ. แกแแแแจแ แแ แแฎแแ แจแแกแ แฃแแแแแ แแแแฎแแแแ, แจแแแแฌแแแแแ แแฃ แแ แ แแแแแฉแแแ แกแแ แแฆแแแ แซแแแแ แขแแฎแ แแแ, แ แแแแแแ แแแขแแแแแแชแแ แจแแกแแซแแแแแแแ.
แฉแแแแ แฃแแฎแแแแกแ แแแแแแแแ แแแแแแฃแ แแแ แแแแแขแแแแก แแแฌแแแแแ แแ, แแฃ แจแแกแแซแแแแแแแ, แแกแแแ rpm.
แแแแก แแแชแแแแ, แ แแ แแแกแแแแ
แแแแ 9+ แแแแก แแแแแแแแแแแจแ แแ แแแงแแแ แฉแแแก แแแแแแแแแจแ
แแแแฎแแแแแก แจแแแฃแจแแแแแแแ แ แแแแแแแแ แแแขแ แ แแฃแแ แแ แแแแแแแกแขแ แแชแแฃแแ แแฆแ แแแแฎแแ แฏแ
แฌแงแแ แ: www.habr.com