[Clickhouse] Mutation

Clickhouse์—์„œ Mutation์€ ๋งค์šฐ ๊นŒ๋‹ค๋กœ์šด ๋ถ€๋ถ„์ด๋‹ค.
Clickhouse๋Š” ๊ตฌ์กฐ์ƒ ๋ณ€๊ฒฝ(mutation)๋ณด๋‹ค๋Š” ๋‹จ์ˆœ ์ƒ์„ฑ(insert)์— ์ตœ์ ํ™”๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ทธ๋ž˜์„œ clickhouse์˜ update/delete๋Š” ๊ตฌ๋ฌธ๋ถ€ํ„ฐ ๋‹ค๋ฅด๋‹ค.

update๊ฐ€ ์•„๋‹ˆ๋ผ alter table๋กœ ์‹œ์ž‘ํ•˜๋Š”๋ฐ, ๊ทธ๋งŒํผ ๋ฌด๊ฒ๊ณ  ํฐ ์˜ํ–ฅ์„ ์ฃผ๋Š” ๋™์ž‘์ž„์„ ์•”์‹œํ•œ๋‹ค.

์‹ค์ œ๋กœ update๋ฅผ ๋‚ ๋ฆฌ๋ฉด ์ผ๋ฐ˜์ ์ธ ํ–‰ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋‹ค๋ฅด๊ฒŒ ๊ทธ ํ–‰๋งŒ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ํ•ด๋‹น ๊ฐ’์ด ์†ํ•œ part๋ฅผ ์ „์ฒด ์žฌ๊ตฌ์„ฑํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐ€์žฅ ์ข‹์€ ๊ฒƒ์€ mutation์„ ์“ฐ์ง€ ์•Š๋Š” ๊ฒƒ์ด๋‹ค.




mutation์˜ ์ œํ•œ

update ์ฟผ๋ฆฌ๋ฅผ ๋‚ ๋ฆฐ๋‹ค๋ฉด, ๊ทธ๊ฑด ์ผ๋ฐ˜์ ์ธ DB์—์„œ ๊ธฐ๋Œ€ํ•˜๋Š” ์ˆ˜์ •๊ณผ ์‚ฌ๋ญ‡ ๋‹ค๋ฅผ ๊ฒƒ์ด๋‹ค.
์ผ๋‹จ update mutation์€ ๋น„๋™๊ธฐ๋กœ ์‹คํ–‰๋œ๋‹ค. ์ฟผ๋ฆฌ ์š”์ฒญ ๋‚ ๋ฆฌ๋Š”๋ฐ ์„ฑ๊ณตํ•˜๊ณ  ์‘๋‹ต ๋ฐ›์•˜๋‹ค๊ณ  ์ˆ˜์ •์ด ๋˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ž€ ๊ฒƒ์ด๋‹ค.

mutation ์ฟผ๋ฆฌ๋“ค์€ ๋น„๋™๊ธฐ ํ์— ์Œ“์ด๊ณ  clickhouse๊ฐ€ ๋А๊ธ‹ํ•˜๊ฒŒ ๊บผ๋‚ด์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.
๊ทธ ํ ํ…Œ์ด๋ธ”์ด system.mutations๋ผ๋Š” ์‹œ์Šคํ…œ ์ˆ˜์ค€ ํ…Œ์ด๋ธ”์ด๋‹ค.

๋ณด๋ฉด ์ด๋Ÿฐ ์‹์œผ๋กœ ๋˜์–ด์žˆ๋‹ค.

๋™์‹œ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” mutation์˜ ๊ฐœ์ˆ˜๋Š” ์ œํ•œ์ด ์žˆ๋‹ค.
๋ณ€๊ฒฝ์€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ๋ณดํ†ต์€ 100๊ฐœ ์ •๋„๊ฐ€ ํ•œ๊ณ„๋‹ค.

๊ทธ๋ž˜์„œ ๋ฌด๊ฑฐ์šด mutation์„ ๋‚ ๋ฆฐ๋‹ค๋ฉด ๊ทธ๊ฒŒ ๋ฆฌ์†Œ์Šค๋ฅผ ์ ์œ ํ•˜๊ณ  ๋‹ค๋ฅธ mutation์„ ๋ธ”๋Ÿญํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
๊ทธ๋Ÿด ๋•Œ๋Š” KILL ๋ช…๋ น์œผ๋กœ mutation์„ ๊ฐ•์ œ ์ค‘๋‹จํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
https://clickhouse.com/docs/sql-reference/statements/kill#kill-mutation




๊ถŒ์žฅ์‚ฌํ•ญ

์ƒ๊ธฐํ–ˆ๋“ฏ์ด ๊ฐ€์žฅ ์ข‹์€ ๊ฒƒ์€ mutation์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด๋‹ค.

๊ฐ’์˜ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ReplacingMergeTree๋กœ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๊ณ , ์ƒˆ ๊ฐ’์˜ ๋ฐ์ดํ„ฐ๋ฅผ INSERTํ•œ ๋‹ค์Œ์— ๊ทธ๊ฒƒ์ด ๋ณ‘ํ•ฉ๋˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์„ฑ๋Šฅ์ ์œผ๋กœ ๋‚˜์€ ๋ฐฉ๋ฒ•์ด๋‹ค.
๋ฌผ๋ก  ๋ณ‘ํ•ฉ๋˜๊ธฐ๊นŒ์ง€๋Š” ๋”œ๋ ˆ์ด๊ฐ€ ์กด์žฌํ•˜๊ณ , ๋А์Šจํ•œ ์œ ์ผ์„ฑ์„ ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์ด๊ฒŒ ๊ฐ€์žฅ ์ข‹๋‹ค.
https://blog.naver.com/sssang97/223926254595



์ฐธ์กฐ
https://clickhouse.com/docs/managing-data/update_mutations
https://clickhouse.com/docs/optimize/avoid-mutations