ClickHouse

ํด๋ฆญํ•˜์šฐ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—”์ง„์˜ ํ•˜์ด ๋ ˆ๋ฒจ ์•„ํ‚คํ…์ฒ˜.

ํด๋ฆญํ•˜์šฐ์Šค(ClickHouse)๋Š” OLAP์„ ์œ„ํ•œ ์—ด ์ง€ํ–ฅ(column-oriented) DBMS๋‹ค.

OLTP์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ•˜๋‚˜์˜ ์ฟผ๋ฆฌ๊ฐ€ ๋ช‡ ๊ฐœ์˜ ํ–‰๋งŒ ์ฝ๊ณ  ์“ฐ๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๋ถ€๋ถ„ ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„๋กœ ํŠธ๋žœ์žญ์…˜์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, OLAP์—์„œ๋Š” ํ•˜๋‚˜์˜ ์ฟผ๋ฆฌ๊ฐ€ ์ˆ˜์‹ญ์–ต, ํ˜น๋Š” ์ˆ˜์กฐ ๊ฐœ์˜ ํ–‰์„ ์ผ์ƒ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค. ๋ถ„์„ ์ฟผ๋ฆฌ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํด๋ฆญํ•˜์šฐ์Šค๋Š” ์—ด ์ง€ํ–ฅ์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ๋‹ค. ํ–‰ ์ง€ํ–ฅ(row-oriented) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ํ…Œ์ด๋ธ”์˜ ํ–‰์ด ์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ถ€ ์—ด๋งŒ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋„ ๋””์Šคํฌ ๋ธ”๋ก์„ ๋ชจ๋‘ ์ฝ์–ด์•ผ ํ•œ๋‹ค. ๋ฐ˜๋ฉด ์—ด ์ง€ํ–ฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ํ–‰์ด ์•„๋‹Œ ์—ด์˜ ๊ฐ’์„ ๋””์Šคํฌ์— ์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฟผ๋ฆฌ์— ํ•„์š”ํ•œ ์ผ๋ถ€ ์—ด๋งŒ ๋””์Šคํฌ์—์„œ ์ฝ์–ด๋“ค์ผ ์ˆ˜ ์žˆ๋‹ค. ๋ถ„์„ ์ฟผ๋ฆฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํŠน์ • ์—ด์˜ ๊ฐ’์„ ์ง‘๊ณ„ํ•˜๋Š” ์‚ฌ๋ก€๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์—ด ์ง€ํ–ฅ ์„ค๊ณ„๊ฐ€ ์„ฑ๋Šฅ ๋‹ฌ์„ฑ์— ๋งŽ์€ ๊ธฐ์—ฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํด๋ฆญ์Šคํƒ(ClickStack)์€ ํด๋ฆญํ•˜์šฐ์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋œ ๊ด€์ธก ํ”Œ๋žซํผ์ด๋‹ค. ํด๋ฆญ์Šคํƒ์€ ํ”„๋ก ํŠธ์—”๋“œ UI๋ฅผ ์œ„ํ•œ HyperDX, ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘์„ ์œ„ํ•œ OpenTelemetry ์ปฌ๋ ‰ํ„ฐ, ๋ฐ์ดํ„ฐ ์ €์žฅ์„ ์œ„ํ•œ ํด๋ฆญํ•˜์šฐ์Šค ์„ธ ์ปดํฌ๋„ŒํŠธ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ๋ชจ๋‘ ์˜คํ”ˆ์†Œ์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ์…€ํ”„ ํ˜ธ์ŠคํŒ…์œผ๋กœ ํด๋ฆญ์Šคํƒ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜๋„ ์žˆ๊ณ , ํด๋ฆญํ•˜์šฐ์Šค ํด๋ผ์šฐ๋“œ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ด€๋ฆฌํ˜• ํด๋ฆญ์Šคํƒ์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

์ฐธ๊ณ ์ž๋ฃŒ

๊ด€๋ จ๋ฌธ์„œ

์ด ๋ฌธ์„œ๋ฅผ ์ธ์šฉํ•œ ๋ฌธ์„œ