[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