XNUMX์์ Avito ์์ง๋์ด๋ค์ ์ฃผ์ ClickHouse ๊ฐ๋ฐ์ Alexey Milovidov ๋ฐ Integros์ Golang ๊ฐ๋ฐ์์ธ Kirill Shvakov์ ์จ๋ผ์ธ ํ์๋ฅผ ์ํด ๋ชจ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๊ณผ ์ง๋ฉดํ๋ ์ด๋ ค์์ ๋ํด ๋ ผ์ํ์ต๋๋ค.
ํ์๋ฅผ ๋ฐํ์ผ๋ก ๋ฐฑ์ , ๋ฐ์ดํฐ ๋ฆฌ์ค๋ฉ, ์ธ๋ถ ์ฌ์ , Golang ๋๋ผ์ด๋ฒ ๋ฐ ClickHouse ๋ฒ์ ์ ๋ฐ์ดํธ์ ๋ํ ์ฐ๋ฆฌ์ ์ฒญ์ค์ ์ง๋ฌธ์ ๋ํ ์ ๋ฌธ๊ฐ์ ๋ต๋ณ์ ๋ด์ ๊ธฐ์ฌ๋ฅผ ํธ์งํ์ต๋๋ค. ์ด๋ฏธ Yandex DBMS๋ฅผ ์ ๊ทน์ ์ผ๋ก ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ํ์ฌ์ ๋ฏธ๋์ ๊ด์ฌ์ด ์๋ ๊ฐ๋ฐ์์๊ฒ ์ ์ฉํ ์ ์์ต๋๋ค. ๋ฌ๋ฆฌ ์์ฑํ์ง ์๋ ํ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ต๋ณ์ Alexey Milovidov๊ฐ ์์ฑํฉ๋๋ค.
์ปท ์๋์ ํ ์คํธ๊ฐ ๋ง์ผ๋ฏ๋ก ์ฃผ์ํ์ธ์. ์ง๋ฌธ์ด ์๋ ์ฝํ ์ธ ๊ฐ ํ์์ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋ด์ฉ
ClickHouse๋ ์ง์์ ์ผ๋ก ์ ๋ฐ์ดํธ๋์ง๋ง ๋ฐ์ดํฐ๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ์ด๋ป๊ฒ ํด์ผ ํ ๊น์? ClickHouse์ ๋ฐ์ดํฐ ๋ฐฑ์ ์ ๋ํ ํ์ฌ ๋ชจ๋ฒ ์ฌ๋ก๋ ๋ฌด์์ ๋๊น? ์คํํธ์์ ๋ณต์ ํ์ ์ง์ฐ์ ์ ์ดํ๋ โโ๊ฒ์ด ๊ฐ๋ฅํฉ๋๊น? ํ ์ด๋ธ ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์ด๋ป๊ฒ ๋๋์? ๋ฐ์ดํฐ ๋ฆฌ์ค๋ฉ์ ๋ํ ํ์ฌ ๋ชจ๋ฒ ์ฌ๋ก๋ ๋ฌด์์ ๋๊น? ClickHouse์๋ ํด๋ฆญํ์ฐ์ค ๋ณต์ฌ๊ธฐ ์ ํธ๋ฆฌํฐ๊ฐ ์์ต๋๋ค. ๊ทธ๋ ์ ๋ํด ๋งํด ์ค ์ ์๋์? ๋ฆฌ์ค๋ฉ์ด๋ผ๋ ํ์ผ๋ฟ ์์ ์ด ์์์ต๋๋ค. ๊ทธ๋ ๋ ์ด์ฉ๊ณ ? ๋๋ฆฐ ๋์คํฌ๋ก ์ด๋ํ๊ธฐ ์ ์ ๋ชจ๋ ๋ฐ์ดํฐ ์กฐ๊ฐ์ ๋ณํฉํ ์ ์์ต๋๊น? ํธํ์ฑ์ ๋ฏธ๋ฆฌ ํ์ธํ ์ ์๋ ๊ฒฝ์ฐ ClickHouse์ ์ ๋ฒ์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ์ฟผ๋ฆฌ ์ข ๋ฃ๋ ์ฟผ๋ฆฌ๋ฅผ ์ข ๋ฃํด์ผ ํ์ง๋ง ๊ทธ๋ ์ง ์์ต๋๋ค. ์? ์ฝ๊ธฐ ๋ถํ ์ ์๋ต ์๊ฐ์ ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ๋ ๋ง์ ๋ฐ์ดํฐ๊ฐ ์บ์์ ์ ์ฅ๋๋๋ก ClickHouse์์ ๋ฌด์์ ์กฐ์ ํ ์ ์๋์? RAM์ ์ ์ฅํ๊ธฐ ์ํด Storage_configuration์ ์ด๋ป๊ฒ ๊ตฌ์ฑํฉ๋๊น? ๋ฎ์ ์นด๋๋๋ฆฌํฐ๋ ๋ช ๊ฐ์ ๊ณ ์ ๊ฐ๊น์ง ์ ํจํฉ๋๊น? XNUMX์ต ํ์ด ์๋ ํ ์ด๋ธ์์ ์ ์ฒด ํ ์คํธ๋ฅผ ๊ฒ์ํ๋ ๋ชจ๋ฒ ์ฌ๋ก๋ ๋ฌด์์ ๋๊น? ๋ค์์ ์ฌ์ฉ์๋ฅผ ์ํด ClickHouse์ ๋ํ ์ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ํ๋์ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ XNUMX๋ช ์ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๊ณตํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๊น? ๋น๋๊ธฐ ์์ ๊ณผ ๊ตฌ์ฒดํ๋ ๋ทฐ๋ ์ด๋ป์ต๋๊น? ClickHouse์๋ ๋ง์ ๋ก๊ทธ๊ฐ ์์ต๋๋ค. ํ์ฌ ์๋ฒ์์ ์ผ์ด๋๋ ๋ชจ๋ ์ผ์ ์ด๋ป๊ฒ ๋ณผ ์ ์๋์? ์๋ฒ๊ฐ OOM์ ์ถฉ๋ํ์ง ์๋๋ก ๋ณํฉ์ ์ํฅ์ ๋ฏธ์น๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ClickHouse์ฉ Golang ๋๋ผ์ด๋ฒ๋ ์ด๋ป๊ฒ ๊ฐ๋ฐ๋๋์? lazy_load ์ค์ ์ด ํ์ฑํ๋ ์ํ๋ก ์ฌ๋ถํ ํ ํ์๋ ์ธ๋ถ ์ฌ์ ์ด ๋ก๋๋์ง ์์ต๋๋ค. ๋ฌด์์ ํด์ผ ํ ๊น์? ์์คํ ๋ค์ ๋ก๋ ์ฌ์ ์ค ์ ์ด๋ ํ๋๊ฐ ์ค๋ฅ๋ก ์ธํด ์ถฉ๋ํ๋ ๊ฒฝ์ฐ ๋ง์ ์ฌ์ ์ค ์ด๋ ๊ฒ๋ ๋ก๋ํ์ง ์๋๋ค๋ ์ฌ์ค์ ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น? ClickHouse ๊ตฌ์ฑ์์ ์ธ๋ถ ์ ๋ณด๋ฅผ ๊ตฌ์ฑํ์ง๋ง ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ํ์ํ์ง ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? ๋ณด๋์ค: ๋ชจ์์์ Zoom์ ์ํ ๋ฐฐ๊ฒฝ
๊ธ์ ์ฝ๊ธฐ ์ซ์ผ์๋ฉด ๋ชจ์๋ นํ๋ฅผ ์์ฒญํ์๋ฉด ๋ฉ๋๋ค
์ฐ๋ฆฌ ์ ํ๋ธ ์ฑ๋์์ . ํ์์ฝ๋๋ ์์ ์๋ ์ฒซ ๋๊ธ์ ์์ต๋๋ค.
ClickHouse๋ ์ง์์ ์ผ๋ก ์
๋ฐ์ดํธ๋์ง๋ง ๋ฐ์ดํฐ๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ์ด๋ป๊ฒ ํด์ผ ํ ๊น์?
ํด๋ฆญํ์ฐ์ค๋ ์ง์์ ์ผ๋ก ์ ๋ฐ์ดํธ๋๋ฉฐ, ์ต์ ํ๋ ์ต์ข ์ฒ๋ฆฌ๋ ๋ฐ์ดํฐ๋ ์ ๋ฐ์ดํธ๋์ง ์๊ณ ๋ฐฑ์ ๋ณธ์ผ๋ก ๋ณด๊ด๋ฉ๋๋ค.
๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ ๋ฐ์ดํฐ๊ฐ ์์ค๋์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ณต์ํ๊ธฐ๋ก ๊ฒฐ์ ํ๊ณ ๋ฐฑ์ ์๋ฒ์ ์ ์ฅ๋์ด ์๋ ์ด์ ํํฐ์ ์ด ํ์ฌ ์ฌ์ฉ๋๋ ClickHouse ๋ฒ์ ๊ณผ ๋งค์ฐ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ์ด๋ฐ ์ํฉ์์๋ ์ด๋ป๊ฒ ํด์ผ ํ๋ฉฐ, ๊ฐ๋ฅํฉ๋๊น?
์ด์ ํ์์ ๋ฐฑ์ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ํ์ง๋ง ์ ๋ฒ์ ์ ์ฐ๊ฒฐ๋์ง ์๋ ์ํฉ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ClickHouse์ ๋ฐ์ดํฐ ํ์์ ํญ์ ์ด์ ๋ฒ์ ๊ณผ ํธํ๋๋๋ก ๋ณด์ฅํฉ๋๋ค. ๊ฑฐ์ ์ฌ์ฉ๋์ง ์๋ ์ผ๋ถ ๊ธฐ๋ฅ์ ๋์์ด ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ ์ด๋ ๊ธฐ๋ฅ ๋ฉด์์ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ๋ณด๋ค ํจ์ฌ ๋ ์ค์ํฉ๋๋ค. ClickHouse์ ์ ๋ฒ์ ์ ํญ์ ๋์คํฌ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์ ์์ด์ผ ํฉ๋๋ค. ์ด๊ฒ์ด ๋ฒ์ด๋ค.
ClickHouse์ ๋ฐ์ดํฐ ๋ฐฑ์
์ ๋ํ ํ์ฌ ๋ชจ๋ฒ ์ฌ๋ก๋ ๋ฌด์์
๋๊น?
์ต์ข ์์ , ํ ๋ผ๋ฐ์ดํธ ๋จ์์ ๊ฑฐ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์ง๋ XNUMX์ผ ๋์ ์ ๋ฐ์ดํธ๋ ๋ฐ์ดํฐ๋ฅผ ์ต์ ํํ๋๋ฐ ์๋ฌด๋ฐ ์ ์ฐจ๋ ์ํ๋์ง ์๋๋ค๋ ์ ์ ๊ณ ๋ คํ์ฌ ๋ฐฑ์ ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
์ฐ๋ฆฌ๋ ์ฐ๋ฆฌ ์์ ์ ์๋ฃจ์ ์ ๋ง๋ค๊ณ bash์ ์ธ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ฐฑ์ ๋ณต์ฌ๋ณธ์ ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ์์งํฉ๋๋ค. ๋ชฉ๋ฐ์ ์ง์ ํ์๋ ์๊ณ ์์ ๊ฑฐ๊ฐ ์ค๋ ์ ์ ๋ฐ๋ช ๋ ๊ฑด ์๋๊น?
๋ชจ๋ฒ ์ฌ๋ก๋ถํฐ ์์ํด ๋ณด๊ฒ ์ต๋๋ค. ๋ด ๋๋ฃ๋ค์ ๋ฐฑ์ ์ ๋ํ ์ง๋ฌธ์ ๋ํด ํญ์ ์ด ๋ฌธ์ ๊ฐ ์ด๋ฏธ ํด๊ฒฐ๋ Yandex.Cloud ์๋น์ค์ ๋ํด ์๊ธฐ์ํค๋ผ๊ณ ์กฐ์ธํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ๋ฅํ๋ค๋ฉด ์ฌ์ฉํ์ธ์.
ClickHouse์ XNUMX% ๋ด์ฅ๋ ์๋ฒฝํ ๋ฐฑ์ ์๋ฃจ์ ์ ์์ต๋๋ค. ์ฌ์ฉํ ์ ์๋ ๊ณต๋ฐฑ์ด ์์ต๋๋ค. ์์ ํ ์๋ฃจ์ ์ ์ป์ผ๋ ค๋ฉด ์๋์ผ๋ก ์ฝ๊ฐ ์์ ํ๊ฑฐ๋ ์คํฌ๋ฆฝํธ ํ์์ผ๋ก ๋ํผ๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
๋ฐ์ดํฐ ์๊ณผ ํด๋ฌ์คํฐ ํฌ๊ธฐ์ ๋ฐ๋ผ ๊ฐ์ฅ ๊ฐ๋จํ ์๋ฃจ์ ๋ถํฐ ์์ํด ๊ฐ์ฅ ์ ๊ตํ ์๋ฃจ์ ์ผ๋ก ๋ง๋ฌด๋ฆฌํ๊ฒ ์ต๋๋ค. ํด๋ฌ์คํฐ๊ฐ ํด์๋ก ์๋ฃจ์ ์ด ๋ ๋ณต์กํด์ง๋๋ค.
๋ฐ์ดํฐ๊ฐ ์๋ ํ ์ด๋ธ์ด ๋ช ๊ธฐ๊ฐ๋ฐ์ดํธ๋ง ์ฐจ์งํ๋ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ๋ฐฑ์ ์ ์ํํ ์ ์์ต๋๋ค.
- ํ ์ด๋ธ ์ ์, ์ฆ ๋ฉํ๋ฐ์ดํฐ ์ ์ฅ - ํ ์ด๋ธ ์์ฑ ํ์.
- ClickHouse ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋คํ ๋ง๋ค๊ธฐ - ๊ณ ๋ฅด๋ค * ํ ์ด๋ธ์์ ํ์ผ๋ก. ๊ธฐ๋ณธ์ ์ผ๋ก TabSeparated ํ์์ ํ์ผ์ ๋ฐ๊ฒ ๋ฉ๋๋ค. ๋ณด๋ค ํจ์จ์ ์ผ๋ก ์์ ํ๋ ค๋ฉด ๊ธฐ๋ณธ ํ์์ผ๋ก ์ํํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ์์ด ๋ง์ผ๋ฉด ๋ฐฑ์ ์ ๋ ๋ง์ ์๊ฐ๊ณผ ๊ณต๊ฐ์ด ์์๋ฉ๋๋ค. ์ด๋ฅผ ๋ ผ๋ฆฌ์ ๋ฐฑ์ ์ด๋ผ๊ณ ํ๋ฉฐ ClickHouse ๋ฐ์ดํฐ ํ์๊ณผ ์ฐ๊ฒฐ๋์ง ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ตํ์ ์๋จ์ผ๋ก ๋ฐฑ์ ์ ์ํํ๊ณ ๋ณต๊ตฌ๋ฅผ ์ํด MySQL์ ์ ๋ก๋ํ ์ ์์ต๋๋ค.
๊ณ ๊ธ ์ฌ๋ก์ ๊ฒฝ์ฐ ClickHouse์๋ ๋ก์ปฌ ํ์ผ ์์คํ ์์ ํํฐ์ ์ ์ค๋ ์ท์ ์์ฑํ๋ ๊ธฐ๋ฅ์ด ๋ด์ฅ๋์ด ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ์์ฒญ ์ ์ ๊ณต๋ฉ๋๋ค. ํ ์ด๋ธ ๊ณ ์ ํํฐ์ ๋ณ๊ฒฝ. ์๋๋ฉด ๋จ์ํ ํ ์ด๋ธ ๊ณ ์ ๋ณ๊ฒฝ - ์ ์ฒด ํ ์ด๋ธ์ ์ค๋ ์ท์ ๋๋ค.
์ค๋ ์ท์ ํ๋์ ์ค๋์ ์๋ ํ๋์ ํ ์ด๋ธ์ ๋ํด ์ผ๊ด๋๊ฒ ์์ฑ๋ฉ๋๋ค. ์ฆ, ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ์ ์ฒด ํด๋ฌ์คํฐ์ ์ผ๊ด๋ ์ค๋ ์ท์ ์์ฑํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋๋ถ๋ถ์ ์์ ์์๋ ๊ทธ๋ฌํ ํ์๊ฐ ์์ผ๋ฉฐ ๊ฐ ์ค๋์์ ์์ฒญ์ ์คํํ๊ณ ์ผ๊ด๋ ์ค๋ ์ท์ ์ป๋ ๊ฒ์ผ๋ก ์ถฉ๋ถํฉ๋๋ค. ํ๋๋งํฌ ํํ๋ก ์์ฑ๋๋ฏ๋ก ์ถ๊ฐ ๊ณต๊ฐ์ ์ฐจ์งํ์ง ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด ์ค๋ ์ท์ ๋ฐฑ์ ์๋ฒ ๋๋ ๋ฐฑ์ ์ ์ฌ์ฉํ๋ ์คํ ๋ฆฌ์ง์ ๋ณต์ฌํฉ๋๋ค.
์ด๋ฌํ ๋ฐฑ์ ์ ๋ณต์ํ๋ ๊ฒ์ ๋งค์ฐ ์ฝ์ต๋๋ค. ๋จผ์ ๊ธฐ์กด ํ ์ด๋ธ ์ ์๋ฅผ ์ฌ์ฉํ์ฌ ํ ์ด๋ธ์ ๋ง๋ญ๋๋ค. ๋ค์์ผ๋ก, ํํฐ์ ์ ์ ์ฅ๋ ์ค๋ ์ท์ ํด๋น ํ ์ด๋ธ์ ๋ํ ๋๋ ํฐ๋ฆฌ ๋ถ๋ฆฌ์ ๋ณต์ฌํ๊ณ ์ฟผ๋ฆฌ๋ฅผ ์คํํฉ๋๋ค. ํํฐ์ ์ฐ๊ฒฐ. ์ด ์๋ฃจ์ ์ ๊ฐ์ฅ ์ฌ๊ฐํ ๋ฐ์ดํฐ ๋ณผ๋ฅจ์ ๋งค์ฐ ์ ํฉํฉ๋๋ค.
๊ฐ ์๋ฒ์ ์๋ฐฑ ๋์ ์๋ฒ์ ์์ญ, ์ฌ์ง์ด ์๋ฐฑ ํ ๋ผ๋ฐ์ดํธ๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ๋ ๋ฉ์ง ๊ฒ์ด ํ์ํ ๋๋ ์์ต๋๋ค. Yandex.Metrica์ ๋๋ฃ๋ค๋ก๋ถํฐ ์ ๊ฐ ์ ํํ ์๋ฃจ์ ์ด ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ๋ชจ๋ ์ฌ๋์๊ฒ ์ถ์ฒํ์ง๋ ์์ต๋๋ค. ์ฝ์ด๋ณด๊ณ ๊ทธ๊ฒ์ด ์ ํฉํ์ง ์๋์ง ์ค์ค๋ก ๊ฒฐ์ ํ์ญ์์ค.
๋จผ์ ๋ํ Disk Shelf๊ฐ ์๋ ์ฌ๋ฌ ์๋ฒ๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค. ๋ค์์ผ๋ก, ์ด๋ฌํ ์๋ฒ์์ ์ฌ๋ฌ ClickHouse ์๋ฒ๋ฅผ ์์ฑํ๊ณ ๋์ผํ ์ค๋์ ๋ํ ๋ ๋ค๋ฅธ ๋ณต์ ๋ณธ์ผ๋ก ์๋ํ๋๋ก ๊ตฌ์ฑํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด๋ฌํ ์๋ฒ์์ ์ค๋ ์ท์ ์์ฑํ ์ ์๋ ํ์ผ ์์คํ ์ด๋ ์ผ๋ถ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ญ์์ค. ์ฌ๊ธฐ์๋ ๋ ๊ฐ์ง ์ต์ ์ด ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ์ต์ ์ LVM ์ค๋ ์ท์ด๊ณ , ๋ ๋ฒ์งธ ์ต์ ์ Linux์ ZFS์ ๋๋ค.
๊ทธ ํ์๋ ๋งค์ผ ์ค๋ ์ท์ ๋ง๋ค์ด์ผ ํ๋ฉฐ, ์ค๋ ์ท์ ๋์์ ๊ณต๊ฐ์ ์ฐจ์งํ๊ฒ ๋ฉ๋๋ค. ๋น์ฐํ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๊ณต๊ฐ์ด ๋์ด๋ฉ๋๋ค. ์ด ์ค๋ ์ท์ ์ธ์ ๋ ์ง ๊บผ๋ด์ด ๋ฐ์ดํฐ๋ฅผ ๋ณต์ํ ์ ์์ต๋๋ค. ์ ๋ง ์ด์ํ ํด๊ฒฐ์ฑ ์ ๋๋ค. ๋ํ ์ด๋ฌํ ๋ณต์ ๋ณธ์ด ๋ฆฌ๋๊ฐ ๋๋ ค๊ณ ํ์ง ์๋๋ก ๊ตฌ์ฑ์์ ์ด๋ฌํ ๋ณต์ ๋ณธ์ ์ ํํด์ผ ํฉ๋๋ค.
์คํํธ์์ ๋ณต์ ํ์ ์ง์ฐ์ ์ ์ดํ๋ โโ๊ฒ์ด ๊ฐ๋ฅํฉ๋๊น?
์ฌํด๋ ClickHouse์์ ์คํํธ๋ฅผ ๋ง๋ค ๊ณํ์ ๋๋ค. ๋ณต์ ๋ณธ์ ์ง์ฐ์ ์ ์ดํ์ฌ ๊ตฌ์ฑํ ์ ์์ต๋๊น? ์ฐ๋ฆฌ๋ ์ด๋ฅผ ๋ณ๊ฒฝ ๋ฐ ๊ธฐํ ๋ณ๊ฒฝ์ผ๋ก ์ธํ ๋ถ์ ์ ์ธ ์๋๋ฆฌ์ค๋ก๋ถํฐ ์์ ์ ๋ณดํธํ๊ธฐ ์ํด ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค.
๋ณ๊ฒฝ ์ฌํญ์ ๋ํด ์ผ์ข ์ ๋กค๋ฐฑ์ ์ํํ ์ ์์ต๋๊น? ์๋ฅผ ๋ค์ด, ๊ธฐ์กด ์คํํธ์์ ์ง๊ธ๊น์ง ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๊ณ ์ด ์๊ฐ๋ถํฐ ๋ณ๊ฒฝ ์ฌํญ ์ ์ฉ์ ์ค๋จํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.
๋ช ๋ น์ด ํด๋ฌ์คํฐ์ ์์ ์ค๋จ๋ ๊ฒฝ์ฐ ์๊ฐ ์ง์ฐ์ด ์๋ ์กฐ๊ฑด๋ถ ๋ณต์ ๋ณธ์ด ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ์ง๊ธ์ ์ฌ์ฉํ์ง๋ง ๋ง์ง๋ง XNUMX๋ถ ๋์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ๋งํ ์ ์์ต๋๋ค.
์ฒซ์งธ, ๋ณต์ ๋ณธ์ ์ ์ด๋ ์ง์ฐ์ ๋ํด ์ค๋ช ํฉ๋๋ค. ์ฌ์ฉ์๋ค๋ก๋ถํฐ ๊ทธ๋ฐ ์์ฒญ์ด ์์๊ณ ์ฐ๋ฆฌ๋ Github์ "์ด๊ฒ์ด ํ์ํ ์ฌ๋์ด ์๋ค๋ฉด ๋ง์์ ๋ด์์ฃผ์ธ์"๋ผ๋ ์์ฒญ์ผ๋ก ์ด์๋ฅผ ๋ง๋ค์์ต๋๋ค. ์๋ฌด๋ ๋ฐฐ๋ฌํ์ง ์์๊ณ ๋ฌธ์ ๋ ์ข ๋ฃ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ClickHouse๋ฅผ ์ค์ ํ๋ฉด ์ด๋ฏธ ์ด ๊ธฐํ๋ฅผ ์ป์ ์ ์์ต๋๋ค. ์ฌ์ค์ ๋๋ค. ๋ฒ์ 20.3๋ถํฐ ์์๋ฉ๋๋ค.
ClickHouse๋ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์ง์์ ์ผ๋ก ๋ฐ์ดํฐ ๋ณํฉ์ ์ํํฉ๋๋ค. ๋ณํฉ์ด ์๋ฃ๋๋ฉด ํน์ ๋ฐ์ดํฐ ์กฐ๊ฐ ์ธํธ๊ฐ ๋ ํฐ ์กฐ๊ฐ์ผ๋ก ๋์ฒด๋ฉ๋๋ค. ๋์์ ์ด์ ์ ์๋ ๋ฐ์ดํฐ ์กฐ๊ฐ์ ํ๋์ ๋์คํฌ์ ๊ณ์ ๋จ์ ์์ต๋๋ค.
์ฒซ์งธ, ๋น์ฐจ๋จ ์์ ์ ์ ๊ณตํ๊ธฐ ์ํด ์ด๋ฅผ ์ฌ์ฉํ๋ ์ ํ ์ฟผ๋ฆฌ๊ฐ ์๋ ํ ๊ณ์ ์ ์ฅ๋ฉ๋๋ค. ์ ํ ์ฟผ๋ฆฌ๋ ์ด์ ์ฒญํฌ์์ ์ฝ๊ฒ ์ฝ์ ์ ์์ต๋๋ค.
๋์งธ, ์๊ฐ ์๊ณ๊ฐ๋ ์์ต๋๋ค. ์ค๋๋ ๋ฐ์ดํฐ ์กฐ๊ฐ์ด XNUMX๋ถ ๋์ ๋์คํฌ์ ๋จ์ ์์ต๋๋ค. ์ด XNUMX๋ถ์ ๋ง์ถค ์ค์ ์ด ๊ฐ๋ฅํ๋ฉฐ ์ฌ์ง์ด ํ๋ฃจ๋ก ์ ํ๋ ์๋ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋์คํฌ ๊ณต๊ฐ์ด ์๋ชจ๋ฉ๋๋ค. ๋ฐ์ดํฐ ํ๋ฆ์ ๋ฐ๋ผ ๋ง์ง๋ง ๋ ์๋ ๋ฐ์ดํฐ๊ฐ ๋ ๋ฐฐ์ผ ๋ฟ๋ง ์๋๋ผ ๋ค์ฏ ๋ฐฐ ๋ ์ปค์ง ์๋ ์์ต๋๋ค. ํ์ง๋ง ์ฌ๊ฐํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ClickHouse ์๋ฒ๋ฅผ ์ค์งํ๊ณ ๋ชจ๋ ๊ฒ์ ์ ๋ฆฌํ ์ ์์ต๋๋ค.
์ด์ ์ด๊ฒ์ด ๋ณ๊ฒฝ์ผ๋ก๋ถํฐ ์ด๋ป๊ฒ ๋ณดํธ๋๋์ง์ ๋ํ ์๋ฌธ์ด ์๊น๋๋ค. ClickHouse์ ์ด์ ๋ฒ์ ์์๋ ๋ณ๊ฒฝ ์์ ์ด ๋จ์ํ ๋ถ๋ถ์ ์ง์ ๋ณ๊ฒฝํ๋ ๋ฐฉ์์ผ๋ก ์๋ํ๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์์ ๋ ์์ธํ ์ดํด๋ณผ ๊ฐ์น๊ฐ ์์ต๋๋ค. ์ผ๋ถ ํ์ผ์ ๋ฐ์ดํฐ ์กฐ๊ฐ์ด ์๋๋ฐ, ์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋๋กญ ์ด ๋ณ๊ฒฝ. ๊ทธ๋ฐ ๋ค์ ์ด ์ด์ ๋ชจ๋ ์ฒญํฌ์์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ ๊ฑฐ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ ๋ฒ์ 20.3๋ถํฐ ๋ณ๊ฒฝ ๋ฉ์ปค๋์ฆ์ด ์์ ํ ๋ณ๊ฒฝ๋์ด ์ด์ ๋ฐ์ดํฐ ์กฐ๊ฐ์ ํญ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ ํ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ์ด์ ๋ณ๊ฒฝ์ ๋ณํฉ๊ณผ ๊ฑฐ์ ๋์ผํ ๋ฐฉ์์ผ๋ก ์๋ํฉ๋๋ค. ์ฆ์์์ ๋ถํ์ ๊ต์ฒดํ๋ ๋์ ์ ๋ถํ์ ๋ง๋ญ๋๋ค. ์ ์ฒญํฌ์์๋ ๋ณ๊ฒฝ๋์ง ์์ ํ์ผ์ด ํ๋๋งํฌ๊ฐ ๋๋ฉฐ, ์ด์ ์ญ์ ํ๋ฉด ์ ์ฒญํฌ์์ ํด๋น ์ด์ด ๋๋ฝ๋ฉ๋๋ค. ์ด์ ๋ถ๋ถ์ ๊ธฐ๋ณธ์ ์ผ๋ก XNUMX๋ถ ํ์ ์ญ์ ๋๋ฉฐ, ์ฌ๊ธฐ์ ์์์ ์ธ๊ธํ ์ค์ ์ ์กฐ์ ํ ์ ์์ต๋๋ค.
๋์ฐ๋ณ์ด์ ๊ฐ์ ๋ณ๊ฒฝ์๋ ๋์ผํ๊ฒ ์ ์ฉ๋ฉ๋๋ค. ๋น์ ์ด ํ ๋ ๋ณ๊ฒฝ ์ญ์ ๋๋ ์ ๋ฐ์ดํธ ๋ณ๊ฒฝ, ์กฐ๊ฐ์ ๋ณ๊ฒฝํ์ง ์๊ณ ์ ์กฐ๊ฐ์ ๋ง๋ญ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด์ ํญ๋ชฉ์ ์ญ์ ํฉ๋๋ค.
ํ
์ด๋ธ ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์ด๋ป๊ฒ ๋๋์?
์ด์ ๊ตฌ์ฑํ๋ก ์์ฑ๋ ๋ฐฑ์ ์ ๋ณต์ํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ๋ ๋ฒ์งธ ์ง๋ฌธ์ ์ค๋ ์ท๊ณผ ํ์ผ ์์คํ ๋๊ตฌ์ ๊ดํ ๊ฒ์ ๋๋ค. Linux LVM์์ ZFS ๋์ Btrfs๊ฐ ์ข์ต๋๊น?
๋ง์ฝ ๋น์ ์ด ํํฐ์ ์ฐ๊ฒฐ ๊ตฌ์กฐ๊ฐ ๋ค๋ฅธ ํํฐ์ ์ ์ฌ์ฉํ๋ฉด ClickHouse์์ ์ด๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ค๊ณ ์๋ ค์ค๋๋ค. ์ด๊ฒ์ด ํด๊ฒฐ์ฑ ์ ๋๋ค. ์ฒซ ๋ฒ์งธ๋ ์ด์ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ฌ MergeTree ์ ํ์ ์์ ํ ์ด๋ธ์ ์์ฑํ๊ณ , Attach๋ฅผ ์ฌ์ฉํ์ฌ ๊ฑฐ๊ธฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฒจ๋ถํ๊ณ , ๋ณ๊ฒฝ ์ฟผ๋ฆฌ๋ฅผ ์ํํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌ ๋๋ ์ ์กํ๊ณ ๋ค์ ์ฒจ๋ถํ๊ฑฐ๋ ์์ฒญ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ ์ด๋ธ ์ด๋ ํํฐ์ ๋ณ๊ฒฝ.
์ด์ ๋ ๋ฒ์งธ ์ง๋ฌธ์ Btrfs๋ฅผ ์ฌ์ฉํ ์ ์๋์ง ์ฌ๋ถ์ ๋๋ค. ์ฐ์ LVM์ด ์์ผ๋ฉด LVM ์ค๋ ์ท์ด๋ฉด ์ถฉ๋ถํ๊ณ ํ์ผ ์์คํ ์ ext4์ผ ์ ์์ผ๋ฏ๋ก ์๊ด์์ต๋๋ค. Btrts๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ฌ์ฉ ๊ฒฝํ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ์ด๊ฒ์ ์ฑ์ํ ํ์ผ ์์คํ ์ด์ง๋ง ํน์ ์๋๋ฆฌ์ค์์ ์ค์ ๋ก ๋ชจ๋ ๊ฒ์ด ์ด๋ป๊ฒ ์๋ํ ์ง์ ๋ํ ์์ฌ์ด ์ฌ์ ํ ๋จ์ ์์ต๋๋ค. ํ๋ก๋์ ์ Btrfs๊ฐ ์์ผ๋ฉด ์ด๊ฒ์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ฐ์ดํฐ ๋ฆฌ์ค๋ฉ์ ๋ํ ํ์ฌ ๋ชจ๋ฒ ์ฌ๋ก๋ ๋ฌด์์
๋๊น?
๋ฆฌ์ค๋ฉ ๋ฌธ์ ๋ ๋ณต์กํ๊ณ ๋ค๋ฉด์ ์ ๋๋ค. ์ฌ๊ธฐ์๋ ๋ช ๊ฐ์ง ๊ฐ๋ฅํ ๋ต๋ณ์ด ์์ต๋๋ค. ํ์ชฝ์์ ์ด๋ ๊ฒ ๋งํ ์ ์์ต๋๋ค. ClickHouse์๋ ๋ฆฌ์ค๋ฉ ๊ธฐ๋ฅ์ด ๋ด์ฅ๋์ด ์์ง ์์ต๋๋ค. ํ์ง๋ง ์ด ๋ต๋ณ์ ๋๊ตฌ์๊ฒ๋ ์ ํฉํ์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฐ๋ผ์ ๋ฐ๋ํธ์์ ClickHouse์๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ถํ ํ๋ ๋ค์ํ ๋ฐฉ๋ฒ์ด ์๋ค๊ณ ๋งํ ์ ์์ต๋๋ค.
ํด๋ฌ์คํฐ ๊ณต๊ฐ์ด ๋ถ์กฑํ๊ฑฐ๋ ๋ก๋๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ ๊ฒฝ์ฐ ์ ์๋ฒ๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ์๋ฒ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋น์ด ์๊ณ ๋ฐ์ดํฐ๋ ์์ผ๋ฉฐ ๋ก๋๋ ์์ต๋๋ค. ๋ ํฐ ์ ํด๋ฌ์คํฐ์ ๊ท ๋ฑํ๊ฒ ๋ถ์ฐ๋๋๋ก ๋ฐ์ดํฐ๋ฅผ ๋ค์ ์ ๋ ฌํด์ผ ํฉ๋๋ค.
์ด๋ฅผ ์ํํ ์ ์๋ ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์ ์์ฒญ์ ์ฌ์ฉํ์ฌ ํํฐ์ ์ ์ผ๋ถ๋ฅผ ์ ์๋ฒ์ ๋ณต์ฌํ๋ ๊ฒ์ ๋๋ค. ํ ์ด๋ธ ๊ฐ์ ธ์ค๊ธฐ ํํฐ์ ๋ณ๊ฒฝ. ์๋ฅผ ๋ค์ด ์๋ณ ํํฐ์ ์ด ์๊ณ 2017๋ ์ฒซ ๋ฒ์งธ ๋ฌ์ ์ ์๋ฒ์ ๋ณต์ฌํ ๋ค์ ์ธ ๋ฒ์งธ ๋ฌ์ ๋ค๋ฅธ ์ ์๋ฒ์ ๋ณต์ฌํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ์ ๋ ๊ท ์ผํด์ง ๋๊น์ง ์ด ์์ ์ ์ํํฉ๋๋ค.
๋ นํ ์ค ๋ณ๊ฒฝ๋์ง ์๋ ํํฐ์ ์ ๋ํด์๋ง ์ ์ก์ด ๊ฐ๋ฅํฉ๋๋ค. ์๋ก์ด ํํฐ์ ์ ๊ฒฝ์ฐ ์ ์ก์ด ์์์ ์ด์ง ์๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ก์ ๋นํ์ฑํํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ฐ์ดํฐ์ ์ค๋ณต์ด๋ ๊ณต๋ฐฑ์ด ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด ๋ฐฉ๋ฒ์ ์ค์ฉ์ ์ด๊ณ ๋งค์ฐ ํจ๊ณผ์ ์ผ๋ก ์๋ํฉ๋๋ค. ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ง ์์ถ ํํฐ์ ์ ๋คํธ์ํฌ๋ฅผ ํตํด ์ ์ก๋ฉ๋๋ค. ์ฆ, ๋ฐ์ดํฐ๊ฐ ์์ถ๋๊ฑฐ๋ ๋ค์ ์ธ์ฝ๋ฉ๋์ง ์์ต๋๋ค.
์ด ๋ฐฉ๋ฒ์๋ ํ ๊ฐ์ง ๋จ์ ์ด ์์ผ๋ฉฐ ์ค๋ฉ ์ฒด๊ณ, ์ด ์ค๋ฉ ์ฒด๊ณ๋ฅผ ์ฝ์ํ๋์ง ์ฌ๋ถ, ์ด๋ค ์ค๋ฉ ํค๋ฅผ ๊ฐ์ง๊ณ ์๋์ง์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์ธก์ ํญ๋ชฉ์ ๊ฒฝ์ฐ ์ค๋ฉ ํค๋ ๊ฒฝ๋ก์ ํด์์ ๋๋ค. ๋ถ์ฐ ํ ์ด๋ธ์ ์ ํํ๋ฉด ํด๋ฌ์คํฐ์ ๋ชจ๋ ์ค๋๋ก ํ ๋ฒ์ ์ด๋ํ์ฌ ๊ฑฐ๊ธฐ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
์ฆ, ์ด๋ค ๋ฐ์ดํฐ๊ฐ ์ด๋ค ์ค๋์ ์ ์ฅ๋์๋์ง๋ ์ค์ ๋ก ์ค์ํ์ง ์์ต๋๋ค. ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ํ ๊ฒฝ๋ก์ ๋ฐ์ดํฐ๊ฐ ํ๋์ ์ค๋๋ก ๋๋์ง๋ง ์ด๋ ์ค๋์ธ์ง๋ ์ค์ํ์ง ์๋ค๋ ๊ฒ์ ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ง ํํฐ์ ์ ์ ์กํ๋ ๊ฒ์ด ์๋ฒฝํฉ๋๋ค. ์ ํ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฆฌ์ค๋ฉ ์ ์ด๋ ํ๋ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ตฌ์ฑํ๋ ์ค์ ๋ก ์ค์ํ์ง ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๋ ๋ณต์กํ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ๋ ผ๋ฆฌ ์์ค์์ ํน๋ณํ ์ค๋ฉ ์ฒด๊ณ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด ํด๋ผ์ด์ธํธ๋ ์ด๋ฌํ ์ค๋์ ์์นํ๋ฉฐ ์์ฒญ์ ๋ถ์ฐ ํ ์ด๋ธ์ด ์๋ ์ค๋์์ ์ง์ ๋ณด๋ผ ์ ์์ต๋๋ค. ๋๋ ์๋นํ ์ต์ ๋ฒ์ ์ ClickHouse๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์ค์ ์ ํ์ฑํํ์ต๋๋ค. ์ฌ์ฉํ์ง ์๋ ์ค๋ ๊ฑด๋๋ฐ๊ธฐ ์ต์ ํ. ์ด ๊ฒฝ์ฐ ์ ํ ์ฟผ๋ฆฌ ์ค์ where ์น์ ์ ํํ์์ด ๋ถ์๋๊ณ ์ค๋ฉ ๋ฐฉ์์ ๋ฐ๋ผ ์ด๋ค ์ค๋๋ฅผ ์ฌ์ฉํด์ผ ํ๋์ง ๊ณ์ฐ๋ฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ๊ฐ ์ด ์ค๋ฉ ๋ฐฉ์์ ๋ฐ๋ผ ์ ํํ๊ฒ ๋ถํ ๋ ๊ฒฝ์ฐ์ ์๋ํฉ๋๋ค. ์๋์ผ๋ก ์ฌ๋ฐฐ์ดํ ๊ฒฝ์ฐ ํด๋น ๋ด์ฉ์ด ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
์ด๊ฒ์ด ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ฐฉ๋ฒ์ด ์ ํฉํ์ง, ์๋๋ฉด ๋ค์์ผ๋ก ๋์ด๊ฐ๋๋ก ํ๊ฒ ๋์ง, ์ฌ๋ฌ๋ถ์ ๋ต๋ณ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค.
Vladimir Kolobaev, Avito์ ์์ ์์คํ ๊ด๋ฆฌ์: Alexey, ๋น์ ์ด ์ธ๊ธํ ๋ฐฉ๋ฒ์ ๋ ์๋ฅผ ํฌํจํ์ฌ ๋ถํ๋ฅผ ๋ถ์ฐ์์ผ์ผ ํ ๋ ์ ์๋ํ์ง ์์ต๋๋ค. ์๋ณ ํํฐ์ ์ ๊ฐ์ ธ์ ์ด์ ๋ฌ์ ๋ค๋ฅธ ๋ ธ๋๋ก ๊ฐ์ ธ์ฌ ์ ์์ง๋ง ์ด ๋ฐ์ดํฐ์ ๋ํ ์์ฒญ์ด ์ค๋ฉด ํด๋น ๋ฐ์ดํฐ๋ง ๋ก๋ํฉ๋๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๋ ์ ์ฒด ํด๋ฌ์คํฐ๋ฅผ ๋ก๋ํ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ํ๋์ ์ ์ฒด ์ฝ๊ธฐ ๋ก๋๊ฐ ๋ ๊ฐ์ ์ค๋์ ์ํด ์ฒ๋ฆฌ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
์๋ ์ธ์ด ๋ฐ๋ก๋น๋ํ: ์ฌ๊ธฐ์ ๋ํ ๋๋ต์ ์ด์ํฉ๋๋ค. ์, ๋์์ง๋ง ์๋ํ ์๋ ์์ต๋๋ค. ๊ทธ ๋ฐฉ๋ฒ์ ๊ตฌ์ฒด์ ์ผ๋ก ์ค๋ช ํ๊ฒ ์ต๋๋ค. ๋ฐ์ดํฐ ์ด๋ฉด์ ๋ก๋ ์๋๋ฆฌ์ค๋ฅผ ์ดํด๋ณด๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ๊ฒฝ์ฐ ์์ฒญ์ ๋๋ถ๋ถ์ด ์ต์ ๋ฐ์ดํฐ์ ๋ํ ๊ฒ์ด๋ผ๊ณ ๊ฑฐ์ ํ์คํ๊ฒ ๋งํ ์ ์์ต๋๋ค.
์ ์๋ฒ๋ฅผ ์ค์นํ๊ณ ๊ธฐ์กด ํํฐ์ ์ ๋ง์ด๊ทธ๋ ์ด์ ํ์ ๋ฟ ์๋๋ผ ์ต์ ๋ฐ์ดํฐ๊ฐ ๊ธฐ๋ก๋๋ ๋ฐฉ์๋ ๋ณ๊ฒฝํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ก์ด ๋ฐ์ดํฐ๊ฐ ํด๋ฌ์คํฐ ์ ์ฒด์ ๋ถ์ฐ๋ฉ๋๋ค. ๋ฐ๋ผ์ ๋จ XNUMX๋ถ ํ์๋ ๋ง์ง๋ง XNUMX๋ถ ๋์์ ์์ฒญ์ด ํด๋ฌ์คํฐ๋ฅผ ๊ท ๋ฑํ๊ฒ ๋ก๋ํ๊ณ , ํ๋ฃจ ํ์ XNUMX์๊ฐ ๋์์ ์์ฒญ์ ํด๋ฌ์คํฐ๋ฅผ ๊ท ๋ฑํ๊ฒ ๋ก๋ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ํ๊น๊ฒ๋ ์ง๋๋ฌ์ ๋ํ ์์ฒญ์ ํด๋ฌ์คํฐ ์๋ฒ์ ์ผ๋ถ๋ก๋ง ์ ๋ฌ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ 2019๋ 2019์์ ๋ํ ์์ฒญ์ด ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์์ฒญ์ด 2019๋ ์ ์์๋๋ฉด XNUMX๋ ์ ์ฒด์ ๋ํ ์์ฒญ์ด ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ์ผ๋ถ ์์ ๋ฒ์๊ฐ ์๋ ์ค๋ ๊ธฐ๊ฐ ๋์ ์ํ๋ฉ๋๋ค. ๋ํ ์ด๋ฌํ ์์ฒญ์ ํด๋ฌ์คํฐ๋ฅผ ๊ท ๋ฑํ๊ฒ ๋ก๋ํ ์๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ผ๋ฐ์ ์ผ๋ก ์ด๊ฒ์ด ๋ฐ์ดํฐ๋ฅผ ์์ ํ ๊ท ๋ฑํ๊ฒ ๋ถ์ฐ์ํค์ง ์๋ ์์ ์๋ฃจ์ ์ด๋ผ๋ ๊ทํ์ ์๊ฒฌ์ ์ ๋์ ์ผ๋ก ์ ํํฉ๋๋ค.
์ง๋ฌธ์ ๋ตํ ๋ช ๊ฐ์ง ์ฌํญ์ด ๋ ์์ต๋๋ค. ๊ทธ ์ค ํ๋๋ ์ฌ์ค๋ฉ์ผ๋ก ์ธํด ๊ณ ํต์ด ๋ํ๋๋ก ์ค๋ฉ ์ฒด๊ณ๋ฅผ ์ด๊ธฐ์ ์ค๊ณํ๋ ๋ฐฉ๋ฒ์ ๊ดํ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด ํญ์ ๊ฐ๋ฅํ ๊ฒ์ ์๋๋๋ค.
์๋ฅผ ๋ค์ด ๋ชจ๋ํฐ๋ง ๋ฐ์ดํฐ๊ฐ ์์ต๋๋ค. ๋ชจ๋ํฐ๋ง ๋ฐ์ดํฐ๋ ์ธ ๊ฐ์ง ์ด์ ๋ก ์ฆ๊ฐํ๊ณ ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ๋ ๊ณผ๊ฑฐ ๋ฐ์ดํฐ์ ์ถ์ ์ด๋ค. ๋ ๋ฒ์งธ๋ ํธ๋ํฝ ์ฆ๊ฐ์ด๋ค. ์ ์งธ, ๋ชจ๋ํฐ๋ง ๋์์ ์ฆ๊ฐ์ด๋ค. ์ ์ฅํด์ผ ํ ์๋ก์ด ๋ง์ดํฌ๋ก์๋น์ค์ ์งํ๊ฐ ์์ต๋๋ค.
์ด ์ค ๊ฐ์ฅ ํฐ ์ฆ๊ฐ๋ ์ธ ๋ฒ์งธ ์ด์ ์ธ ๋ชจ๋ํฐ๋ง ์ฌ์ฉ ์ฆ๊ฐ์ ๊ด๋ จ์ด ์์ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๋ก๋์ ํน์ฑ๊ณผ ์ฃผ์ ์ ํ ์ฟผ๋ฆฌ๊ฐ ๋ฌด์์ธ์ง ์ดํด๋ณผ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๊ธฐ๋ณธ ์ ํ ์ฟผ๋ฆฌ๋ ์ธก์ ํญ๋ชฉ์ ์ผ๋ถ ํ์ ์งํฉ์ ๊ธฐ๋ฐ์ผ๋ก ํ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
์๋ฅผ ๋ค์ด ์ผ๋ถ ์๋น์ค์ ์ํ ์ผ๋ถ ์๋ฒ์ CPU ์ฌ์ฉ๋์ ๋๋ค. ์ด ๋ฐ์ดํฐ๋ฅผ ์ป๋ ๋ฐ ์ฌ์ฉ๋๋ ํน์ ํค ํ์ ์งํฉ์ด ์๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๋ฐ์ดํฐ์ ๋ํ ์์ฒญ ์์ฒด๋ ๋งค์ฐ ๊ฐ๋จํ ๊ฐ๋ฅ์ฑ์ด ๋์ผ๋ฉฐ ์์ญ ๋ฐ๋ฆฌ์ด ๋ด์ ์๋ฃ๋ฉ๋๋ค. ๋ชจ๋ํฐ๋ง ์๋น์ค ๋ฐ ๋์๋ณด๋์ ์ฌ์ฉ๋ฉ๋๋ค. ๋๋ ์ด๊ฒ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋ธ๋ผ๋๋ฏธ๋ฅด ์ฝ๋ก๋ฐ์ํ: ์ฌ์ค ์ฐ๋ฆฌ๋ ํ์ฌ ์ํฉ์ ๊ณผ๊ฑฐ ์ํฉ๊ณผ ์ค์๊ฐ์ผ๋ก ๋น๊ตํ๊ธฐ ๋๋ฌธ์ ๊ณผ๊ฑฐ ๋ฐ์ดํฐ์ ๋งค์ฐ ์์ฃผ ํธ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ์๊ฒ๋ ๋๋์ ๋ฐ์ดํฐ์ ๋น ๋ฅด๊ฒ ์ ๊ทผํ๋ ๊ฒ์ด ์ค์ํ๋ฉฐ ClickHouse๋ ์ด๋ฅผ ํ๋ฅญํ๊ฒ ์ํํฉ๋๋ค.
๋น์ ๋ง์ด ๋ง์ต๋๋ค. ๋ค๋ฅธ ๋ชจ๋ํฐ๋ง ์์คํ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฐ๋ฆฌ๋ ๋ง์ง๋ง ๋ ์ ๋๋ถ๋ถ์ ์ฝ๊ธฐ ์์ฒญ์ ๊ฒฝํํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋์์ ๊ณผ๊ฑฐ ๋ฐ์ดํฐ์ ๋ํ ๋ถํ๋ ์๋นํ ํฝ๋๋ค. ์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก XNUMX์ด๋ง๋ค ๋์๊ฐ๋ฉฐ ClickHouse์ ๋ค์๊ณผ ๊ฐ์ด ๋งํ๋ ๊ฒฝ๊ณ ์์คํ ์์ ๋์จ ๊ฒ์ ๋๋ค. โ์ง๋ XNUMX์ฃผ ๋์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ์ธ์. ์ด์ ๊ทธ๊ฒ๋ค๋ก๋ถํฐ ์ผ์ข ์ ์ด๋ ํ๊ท ์ ๋ง๋ค๊ณ ํ์ฌ ๊ฐ์น๋ฅผ ๊ณผ๊ฑฐ ๊ฐ์น์ ๋น๊ตํด ๋ณด๊ฒ ์ต๋๋ค.โ
๋งค์ฐ ์ต๊ทผ์ ์์ฒญ์ ๋ํด ์ดํ ๋์์ ๋ฐ์ดํฐ๋ง ์ ์ฅํ๊ณ ์ฃผ์ ์์ฒญ์ด ๊ทธ ํ ์ด๋ธ๋ก ์ด๋ํ๋ ๋ ๋ค๋ฅธ ์์ ํ ์ด๋ธ์ด ์๋ค๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค. ๋๊ท๋ชจ ๊ธฐ๋ก ์ฟผ๋ฆฌ๋ ๋๊ท๋ชจ๋ก ๋ถํ ๋ ํ ์ด๋ธ์๋ง ๋ณด๋ ๋๋ค.
์๋ ์ธ์ด ๋ฐ๋ก๋น๋ํ: ๋ถํํ๊ฒ๋ ์ด๋ ๊ทํ์ ์๋๋ฆฌ์ค์ ์ ํฉํ์ง ์์ ๊ฒ์ผ๋ก ๋ฐํ์ก์ต๋๋ค. ์ฌ์ฉํ ํ์๋ ์์ง๋ง ๋ด ์น๊ตฌ์ ์๋น์ค์์ ์ฌ์ฉ๋๋ ๋ ๊ฐ์ง ๋์๊ณ ๋ณต์กํ ์ค๋ฉ ๋ฐฉ์์ ๋ํด ์ค๋ช ํ๊ฒ ์ต๋๋ค.
Yandex.Metrica ์ด๋ฒคํธ๊ฐ ์๋ ๊ธฐ๋ณธ ํด๋ฌ์คํฐ๊ฐ ์์ต๋๋ค. ์ด๋ฒคํธ๋ ํ์ด์ง ์กฐํ, ํด๋ฆญ, ์ ํ์ ๋๋ค. ๋๋ถ๋ถ์ ์์ฒญ์ ํน์ ์น์ฌ์ดํธ๋ก ์ด๋ํฉ๋๋ค. Yandex.Metrica ์๋น์ค๋ฅผ ์ด๊ณ ์น์ฌ์ดํธ(avito.ru)๊ฐ ์๊ณ ๋ณด๊ณ ์๋ก ์ด๋ํ๋ฉด ์น์ฌ์ดํธ์ ๋ํ ์์ฒญ์ด ์ด๋ฃจ์ด์ง๋๋ค.
๊ทธ๋ฌ๋ ๋ด๋ถ ๋ถ์๊ฐ๊ฐ ์ ์ถํ ๋ถ์์ ์์ฒญ๊ณผ ๊ธ๋ก๋ฒ ์์ฒญ๋ ์์ต๋๋ค. ๋ง์ฝ์ ๋๋นํด ๋ด๋ถ ๋ถ์๊ฐ๋ Yandex ์๋น์ค์ ๋ํด์๋ง ์์ฒญํ๋ค๋ ์ ์ ์ฃผ๋ชฉํฉ๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ Yandex ์๋น์ค์กฐ์ฐจ๋ ์ ์ฒด ๋ฐ์ดํฐ์์ ์๋นํ ๋ถ๋ถ์ ์ฐจ์งํฉ๋๋ค. ์ด๋ ํน์ ์นด์ดํฐ์ ๋ํ ์์ฒญ์ด ์๋๋ผ ๋ ๊ด๋ฒ์ํ ํํฐ๋ง์ ๋ํ ์์ฒญ์ ๋๋ค.
ํ๋์ ์นด์ดํฐ์ ๊ธ๋ก๋ฒ ์ฟผ๋ฆฌ์ ๋ํด ๋ชจ๋ ๊ฒ์ด ํจ์จ์ ์ผ๋ก ์๋ํ๋๋ก ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ๋ ๋ค๋ฅธ ์ด๋ ค์์ Metrics ํด๋ฌ์คํฐ์ ๋ํ ClickHouse์ ์์ฒญ ์๊ฐ ์ด๋น ์์ฒ ๊ฑด์ด๋ผ๋ ๊ฒ์ ๋๋ค. ๋์์ ํ๋์ ClickHouse ์๋ฒ๋ ์๋ฅผ ๋ค์ด ์ด๋น ์์ฒ ๊ฑด์ ์ค์ํ์ง ์์ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
ํด๋ฌ์คํฐ ํฌ๊ธฐ๋ XNUMX๋ ์ ๋์ ์๋ฒ์ ๋๋ค. ๋จ์ํ ์ด ํด๋ฌ์คํฐ๋ฅผ ํตํด ๋ถ์ฐ ํ ์ด๋ธ์ ๊ฐ์ ธ์ ์์ฒ ๊ฐ์ ์์ฒญ์ ๋ณด๋ด๋ฉด ํ๋์ ์๋ฒ๋ก ๋ณด๋ด๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ๋๋น ์ง ๊ฒ์ ๋๋ค. ๋ฐ๋ฉด์ ๋ฐ์ดํฐ๊ฐ ๊ท ๋ฑํ๊ฒ ๋ถ์ฐ๋์ด ๋ชจ๋ ์๋ฒ์ ์์ฒญํ๋ ์ต์ ์ ์ฆ์ ํด์ ๋ฉ๋๋ค.
์ ๋ฐ๋์ ์ต์ ์ด ์์ต๋๋ค. ์ฌ๋ฌ ์ฌ์ดํธ์ ๊ฑธ์ณ ๋ฐ์ดํฐ๋ฅผ ์ค๋ฉํ๊ณ ํ ์ฌ์ดํธ์ ๋ํ ์์ฒญ์ด ํ๋์ ์ค๋๋ก ์ด๋ํ๋ค๊ณ ์์ํด ๋ณด์ธ์. ์ด์ ํด๋ฌ์คํฐ๋ ์ด๋น XNUMX๊ฐ์ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์์ง๋ง ํ๋์ ์ค๋์์๋ ์์ฒญ ํ๋๊ฐ ๋๋ฌด ๋๋ฆฌ๊ฒ ์๋ํฉ๋๋ค. ๋ ์ด์ ์ฒ๋ฆฌ๋ ์ธก๋ฉด์์ ํ์ฅ๋์ง ์์ต๋๋ค. ํนํ ์ด๊ฒ์ด avito.ru ์ฌ์ดํธ์ธ ๊ฒฝ์ฐ. Avito๊ฐ RuNet์์ ๊ฐ์ฅ ๋ง์ด ๋ฐฉ๋ฌธํ ์ฌ์ดํธ ์ค ํ๋๋ผ๊ณ ๋งํ๋ฉด ๋น๋ฐ์ ๋ฐํ์ง ์๊ฒ ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ํ๋์ ์ค๋์์ ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋ฏธ์น ์ผ์ด ๋ ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ ์ค๋ฉ ๋ฐฉ์์ ๋์ฑ ๊ตํํ ๋ฐฉ์์ผ๋ก ์ค๊ณ๋์์ต๋๋ค. ์ ์ฒด ํด๋ฌ์คํฐ๋ ๋ ์ด์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ์ฌ๋ฌ ํด๋ฌ์คํฐ๋ก ๋๋ฉ๋๋ค. ๊ฐ ํด๋ฌ์คํฐ์๋ XNUMX๊ฐ์์ ์์ญ ๊ฐ์ ์ค๋๊ฐ ํฌํจ๋ฉ๋๋ค. ๊ทธ๋ฌํ ํด๋ฌ์คํฐ๋ ์ด XNUMX๊ฐ๊ฐ ์์ต๋๋ค.
์ด ๋ชจ๋ ๊ฒ์ด ์ด๋ป๊ฒ ํ์ฅ๋ฉ๋๊น? ํด๋ฌ์คํฐ ์๋ ๋ณํ์ง ์์ต๋๋ค. ๋ช ๋ ์ XNUMX๊ฐ์๋ ๊ฒ์ฒ๋ผ ๊ทธ๋๋ก ์ ์ง๋ฉ๋๋ค. ํ์ง๋ง ๊ฐ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ ํ๋ฉด์ ์ค๋์ ์๋ฅผ ์ ์ฐจ ๋๋ ค๊ฐ๋๋ค. ์ค๋ฉ ์ฒด๊ณ ์ ์ฒด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ด๋ฌํ ํด๋ฌ์คํฐ๋ ์น์ฌ์ดํธ๋ก ๋๋์ด์ง๋ฉฐ, ์ด๋ค ์น์ฌ์ดํธ๊ฐ ์ด๋ค ํด๋ฌ์คํฐ์ ์๋์ง ์ดํดํ๊ธฐ ์ํด MySQL์ ๋ณ๋ ๋ฉํ๋ฒ ์ด์ค๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ํ๋์ ์ฌ์ดํธ - ํ๋์ ํด๋ฌ์คํฐ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ด๋ถ์์๋ ๋ฐฉ๋ฌธ์ ID์ ๋ฐ๋ผ ์ค๋ฉ์ด ๋ฐ์ํฉ๋๋ค.
๋ นํ์ ๋ฐฉ๋ฌธ์ID๋ฅผ ๋๋ ๋๋จธ์ง ๋ถ๋ถ์ผ๋ก ๋๋์ด ๊ธฐ๋กํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ ์ค๋๋ฅผ ์ถ๊ฐํ๋ฉด ์ค๋ฉ ์ฒด๊ณ๊ฐ ๋ณ๊ฒฝ๋์ด ๊ณ์ ๋ถํ ๋์ง๋ง ๋๋จธ์ง ๋ถ๋ถ์ ๋ค๋ฅธ ์ซ์๋ก ๋ถํ ๋ฉ๋๋ค. ์ด๋ ํ ๋ช ์ ๋ฐฉ๋ฌธ์๊ฐ ์ด๋ฏธ ์ฌ๋ฌ ์๋ฒ์ ์์นํ๋ฏ๋ก ์ด์ ์์กดํ ์ ์์์ ์๋ฏธํฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ๋ฅผ ๋ ์ ์์ถํ๊ธฐ ์ํด์๋ง ์ํ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ฒญ์ ํ ๋ ํด๋ฌ์คํฐ๋ฅผ ์ดํด๋ณด๊ณ ์์ญ ๊ฐ์ ์๋ฒ์ ์ก์ธ์คํ๋ ๋ถ์ฐ ํ ์ด๋ธ๋ก ์ด๋ํฉ๋๋ค. ์ ๋ง ์ด๋ฆฌ์์ ๊ณํ์ด๋ค์.
ํ์ง๋ง ์ฐ๋ฆฌ๊ฐ ์ด ๊ณํ์ ํฌ๊ธฐํ๋ค๊ณ ๋งํ์ง ์์ผ๋ฉด ๋ด ์ด์ผ๊ธฐ๋ ๋ถ์์ ํ ๊ฒ์ ๋๋ค. ์๋ก์ด ๊ตฌ์ฑํ์์๋ clickhouse-copier๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ๊ฒ์ ๋ณ๊ฒฝํ๊ณ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํ์ต๋๋ค.
์๋ก์ด ๊ณํ์์๋ ๋ชจ๋ ์ฌ์ดํธ๊ฐ ํฌ๊ณ ์์ ๋ ๊ฐ์ง ๋ฒ์ฃผ๋ก ๋๋ฉ๋๋ค. ์๊ณ๊ฐ์ด ์ด๋ป๊ฒ ์ ํ๋์๋์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ๊ฒฐ๊ณผ์ ์ผ๋ก ๋๊ท๋ชจ ์ฌ์ดํธ๊ฐ ํ๋์ ํด๋ฌ์คํฐ์ ๊ธฐ๋ก๋์์ผ๋ฉฐ, ์ฌ๊ธฐ์๋ ๊ฐ๊ฐ 120๊ฐ์ ๋ณต์ ๋ณธ์ด ์๋ 360๊ฐ์ ์ค๋, ์ฆ 120๊ฐ์ ์๋ฒ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ค๋ฉ ๋ฐฉ์์ ๋ชจ๋ ์์ฒญ์ด ํ ๋ฒ์ ๋ชจ๋ ์ค๋๋ก ์ ๋ฌ๋๋ ๋ฐฉ์์ ๋๋ค. ์ด์ Yandex.Metrica์์ avito.ru์ ๋ํ ๋ณด๊ณ ์ ํ์ด์ง๋ฅผ ์ด๋ฉด ์์ฒญ์ด 120๊ฐ์ ์๋ฒ๋ก ์ด๋ํฉ๋๋ค. RuNet์๋ ๋๊ท๋ชจ ์ฌ์ดํธ๊ฐ ๊ฑฐ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ฒญ์ ์ด๋น XNUMX๊ฐ๊ฐ ์๋๋ผ XNUMX๊ฐ ๋ฏธ๋ง์ ๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ ๊ฐ๊ฐ XNUMX๊ฐ์ ์๋ฒ๋ก ์ฒ๋ฆฌ๋๋ ๋ถ์ฐ ํ ์ด๋ธ์ ์ํด ์กฐ์ฉํ ์ฒ๋ฆฌ๋ฉ๋๋ค.
๋ ๋ฒ์งธ ํด๋ฌ์คํฐ๋ ์๊ท๋ชจ ์ฌ์ดํธ์ฉ์ ๋๋ค. ๋ค์์ ์ฌ์ดํธ ID๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์ค๋ฉ ๋ฐฉ์์ด๋ฉฐ, ๊ฐ ์์ฒญ์ ์ ํํ ํ๋์ ์ค๋๋ก ์ด๋ํฉ๋๋ค.
ClickHouse์๋ ํด๋ฆญํ์ฐ์ค ๋ณต์ฌ๊ธฐ ์ ํธ๋ฆฌํฐ๊ฐ ์์ต๋๋ค. ๊ทธ๋
์ ๋ํด ๋งํด ์ค ์ ์๋์?
์ด ์๋ฃจ์ ์ ๋ ๋ฒ๊ฑฐ๋กญ๊ณ ์์ฐ์ฑ๋ ๋ค์ ๋จ์ด์ง๋ค๊ณ ๋ฐ๋ก ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค. ์ฅ์ ์ ์ง์ ํ ํจํด์ ๋ฐ๋ผ ๋ฐ์ดํฐ๊ฐ ์์ ํ ๋ฒ์ง๋ค๋ ๊ฒ์ ๋๋ค. ํ์ง๋ง ์ด ์ ํธ๋ฆฌํฐ์ ๋จ์ ์ ์ ํ ์ฌ์ค๋ฉ๋์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ํ ํด๋ฌ์คํฐ ์คํค๋ง์์ ๋ค๋ฅธ ํด๋ฌ์คํฐ ์คํค๋ง๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํฉ๋๋ค.
์ฆ, ์๋ํ๋ ค๋ฉด ๋ ๊ฐ์ ํด๋ฌ์คํฐ๊ฐ ์์ด์ผ ํฉ๋๋ค. ๋์ผํ ์๋ฒ์ ์์ ์ ์์ง๋ง ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ๋ฐ์ดํฐ๋ ์ฆ๋ถ ์ด๋๋์ง ์๊ณ ๋ณต์ฌ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด ์๋ฒ๊ฐ XNUMX๊ฐ ์์๋๋ฐ ์ง๊ธ์ XNUMX๊ฐ๊ฐ ๋์์ต๋๋ค. ๋ชจ๋ ์๋ฒ์ ์ ๋ถ์ฐ ํ ์ด๋ธ, ์ ๋ก์ปฌ ํ ์ด๋ธ์ ๋ง๋ค๊ณ clickhouse-copier๋ฅผ ์คํํ์ฌ ๊ฑฐ๊ธฐ์์ ์ฝ์ด์ผ ํ๋ ์์ ์ฒด๊ณ๋ฅผ ํ์ํ๊ณ ์ ์ค๋ฉ ์ฒด๊ณ๋ฅผ ์๋ฝํ๊ณ ๊ทธ๊ณณ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ค๋๋ ์๋ฒ์๋ ํ์ฌ๋ณด๋ค XNUMX๋ฐฐ ๋ ๋ง์ ๊ณต๊ฐ์ด ํ์ํฉ๋๋ค. ์๋ํ๋ฉด ์ค๋๋ ๋ฐ์ดํฐ๊ฐ ์๋ฒ์ ๋จ์ ์์ด์ผ ํ๊ณ ๋์ผํ ์ค๋๋ ๋ฐ์ดํฐ์ ์ ๋ฐ์ด ์๋ฒ ์์ ๋์ฐฉํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ค์ ์ค๋ฉํด์ผ ํ๊ณ ๊ณต๊ฐ์ด ์๋ค๊ณ ๋ฏธ๋ฆฌ ์๊ฐํ๋ค๋ฉด ์ด ๋ฐฉ๋ฒ์ด ์ ํฉํฉ๋๋ค.
clickhouse-copier๋ ๋ด๋ถ์์ ์ด๋ป๊ฒ ์๋ํฉ๋๊น? ํ๋์ ์ค๋์์ ํ๋์ ํ ์ด๋ธ์ ํ๋์ ํํฐ์ ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋ชจ๋ ์์ ์ ์ผ๋ จ์ ์์ ์ผ๋ก ๋๋๋๋ค. ์ด๋ฌํ ๋ชจ๋ ์์ ์ ๋ณ๋ ฌ๋ก ์คํ๋ ์ ์์ผ๋ฉฐ clickhouse-copier๋ ์ฌ๋ฌ ์ธ์คํด์ค์ ๋ค๋ฅธ ์์คํ ์์ ์คํ๋ ์ ์์ง๋ง ํ๋์ ํํฐ์ ์ ๋ํด ์ํ๋๋ ์์ ์ ์ฝ์ ์ ํ์ ์ง๋์ง ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ , ์์ถ์ ํ๊ณ , ๋ค์ ํํฐ์ ์ ๋๋ ๋ค์ ๋ค์ ์์ถํ๊ณ , ์ด๋๊ฐ์ ์ฐ๊ณ , ๋ค์ ์ ๋ ฌํฉ๋๋ค. ์ด๊ฒ์ ๋ ์ด๋ ค์ด ๊ฒฐ์ ์ ๋๋ค.
๋ฆฌ์ค๋ฉ์ด๋ผ๋ ํ์ผ๋ฟ ์์
์ด ์์์ต๋๋ค. ๊ทธ๋
๋ ์ด์ฉ๊ณ ?
2017๋ ์๋ ๋ฆฌ์ค๋ฉ์ด๋ผ๋ ํ์ผ๋ฟ ์์ ์ด ์์์ต๋๋ค. ClickHouse์๋ ์ต์ ๋ ์์ต๋๋ค. ๋ด๊ฐ ์ดํดํ๋ ํ, ๊ทธ๊ฒ์ ์ด๋ฅํ์ง ์์์ต๋๋ค. ์ ์ด๋ฐ ์ผ์ด ์ผ์ด๋ฌ๋์ง ๋งํด์ค ์ ์๋์? ๋งค์ฐ ๊ด๋ จ์ฑ์ด ๋์ ๊ฒ ๊ฐ์ต๋๋ค.
์ ์ฒด์ ์ธ ๋ฌธ์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์๋ฆฌ์ ๋ค์ ์ค๋ฉํด์ผ ํ๋ ๊ฒฝ์ฐ ์ด๋ฅผ ์์์ ์ผ๋ก ์ํํ๋ ค๋ฉด ๋งค์ฐ ๋ณต์กํ ๋๊ธฐํ๊ฐ ํ์ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ด ๋๊ธฐํ๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํด๋ณด๊ธฐ ์์ํ์ ๋ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ๊ฐ ์๋ค๋ ๊ฒ์ด ๋ถ๋ช ํด์ก์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ๋ ์ด๋ก ์ ์ผ ๋ฟ๋ง ์๋๋ผ ๋งค์ฐ ๊ฐ๋จํ๊ฒ ์ค๋ช ํ ์ ์๋ ํํ๋ก ์ค์ ๋ก ์ค์ ๋ก ๋ํ๋๊ธฐ ์์ํ์ต๋๋ค. ์๋ฌด๊ฒ๋ ์๋ํ์ง ์์ต๋๋ค.
๋๋ฆฐ ๋์คํฌ๋ก ์ด๋ํ๊ธฐ ์ ์ ๋ชจ๋ ๋ฐ์ดํฐ ์กฐ๊ฐ์ ๋ณํฉํ ์ ์์ต๋๊น?
๋ณํฉ์ ๋งฅ๋ฝ์์ ๋๋ฆฐ ๋์คํฌ๋ก ์ด๋ ์ต์ ์ด โโํฌํจ๋ TTL์ ๋ํ ์ง๋ฌธ์ ๋๋ค. cron์ ํตํ์ง ์๊ณ ๋ชจ๋ ๋ถ๋ถ์ ๋๋ฆฐ ๋์คํฌ๋ก ์ด๋ํ๊ธฐ ์ ์ ํ๋๋ก ๋ณํฉํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
์ง๋ฌธ์ ๋ํ ๋๋ต์ ๋ชจ๋ ์กฐ๊ฐ์ ์ ์กํ๊ธฐ ์ ์ ์๋์ผ๋ก ํ๋๋ก ๋ถ์ด๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ๋๋ค. ๋๋ ์ด๊ฒ์ด ํ์ํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๋ชจ๋ ๋ถ๋ถ์ ํ๋๋ก ๋ณํฉํ ํ์๋ ์์ง๋ง ์๋์ผ๋ก ๋๋ฆฐ ๋์คํฌ๋ก ์ ์ก๋๋ค๋ ์ ๋ง ๊ณ ๋ คํ๋ฉด ๋ฉ๋๋ค.
์ ์ก ๊ท์น์๋ ๋ ๊ฐ์ง ๊ธฐ์ค์ด ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ๋ ์ฑ์์ง ๊ทธ๋๋ก์ ๋๋ค. ํ์ฌ ์คํ ๋ฆฌ์ง ๊ณ์ธต์ ์ฌ์ ๊ณต๊ฐ์ด ์ผ์ ๋น์จ ๋ฏธ๋ง์ธ ๊ฒฝ์ฐ ํ๋์ ์ฒญํฌ๋ฅผ ์ ํํ์ฌ ๋ ๋๋ฆฐ ์คํ ๋ฆฌ์ง๋ก ์ด๋ํฉ๋๋ค. ๋๋ ์คํ๋ ค ๋๋ฆฌ์ง ์๊ณ ๋ค์ ์๋๋ก ๊ตฌ์ฑํฉ๋๋ค.
๋ ๋ฒ์งธ ๊ธฐ์ค์ ํฌ๊ธฐ์ ๋๋ค. ํฐ ์กฐ๊ฐ์ ์ฎ๊ธฐ๋ ๊ฒ์ ๋๋ค. ๋น ๋ฅธ ๋์คํฌ์ ์ฌ์ ๊ณต๊ฐ์ ๋ฐ๋ผ ์๊ณ๊ฐ์ ์กฐ์ ํ ์ ์์ผ๋ฉฐ ๋ฐ์ดํฐ๊ฐ ์๋์ผ๋ก ์ ์ก๋ฉ๋๋ค.
ํธํ์ฑ์ ๋ฏธ๋ฆฌ ํ์ธํ ์ ์๋ ๊ฒฝ์ฐ ClickHouse์ ์ ๋ฒ์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์
๋๊น?
์ด ์ฃผ์ ๋ ์ ๊ธฐ์ ์ผ๋ก ๋ ผ์๋ฉ๋๋ค.
ClickHouse ํ ๋ ๊ทธ๋จ ์ฑํ ์์ ๋ค๋ฅธ ๋ฒ์ ์ ๊ณ ๋ คํ๋๋ผ๋ ์ฌ์ ํ ๊ทธ๋ ์ต๋๋ค. ๋ฒ์ 19.11์์ 19.16์ผ๋ก, ์๋ฅผ ๋ค์ด 19.16์์ 20.3์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ๋ ๊ฒ์ด ์ผ๋ง๋ ์์ ํฉ๋๊น? ์๋๋ฐ์ค์์ ๋ฏธ๋ฆฌ ํธํ์ฑ์ ํ์ธํ ์ ์๋ ์ํ์์ ์ ๋ฒ์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
์ฌ๊ธฐ์๋ ๋ช ๊ฐ์ง "ํฉ๊ธ"๊ท์น์ด ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ -
๋์งธ, ์๋๋ฐ์ค์์ ํธํ์ฑ์ ํ์ธํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๊ณ ํ๋ก๋์ ์์ ์ฆ์ ์ ๋ฐ์ดํธํ๋ ค๋ ๊ฒฝ์ฐ์๋ ์ด ์์ ์ ์ํํ ํ์๊ฐ ์๋ค๋ ๊ฒ์ด ๊ถ์ฅ๋ฉ๋๋ค. ๋จผ์ ์๋๋ฐ์ค๋ฅผ ๋ง๋ค๊ณ ํ ์คํธํด ๋ณด์ธ์. ํ ์คํธ ํ๊ฒฝ์ด ์๋ค๋ฉด ๋๊ท๋ชจ ํ์ฌ๊ฐ ์๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ์ฆ, ์ผ๋ถ ๋ฐ์ดํฐ๋ฅผ ๋ ธํธ๋ถ์ ๋ณต์ฌํ์ฌ ๋ชจ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋์ง ํ์ธํ ์ ์๋ค๋ ์๋ฏธ์ ๋๋ค. ๋จธ์ ์์ ๋ก์ปฌ๋ก ์ฌ๋ฌ ๋ณต์ ๋ณธ์ ์์ฑํ ์๋ ์์ต๋๋ค. ๋๋ ๊ทผ์ฒ ์ด๋๊ฐ์์ ์ ๋ฒ์ ์ ์ ํํ๊ณ ๊ฑฐ๊ธฐ์ ์ผ๋ถ ๋ฐ์ดํฐ๋ฅผ ์ ๋ก๋ํ ์ ์์ต๋๋ค. ์ฆ, ์ฆ์์์ ํ ์คํธ ํ๊ฒฝ์ ๋ง๋ค ์ ์์ต๋๋ค.
๋ ๋ค๋ฅธ ๊ท์น์ ํ๋ก๋์ ์์ ๋ฒ๊ทธ๋ฅผ ์ก์๋ด๊ณ ๊ทธ์ ๋ฐ๋ฅธ ๋น ๋ฅธ ์์ ์ ์ํด ๋ฒ์ ์ถ์ ํ ์ผ์ฃผ์ผ ๋์ ์ ๋ฐ์ดํธํ์ง ์๋ ๊ฒ์ ๋๋ค. ํผ๋ํ์ง ์๋๋ก ClickHouse ๋ฒ์ ์ ๋ฒํธ ๋งค๊ธฐ๊ธฐ๋ฅผ ์์ ๋ณด๊ฒ ์ต๋๋ค.
๋ฒ์ 20.3.4๊ฐ ์์ต๋๋ค. ์ซ์ 20์ ์ ์กฐ ์ฐ๋ ์ธ 2020์ ๋ํ๋ ๋๋ค. ๋ด๋ถ ๋ด์ฉ์ ๊ด์ ์์ ๋ณผ ๋ ์ด๋ ์ค์ํ์ง ์์ผ๋ฏ๋ก์ฃผ์๋ฅผ ๊ธฐ์ธ์ด์ง ์๊ฒ ์ต๋๋ค. ๋ค์ - 20.3. ์ฐ๋ฆฌ๋ ๋ช ๊ฐ์ง ์๋ก์ด ๊ธฐ๋ฅ์ด ํฌํจ๋ ๋ฆด๋ฆฌ์ค๋ฅผ ์ถ์ํ ๋๋ง๋ค ๋ ๋ฒ์งธ ์ซ์(์ด ๊ฒฝ์ฐ 3)๋ฅผ ๋๋ฆฝ๋๋ค. ClickHouse์ ์ผ๋ถ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ค๋ฉด ์ด ์ซ์๋ฅผ ๋๋ ค์ผ ํฉ๋๋ค. ์ฆ, ๋ฒ์ 20.4์์๋ ClickHouse๊ฐ ๋์ฑ ์ ์๋ํฉ๋๋ค. ์ธ ๋ฒ์งธ ์ซ์๋ 20.3.4์ ๋๋ค. ์ฌ๊ธฐ 4๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ง ์์์ง๋ง ์ผ๋ถ ๋ฒ๊ทธ๋ฅผ ์์ ํ ํจ์น ๋ฆด๋ฆฌ์ค์ ์์ ๋๋ค. 4๋ XNUMX๋ฒ์ ํ๋ค๋ ์๋ฏธ์ ๋๋ค.
์ด๊ฒ์ด ๋์ฐํ ์ผ์ด๋ผ๊ณ ์๊ฐํ์ง ๋ง์ญ์์ค. ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ์๋ ์ต์ ๋ฒ์ ์ ์ค์นํ ์ ์์ผ๋ฉฐ ์ฐ๊ฐ ๊ฐ๋ ์๊ฐ์ ๋ฌธ์ ์์ด ์๋ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ค๊ตญ ๋์ง๋ค์ด ์ถ๊ฐํ ๋นํธ๋งต ์ฒ๋ฆฌ ๊ธฐ๋ฅ ์ค ์ผ๋ถ ๊ธฐ๋ฅ์์ ์๋ชป๋ ์ธ์๋ฅผ ์ ๋ฌํ๋ฉด ์๋ฒ๊ฐ ์ถฉ๋ํ๋ค๊ณ ์์ํด ๋ณด์ธ์. ์ฐ๋ฆฌ๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ฑ ์์ด ์์ต๋๋ค. ์๋ก์ด ํจ์น ๋ฒ์ ์ ์ถ์ํ ์์ ์ด๋ฉฐ ํด๋ฆญํ์ฐ์ค๋ ๋์ฑ ์์ ํ๋ ์์ ์ ๋๋ค.
ClickHouse๋ฅผ ํ๋ก๋์ ํ๊ฒฝ์์ ์คํ ์ค์ด๊ณ ClickHouse์ ์ ๋ฒ์ ์ด ์ถ๊ฐ ๊ธฐ๋ฅ๊ณผ ํจ๊ป ์ถ์๋๋ ๊ฒฝ์ฐ(์: 20.4.1์ด ์ฒซ ๋ฒ์งธ ๋ฒ์ ์ธ ๊ฒฝ์ฐ) ์ฒซ๋ ๋ถํฐ ์๋๋ฌ ํ๋ก๋์ ์ ํฌ์ ํ์ง ๋ง์ธ์. ์ ํ์ํ๊ฐ์? ClickHouse๋ฅผ ์์ง ์ฌ์ฉํ์ง ์์๋ค๋ฉด ์ค์นํ ์ ์์ผ๋ฉฐ ๋๋ถ๋ถ ๋ชจ๋ ๊ฒ์ด ์ ๋ ๊ฒ์ ๋๋ค. ํ์ง๋ง ClickHouse๊ฐ ์ด๋ฏธ ์์ ์ ์ผ๋ก ์๋ํ๊ณ ์๋ค๋ฉด ํจ์น์ ์ ๋ฐ์ดํธ๋ฅผ ๊ณ์ ์ฃผ์ํ์ฌ ์ด๋ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์๋์ง ํ์ธํ์ธ์.
ํค๋ฆด ์๋ฐ์ฝํ: ํ ์คํธ ํ๊ฒฝ์ ๋ํด ์กฐ๊ธ ์ถ๊ฐํ๊ณ ์ถ์ต๋๋ค. ๋ชจ๋ ์ฌ๋์ ํ ์คํธ ํ๊ฒฝ์ ๋งค์ฐ ๋๋ ค์ํ๋ฉฐ ์ด๋ค ์ด์ ๋ก ClickHouse ํด๋ฌ์คํฐ๊ฐ ๋งค์ฐ ํฐ ๊ฒฝ์ฐ ํ ์คํธ ํ๊ฒฝ์ด ๊ทธ๋ณด๋ค ์๊ฑฐ๋ ์ต์ํ XNUMX๋ฐฐ๋ ์์์ผ ํ๋ค๊ณ ๋ฏฟ์ต๋๋ค. ์ ํ ๊ทธ๋ ์ง ์์ต๋๋ค.
๋๋ ๋ด ์์ ์ ์๋ฅผ ํตํด ๋น์ ์๊ฒ ๋งํ ์ ์์ต๋๋ค. ํ๋ก์ ํธ๊ฐ ์๊ณ ClickHouse๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ์ ํ ์คํธ ํ๊ฒฝ์ ๊ทธ๋ฅผ ์ํ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ ์ ๋์ ์ผ๋ก ๋ชจ๋ ๊ฒ์ด ๋ฐฐํฌ๋๋ XNUMX์ ๋ก์ Hetzner์ ์๋ ์์ ๊ฐ์ ๋จธ์ ์ ๋๋ค. ์ด๋ฅผ ์ํด Ansible์์ ์์ ์๋ํ๋ฅผ ์ํํ๋ฏ๋ก ์์น์ ์ผ๋ก ํ๋์จ์ด ์๋ฒ๋ก ์ด๋ํ๊ฑฐ๋ ๊ฐ์ ๋จธ์ ์ ๋ฐฐํฌํ๋ ๋ฑ ์ด๋๋ก ์ด๋ํ๋ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
๋ฌด์์ ํ ์ ์๋์? ์ง์ ์๊ท๋ชจ ํด๋ฌ์คํฐ๋ฅผ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์๋ฅผ ClickHouse ๋ฌธ์์ ์ ๊ณตํ๋ ๊ฒ์ด ์ข์ ๊ฒ์ ๋๋ค. Docker, LXC์์ ์๋ง๋ Ansible ํ๋ ์ด๋ถ์ ์์ฑํ ์ ์์ต๋๋ค. ์๋ํ๋ฉด ์ฌ๋๋ง๋ค ๋ฐฐํฌ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ง์ด ๋จ์ํ๋ ๊ฒ์ ๋๋ค. XNUMX๋ถ ์์ ํด๋ฌ์คํฐ๋ฅผ ๊ฐ์ ธ์ ๋ฐฐํฌํ๋ฉด ๋ญ๊ฐ๋ฅผ ์์๋ด๊ธฐ๊ฐ ํจ์ฌ ์ฌ์์ง๋๋ค. ํ ์คํธํ์ง ์์ ํ๋ก๋์ ๋ฒ์ ์ผ๋ก ์ ํํ๋ ๊ฒ์ ์๋ฌด๋ฐ๋ ๊ฐ์ง ์๊ธฐ ๋๋ฌธ์ ํจ์ฌ ๋ ํธ๋ฆฌํฉ๋๋ค. ๋๋ก๋ ์๋ํ๊ณ ๋๋ก๋ ์๋ํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ฑ๊ณต์ ๋ฐ๋ผ๋ ๊ฒ์ ๋์๋ค.
Maxim Kotyakov, ์ ์ ๋ฐฑ์๋ ์์ง๋์ด Avito: ๋๊ธฐ์ ์ด ์ง๋ฉดํ ์ผ๋ จ์ ๋ฌธ์ ์ค์์ ํ ์คํธ ํ๊ฒฝ์ ๋ํด ์กฐ๊ธ ์ถ๊ฐํ๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ณธ๊ฒฉ์ ์ธ ClickHouse ์์ฉ ํด๋ฌ์คํฐ๋ฅผ ๋ณด์ ํ๊ณ ์์ผ๋ฉฐ, ๋ฐ์ดํฐ ์ฒด๊ณ ๋ฐ ์ค์ ์ธก๋ฉด์์ ์ด๋ ์์ฐ ์ค์ธ ๊ฒ๊ณผ ์ ํํ ๋์ผํ ๋ณต์ฌ๋ณธ์ ๋๋ค. ์ด ํด๋ฌ์คํฐ๋ ์ต์ํ์ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ์ฌ ์๋นํ ๋ก์ ์ปจํ ์ด๋์ ๋ฐฐํฌ๋ฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ ํ๋ก๋์ ๋ฐ์ดํฐ์ ์ผ์ ๋น์จ์ ๊ธฐ๋กํฉ๋๋ค. ๋คํํ Kafka์์ ์คํธ๋ฆผ์ ๋ณต์ ํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค. ์ฉ๋๊ณผ ํ๋ฆ ์ธก๋ฉด์์ ๋ชจ๋ ๊ฒ์ด ๋๊ธฐํ๋๊ณ ํ์ฅ๋๋ฉฐ ์ด๋ก ์ ์ผ๋ก ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ด ๋์ผํ๋ค๋ฉด ์ธก์ ํญ๋ชฉ ์ธก๋ฉด์์ ์์ฐ์ฒ๋ผ ์๋ํด์ผ ํฉ๋๋ค. ํญ๋ฐ ๊ฐ๋ฅ์ฑ์ด ์๋ ๋ชจ๋ ๋ฌผ์ง์ ๋จผ์ ์ด ์คํ ๋์ ๊ตด๋ ค ์ค๋น๋ ๋๊น์ง ๋ฉฐ์น ๋์ ๋ฐฉ์น๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋น์ฐํ ์ด ์๋ฃจ์ ์ ๋น์ฉ์ด ๋ง์ด ๋ค๊ณ ์ด๋ ต๊ณ ์ง์ ๋น์ฉ์ด XNUMX์ด ์๋๋๋ค.
์๋ ์ธ์ด ๋ฐ๋ก๋น๋ํ: Yandex.Metrica ์น๊ตฌ๋ค์ ํ ์คํธ ํ๊ฒฝ์ด ์ด๋ค์ง ์๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค. ํ ํด๋ฌ์คํฐ์๋ 600์ฌ ๊ฐ์ ์๋ฒ๊ฐ ์๊ณ , ๋ค๋ฅธ ํด๋ฌ์คํฐ์๋ 360๊ฐ๊ฐ ์์ผ๋ฉฐ, ์ธ ๋ฒ์งธ ํด๋ฌ์คํฐ์ ์ฌ๋ฌ ํด๋ฌ์คํฐ๊ฐ ์์ต๋๋ค. ๊ทธ ์ค ํ๋์ ๋ํ ํ ์คํธ ํ๊ฒฝ์ ๊ฐ๊ฐ XNUMX๊ฐ์ ๋ณต์ ๋ณธ์ด ์๋ XNUMX๊ฐ์ ์ค๋์ ๋๋ค. ์ ์ค๋๊ฐ ๋ ๊ฐ์ธ๊ฐ์? ๊ทธ๋์ ๋น์ ์ ํผ์๊ฐ ์๋๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ณต์ ๋ณธ๋ ์์ด์ผ ํฉ๋๋ค. ๊ฐ๋นํ ์ ์๋ ์ต์ํ์ ๊ธ์ก๋ง ์์ผ๋ฉด ๋ฉ๋๋ค.
์ด ํ ์คํธ ํ๊ฒฝ์ ์ฌ์ฉํ๋ฉด ์ฟผ๋ฆฌ๊ฐ ์๋ํ๋์ง, ์ฃผ์ ๋ด์ฉ์ด ์์๋์๋์ง ํ์ธํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ๊ฒ์ด ์๋ํ์ง๋ง ๋ถํ์ ์ฝ๊ฐ์ ๋ณํ๊ฐ ์์ ๋ ์์ ํ ๋ค๋ฅธ ์ฑ๊ฒฉ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ๋ ClickHouse์ ์ ๋ฒ์ ์ ์ค์นํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ํ ์คํธ ํ๊ฒฝ์ ๊ฒ์๋์์ผ๋ฉฐ Yandex.Metrica ์์ฒด์์ ์๋ํ๋ ํ ์คํธ๊ฐ ์๋ฃ๋์ด ์ ์ฒด ํ์ดํ๋ผ์ธ์ ์คํํ๋ฉด์ ์ด์ ๋ฒ์ ๊ณผ ์ ๋ฒ์ ์ ๋ฐ์ดํฐ๋ฅผ ๋น๊ตํฉ๋๋ค. ๋ฌผ๋ก CI์ ๋ํ ์นํ๊ฒฝ ํ ์คํธ๋ ์งํ๋ฉ๋๋ค. ๊ทธ๋ ์ง ์์๋ค๋ฉด ์ฐ๋ฆฌ๋ ์ด ๋ฒ์ ์ ์ ์ํ์ง๋ ์์์ ๊ฒ์ ๋๋ค.
๋ชจ๋ ๊ฒ์ด ๊ด์ฐฎ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์์ฐ์ ๋ค์ด๊ฐ๊ธฐ ์์ํ์ต๋๋ค. ๊ทธ๋ํ์ ๋ก๋๊ฐ ์ฌ๋ฌ ๋ฒ ์ฆ๊ฐํ๋ค๋ ๋ฉ์์ง๋ฅผ ๋ฐ์์ต๋๋ค. ๋ฒ์ ์ ๋กค๋ฐฑํ๋ ์ค์ ๋๋ค. ๊ทธ๋ํ๋ฅผ ๋ณด๋ฉด ์ค์ ๋ก ๋ก๋๊ฐ ๋กค์์ ์ค์ ์ฌ๋ฌ ๋ฒ ์ฆ๊ฐํ๋ค๊ฐ ๋กค์์ํ ๋ ๋ค์ ๊ฐ์ํ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ฒ์ ๋กค๋ฐฑ์ ์์ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ถํ๋ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฆ๊ฐํ๊ณ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๊ฐ์ํ์ต๋๋ค. ๋ฐ๋ผ์ ๊ฒฐ๋ก ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋ ์ด์์์ผ๋ก ์ธํด ๋ถํ๊ฐ ์ฆ๊ฐํ ๊ฒ์ ๋๋ผ์ด ์ผ์ด ์๋๋๋ค.
๊ทธ๋ฐ ๋ค์ ๋๋ฃ๋ค์๊ฒ ์ ๋ฒ์ ์ ์ค์นํ๋๋ก ์ค๋ํ๋ ๊ฒ์ด ์ด๋ ค์ ์ต๋๋ค. ๋๋ ์ด๋ ๊ฒ ๋งํฉ๋๋ค. โ๊ด์ฐฎ์ต๋๋ค. ์ถ์ํ์ธ์. ์๊ฐ๋ฝ์ ๊ณ์ ๊ต์ฐจ์ํค๋ฉด ๋ชจ๋ ๊ฒ์ด ์๋ํ ๊ฒ์ ๋๋ค. ์ด์ ๊ทธ๋ํ์ ๋ถํ๊ฐ ์ฆ๊ฐํ์ง๋ง ๋ชจ๋ ๊ฒ์ด ์ ์์ ๋๋ค. ๊ฑฐ๊ธฐ ์ฐธ์ผ์ธ์." ์ผ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ๋ ์ด๊ฒ์ ์ํํ๊ณ ๊ทธ๊ฒ ์ ๋ถ์ ๋๋ค. ๋ฒ์ ์ด ์์ฐ์ฉ์ผ๋ก ์ถ์๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ฑฐ์ ๋ชจ๋ ๋ ์ด์์์์ ๋น์ทํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ฟผ๋ฆฌ ์ข
๋ฃ๋ ์ฟผ๋ฆฌ๋ฅผ ์ข
๋ฃํด์ผ ํ์ง๋ง ๊ทธ๋ ์ง ์์ต๋๋ค. ์?
์ผ์ข ์ ๋ถ์๊ฐ์ธ ์ฌ์ฉ์๊ฐ ๋์๊ฒ ์์ ๋ด ClickHouse ํด๋ฌ์คํฐ๋ฅผ ๋ฐฐ์นํ๋ ์์ฒญ์ ์์ฑํ์ต๋๋ค. ์์ฒญ์ด ์ ๋ฌ๋ ๋ณต์ ๋ณธ ๋๋ ์ค๋์ ๋ฐ๋ผ ์ผ๋ถ ๋ ธ๋ ๋๋ ์ ์ฒด ํด๋ฌ์คํฐ. ์ด ์๋ฒ์ ๋ชจ๋ CPU ๋ฆฌ์์ค๊ฐ ์ ๋ฐ์ ์๊ณ ๋ชจ๋ ๊ฒ์ด ๋นจ๊ฐ์์ผ๋ก ํ์๋์ด ์์ต๋๋ค. ๋์์ ClickHouse ์์ฒด๊ฐ ์์ฒญ์ ์๋ตํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ ์ด๋ ๊ฒ ์ผ์ต๋๋ค. "์ด๋ค ์์ฒญ์ด ์ด๋ฐ ๊ด๊ธฐ๋ฅผ ์ผ์ผ์ผฐ๋์ง ํ๋ก์ธ์ค ๋ชฉ๋ก์ ๋ณด์ฌ์ฃผ์ธ์."
๋๋ ์ด ์์ฒญ์ ์ฐพ์ ๊ฑฐ๊ธฐ์ kill์ ์๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ ์๋ฌด ์ผ๋ ์ผ์ด๋์ง ์๋๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ๋ด ์๋ฒ๋ ์ ๋ฐ์ ์๊ณ ClickHouse๋ ๋์๊ฒ ๋ช ๊ฐ์ง ๋ช ๋ น์ ์ ๊ณตํ๊ณ ์๋ฒ๊ฐ ์ด์ ์์์ ๋ณด์ฌ์ฃผ๋ฉฐ ๋ชจ๋ ๊ฒ์ด ํ๋ฅญํฉ๋๋ค. ํ์ง๋ง ๋ชจ๋ ์ฌ์ฉ์ ์์ฒญ์ด ์ ํ๋๊ณ ClickHouse์ ๋ ์ฝ๋๋ถํฐ ์ ํ๊ฐ ์์๋๋ฉฐ ์ข ๋ฃ ์ฟผ๋ฆฌ๊ฐ ์๋ํ์ง ์์ต๋๋ค. ์? ๋๋ kill query๊ฐ ์ฟผ๋ฆฌ๋ฅผ ์ฃฝ์ด๊ธฐ๋ก ๋์ด ์๋ค๊ณ ์๊ฐํ์ง๋ง ๊ทธ๋ ์ง ์์ต๋๋ค.
์ด์ ๋ค์ ์ด์ํ ๋๋ต์ด ๋์ฌ ๊ฒ์ ๋๋ค. ์์ ์ ์ฟผ๋ฆฌ ์ข ๋ฃ๊ฐ ์ฟผ๋ฆฌ๋ฅผ ์ข ๋ฃํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค.
Kill ์ฟผ๋ฆฌ๋ "์ด ์ฟผ๋ฆฌ๋ฅผ ์ข ๋ฃํ๊ณ ์ถ์ต๋๋ค."๋ผ๋ ์์ ์์๋ฅผ ์ ํํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ฒญ ์์ฒด๋ ๊ฐ ๋ธ๋ก์ ์ฒ๋ฆฌํ ๋ ์ด ํ๋๊ทธ๋ฅผ ํ์ธํฉ๋๋ค. ์ค์ ๋ ๊ฒฝ์ฐ ์์ฒญ ์๋์ด ์ค์ง๋ฉ๋๋ค. ์๋ฌด๋ ์์ฒญ์ ์ฃฝ์ด์ง ์์ผ๋ฉฐ ๋ชจ๋ ๊ฒ์ ํ์ธํ๊ณ ์ค์งํด์ผํ๋ค๋ ๊ฒ์ด ๋ฐํ์ก์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ์์ฒญ์ด ๋ฐ์ดํฐ ๋ธ๋ก์ ์ฒ๋ฆฌํ๋ ์ํ์ธ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ํฉ๋๋ค. ๋ค์ ๋ฐ์ดํฐ ๋ธ๋ก์ ์ฒ๋ฆฌํ๊ณ ํ๋๊ทธ๋ฅผ ํ์ธํ ํ ์ค์งํฉ๋๋ค.
์ผ๋ถ ์์ ์์ ์์ฒญ์ด ์ฐจ๋จ๋ ๊ฒฝ์ฐ์๋ ์๋ํ์ง ์์ต๋๋ค. ์ฌ์ค, ๊ทํ์ ๋ฐ๋ฅด๋ฉด ์ด๋ ์์ฒญ๋ ์์ ์๋ฒ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๊ทํ์ ๊ฒฝ์ฐ๊ฐ ์๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ์ธ๋ถ ์ ๋ ฌ ๋ฐ ์ผ๋ถ ๊ธฐํ ์ธ๋ถ์ฌํญ์์๋ ์ด๊ฒ์ด ์๋ํ์ง ์์ ์๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ผ๋ฐ์ ์ผ๋ก ์ด๋ฐ ์ผ์ ๋ฐ์ํด์๋ ์ ๋ฉ๋๋ค. ์ด๋ ๋ฒ๊ทธ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๊ฐ ์ถ์ฒํ ์ ์๋ ์ ์ผํ ๊ฒ์ ClickHouse๋ฅผ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ ๋๋ค.
์ฝ๊ธฐ ๋ถํ ์ ์๋ต ์๊ฐ์ ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์
๋๊น?
ํญ๋ชฉ ์ง๊ณ(๋ค์ํ ์นด์ดํฐ)๋ฅผ ์ ์ฅํ๋ ํ ์ด๋ธ์ด ์์ต๋๋ค. ์ค ์๋ ์ฝ 1์ต ๊ฐ์ ๋๋ค. 1๊ฐ์ ํญ๋ชฉ์ XNUMX๊ฐ์ RPS๋ฅผ ์์๋ถ์ผ๋ฉด ์์ธก ๊ฐ๋ฅํ ์๋ต ์๊ฐ์ ๊ธฐ๋ํ ์ ์์ต๋๊น?
๋ฌธ๋งฅ์ ๋ฐ๋ผ ์ฐ๊ธฐ์ ๋ฌธ์ ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ฝ๊ธฐ ๋ถํ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. ์ฌ์ง์ด ์ฒ, ์ฌ์ง์ด ์ญ๋ง, ๋๋ก๋ ์๋ฐฑ๋ง ํ์ ์ฝ์ ํ ์๋ ์์ต๋๋ค.
์ฝ๊ธฐ ์์ฒญ์ ๋งค์ฐ ๋ค๋ฆ ๋๋ค. ์ ํ 1์์ ClickHouse๋ ์ด๋น ์ฝ ์๋ง ๊ฑด์ ์์ฒญ์ ์ํํ ์ ์์ผ๋ฏ๋ก ํ๋์ ํค์ ๋ํ ์์ฒญ์๋ ์ด๋ฏธ ์ผ๋ถ ๋ฆฌ์์ค๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ํฌ์ธํธ ์ฟผ๋ฆฌ๋ ์ฝ๊ธฐ๋ง๋ค ์ธ๋ฑ์ค๋ณ๋ก ๋ฐ์ดํฐ ๋ธ๋ก์ ์ฝ์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ผ๋ถ ํค-๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ณด๋ค ๋ ์ด๋ ต์ต๋๋ค. ์ฐ๋ฆฌ์ ์์ธ์ ๊ฐ ๋ ์ฝ๋๊ฐ ์๋๋ผ ๊ฐ ๋ฒ์๋ฅผ ๋ค๋ฃน๋๋ค. ์ฆ, ์ ์ฒด ๋ฒ์๋ฅผ ์ฝ์ด์ผ ํฉ๋๋ค. ์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก 8192์ค์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ถ๋ ๋ฐ์ดํฐ ๋ธ๋ก์ 64KB์์ 1MB๋ก ์์ถ์ ํ์ด์ผ ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ด๋ฌํ ๋์ ์ฟผ๋ฆฌ๋ ์๋ฃํ๋ ๋ฐ ๋ช ๋ฐ๋ฆฌ์ด๊ฐ ๊ฑธ๋ฆฝ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ๊ฐ์ฅ ๊ฐ๋จํ ์ต์ ์ ๋๋ค.
๊ฐ๋จํ ์ฐ์๋ฅผ ์๋ํด ๋ด ์๋ค. ๋ช ๋ฐ๋ฆฌ์ด์ 1000์ ๊ณฑํ๋ฉด ๋ช ์ด๊ฐ ๋ฉ๋๋ค. ์ด๋น ์์ฒ ๊ฐ์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ์ค์ ๋ก๋ ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ ์ฝ์ด๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํฉ๋๋ค. ๋ฐ๋ผ์ ์์น์ ์ผ๋ก ClickHouse๋ ๋๋๋ก XNUMX RPS๋ฅผ ๋ณด์ ํ ์ ์์ง๋ง ์งง์ ์์ฒญ, ํนํ ๋์์ด ์ง์ ๋ ์์ฒญ์ ๊ฒฝ์ฐ์๋ ๊ฐ๋ฅํฉ๋๋ค.
๋จ์ ์์ฒญ ์์ ๋ฐ๋ผ ClickHouse ํด๋ฌ์คํฐ๋ฅผ ํ์ฅํด์ผ ํ๋ ๊ฒฝ์ฐ ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ๊ถ์ฅํฉ๋๋ค. ์ฆ, ๋ณต์ ๋ณธ ์๋ฅผ ๋๋ฆฌ๊ณ ์์ฒญ์ ๋ฌด์์ ๋ณต์ ๋ณธ์ผ๋ก ๋ณด๋ด๋ ๊ฒ์ ๋๋ค. ํ๋์ ๋ณต์ ๋ณธ์ด ์ด๋น XNUMX๊ฐ์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ(์์ ํ ํ์ค์ ์), XNUMX๊ฐ์ ๋ณต์ ๋ณธ์ XNUMX๊ฐ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
๋ฌผ๋ก ๋๋ก๋ ์ต๋ ํฌ์ธํธ ํ๋ ์์ ๋ง๊ฒ ClickHouse๋ฅผ ๊ตฌ์ฑํ ์๋ ์์ต๋๋ค. ์ด๋ฅผ ์ํด ๋ฌด์์ด ํ์ํฉ๋๊น? ์ฒซ ๋ฒ์งธ๋ ์ธ๋ฑ์ค์ ์ธ๋ถ์ฑ์ ์ค์ด๋ ๊ฒ์ ๋๋ค. ์ด ๊ฒฝ์ฐ 64๊ฐ๋ก ์ค์ฌ์๋ ์ ๋๋ฉฐ, ์๋ฒ๋น ์ธ๋ฑ์ค ํญ๋ชฉ ์๊ฐ ์๋ฐฑ๋ง ๋๋ ์์ฒ๋ง ๊ฐ๊ฐ ๋๋ค๋ ์ ์ ๊ธฐ์ค์ผ๋ก ํด์ผ ํฉ๋๋ค. ํ ์ด๋ธ์ XNUMX์ต ๊ฐ์ ํ์ด ์๋ ๊ฒฝ์ฐ ์ธ๋ถ์ฑ์ XNUMX๋ก ์ค์ ํ ์ ์์ต๋๋ค.
์์ถ๋ ๋ธ๋ก์ ํฌ๊ธฐ๋ฅผ ์ค์ผ ์ ์์ต๋๋ค. ์ด์ ๋ํ ์ค์ ์ด ์์ต๋๋ค ์ต์ ์์ถ ๋ธ๋ก ํฌ๊ธฐ, ์ต๋ ์์ถ ๋ธ๋ก ํฌ๊ธฐ. ์ด๋ฅผ ์ค์ด๊ณ ๋ฐ์ดํฐ๋ก ๋ค์ ์ฑ์ธ ์ ์์ผ๋ฉฐ ๊ทธ๋ฌ๋ฉด ๋์ ์ฟผ๋ฆฌ๊ฐ ๋ ๋นจ๋ผ์ง๋๋ค. ํ์ง๋ง ์ฌ์ ํ ClickHouse๋ ํค-๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์๋๋๋ค. ์์ ์์ฒญ์ด ๋ง์ด ๋ฐ์ํ๋ ๊ฒ์ ๋ก๋ ๋ฐฉ์ง ํจํด์ ๋๋ค.
ํค๋ฆด ์๋ฐ์ฝํ: ๊ฑฐ๊ธฐ์ ์ผ๋ฐ ๊ณ์ ์ด ์์ผ๋ฉด ์กฐ์ธ์ ๋๋ฆฌ๊ฒ ์ต๋๋ค. ClickHouse๊ฐ ์ผ์ข ์ ์นด์ดํฐ๋ฅผ ์ ์ฅํ ๋ ์ด๋ ์๋นํ ํ์ค์ ์ธ ์ํฉ์ ๋๋ค. ๋๋ ์ฌ์ฉ์๊ฐ ์๋๋ฐ, ๊ทธ๋ ์ด๋ฌ์ ๋ฌํ ๋๋ผ ์ถ์ ์ด๊ณ , ์ธ ๋ฒ์งธ ๋ถ์ผ์์ ์์ผ๋ฉฐ, ์ ์ง์ ์ผ๋ก ๋ฌด์ธ๊ฐ๋ฅผ ๋๋ ค์ผ ํฉ๋๋ค. MySQL์ ์ฌ์ฉํ์ฌ ๊ณ ์ ํค๋ฅผ ๋ง๋์ญ์์ค. MySQL์์๋ ์ค๋ณต ํค์ด๊ณ PostgreSQL์์๋ ์ถฉ๋์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ํ๊ธฐ ๊ธฐํธ๋ฅผ ์ถ๊ฐํ์ญ์์ค. ์ด๊ฒ์ ํจ์ฌ ๋ ์ ์๋ํ ๊ฒ์ ๋๋ค.
๋ฐ์ดํฐ๊ฐ ๋ง์ง ์์ผ๋ฉด ClickHouse๋ฅผ ์ฌ์ฉํด๋ ๋ณ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์ผ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์ผ๋ฉฐ ์ด๋ฅผ ์ ์ํํฉ๋๋ค.
๋ ๋ง์ ๋ฐ์ดํฐ๊ฐ ์บ์์ ์ ์ฅ๋๋๋ก ClickHouse์์ ๋ฌด์์ ์กฐ์ ํ ์ ์๋์?
์ํฉ์ ์์ํด ๋ด ์๋ค. ์๋ฒ์๋ 256GB์ RAM์ด ์๊ณ ์ผ์์ ์ผ๋ก ClickHouse๋ ์ต๋ 60GB๊น์ง ์ฝ 80-130GB๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์บ์์ ๋ ๋ง์ ๋ฐ์ดํฐ๊ฐ ์๋๋ก ํ์ฑํํ๊ณ ์กฐ์ ํ ์ ์๋ ํญ๋ชฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋์คํฌ๋ก์ ์ด๋ ํ์๊ฐ ์ ์ต๋๊น?
์ผ๋ฐ์ ์ผ๋ก ์ด์ ์ฒด์ ์ ํ์ด์ง ์บ์๊ฐ ์ด ์์ ์ ์ ์ํํฉ๋๋ค. ์๋จ์ ์ด๋ฉด ์บ์๋จ ๋๋ ์ฌ์ฉ ๊ฐ๋ฅ ์ฌ๋ถ๊ฐ ํ์๋ฉ๋๋ค. ๋ํ ์บ์๋ ์๋ ํ์๋ฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์บ์์ ์ฌ์ฉ๋๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ๋ ๋์คํฌ๊ฐ ์๋๋ผ RAM์์ ์ฝํ์ง๋๋ค. ๋์์, ์บ์๋๋ ์์ถ๋ ๋ฐ์ดํฐ์ด๊ธฐ ๋๋ฌธ์ ์บ์๊ฐ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉ๋๋ค๊ณ ํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ผ๋ถ ๊ฐ๋จํ ์ฟผ๋ฆฌ์ ์๋๋ฅผ ๋์ฑ ๋์ด๊ณ ์ถ๋ค๋ฉด ClickHouse ๋ด๋ถ์ ์์ถ์ด ํ๋ฆฐ ๋ฐ์ดํฐ์ ์บ์๋ฅผ ํ์ฑํํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์์ด๋ผ๊ณ ์์ถ๋์ง ์์ ์บ์. config.xml ๊ตฌ์ฑ ํ์ผ์์ ์์ถ๋์ง ์์ ์บ์ ํฌ๊ธฐ๋ฅผ ํ์ํ ๊ฐ์ผ๋ก ์ค์ ํฉ๋๋ค. ๋๋จธ์ง๋ ํ์ด์ง ์บ์ ์๋์ ์ ์ฅ๋๋ฏ๋ก ์ฌ์ RAM์ ์ ๋ฐ ์ดํ๋ฅผ ๊ถ์ฅํฉ๋๋ค.
๋ํ ๋ ๊ฐ์ง ์์ฒญ ์์ค ์ค์ ์ด ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ์ค์ - ์์ถ๋์ง ์์ ์บ์ ์ฌ์ฉ - ๊ทธ ์ฌ์ฉ์ด ํฌํจ๋ฉ๋๋ค. ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์บ์๋ฅผ ํ๋ฌ์ํ ์ ์๋ ๊ณผ๋ํ ์์ฒญ์ ์ ์ธํ ๋ชจ๋ ์์ฒญ์ โโ๋ํด ํ์ฑํํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ๋ฒ์งธ ์ค์ ์ ์บ์๋ฅผ ์ฌ์ฉํ ์ต๋ ๋ผ์ธ ์์ ๊ฐ์ ๊ฒ์ ๋๋ค. ์บ์๋ฅผ ์ฐํํ๋๋ก ๋๊ท๋ชจ ์ฟผ๋ฆฌ๋ฅผ ์๋์ผ๋ก ์ ํํฉ๋๋ค.
RAM์ ์ ์ฅํ๊ธฐ ์ํด Storage_configuration์ ์ด๋ป๊ฒ ๊ตฌ์ฑํฉ๋๊น?
์๋ก์ด ClickHouse ๋ฌธ์์์ ๊ด๋ จ ์น์ ์ ์ฝ์์ต๋๋ค.
๋ฐ์ดํฐ ์ ์ฅ ์ฅ์น๊ฐ ์๋ . ์ค๋ช ์๋ ๋น ๋ฅธ SSD์ ์๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.๋ณผ๋ฅจ ํซ ๋ฉ๋ชจ๋ฆฌ๋ก ๋์ผํ ๊ฒ์ ์ด๋ป๊ฒ ๊ตฌ์ฑํ ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ง๋ฌธ ํ๋ ๋. Select๋ ์ด ๋ฐ์ดํฐ ๊ตฌ์ฑ์์ ์ด๋ป๊ฒ ์๋ํฉ๋๊น? ์ ์ฒด ์ธํธ๋ฅผ ์ฝ์ต๋๊น, ์๋๋ฉด ๋์คํฌ์ ์๋ ์ธํธ๋ง ์ฝ์ต๋๊น? ์ด ๋ฐ์ดํฐ๋ ๋ฉ๋ชจ๋ฆฌ์ ์์ถ๋์ด ์์ต๋๊น? ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ๋ฐ์ดํฐ ์กฐ์ง์์ ์ฌ์ ์์น ์น์ ์ ์ด๋ป๊ฒ ์๋ํฉ๋๊น?
์ด ์ค์ ์ ๋ฐ์ดํฐ ์ฒญํฌ์ ์ ์ฅ์ ์ํฅ์ ๋ฏธ์น๋ฉฐ ํด๋น ํ์์ ์ด๋ค ์์ผ๋ก๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
์ข ๋ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
RAM์ ๋ฐ์ดํฐ ์ ์ฅ์๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ๋์คํฌ์ ๋ํด ๊ตฌ์ฑ๋ ๊ฒ์ ๊ฒฝ๋ก๋ฟ์ ๋๋ค. ํ์ผ ์์คํ ์ ์ผ๋ถ ๊ฒฝ๋ก์ ๋ง์ดํธ๋๋ tmpfs ํํฐ์ ์ ๋ง๋ญ๋๋ค. ์ด ๊ฒฝ๋ก๋ฅผ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ํํฐ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ๊ฒฝ๋ก๋ก ์ง์ ํ๋ฉด ๋ฐ์ดํฐ ์กฐ๊ฐ์ด ๋์ฐฉํ์ฌ ๊ฑฐ๊ธฐ์ ๊ธฐ๋ก๋๊ธฐ ์์ํฉ๋๋ค. ๋ชจ๋ ๊ฒ์ด ์ ์์ ๋๋ค.
ํ์ง๋ง ์์ ์ฑ์ด ๋ฎ๊ธฐ ๋๋ฌธ์ ์ด ์์ ์ ๊ถ์ฅํ์ง ์์ต๋๋ค. ํ์ง๋ง ์๋ก ๋ค๋ฅธ ๋ฐ์ดํฐ ์ผํฐ์ ๋ณต์ ๋ณธ์ด XNUMX๊ฐ ์ด์ ์์ผ๋ฉด ๊ฐ๋ฅํฉ๋๋ค. ์ด๋ค ์ผ์ด ๋ฐ์ํ๋ฉด ๋ฐ์ดํฐ๊ฐ ๋ณต์๋ฉ๋๋ค. ๊ฐ์๊ธฐ ์๋ฒ๊ฐ ๊บผ์ก๋ค๊ฐ ๋ค์ ์ผ์ก๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ํํฐ์ ์ ๋ค์ ๋ง์ดํธํ์ง๋ง ๊ฑฐ๊ธฐ์๋ ์๋ฌด๊ฒ๋ ์์์ต๋๋ค. ClickHouse ์๋ฒ๊ฐ ์์๋๋ฉด ZooKeeper ๋ฉํ๋ฐ์ดํฐ์ ๋ฐ๋ฅด๋ฉด ์ด๋ฌํ ๋ถ๋ถ์ด ์์ด์ผ ํ์ง๋ง ์ด๋ฌํ ๋ถ๋ถ์ด ์์์ ํ์ธํฉ๋๋ค. ๊ทธ๋ ์ด๋ค ๋ณต์ ๋ณธ์ ํด๋น ํญ๋ชฉ์ด ์๋์ง ํ์ธํ๊ณ ์์ฒญํ๊ณ ๋ค์ด๋ก๋ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ฐ์ดํฐ๊ฐ ๋ณต์๋ฉ๋๋ค.
์ด๋ฌํ ์๋ฏธ์์ RAM์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฒ์ ๋์คํฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฒ๊ณผ ๊ทผ๋ณธ์ ์ผ๋ก ๋ค๋ฅด์ง ์์ต๋๋ค. ์๋ํ๋ฉด ๋ฐ์ดํฐ๊ฐ ๋์คํฌ์ ๊ธฐ๋ก๋๋ฉด ๋จผ์ ํ์ด์ง ์บ์์ ์ ์ฅ๋๊ณ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋์ค์ ๊ธฐ๋ก๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด๋ ํ์ผ ์์คํ ๋ง์ดํธ ์ต์ ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ํ์ง๋ง ๋ง์ผ์ ๋๋นํด ClickHouse๋ ์ฝ์ ์ fsync๋ฅผ ์ํํ์ง ์๋๋ค๊ณ ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค.
์ด ๊ฒฝ์ฐ RAM์ ๋ฐ์ดํฐ๋ ๋์คํฌ์ ์ ํํ ๋์ผํ ํ์์ผ๋ก ์ ์ฅ๋ฉ๋๋ค. ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ํ ์ฟผ๋ฆฌ๋ ์ฝ์ด์ผ ํ ์กฐ๊ฐ์ ์ ํํ๊ณ ์กฐ๊ฐ์์ ํ์ํ ๋ฐ์ดํฐ ๋ฒ์๋ฅผ ์ ํํ์ฌ ์ฝ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ๊ฐ RAM์ ์๋ ๋์คํฌ์ ์๋ ์๊ด์์ด prewhere๋ ์ ํํ ๋์ผํ๊ฒ ์๋ํฉ๋๋ค.
๋ฎ์ ์นด๋๋๋ฆฌํฐ๋ ๋ช ๊ฐ์ ๊ณ ์ ๊ฐ๊น์ง ์ ํจํฉ๋๊น?
๋ฎ์ ์นด๋๋๋ฆฌํฐ๋ ์๋ฆฌํ๊ฒ ์ค๊ณ๋์์ต๋๋ค. ๋ฐ์ดํฐ ์ฌ์ ์ ์ปดํ์ผํ์ง๋ง ๋ก์ปฌ์ ๋๋ค. ์ฒซ์งธ, ๊ฐ ์ํ๋ง๋ค ๋ค๋ฅธ ์ฌ์ ์ด ์๊ณ , ๋์งธ, ํ ์ํ ๋ด์์๋ ๊ฐ ๋ฒ์๋ง๋ค ๋ค๋ฅผ ์ ์์ต๋๋ค. ๊ณ ์ ํ ๊ฐ์ ์๊ฐ ์๊ณ๊ฐ(XNUMX๋ง ๊ฐ)์ ๋๋ฌํ๋ฉด ์ฌ์ ์ ๋จ์ํ ๋ณด๋ฅ๋๊ณ ์ ์ฌ์ ์ด ์์ฑ๋ฉ๋๋ค.
๋๋ต์ ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๊ฐ ์ง์ญ ๋ฒ์(์: ๋งค์ผ)์ ๋ํด ์ต๋ ๋ฐฑ๋ง ๊ฐ์ ๊ณ ์ ๊ฐ์ ๋ํด ๋ฎ์ ์นด๋๋๋ฆฌํฐ๊ฐ ํจ๊ณผ์ ์ ๋๋ค. ๊ทธ ํ์๋ ๋จ์ง ํ๋๊ฐ ์๋ ๋ค์ํ ์ฌ์ ์ด ์ฌ์ฉ๋๋ ๋จ์ํ ๋์ฒด๊ฐ ์์ ๊ฒ์ ๋๋ค. ์ผ๋ฐ ๋ฌธ์์ด ์ด๊ณผ ๊ฑฐ์ ๋์ผํ๊ฒ ์๋ํ๋ฉฐ ์ฝ๊ฐ ๋ ํจ์จ์ ์ผ ์๋ ์์ง๋ง ์ฌ๊ฐํ ์ฑ๋ฅ ์ ํ๊ฐ ์์ต๋๋ค.
XNUMX์ต ํ์ด ์๋ ํ
์ด๋ธ์์ ์ ์ฒด ํ
์คํธ๋ฅผ ๊ฒ์ํ๋ ๋ชจ๋ฒ ์ฌ๋ก๋ ๋ฌด์์
๋๊น?
๋ค๋ฅธ ๋๋ต์ด ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ๋ ClickHouse๊ฐ ์ ์ฒด ํ
์คํธ ๊ฒ์ ์์ง์ด ์๋๋ผ๋ ์ ์
๋๋ค. ์ด๋ฅผ ์ํ ํน๋ณํ ์์คํ
์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด,
์ ์ด๋ฐ ์ผ์ด ๋ฐ์ํฉ๋๊น? ๊ทธ๋ค์ Elasticsearch๊ฐ ์ธ๋ฑ์ค ๊ตฌ์ฑ๋ถํฐ ์์ํ์ฌ ์ผ๋ถ ๋ณผ๋ฅจ์ ๋ก๋ ์ฒ๋ฆฌ๋ฅผ ์ค๋จํ๋ค๋ ์ฌ์ค๋ก ์ด๋ฅผ ์ค๋ช ํฉ๋๋ค. ์ธ๋ฑ์ค๊ฐ ๋๋ฌด ๋ฒ๊ฑฐ๋ก์์ง๊ณ ๋จ์ํ ๋ฐ์ดํฐ๋ฅผ ClickHouse๋ก ์ ์กํ๋ฉด ์ฉ๋ ์ธก๋ฉด์์ ๋ช ๋ฐฐ ๋ ํจ์จ์ ์ผ๋ก ์ ์ฅ๋๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ๋์์, ๊ฒ์์ด๋ ํํ๋ฅผ ๊ณ ๋ คํ์ฌ ์ ์ฒด ๋ฐ์ดํฐ ์์์ ์ผ๋ถ ๋ฌธ๊ตฌ๋ฅผ ์ฐพ์์ผ ํ ์ ๋๊ฐ ์๋์์ง๋ง ์์ ํ ๋ค๋ฅธ ๋ฌธ๊ตฌ๋ฅผ ์ฐพ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ง๋ ๋ช ์๊ฐ ๋์์ ๋ก๊ทธ์์ ์ผ๋ถ ๋ฐ์ดํธ ์ํ์ค๋ฅผ ์ฐพ์ต๋๋ค.
์ด ๊ฒฝ์ฐ ClickHouse์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํฉ๋๋ค. ์ธ๋ฑ์ค์ ์ฒซ ๋ฒ์งธ ํ๋๋ ๋ ์ง์ ์๊ฐ์ด ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ํฐ ๋ฐ์ดํฐ ์ปท์คํ๋ ๊ธฐ๊ฐ์ ๊ธฐ์ค์ผ๋ก ํฉ๋๋ค. ์ ํํ ๋ ์ง ๋ฒ์ ๋ด์์๋ ์ผ๋ฐ์ ์ผ๋ก like๋ฅผ ์ฌ์ฉํ๋ ๋ฌด์ฐจ๋ณ ๋ฐฉ์์ ์ฌ์ฉํ๋๋ผ๋ ์ ์ฒด ํ ์คํธ ๊ฒ์์ ์ํํ๋ ๊ฒ์ด ์ด๋ฏธ ๊ฐ๋ฅํฉ๋๋ค. ClickHouse์ ์ข์์ ์ฐ์ฐ์๋ ์ฐพ์ ์ ์๋ ๊ฐ์ฅ ํจ์จ์ ์ธ ์ ์ฌ ์ฐ์ฐ์์ ๋๋ค. ๋ ์ข์ ๊ฑฐ ์ฐพ์ผ๋ฉด ๋งํด์ฃผ์ธ์.
ํ์ง๋ง ์ฌ์ ํ ์ ์ฒด ์ค์บ๊ณผ ๊ฐ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ฒด ์ค์บ์ CPU๋ฟ๋ง ์๋๋ผ ๋์คํฌ์์๋ ๋๋ ค์ง ์ ์์ต๋๋ค. ๊ฐ์๊ธฐ ํ๋ฃจ์ XNUMXํ ๋ผ๋ฐ์ดํธ์ ๋ฐ์ดํฐ๊ฐ ์๊ฒจ์ ํ๋ฃจ ๋์ ๋จ์ด๋ฅผ ๊ฒ์ํ๋ฉด ํ ๋ผ๋ฐ์ดํธ๋ฅผ ์ค์บํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ง๋ ์ผ๋ฐ ํ๋ ๋๋ผ์ด๋ธ์ ์์ ๊ฒ์ด๋ฉฐ ๊ฒฐ๊ตญ์๋ SSH๋ฅผ ํตํด ์ด ์๋ฒ์ ์ก์ธ์คํ ์ ์๋ ๋ฐฉ์์ผ๋ก ๋ก๋๋ ๊ฒ์ ๋๋ค.
์ด ๊ฒฝ์ฐ์๋ ์์ ํธ๋ฆญ์ ํ๋ ๋ ์ ๊ณตํ ์ค๋น๊ฐ ๋์์ต๋๋ค. ์คํ์ ์ด๋ฏ๋ก ์๋ํ ์๋ ์๊ณ ๊ทธ๋ ์ง ์์ ์๋ ์์ต๋๋ค. ClickHouse์๋ ํธ๋ผ์ด๊ทธ๋จ ๋ธ๋ฃธ ํํฐ ํํ์ ์ ์ฒด ํ ์คํธ ์์ธ์ด ์์ต๋๋ค. Arenadata์ ๋๋ฃ๋ค์ ์ด๋ฏธ ์ด๋ฌํ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํด ๋ณด์๊ณ ์๋ํ ๋๋ก ์ ํํ๊ฒ ์๋ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์ด๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ๋ ค๋ฉด ์๋ ๋ฐฉ์, ์ฆ ํธ๋ผ์ด๊ทธ๋จ ๋ธ๋ฃธ ํํฐ๊ฐ ๋ฌด์์ธ์ง, ํฌ๊ธฐ๋ฅผ ์ ํํ๋ ๋ฐฉ๋ฒ์ ์ ์ดํดํด์ผ ํฉ๋๋ค. ๋ฐ์ดํฐ์์ ๊ฑฐ์ ๋ฐ๊ฒฌ๋์ง ์๋ ์ผ๋ถ ํฌ๊ทํ ๋ฌธ๊ตฌ, ํ์ ๋ฌธ์์ด์ ๋ํ ์ฟผ๋ฆฌ์ ๋์์ด ๋ ๊ฒ์ด๋ผ๊ณ ๋งํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ํ์ ๋ฒ์๋ ์ธ๋ฑ์ค์ ์ํด ์ ํ๋๋ฉฐ ๋ ์ ์ ์์ ๋ฐ์ดํฐ๊ฐ ์ฝํ์ง๋๋ค.
์ต๊ทผ ClickHouse์๋ ์ ์ฒด ํ ์คํธ ๊ฒ์์ ์ํ ๋์ฑ ํฅ์๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ด๋ ์ฒซ์งธ, UTF-8 ๋๋ ASCII๋ง ์ง์ํ๋ ๋/์๋ฌธ์ ๊ตฌ๋ถ ์ต์ ์ ํฌํจํ์ฌ ํ ๋ฒ์ ์ฌ๋ฌ ํ์ ๋ฌธ์์ด์ ๊ฒ์ํ๋ ๊ฒ์ ๋๋ค. ํ์ํ ๊ฐ์ฅ ํจ๊ณผ์ ์ธ ๊ฒ์ ์ ํํ์ญ์์ค.
ํ ๋ฒ์ ์ฌ๋ฌ ์ ๊ท์์ ๊ฒ์ํ๋ ๊ธฐ๋ฅ๋ ๋ํ๋ฌ์ต๋๋ค. X๋ฅผ ํ๋์ ํ์ ๋ฌธ์์ด์ฒ๋ผ ์ฐ๊ฑฐ๋ X๋ฅผ ๋ค๋ฅธ ํ์ ๋ฌธ์์ด์ฒ๋ผ ์ธ ํ์๋ ์์ต๋๋ค. ์ฆ์ ์์ฑํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ต๋ํ ํจ์จ์ ์ผ๋ก ์๋ฃ๋ฉ๋๋ค.
์ ์งธ, ์ด์ ์ ๊ท์์ ๋ํ ๋๋ต์ ์ธ ๊ฒ์๊ณผ ํ์ ๋ฌธ์์ด์ ๋ํ ๋๋ต์ ์ธ ๊ฒ์์ด ๊ฐ๋ฅํฉ๋๋ค. ๋๊ตฐ๊ฐ ๋จ์ด ์ฒ ์๋ฅผ ์๋ชป ์ ๋ ฅํ ๊ฒฝ์ฐ ์ต๋ ์ผ์น ํญ๋ชฉ์ ๊ฒ์ํฉ๋๋ค.
๋ค์์ ์ฌ์ฉ์๋ฅผ ์ํด ClickHouse์ ๋ํ ์ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ฌด์์
๋๊น?
๋ค์์ ์๋น์์ ๋ถ์๊ฐ๋ฅผ ์ํ ์ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ๋ ์ต์ ์ ๋ฐฉ๋ฒ์ ์๋ ค์ฃผ์ญ์์ค. ๋๊ธฐ์ด์ ํ์ฑํ๊ณ , ์ต๋ ๋์ ์ฟผ๋ฆฌ์ ์ฐ์ ์์๋ฅผ ์ง์ ํ๋ ๋ฐฉ๋ฒ๊ณผ ์ด๋ค ๋๊ตฌ๋ฅผ ์ฌ์ฉํฉ๋๊น?
ํด๋ฌ์คํฐ๊ฐ ์ถฉ๋ถํ ํฌ๋ค๋ฉด ์ข์ ํด๊ฒฐ์ฑ ์ ๋ถ์๊ฐ์ ์ง์ ์ ์ด ๋ ์๋ฒ๋ฅผ ๋ ๋ ๋ ๋๋ฆฌ๋ ๊ฒ์ ๋๋ค. ์ฆ, ๋ถ์๊ฐ๊ฐ ํด๋ฌ์คํฐ์ ํน์ ์ค๋์ ์ก์ธ์คํ๋ ๊ฒ์ ํ์ฉํ์ง ์๊ณ , ๋ฐ์ดํฐ ์์ด ๋ ๊ฐ์ ๋น ์๋ฒ๋ฅผ ์์ฑํ๊ณ ์ด์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๊ตฌ์ฑํ๋ฉด ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ถ์ฐ ์์ฒญ์ ๋ํ ์ฌ์ฉ์ ์ค์ ์ด ์๊ฒฉ ์๋ฒ๋ก ์ ์ก๋ฉ๋๋ค. ์ฆ, ์ด ๋ ์๋ฒ์ ๋ชจ๋ ๊ฒ์ ๊ตฌ์ฑํ๋ฉด ํด๋น ์ค์ ์ด ์ ์ฒด ํด๋ฌ์คํฐ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
์์น์ ์ผ๋ก ์ด๋ฌํ ์๋ฒ์๋ ๋ฐ์ดํฐ๊ฐ ์์ง๋ง RAM ์ฉ๋์ ์์ฒญ์ ์คํํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ธ๋ถ ์ง๊ณ ๋๋ ์ธ๋ถ ์ ๋ ฌ์ด ํ์ฑํ๋ ๊ฒฝ์ฐ ๋์คํฌ๋ ์์ ๋ฐ์ดํฐ์๋ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
๊ฐ๋ฅํ ๋ชจ๋ ์ ํ๊ณผ ๊ด๋ จ๋ ์ค์ ์ ์ดํด๋ณด๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ด์ ๋ถ์๊ฐ๋ก์ Yandex.Metrica ํด๋ฌ์คํฐ๋ก ์ด๋ํ์ฌ ์์ฒญ์ ํ๋ฉด ์กฐํ์์์ ๊ฐ์ ์ ํ, ๊ทธ๋ฌ๋ฉด ์์ฒญ์ ์คํํ ์ ์๋ค๋ ์์ธ๊ฐ ์ฆ์ ์ ๊ณต๋ฉ๋๋ค. ์ค์บํ ์ ์๋ ์ต๋ ํ ์๋ XNUMX์ต ๊ฐ์ด๋ฉฐ ํด๋ฌ์คํฐ์ ํ ํ ์ด๋ธ์๋ ์ด XNUMX์กฐ ๊ฐ์ ํ์ด ์์ต๋๋ค. ์ด๊ฒ์ด ์ฒซ ๋ฒ์งธ ์ ํ ์ฌํญ์ ๋๋ค.
ํ ์ ํ์ ์ ๊ฑฐํ๊ณ ์ฟผ๋ฆฌ๋ฅผ ๋ค์ ์คํํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ค์ ์์ธ๊ฐ ํ์๋ฉ๋๋ค. ์ค์ ์ด ํ์ฑํ๋์์ต๋๋ค. ๋ ์ง๋ณ ๊ฐ์ ์ธ๋ฑ์ค. ๋ ์ง ๋ฒ์๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด ์ฟผ๋ฆฌ๋ฅผ ์๋ฃํ ์ ์์ต๋๋ค. ์๋์ผ๋ก ์ง์ ํ๊ธฐ ์ํด ๋ถ์๊ฐ์๊ฒ ์์กดํ ํ์๊ฐ ์์ต๋๋ค. ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ๋ ์ด๋ฒคํธ ๋ ์ง๊ฐ ์ฃผ ์ฌ์ด์ ๋ ์ง ๋ฒ์๊ฐ ๊ธฐ๋ก๋๋ ๊ฒฝ์ฐ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ ๋จ์ํ ์๋ชป๋ ์์น์ ๋๊ดํธ๋ฅผ ์ง์ ํ๊ณ ๊ทธ ๋์ ์ ๋๋ - ๋๋ URL ์ผ์น๋ก ํ๋ช ๋์์ต๋๋ค. ์ ํ์ด ์์ผ๋ฉด URL ์ด์ ํฌ๋กค๋งํ์ฌ ์์ฒญ๋ ์์ ๋ฆฌ์์ค๋ฅผ ๋ญ๋นํ๊ฒ ๋ฉ๋๋ค.
๋ํ ClickHouse์๋ ๋ ๊ฐ์ง ์ฐ์ ์์ ์ค์ ์ด ์์ต๋๋ค. ๋ถํํ๋ ๊ทธ๋ค์ ๋งค์ฐ ์์์ ์ ๋๋ค. ํ๋๋ ๊ฐ๋จํ ํธ์ถ๋ฉ๋๋ค. ์ฐ์ . ์ฐ์ ์์ โ 0์ด๊ณ ์ด๋ค ์ฐ์ ์์๊ฐ ์๋ ์์ฒญ์ด ์คํ๋๊ณ ์์ง๋ง ์ฐ์ ์์ ๊ฐ์ด ๋ ๋์ ์์ฒญ์ด ์คํ๋๊ณ ์๋ ๊ฒฝ์ฐ ์ฐ์ ์์ ๊ฐ์ด ๋ ํฌ๋ฏ๋ก ์ฐ์ ์์๊ฐ ๋ฎ์ ์์ฒญ์ด ์คํ๋ฉ๋๋ค. , ๋จ์ํ ์ผ์ ์ค์ง๋์์ผ๋ฉฐ ์ด ์๊ฐ ๋์์๋ ์ ํ ์๋ํ์ง ์์ต๋๋ค.
์ด๋ ๋งค์ฐ ์กฐ์กํ ์ค์ ์ด๋ฏ๋ก ํด๋ฌ์คํฐ์ ๋ก๋๊ฐ ์ผ์ ํ ๊ฒฝ์ฐ์๋ ์ ํฉํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์งง๊ณ ํญ์ฃผํ๋ ์ค์ํ ์์ฒญ์ด ์๊ณ ํด๋ฌ์คํฐ๊ฐ ๋๋ถ๋ถ ์ ํด ์ํ์ธ ๊ฒฝ์ฐ ์ด ์ค์ ์ด ์ ํฉํฉ๋๋ค.
๋ค์ ์ฐ์ ์์ ์ค์ ์ด ํธ์ถ๋ฉ๋๋ค. OS ์ค๋ ๋ ์ฐ์ ์์. Linux ์ค์ผ์ค๋ฌ์ ๋ชจ๋ ์์ฒญ ์คํ ์ค๋ ๋์ ๋ํด ์ข์ ๊ฐ์ ์ค์ ํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ๊ทธ๊ฒ์ ๊ทธ๋ ๊ฒ ์๋ํ์ง๋ง ์ฌ์ ํ ์๋ํฉ๋๋ค. ์ต์ nice ๊ฐ(๊ฐ์ด ๊ฐ์ฅ ํฌ๋ฏ๋ก ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋ฎ์)์ ์ค์ ํ๊ณ ์ฐ์ ์์๊ฐ ๋์ ์์ฒญ์ ๋ํด -19๋ฅผ ์ค์ ํ๋ฉด CPU๋ ์ฐ์ ์์๊ฐ ๋์ ์์ฒญ๋ณด๋ค ๋ฎ์ ์ฐ์ ์์ ์์ฒญ์ ์ฝ XNUMX๋ฐฐ ์ ๊ฒ ์๋นํฉ๋๋ค.
๋ํ ์ต๋ ์์ฒญ ์คํ ์๊ฐ(์: XNUMX๋ถ)์ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค. ์ฟผ๋ฆฌ ์คํ์ ์ต์ ์๋๊ฐ ๊ฐ์ฅ ์ข์ต๋๋ค. ์ด ์ค์ ์ ์ค๋ซ๋์ ์ฌ์ฉ๋์ด ์์ผ๋ฉฐ ClickHouse๊ฐ ๋๋ ค์ง์ง ์๋๋ค๊ณ ์ฃผ์ฅํ ๋ฟ๋ง ์๋๋ผ ๊ฐ์ ๋ก ์คํํด์ผ ํฉ๋๋ค.
์์ํด ๋ณด์ญ์์ค. ์ผ๋ถ ์ฟผ๋ฆฌ๊ฐ ์ด๋น XNUMX๋ง ํ ๋ฏธ๋ง์ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ์๋ ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค. ์ด๋ ์ฐ๋ฆฌ์ ์ข์ ์ด๋ฆ๊ณผ ์ข์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ถ๋ช ์์ค๋ฝ๊ฒ ๋ง๋ญ๋๋ค. ์ด๊ฒ๋ง ๊ธ์งํ์. ์ค์ ๋ก ๋ ๊ฐ์ง ์ค์ ์ด ์์ต๋๋ค. ํ๋๋ ์ต์ ์คํ ์๋ - ์ด๋น ๋ผ์ธ ์, ์ด๋ ์ต์ ์คํ ์๋๋ฅผ ํ์ธํ๊ธฐ ์ ์๊ฐ ์ด๊ณผ๋ผ๊ณ ํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก XNUMX์ด์ ๋๋ค. ์ฆ, XNUMX์ด๊ฐ ๊ฐ๋ฅํ๋ฉฐ, ๋๋ฆฌ๋ค๋ฉด ์์ธ๋ฅผ ๋ฐ์์ํค๊ณ ์์ฒญ์ ์ค๋จํ๋ฉด ๋ฉ๋๋ค.
ํ ๋น๋๋ ์ค์ ํด์ผ ํฉ๋๋ค. ClickHouse์๋ ๋ฆฌ์์ค ์๋น๋ฅผ ๊ณ์ฐํ๋ ํ ๋น๋ ๊ธฐ๋ฅ์ด ๋ด์ฅ๋์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ถํํ๋ CPU, ๋์คํฌ์ ๊ฐ์ ํ๋์จ์ด ๋ฆฌ์์ค๊ฐ ์๋๋ผ ๋ ผ๋ฆฌ์ ๋ฆฌ์์ค, ์ฆ ์ฒ๋ฆฌ๋ ์์ฒญ ์, ์ฝ์ ๋ผ์ธ ๋ฐ ๋ฐ์ดํธ ์์ ๋๋ค. ์๋ฅผ ๋ค์ด XNUMX๋ถ ๋ด์ ์ต๋ XNUMX๊ฐ์ ์์ฒญ๊ณผ ์๊ฐ๋น XNUMX๊ฐ์ ์์ฒญ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
์ ์ค์ ํจ? ์ผ๋ถ ๋ถ์ ์ฟผ๋ฆฌ๋ ClickHouse ํด๋ผ์ด์ธํธ์์ ์ง์ ์๋์ผ๋ก ์ํ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๊ฒ์ด ์ ๋ ๊ฒ์ ๋๋ค. ํ์ง๋ง ํ์ฌ์ ๊ณ ๊ธ ๋ถ์๊ฐ๊ฐ ์๋ค๋ฉด ๊ทธ๋ค์ด ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๊ฒ ๋๋๋ฐ, ์คํฌ๋ฆฝํธ์ ์ค๋ฅ๊ฐ ์์ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์ค๋ฅ๋ก ์ธํด ์์ฒญ์ด ๋ฌดํ ๋ฃจํ๋ก ์คํ๋ฉ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ๊ฐ ์ฐ๋ฆฌ ์์ ์ ๋ณดํธํด์ผ ํ๋ ๊ฒ์ ๋๋ค.
ํ๋์ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ XNUMX๋ช
์ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๊ณตํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๊น?
๊ฐ์ ์์ ์ ๋งค์ฐ ํฐ ์์ฒญ์ ๋ฐ๊ธฐ๋ฅผ ์ํ๋ ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ์์ต๋๋ค. ์์ฒญ์ด ํฌ๊ณ ์์น์ ์ผ๋ก ์ ์ํ๊ฒ ์คํ๋์ง๋ง ๋์์ ์์ฒญ์ด ๋ง๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ๊ณ ํต์ค๋ฝ์ต๋๋ค. XNUMX๋ฒ ์ฐ์์ผ๋ก ๋์ฐฉํ ๋์ผํ ์์ฒญ์ ํ ๋ฒ ์คํํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ XNUMX๋ช ์ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๊ณตํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๊น?
๋ฌธ์ ๋ ์ค๊ฐ ๋ฐ์ดํฐ์ ์บ์๋ ์บ์ ๊ฒฐ๊ณผ๊ฐ ์๋ค๋ ์ ์ ๋๋ค. ์ด์ ์ฒด์ ์ ํ์ด์ง ์บ์๊ฐ ์์ด ๋์คํฌ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ์ฝ์ ์ ์์ง๋ง ์ํ๊น๊ฒ๋ ๋ฐ์ดํฐ๋ ์ฌ์ ํ ์์ถ ํด์ , ์ญ์ง๋ ฌํ ๋ฐ ์ฌ์ฒ๋ฆฌ๋ฉ๋๋ค.
์ค๊ฐ ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํ๊ฑฐ๋ ์ผ์ข ์ ๋๊ธฐ์ด์ ์ ์ฌํ ์ฟผ๋ฆฌ๋ฅผ ์ ๋ ฌํ๊ณ ๊ฒฐ๊ณผ ์บ์๋ฅผ ์ถ๊ฐํ์ฌ ์ด๋ฅผ ๋ฐฉ์งํ๊ณ ์ถ์ต๋๋ค. ํ์ฌ ์์ฒญ ์บ์๋ฅผ ์ถ๊ฐํ๋ ํ๋์ ํ ์์ฒญ์ด ๊ฐ๋ฐ ์ค์ ์์ง๋ง in ๋ฐ Join ์น์ ์ ํ์ ์ฟผ๋ฆฌ์๋ง ํด๋น๋ฉ๋๋ค. ์ฆ, ์๋ฃจ์ ์ด ๋ถ์์ ํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ๊ทธ๋ฐ ์ํฉ์ ์ง๋ฉดํด ์์ต๋๋ค. ํนํ ํ์ค์ ์ธ ์๋ ํ์ด์ง๋ฅผ ๋งค๊ธด ์ฟผ๋ฆฌ์ ๋๋ค. ๋ณด๊ณ ์๊ฐ ์๊ณ ์ฌ๋ฌ ํ์ด์ง๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ 10์ ์ ํํ๋ผ๋ ์์ฒญ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ๋์ผํ ๊ฒ์ด์ง๋ง 10,10์ ์ ํํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ ๋ค๋ฅธ ๋ค์ ํ์ด์ง. ๋ฌธ์ ๋ ์ ์ฐ๋ฆฌ๊ฐ ๋งค๋ฒ ์ด ๋ชจ๋ ๊ฒ์ ๊ณ์ฐํ๋๊ฐ ํ๋ ๊ฒ์ ๋๋ค. ํ์ง๋ง ์ด์ ๋ ํด๊ฒฐ์ฑ ๋ ์๊ณ , ํผํ ๋ฐฉ๋ฒ๋ ์์ต๋๋ค.
ClickHouse ์์ ์ฌ์ด๋์นด๋ก ๋ฐฐ์น๋๋ ๋์ฒด ์๋ฃจ์
์ด ์์ต๋๋ค.
ํค๋ฆด ์๋ฐ์ฝํ: ClickHouse Proxy์๋ ์๋ ์ ํ๊ธฐ์ ๊ฒฐ๊ณผ ์บ์๊ฐ ๋ด์ฅ๋์ด ์์ต๋๋ค. ๋น์ทํ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๊ณ ์์๊ธฐ ๋๋ฌธ์ ๋ง์ ์ค์ ์ด ์ด๋ฃจ์ด์ก์ต๋๋ค. ํ๋ก์๋ฅผ ์ฌ์ฉํ๋ฉด ์์ฒญ์ ๋๊ธฐ์ด์ ์ถ๊ฐํ์ฌ ์์ฒญ์ ์ ํํ๊ณ ์์ฒญ ์บ์๊ฐ ์ ์ง๋๋ ๊ธฐ๊ฐ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์์ฒญ์ด ์ค์ ๋ก ๋์ผํ ๊ฒฝ์ฐ Proxy๋ ์์ฒญ์ ์ฌ๋ฌ ๋ฒ ๋ณด๋ด์ง๋ง ClickHouse์๋ ํ ๋ฒ๋ง ์ด๋ํฉ๋๋ค.
Nginx์๋ ๋ฌด๋ฃ ๋ฒ์ ์๋ ์บ์๊ฐ ์์ผ๋ฉฐ ์ด๊ฒ๋ ์๋ํฉ๋๋ค. Nginx์๋ ์์ฒญ์ด ๋์์ ๋์ฐฉํ๋ฉด ์์ฒญ์ด ์๋ฃ๋ ๋๊น์ง ๋ค๋ฅธ ์์ฒญ์ ์๋๋ฅผ ๋ฆ์ถ๋ ์ค์ ๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ClickHouse Proxy์์๋ ์ค์ ์ด ํจ์ฌ ๋ ์ ์ํ๋ฉ๋๋ค. ์ด๋ ํนํ ClickHouse๋ฅผ ์ํด, ํนํ ์ด๋ฌํ ์์ฒญ์ ์ํด ์ ์๋์์ผ๋ฏ๋ก ๋ ์ ํฉํฉ๋๋ค. ์, ์ค์น๊ฐ ์ฝ์ต๋๋ค.
๋น๋๊ธฐ ์์
๊ณผ ๊ตฌ์ฒดํ๋ ๋ทฐ๋ ์ด๋ป์ต๋๊น?
์ฌ์ ์์ง ์์ ์ด ๋น๋๊ธฐ์์ด๋ผ๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋จผ์ ๋ฐ์ดํฐ๊ฐ ๊ธฐ๋ก๋ ๋ค์ ์ถ์๋ฉ๋๋ค. ์ผ๋ถ ์ง๊ณ๊ฐ ํฌํจ๋ ๊ตฌ์ฒดํ๋ ํ๋ธ๋ฆฟ์ด ๊ธฐํธ ์๋์ ์๋ ๊ฒฝ์ฐ ๋ณต์ ๋ณธ์ด ํด๋น ๊ธฐํธ์ ๊ธฐ๋ก๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ณต์กํ ๋ ผ๋ฆฌ๊ฐ ์์ผ๋ฉด ๋ฐ์ดํฐ๊ฐ ์ค๋ณต๋ฉ๋๋ค. ์ด์ ๋ํด ๋ฌด์์ ํ ์ ์๋์?
๋ถ๋ช ํ ํด๊ฒฐ์ฑ ์ด ์์ต๋๋ค. ์ฆ, ๋น๋๊ธฐ์ ์ถ์ ์์ ์ค์ ํน์ ํด๋์ค์ matview์ ๋ํ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๊ตฌํํ๋ ๊ฒ์ ๋๋ค. ๋น์ทํ ๊ธฐ๋ฅ์ ๊ตฌํํ ๋ฌ์ฑ ์ด๋ ๊ณํ์ด ์๋์?
์ค๋ณต ์ ๊ฑฐ๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํดํ๋ ๊ฒ์ ๊ฐ์น๊ฐ ์์ต๋๋ค. ์ง๊ธ ๋ง์๋๋ฆด ๋ด์ฉ์ ์ง๋ฌธ๊ณผ ๊ด๋ จ์ด ์์ง๋ง, ๊ธฐ์ตํด ๋ ๋งํ ๊ฒฝ์ฐ๋ฅผ ๋๋นํด์ ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค.
๋ณต์ ๋ ํ ์ด๋ธ์ ์ฝ์ ํ๋ฉด ์ฝ์ ๋ ์ ์ฒด ๋ธ๋ก์ ๋ํ ์ค๋ณต ์ ๊ฑฐ๊ฐ ์ํ๋ฉ๋๋ค. ๋์ผํ ์์ ๋์ผํ ํ์ด ํฌํจ๋ ๋์ผํ ๋ธ๋ก์ ๋์ผํ ์์๋ก ๋ค์ ์ฝ์ ํ๋ฉด ๋ฐ์ดํฐ๊ฐ ์ค๋ณต ์ ๊ฑฐ๋ฉ๋๋ค. ์ฝ์ ์ ๋ํ ์๋ต์ผ๋ก "Ok"๋ฅผ ๋ฐ๊ฒ ๋์ง๋ง ์ค์ ๋ก๋ ํ๋์ ๋ฐ์ดํฐ ํจํท์ด ๊ธฐ๋ก๋๋ฉฐ ์ค๋ณต๋์ง ์์ต๋๋ค.
์ด๋ ํ์ค์ฑ์ ์ํด ํ์ํฉ๋๋ค. ์ฝ์ ์ค์ "ํ์ธ"์ด ํ์๋๋ฉด ๋ฐ์ดํฐ๊ฐ ์ฝ์ ๋ ๊ฒ์ ๋๋ค. ClickHouse์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ์ฝ์ ๋์ง ์์์ผ๋ฏ๋ก ์ฝ์ ์ ๋ฐ๋ณตํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค. ํ์ง๋ง ์ฝ์ ๋์ค ์ฐ๊ฒฐ์ด ๋์ด์ง๋ฉด ๋ฐ์ดํฐ๊ฐ ์ฝ์ ๋์๋์ง ์ฌ๋ถ๋ฅผ ์ ์ ์์ต๋๋ค. ์ ์ผํ ์ต์ ์ ์ฝ์ ์ ๋ค์ ๋ฐ๋ณตํ๋ ๊ฒ์ ๋๋ค. ๋ฐ์ดํฐ๊ฐ ์ค์ ๋ก ์ฝ์ ๋์๋ค๊ฐ ๋ค์ ์ฝ์ ๋ ๊ฒฝ์ฐ ๋ธ๋ก ์ค๋ณต ์ ๊ฑฐ๊ฐ ์ํ๋ฉ๋๋ค. ์ด๋ ์ค๋ณต์ ๋ฐฉ์งํ๋ ๋ฐ ํ์ํฉ๋๋ค.
๋ํ ๊ตฌ์ฒดํ๋ ๋ทฐ์์ ์๋ํ๋ ๋ฐฉ์๋ ์ค์ํฉ๋๋ค. ๋ฐ์ดํฐ๊ฐ ๊ธฐ๋ณธ ํ ์ด๋ธ์ ์ฝ์ ๋ ๋ ์ค๋ณต ์ ๊ฑฐ๋ ๊ฒฝ์ฐ ๊ตฌ์ฒดํ๋ ๋ทฐ์๋ ๋ค์ด๊ฐ์ง ์์ต๋๋ค.
์ด์ ์ง๋ฌธ์ ๋ํด. ๊ฐ๋ณ ๋ผ์ธ์ ์ค๋ณต์ ๋ น์ํ๊ธฐ ๋๋ฌธ์ ์ํฉ์ด ๋ ๋ณต์กํฉ๋๋ค. ์ฆ, ์ ์ฒด ํฉ์ด ๋ณต์ ๋๋ ๊ฒ์ด ์๋๋ผ ํน์ ๋ผ์ธ์ด ๋ณต์ ๋๋ฉฐ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ถ๊ดด๋ฉ๋๋ค. ์ค์ ๋ก ๋ฐ์ดํฐ๋ ๊ธฐ๋ณธ ํ ์ด๋ธ์์ ์ถ์๋์ง๋ง ์ถ์๋์ง ์์ ๋ฐ์ดํฐ๋ ๊ตฌ์ฒดํ๋ ๋ทฐ๋ก ์ด๋ํ๋ฉฐ ๋ณํฉ ์ค์ ๊ตฌ์ฒดํ๋ ๋ทฐ์๋ ์๋ฌด ์ผ๋ ์ผ์ด๋์ง ์์ต๋๋ค. ๊ตฌ์ฒดํ๋ ๋ทฐ๋ ์ฝ์ ํธ๋ฆฌ๊ฑฐ์ ์ง๋์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ค๋ฅธ ์์ ์ค์๋ ์ถ๊ฐ ์์ ์ด ๋ฐ์ํ์ง ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์๋ ๋น์ ์ ํ๋ณตํ๊ฒ ํด์ค ์ ์์ด์. ์ด ๊ฒฝ์ฐ์ ๋ํ ๊ตฌ์ฒด์ ์ธ ํด๊ฒฐ์ฑ ์ ์ฐพ์ผ๋ฉด ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ๊ตฌ์ฒดํ๋ ๋ทฐ์์ ์ฌ์ํ ์ ์์ผ๋ฉฐ ์ค๋ณต ์ ๊ฑฐ ๋ฐฉ๋ฒ๋ ๋์ผํ ๋ฐฉ์์ผ๋ก ์๋ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ถํํ๋ ํญ์ ๊ทธ๋ฐ ๊ฒ์ ์๋๋๋ค. ์ง๊ณํ๋ ๊ฒฝ์ฐ์๋ ์๋ํ์ง ์์ต๋๋ค.
ํค๋ฆด ์๋ฐ์ฝํ: ์๋ ์๋ ๋ชฉ๋ฐ ๊ณต์ฌ๋ ํ์ด์. ๊ด๊ณ ๋ ธ์ถ์๊ฐ ์๋ค๋ ๋ฌธ์ ๊ฐ ์์๋๋ฐ, ์ค์๊ฐ์ผ๋ก ๋ณด์ฌ๋๋ฆด ์ ์๋ ๋ฐ์ดํฐ๋ ์๋๋ฐ, ์ด๊ฑด ๊ทธ๋ฅ ๋ ธ์ถ์์ผ ๋ฟ์ ๋๋ค. ์ค๋ณต๋๋ ๊ฒฝ์ฐ๋ ๊ฑฐ์ ์์ง๋ง, ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋ฉด ์ด์จ๋ ๋์ค์ ์ถ์ํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ณต์ ํ ์ ์๋ ๊ฒ๋ค์ด ์์์ต๋๋ค. ํด๋ฆญ ์์ ์ด ๋ชจ๋ ์ด์ผ๊ธฐ๊ฐ ๊ทธ๋ฌ์ต๋๋ค. ํ์ง๋ง ๋๋ ๋ํ ๊ฑฐ์ ์ฆ์ ๋ณด์ฌ์ฃผ๊ณ ์ถ์์ต๋๋ค.
๊ตฌ์ฒดํ๋ ๋ทฐ๋ ์ด๋ป๊ฒ ๋ง๋ค์ด์ก๋์? ์ง์ ์์ฑ๋ ๋ทฐ๊ฐ ์์์ต๋๋ค. ์ฆ, ์์ ๋ฐ์ดํฐ์ ๊ธฐ๋ก๋๊ณ ๋ทฐ์ ๊ธฐ๋ก๋์์ต๋๋ค. ์ด๋ค ์์ ์์๋ ๋ฐ์ดํฐ๊ฐ ์ ํํ์ง ์๊ฑฐ๋ ์ค๋ณต๋๋ ๋ฑ์ ํ์์ด ๋ฐ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ ์ด๋ธ์ ๋ ๋ฒ์งธ ๋ถ๋ถ์ด ์๋๋ฐ, ์ฌ๊ธฐ์๋ ๊ตฌ์ฒดํ๋ ๋ทฐ์ ์์ ํ ๋์ผํ๊ฒ ๋ณด์ ๋๋ค. ์ฆ, ๊ตฌ์กฐ๊ฐ ์์ ํ ๋์ผํฉ๋๋ค. ๋๋๋ก ์ฐ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ๊ณ์ฐํ๊ณ , ์ค๋ณต ์์ด ๋ฐ์ดํฐ๋ฅผ ๊ณ์ฐํ๊ณ , ํด๋น ํ ์ด๋ธ์ ์๋๋ค.
์ฐ๋ฆฌ๋ API๋ฅผ ์ดํด๋ดค์ต๋๋ค. ์ด๋ ClickHouse์์ ์๋์ผ๋ก ์๋ํ์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ API๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ํ ์ด๋ธ์ ๋ง์ง๋ง์ผ๋ก ์ถ๊ฐ๋ ๋ ์ง๊ฐ ์์ ๋ ์ฌ๋ฐ๋ฅธ ๋ฐ์ดํฐ๊ฐ ์ด๋ฏธ ๊ณ์ฐ๋์์์ ๋ณด์ฅํ๊ณ ํ ํ ์ด๋ธ๊ณผ ๋ค๋ฅธ ํ ์ด๋ธ์ ์์ฒญํฉ๋๋ค. ํ๋์ ์์ฒญ์์๋ ํน์ ์๊ฐ๊น์ง ์ ํํ๊ณ ๋ค๋ฅธ ํ๋์์๋ ์์ง ๊ณ์ฐ๋์ง ์์ ์๊ฐ์ ๊ฐ์ ธ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์๋ํ์ง๋ง ClickHouse๋ง์ผ๋ก๋ ์๋ํ์ง ์์ต๋๋ค.
๋ถ์๊ฐ์ฉ, ์ฌ์ฉ์์ฉ ๋ฑ ์ผ์ข ์ API๊ฐ ์๋ ๊ฒฝ์ฐ ์์น์ ์ผ๋ก ์ด๋ ์ต์ ์ ๋๋ค. ๋น์ ์ ํญ์ ์ธ๊ณ ์๊ณ , ํญ์ ์ธ๊ณ ์์ต๋๋ค. ์ด ์์ ์ ํ๋ฃจ์ ํ ๋ฒ ๋๋ ๋ค๋ฅธ ์๊ฐ์ ์ํํ ์ ์์ต๋๋ค. ํ์ํ์ง ์๊ณ ์ค์ํ์ง ์์ ๋ฒ์๋ฅผ ์ค์ค๋ก ์ ํํฉ๋๋ค.
ClickHouse์๋ ๋ง์ ๋ก๊ทธ๊ฐ ์์ต๋๋ค. ์๋ฒ์ ์ผ์ด๋๋ ๋ชจ๋ ์ผ์ ํ ๋์ ์ด๋ป๊ฒ ๋ณผ ์ ์๋์?
ClickHouse์๋ ๋งค์ฐ ๋ง์ ์์ ๋ค์ํ ๋ก๊ทธ๊ฐ ์์ผ๋ฉฐ ์ด ์ซ์๋ ์ ์ ๋์ด๋๊ณ ์์ต๋๋ค. ์ ๋ฒ์ ์์๋ ์ผ๋ถ ๊ธฐ๋ฅ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ด ์์ผ๋ฉฐ, ์ด์ ๋ฒ์ ์์๋ ์ ๋ฐ์ดํธํ ๋ ํ์ฑํํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ ์๊ฐ ์ ์ ๋ ๋ง์์ง๊ณ ์์ต๋๋ค. ๊ถ๊ทน์ ์ผ๋ก, ์ผ์ข ์ ์์ฝ ๋์๋ณด๋๋ฅผ ํตํด ํ์ฌ ๋ด ์๋ฒ์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ํ์ธํ๊ณ ์ถ์ต๋๋ค.
์ด๋ฌํ ๋ก๊ทธ๋ฅผ ์์ ํ์ผ๋ก ํ์ํ๋ ๊ธฐ์ฑ ๋์๋ณด๋์ ์ผ๋ถ ๊ธฐ๋ฅ์ ์ง์ํ๋ ClickHouse ํ ๋๋ ์น๊ตฌ์ ํ์ด ์์ต๋๊น? ๊ถ๊ทน์ ์ผ๋ก ClickHouse์์ ๋ก๊ทธ๋ฅผ ๋ณด๋ ๊ฒ๋ง์ผ๋ก๋ ์ข์ต๋๋ค. ํ์ง๋ง ์ด๋ฏธ ๋์๋ณด๋ ํํ๋ก ์ค๋น๋์ด ์๋ค๋ฉด ์ ๋ง ๋ฉ์ง ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ ์ด๊ฒ์์ ํฅ์ ์ป์ ๊ฒ์ ๋๋ค.
ํ์คํ๋์ง๋ ์์์ง๋ง ๋์๋ณด๋๊ฐ โโ์์ต๋๋ค. ์ฐ๋ฆฌ ํ์ฌ์์๋ ์ฝ 60๊ฐ ํ์ด ClickHouse๋ฅผ ์ฌ์ฉํ๊ณ ์๋๋ฐ, ๊ฐ์ฅ ์ด์ํ ์ ์ ๊ทธ๋ค ์ค ๋ง์ ํ์ด ์ค์ค๋ก ๋ง๋ ๋์๋ณด๋๋ฅผ ๊ฐ์ง๊ณ ์๊ณ ์ฝ๊ฐ์ฉ ๋ค๋ฅธ ๋์๋ณด๋๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ผ๋ถ ํ์ ๋ด๋ถ Yandex.Cloud ์ค์น๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํ์ํ ๋ณด๊ณ ์๋ ์๋์ง๋ง ์ผ๋ถ ๊ธฐ์ฑ ๋ณด๊ณ ์๊ฐ ์์ต๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์ ์์ ์ ๊ฒ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
Metrica์ ๋๋ฃ๋ค์ Grafana์ ์์ฒด ๋์๋ณด๋๋ฅผ ๊ฐ๊ณ ์๊ณ ์ ๋ ๊ทธ๋ค์ ํด๋ฌ์คํฐ๋ฅผ ์ํ ์์ฒด ๋์๋ณด๋๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋๋ serif ์บ์์ ๋ํ ์บ์ ์ ์ค๊ณผ ๊ฐ์ ๊ฒ์ ๋ณด๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ฑ ์ด๋ ค์ด ์ ์ ์ฐ๋ฆฌ๊ฐ ๋ค๋ฅธ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๋๋ค. ์ ๋ Graphite-web์ด๋ผ๋ ์์ฃผ ์ค๋๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋์๋ณด๋๋ฅผ ๋ง๋ค์์ต๋๋ค. ๊ทธ๋ ์์ ํ ๋ชป ์๊ฒผ์ต๋๋ค. Grafana๊ฐ ์๋ง๋ ๋ ํธ๋ฆฌํ๊ณ ์๋ฆ๋ค์ธ ๊ฒ ๊ฐ์ง๋ง ์ ๋ ์ฌ์ ํ ์ด ๋ฐฉ์์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
๋์๋ณด๋์ ๊ธฐ๋ณธ ์ฌํญ์ ๋์ผํฉ๋๋ค. ํด๋ฌ์คํฐ์ ๋ํ ์์คํ ์ธก์ ํญ๋ชฉ์ CPU, ๋ฉ๋ชจ๋ฆฌ, ๋์คํฌ, ๋คํธ์ํฌ์ ๋๋ค. ๊ธฐํ - ๋์ ์์ฒญ ์, ๋์ ๋ณํฉ ์, ์ด๋น ์์ฒญ ์, MergeTree ํ ์ด๋ธ ํํฐ์ ์ ์ต๋ ์ฒญํฌ ์, ๋ณต์ ์ง์ฐ, ๋ณต์ ๋๊ธฐ์ด ํฌ๊ธฐ, ์ด๋น ์ฝ์ ๋ ํ ์, ์ด๋น ์ฝ์ ๋ ๋ธ๋ก ์. ์ด๋ ๋ก๊ทธ๊ฐ ์๋ ๋ฉํธ๋ฆญ์์ ์ป์ ์ ๋ถ์ ๋๋ค.
๋ธ๋ผ๋๋ฏธ๋ฅด ์ฝ๋ก๋ฐ์ํ: Alexey, ์กฐ๊ธ ์์ ํ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ผํ๋๊ฐ ์์ต๋๋ค. Grafana์๋ ClickHouse๋ผ๋ ๋ฐ์ดํฐ ์์ค๊ฐ ์์ต๋๋ค. ์ฆ, Grafana์์ ClickHouse๋ก ์ง์ ์์ฒญํ ์ ์์ต๋๋ค. ClickHouse์๋ ๋ก๊ทธ๊ฐ ํฌํจ๋ ํ ์ด๋ธ์ด ์์ผ๋ฉฐ ์ด๋ ๋ชจ๋ ์ฌ๋์๊ฒ ๋์ผํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก Grafana์์ ์ด ๋ก๊ทธ ํ ์ด๋ธ์ ์ก์ธ์คํ์ฌ ๋ด ์๋ฒ๊ฐ ๋ณด๋ด๋ ์์ฒญ์ ํ์ธํ๊ณ ์ถ์ต๋๋ค. ์ด๋ฐ ๋์๋ณด๋๊ฐ โโ์์ผ๋ฉด ์ ๋ง ์ข์ ๊ฒ ๊ฐ์์.
์ ๊ฐ ์ง์ ์์ ๊ฑฐ๋ฅผ ํ์ด์. ํ์ง๋ง ์ง๋ฌธ์ด ์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ํ์คํ๋์ด ์๊ณ ๋ชจ๋ ์ฌ๋์ด Grafana๋ฅผ ์ฌ์ฉํ๋ค๋ฉด Yandex์๋ ์ ๊ทธ๋ฌํ ๊ณต์ ๋์๋ณด๋๊ฐ โโ์๋์?
ํค๋ฆด ์๋ฐ์ฝํ: ์ค์ ๋ก ClickHouse๋ก ์ด๋ํ๋ ๋ฐ์ดํฐ ์์ค๋ ์ด์ Altinity๋ฅผ ์ง์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ ์ด๋๋ฅผ ํ๊ณ ๋๊ตฌ๋ฅผ ๋ฐ์ด์ผ ํ๋์ง์ ๋ํ ๋ฒกํฐ๋ฅผ ์ ๊ณตํ๊ณ ์ถ์ต๋๋ค. Yandex๊ฐ ์ฌ์ ํ ClickHouse๋ฅผ ๋ง๋ค๊ณ ์ฃผ๋ณ ์ด์ผ๊ธฐ๋ฅผ ๋ง๋ค์ง ์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ค์๊ฒ ๋ฌผ์ด๋ณผ ์ ์์ต๋๋ค. Altinity๋ ํ์ฌ ClickHouse๋ฅผ ํ๋ณดํ๋ ์ฃผ์ ํ์ฌ์ ๋๋ค. ๊ทธ๋ค์ ๊ทธ๋ฅผ ๋ฒ๋ฆฌ์ง ์๊ณ ์ง์งํ ๊ฒ์ด๋ค. ์์น์ ์ผ๋ก Grafana ์น์ฌ์ดํธ์ ๋์๋ณด๋๋ฅผ ์ ๋ก๋ํ๋ ค๋ฉด ๋์๋ณด๋๋ฅผ ๋ฑ๋กํ๊ณ ์ ๋ก๋ํ๊ธฐ๋ง ํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ํน๋ณํ ๋ฌธ์ ๋ ์์ต๋๋ค.
์๋ ์ธ์ด ๋ฐ๋ก๋น๋ํ: ์ง๋ ํด ClickHouse์๋ ๋ง์ ์ฟผ๋ฆฌ ํ๋กํ์ผ๋ง ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. ๋ฆฌ์์ค ์ฌ์ฉ๋์ ๋ํ ๊ฐ ์์ฒญ์ ๋ํ ์ธก์ ํญ๋ชฉ์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ต๊ทผ์๋ ์ฟผ๋ฆฌ๊ฐ ๋งค ๋ฐ๋ฆฌ์ด๋ง๋ค ์๋น๋๋ ์์น๋ฅผ ํ์ธํ๊ธฐ ์ํด ๋ ๋ฎ์ ์์ค์ ์ฟผ๋ฆฌ ํ๋กํ์ผ๋ฌ๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ํ์ง๋ง ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ค๋ฉด ์ฝ์ ํด๋ผ์ด์ธํธ๋ฅผ ์ด๊ณ ์์ฒญ์ ์ ๋ ฅํด์ผ ํ๋๋ฐ, ํญ์ ์์ด๋ฒ๋ฆฌ๊ณค ํฉ๋๋ค. ์ด๋๊ฐ์ ์ ์ฅํ๋๋ฐ ์ ํํ ์ด๋์ ์๋์ง ๊ณ์ ์์ด๋ฒ๋ฆฌ๋ค์.
์ฌ๊ธฐ์ ์ฟผ๋ฆฌ ํด๋์ค๋ณ๋ก ๊ทธ๋ฃนํ๋ ๋ฌด๊ฑฐ์ด ์ฟผ๋ฆฌ๊ฐ ์๋ค๊ณ ์๋ ค์ฃผ๋ ๋๊ตฌ๊ฐ ์์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค. ํ๋๋ฅผ ๋๋ ๋๋ ๊ทธ๋์ ๋ฌด๊ฒ๋ค๊ณ ํ๋๋ผ๊ตฌ์. ์ง๊ธ์ ๊ทธ๋ฐ ํด๊ฒฐ์ฑ ์ด ์์ต๋๋ค. ์ฌ๋๋ค์ด ์ ์๊ฒ "Grafana์ฉ์ผ๋ก ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ง ๋์๋ณด๋๊ฐ โโ์๋์?"๋ผ๊ณ ๋ฌผ์ผ๋ฉด ์ ๋ ์ด๋ ๊ฒ ๋งํฉ๋๋ค. "Grafana ์น์ฌ์ดํธ์ ๊ฐ๋ฉด "Dashboards" ์ปค๋ฎค๋ํฐ๊ฐ ์๊ณ ๋์๋ณด๋๋ ์์ต๋๋ค. Dimka์ ๋์๋ณด๋๋ Kostyan์ ๋์๋ณด๋์ ๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๋ฌด์์ธ์ง ๋ชจ๋ฆ ๋๋ค. ๋๋ ๊ทธ๊ฒ์ ์ง์ ์ฌ์ฉํ์ง ์์์ต๋๋ค.โ
์๋ฒ๊ฐ OOM์ ์ถฉ๋ํ์ง ์๋๋ก ๋ณํฉ์ ์ํฅ์ ๋ฏธ์น๋ ๋ฐฉ๋ฒ์ ๋ฌด์์
๋๊น?
ํ ์ด๋ธ์ด ์๋๋ฐ ํ ์ด๋ธ์ ํํฐ์ ์ด ํ๋๋ง ์๋๋ฐ ReplacingMergeTree์ ๋๋ค. ๋๋ XNUMX๋ ๋์ ๊ทธ๊ฒ์ ๋ฐ์ดํฐ๋ฅผ ์จ์์ต๋๋ค. ๋ณ๊ฒฝํ๊ณ ์ผ๋ถ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํด์ผ ํ์ต๋๋ค.
์ด๋ ๊ฒ ํ๋๋ฐ ์ด ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๋์ ํด๋ฌ์คํฐ์ ์๋ ๋ชจ๋ ์๋ฒ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ชจ๋ ์๋ชจ๋์ด ํด๋ฌ์คํฐ์ ์๋ ๋ชจ๋ ์๋ฒ๊ฐ OOM ์ํ๊ฐ ๋์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๊ทธ๋ค์ ๋ชจ๋ ํจ๊ป ์ผ์ด๋ ๋์ผํ ์์ , ์ด ๋ฐ์ดํฐ ๋ธ๋ก์ ๋ณํฉํ๊ธฐ ์์ํ๊ณ ๋ค์ OOM์ ๋น ์ก์ต๋๋ค. ๊ทธ๋ฌ๋ค๊ฐ ๊ทธ๋ค์ ๋ค์ ์ผ์ด๋ฌ๋ค๊ฐ ๋ค์ ๋์ด์ก์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์ผ์ ๋ฉ์ถ์ง ์์์ต๋๋ค.
๊ทธ๋ฌ๋ค๊ฐ ์ด๊ฒ์ด ์ค์ ๋ก ์ฌ๋๋ค์ด ๊ณ ์น ๋ฒ๊ทธ๋ผ๋ ๊ฒ์ด ๋ฐํ์ก์ต๋๋ค. ์ ๋ง ๋ฉ์ง๋ค์. ์ ๋ง ๊ฐ์ฌํฉ๋๋ค. ํ์ง๋ง ์์ฌ๋ฌผ์ด ๋จ์์ต๋๋ค. ์ด์ ํ ์ด๋ธ์ ์ด๋ค ์ข ๋ฅ์ ๋ณํฉ์ ๋ง๋๋ ๊ฒ์ ๋ํด ์๊ฐํ ๋ ์ง๋ฌธ์ด ์์ต๋๋ค. ์ ์ด๋ฌํ ๋ณํฉ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๊น? ์๋ฅผ ๋ค์ด ํ์ํ RAM ์ ๋๋ ์์น์ ์ผ๋ก ์ด ํน์ ํ ์ด๋ธ์ ์ฒ๋ฆฌํ ์์ผ๋ก ์ ํํฉ๋๋ค.
"Metrics"๋ผ๋ ํ ์ด๋ธ์ด ์์ต๋๋ค. ๋ ๊ฐ์ ์ค๋ ๋๋ก ์ฒ๋ฆฌํด ์ฃผ์ธ์. XNUMX~XNUMX๊ฐ์ ๋ณํฉ์ ๋ณ๋ ฌ๋ก ์์ฑํ ํ์๋ ์์ผ๋ฉฐ XNUMX๊ฐ๋ก ์ํํฉ๋๋ค. XNUMX๊ฐ์ ๋ํ ๋ฉ๋ชจ๋ฆฌ๋ ์ถฉ๋ถํ๋ค๊ณ ์๊ฐํ์ง๋ง XNUMX๊ฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ์๋ ๋ถ์กฑํ ์๋ ์์ต๋๋ค. ์ ๋๋ ค์์ด ๋จ์ ์์ต๋๊น? ํ ์ด๋ธ์ด ์ปค์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์ธ์ ๊ฐ๋ ์์น์ ์ผ๋ก ๋ ์ด์ ๋ฒ๊ทธ๋ก ์ธํ ๊ฒ์ด ์๋๋ผ ๋ฐ์ดํฐ๊ฐ ๋๋ฌด ๋ง์ด ๋ณ๊ฒฝ๋์ด ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ถฉ๋ถํ์ง ์์ ์ํฉ์ ์ง๋ฉดํ๊ฒ ๋ ๊ฒ์ ๋๋ค. ์ฌ๊ธฐ๋ ์ฌ๋. ๊ทธ๋ฐ ๋ค์ ๋ณํฉํ ๋ ์๋ฒ๊ฐ OOM์ ์ถฉ๋ํฉ๋๋ค. ๊ฒ๋ค๊ฐ ๋์ฐ๋ณ์ด๋ฅผ ์ทจ์ํ ์๋ ์์ง๋ง Merji๋ ๋ ์ด์ ์กด์ฌํ์ง ์์ต๋๋ค.
๋ณํฉํ ๋ RAM์ ์์ ํ๋์ ์์ ๋ฒ์์ ๋ฐ์ดํฐ์๋ง ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ๋ณํฉํ ๋ ์๋ฒ๊ฐ OOM์ ๋น ์ง์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ์ ์์ ๊ด๊ณ์์ด ๋ชจ๋ ๊ฒ์ด ์ ๋ ๊ฒ์ ๋๋ค.
๋ธ๋ผ๋๋ฏธ๋ฅด ์ฝ๋ก๋ฐ์ํ: ๊ด์ฐฎ์. ์ฌ๊ธฐ์๋ ๋ฒ๊ทธ๊ฐ ์์ ๋ ํ ์ ๋ฒ์ ์ ์ง์ ๋ค์ด๋ก๋ํ๊ณ ํํฐ์ ์ด ๋ง์ ์์ ํ ์ด๋ธ์ธ ๋ค๋ฅธ ํ ์ด๋ธ์์ ๋น์ทํ ์์ ์ ์ํํ ์๊ฐ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ณํฉ ์ค์ ์๋ฒ์์ ์ฝ 100GB์ RAM์ด ์๋ชจ๋์์ต๋๋ค. 150๊ฐ ์ ์ , 100๊ฐ ๋จน์, 50GB ์๋์ฐ๊ฐ ๋จ์์์ด์ OOM์ ๋น ์ง์ง ์์์ต๋๋ค.
์ค์ ๋ก 100GB์ RAM์ ์๋นํ๋ ๊ฒฝ์ฐ OOM์ ๋น ์ง์ง ์๋๋ก ํ์ฌ ๋ณดํธํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ๊ฐ์๊ธฐ ๋ณํฉ์ RAM์ด ๋ถ์กฑํด์ง๋ฉด ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น?
์๋ ์ธ์ด ๋ฐ๋ก๋น๋ํ: ํนํ ๋ณํฉ์ ์ํ RAM ์๋น๊ฐ ์ ํ๋์ง ์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ๋ฒ์งธ ๋ฌธ์ ๋ ์ด๋ค ์ข ๋ฅ์ ๋ณํฉ์ด ํ ๋น๋๋ฉด ๋ณต์ ๋ก๊ทธ์ ๊ธฐ๋ก๋๊ธฐ ๋๋ฌธ์ ๋ฐ๋์ ์คํํด์ผ ํ๋ค๋ ์ ์ด๋ค. ๋ณต์ ๋ก๊ทธ๋ ๋ณต์ ๋ณธ์ ์ผ๊ด๋ ์ํ๋ก ๋ง๋๋ ๋ฐ ํ์ํ ์์ ์ ๋๋ค. ์ด ๋ณต์ ๋ก๊ทธ๋ฅผ ๋กค๋ฐฑํ๋ ์๋ ์กฐ์์ ์ํํ์ง ์๋ ๊ฒฝ์ฐ ๋ณํฉ์ ์ด๋ค ๋ฐฉ์์ผ๋ก๋ ์ํ๋์ด์ผ ํฉ๋๋ค.
๋ฌผ๋ก "๋ง์ผ์ ๊ฒฝ์ฐ" OOM์ผ๋ก๋ถํฐ ๋ณดํธํ๋ RAM ์ ํ์ ๋๋ ๊ฒ์ ๋ถํ์ํ ์ผ์ด ์๋๋๋ค. ๋ณํฉ์ด ์๋ฃ๋๋ ๋ฐ ๋์์ด ๋์ง ์๊ณ ๋ค์ ์์๋์ด ํน์ ์๊ณ๊ฐ์ ๋๋ฌํ๊ณ ์์ธ๊ฐ ๋ฐ์ํ ๋ค์ ๋ค์ ์์๋ฉ๋๋ค. ์ด๋ก ์ธํด ์ข์ ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์์น์ ์ผ๋ก๋ ์ด๋ฌํ ์ ํ์ ๋์ ํ๋ ๊ฒ์ด ์ ์ฉํ ๊ฒ์ ๋๋ค.
ClickHouse์ฉ Golang ๋๋ผ์ด๋ฒ๋ ์ด๋ป๊ฒ ๊ฐ๋ฐ๋๋์?
Kirill Shvakov๊ฐ ์์ฑํ Golang ๋๋ผ์ด๋ฒ๋ ์ด์ ClickHouse ํ์์ ๊ณต์์ ์ผ๋ก ์ง์๋ฉ๋๋ค. ๊ทธ
ClickHouse ์ ์ฅ์์์ , ๊ทธ๋ ์ด์ ํฌ๊ณ ์ง์ง์ ๋๋ค.์์ ๋ฉ๋ชจ. ๋ฌดํํ ์ง์์ ์ ์์ ์ธ ํํ๋ฅผ ๋ด์ ํ๋ฅญํ๊ณ ์ฌ๋๋ฐ๋ ์ ์ฅ์๊ฐ ์์ต๋๋ค. ๋ฐ๋ก Vertica์ ๋๋ค. ๋ํ Vertica ๊ฐ๋ฐ์๊ฐ ์ง์ํ๋ ์์ฒด ๊ณต์ Python ๋๋ผ์ด๋ฒ๋ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์คํ ๋ฆฌ์ง ๋ฒ์ ๊ณผ ๋๋ผ์ด๋ฒ ๋ฒ์ ์ด ์๋นํ ๊ทน์ ์ผ๋ก ๊ฐ๋ผ์ง๋ ์ผ์ด ์ฌ๋ฌ ๋ฒ ๋ฐ์ํ์ผ๋ฉฐ ์ด๋ ์์ ์์ ๋๋ผ์ด๋ฒ๊ฐ ์๋์ ๋ฉ์ท์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ๋ฒ์งธ ์์ . ์ด ๊ณต์ ๋๋ผ์ด๋ฒ์ ๋ํ ์ง์์ "๋ํ" ์์คํ ์ ์ํด ์ํ๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฌธ์ ๋ฅผ ์์ฑํ๋ฉด ์์ํ ์ค๋จ๋ฉ๋๋ค.
๋ ๊ฐ์ง ์ง๋ฌธ์ด ์์ต๋๋ค. ์ด์ Kirill์ Golang ๋๋ผ์ด๋ฒ๋ Golang์์ ClickHouse์ ํต์ ํ๋ ๊ฑฐ์ ๊ธฐ๋ณธ ๋ฐฉ๋ฒ์ ๋๋ค. ๋๊ตฐ๊ฐ๊ฐ ๊ทธ๋ฐ ์์ผ๋ก ์ข์ํ๊ธฐ ๋๋ฌธ์ ์ฌ์ ํ http ์ธํฐํ์ด์ค๋ฅผ ํตํด ํต์ ํ์ง ์๋ ํ. ์ด ๋๋ผ์ด๋ฒ์ ๊ฐ๋ฐ์ ์ด๋ป๊ฒ ์งํ๋๋์? ์ ์ฅ์ ์์ฒด์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ๊ณผ ๋๊ธฐํ๋ฉ๋๊น? ๊ทธ๋ฆฌ๊ณ ๋ฌธ์ ๋ฅผ ๊ณ ๋ คํ๋ ์ ์ฐจ๋ ๋ฌด์์ ๋๊น?
ํค๋ฆด ์๋ฐ์ฝํ: ์ฒซ ๋ฒ์งธ๋ ๋ชจ๋ ๊ฒ์ด ๊ด๋ฃ์ ์ผ๋ก ์กฐ์ง๋๋ ๋ฐฉ์์ ๋๋ค. ์ด ์ ์ ๋ ผ์๋์ง ์์์ผ๋ฏ๋ก ๋ต๋ณ ํ ๊ฒ์ด ์์ต๋๋ค.
๋ฌธ์ ์ ๋ํ ์ง๋ฌธ์ ๋๋ตํ๋ ค๋ฉด ๋๋ผ์ด๋ฒ์ ๋ํ ์ฝ๊ฐ์ ๊ธฐ๋ก์ด ํ์ํฉ๋๋ค. ์ ๋ ๋ฐ์ดํฐ๊ฐ ๋ง์ ํ์ฌ์์ ์ผํ์ต๋๋ค. ์ด๋๊ฐ์ ์ ์ฅํด์ผ ํ๋ ์๋ง์ ์ด๋ฒคํธ๊ฐ ํฌํจ๋ ๊ด๊ณ ์คํผ๋์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ์๊ฐ ClickHouse๊ฐ ๋ํ๋ฌ์ต๋๋ค. ๋ฐ์ดํฐ๋ก ์ฑ์ ๊ณ ์ฒ์์๋ ๋ชจ๋ ๊ฒ์ด ๊ด์ฐฎ์์ง๋ง ClickHouse๊ฐ ์ถฉ๋ํ์ต๋๋ค. ๊ทธ ์๊ฐ ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ด ํ์ํ์ง ์๋ค๊ณ ๊ฒฐ์ ํ์ต๋๋ค.
XNUMX๋ ํ, ์ฐ๋ฆฌ๋ ClickHouse๋ฅผ ์ฌ์ฉํ์๋ ์๊ฐ์ผ๋ก ๋์์๊ณ , ๊ฑฐ๊ธฐ์ ์ด๋ป๊ฒ๋ ๋ฐ์ดํฐ๋ฅผ ์จ์ผ ํ์ต๋๋ค. ์๊ฐ ๋ฉ์์ง๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ํ๋์จ์ด๊ฐ ๋งค์ฐ ์ฝํ๊ณ ๋ฆฌ์์ค๊ฐ ๊ฑฐ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ํญ์ ์ด๋ฐ ๋ฐฉ์์ผ๋ก ์์ ํด์๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ณธ ํ๋กํ ์ฝ์ ์งํฅํ์ต๋๋ค.
์ฐ๋ฆฌ๋ Go๋ก ์์ ํ๊ณ ์์๊ธฐ ๋๋ฌธ์ Go ๋๋ผ์ด๋ฒ๊ฐ ํ์ํ๋ค๋ ๊ฒ์ด ๋ถ๋ช ํ์ต๋๋ค. ๋๋ ๊ฑฐ์ ํํ์์ผ๋ก ๊ทธ ์ผ์ ํ์ต๋๋ค. ๊ทธ๊ฒ์ ๋ด ์ ๋ฌด์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ํน์ ์ง์ ๊น์ง ๊ฐ์ ธ์๊ณ ์์น์ ์ผ๋ก ๋๊ตฌ๋ ์ฐ๋ฆฌ ์ธ์ ๋ค๋ฅธ ์ฌ๋์ด ๊ทธ๊ฒ์ ์ฌ์ฉํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ CloudFlare์ ์ ํํ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ณ , ๋์ผํ ์์ ์ ์ํํ๊ธฐ ๋๋ฌธ์ ํ๋์ ์ฐ๋ฆฌ๋ ๋งค์ฐ ์ํํ๊ฒ ์์ ํ์ต๋๋ค. ๊ฒ๋ค๊ฐ ์ฐ๋ฆฌ๋ ClickHouse์ ๋๋ผ์ด๋ฒ ๋ชจ๋์์ ์ด ์์ ์ ์ํํ์ต๋๋ค.
ClickHouse์ ์์ ์ธก๋ฉด์์ ๋ด ํ๋์ด ์ฝ๊ฐ ๋ฐ๋์๊ธฐ ๋๋ฌธ์ ์ด๋ ์์ ์์ ๋๋ ๊ทธ๊ฒ์ ๊ทธ๋ง ๋์์ต๋๋ค. ๋ฐ๋ผ์ ๋ฌธ์ ๊ฐ ์ข ๊ฒฐ๋์ง ์์ต๋๋ค. ์ฃผ๊ธฐ์ ์ผ๋ก ๋ฌด์ธ๊ฐ๊ฐ ํ์ํ ์ฌ๋๋ค์ ์ ์ฅ์์ ์ปค๋ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ค๊ฐ ํ ๋ฆฌํ์คํธ๋ฅผ ๋ณด๊ณ ๋๋ก๋ ์ง์ ํธ์งํ๊ธฐ๋ ํ๋๋ฐ ์ด๋ฐ ์ผ์ ๊ฑฐ์ ๋ฐ์ํ์ง ์์ต๋๋ค.
๋๋ ์ด์ ์ฌ์๊ฒ ๋์๊ฐ๊ณ ์ถ๋ค. ๋ช ๋ ์ ์ด ๋ชจ๋ ์ผ์ด ์์๋์์ ๋ ClickHouse๋ ๋ฌ๋๊ณ ๊ธฐ๋ฅ๋ ๋ฌ๋์ต๋๋ค. ์ด์ ์ฐ๋ฆฌ๋ ๋๋ผ์ด๋ฒ๊ฐ ์ ์๋ํ๋๋ก ๋ฆฌ๋ฉ์ดํฌํ๋ ๋ฐฉ๋ฒ์ ์ดํดํ์ต๋๋ค. ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋ฉด ์ถ์ ๋ ๋ชฉ๋ฐ๋ก ์ธํด ์ด๋ค ๊ฒฝ์ฐ์๋ ๋ฒ์ 2๊ฐ ํธํ๋์ง ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ์ ๋ฆฌํด์ผ ํ ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ ์์ ์๊ฒ๋ ์๊ฐ์ด ๋ณ๋ก ์๋ค. ์ด๋ค ์ฌ๋์ด ์ด์ ์ ๋ง์น๋ฉด ๋๋ ๊ทธ๋ค์ ๋์์ฃผ๊ณ ๋ฌด์์ ํด์ผ ํ ์ง ๋งํด ์ค ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํ๋ก์ ํธ ๊ฐ๋ฐ์ Yandex์ ์ ๊ทน์ ์ธ ์ฐธ์ฌ๋ ์์ง ๋ ผ์๋์ง ์์์ต๋๋ค.
์๋ ์ธ์ด ๋ฐ๋ก๋น๋ํ: ์ค์ ๋ก ์์ง ์ด๋ฌํ ์ด์ ์์ ๋ํ ๊ด๋ฃ์ฃผ์๋ ์์ต๋๋ค. ์ ์ผํ ๊ฒ์ ๊ณต์ ์กฐ์ง์ ์ ์ถ๋๋ค๋ ๊ฒ์ ๋๋ค. ์ฆ, ์ด ๋๋ผ์ด๋ฒ๋ Go์ ๊ณต์ ๊ธฐ๋ณธ ์๋ฃจ์ ์ผ๋ก ์ธ์๋ฉ๋๋ค. ๋ค๋ฅธ ๋๋ผ์ด๋ฒ๋ ์์ง๋ง ๋ณ๋๋ก ์ต๋๋ค.
์ด๋ฌํ ๋๋ผ์ด๋ฒ์ ๋ํ ๋ด๋ถ ๊ฐ๋ฐ์ ์์ต๋๋ค. ๋ฌธ์ ๋ ํน์ ์ด์ ์๊ฐ ์๋ ๋ชจ๋ ์ปค๋ฎค๋ํฐ ์ด์ ์์ ๋ฐ์ ์ ์ํด ๊ฐ์ธ์ ๊ณ ์ฉํ ์ ์๋์ง, ์๋๋ฉด ์ธ๋ถ์์ ๋๊ตฐ๊ฐ๋ฅผ ์ฐพ์ ์ ์๋์ง์ ๋๋ค.
lazy_load ์ค์ ์ด ํ์ฑํ๋ ์ํ๋ก ์ฌ๋ถํ
ํ ํ์๋ ์ธ๋ถ ์ฌ์ ์ด ๋ก๋๋์ง ์์ต๋๋ค. ๋ฌด์์ ํด์ผ ํ ๊น์?
lazy_load ์ค์ ์ ํ์ฑํํ์ผ๋ฉฐ ์๋ฒ๋ฅผ ์ฌ๋ถํ ํ ํ ์ฌ์ ์ด ์์ฒด์ ์ผ๋ก ๋ก๋๋์ง ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ์ด ์ฌ์ ์ ์ก์ธ์คํ ํ์๋ง ๋ฐ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฒ์ ์ ์ํ๋ฉด ์ค๋ฅ๊ฐ ๋น๋๋ค. ClickHouse๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ ์ ์๋์ผ๋ก ๋ก๋ํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๊น? ์๋๋ฉด ์ฌ์ฉ์๊ฐ ์ค๋ฅ๋ฅผ ๋ฐ์ง ์๋๋ก ํญ์ ์ฌ์ ์ค๋น ์ํ๋ฅผ ์ง์ ์ ์ดํด์ผ ํฉ๋๊น?
์๋ง๋ ClickHouse์ ์ด์ ๋ฒ์ ์ด ์์ด์ ์ฌ์ ์ด ์๋์ผ๋ก ๋ก๋๋์ง ์์์ ์ ์์ต๋๋ค. ์ด๋ฐ ์ผ์ด ์ผ์ด๋ ์ ์์ต๋๊น?
์ฒซ์งธ, ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ ์ ๊ฐ์ ๋ก ๋ก๋ํ ์ ์์ต๋๋ค. ์์คํ ๋ค์ ๋ก๋ ์ฌ์ . ๋์งธ, ์ค๋ฅ ๊ด๋ จ - ์ฌ์ ์ด ์ด๋ฏธ ๋ก๋๋ ๊ฒฝ์ฐ ์ฟผ๋ฆฌ๋ ๋ก๋๋ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ํฉ๋๋ค. ์ฌ์ ์ด ์์ง ๋ก๋๋์ง ์์ ๊ฒฝ์ฐ ์์ฒญ ์ค์ ์ง์ ๋ก๋๋ฉ๋๋ค.
์ด๋ ๋ฌด๊ฑฐ์ด ์ฌ์ ์๋ ๊ทธ๋ฆฌ ํธ๋ฆฌํ์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, MySQL์์ ๋ฐฑ๋ง ๊ฐ์ ํ์ ๊ฐ์ ธ์์ผ ํฉ๋๋ค. ๋๊ตฐ๊ฐ ๊ฐ๋จํ ์ ํ์ ์ํํ์ง๋ง ์ด ์ ํ์ ๋์ผํ ๋ฐฑ๋ง ํ์ ๊ธฐ๋ค๋ฆฝ๋๋ค. ์ฌ๊ธฐ์๋ ๋ ๊ฐ์ง ํด๊ฒฐ์ฑ ์ด ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ๋lazy_load๋ฅผ ๋๋ ๊ฒ์ ๋๋ค. ๋์งธ, ์๋ฒ๊ฐ ์๋ ์ค์ผ ๋ ๋ก๋๋ฅผ ๊ฐํ๊ธฐ ์ ์ ๋ค์์ ์ํํ์ญ์์ค. ์์คํ ๋ค์ ๋ก๋ ์ฌ์ ์๋๋ฉด ์ฌ์ ์ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ๋ฅผ ์ํํ์ธ์. ๊ทธ๋ฌ๋ฉด ์ฌ์ ์ด ๋ก๋๋ฉ๋๋ค. ClickHouse๊ฐ ์ฌ์ ์ ์๋์ผ๋ก ๋ก๋ํ์ง ์๊ธฐ ๋๋ฌธ์,lazy_load ์ค์ ์ด ํ์ฑํ๋ ์ฌ์ ์ ๊ฐ์ฉ์ฑ์ ์ ์ดํด์ผ ํฉ๋๋ค.
๋ง์ง๋ง ์ง๋ฌธ์ ๋ํ ๋๋ต์ ๋ฒ์ ์ด ์ค๋๋์๊ฑฐ๋ ๋๋ฒ๊น ์ด ํ์ํ๋ค๋ ๊ฒ์ ๋๋ค.
์์คํ
๋ค์ ๋ก๋ ์ฌ์ ์ค ์ ์ด๋ ํ๋๊ฐ ์ค๋ฅ๋ก ์ธํด ์ถฉ๋ํ๋ ๊ฒฝ์ฐ ๋ง์ ์ฌ์ ์ค ์ด๋ ๊ฒ๋ ๋ก๋ํ์ง ์๋๋ค๋ ์ฌ์ค์ ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น?
์์คํ ๋ค์ ๋ก๋ ์ฌ์ ์ ๋ํ ๋ ๋ค๋ฅธ ์ง๋ฌธ์ด ์์ต๋๋ค. ๋ ๊ฐ์ ์ฌ์ ์ด ์์ต๋๋ค. ํ๋๋ ๋ก๋๋์ง ์์๊ณ , ๋ ๋ฒ์งธ๋ ๋ก๋๋์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์์คํ ๋ค์ ๋ก๋ ์ฌ์ ์ ์ฌ์ ์ ๋ก๋ํ์ง ์์ผ๋ฉฐ ์์คํ ๋ค์ ๋ก๋ ์ฌ์ ์ ์ฌ์ฉํ์ฌ ์ด๋ฆ๋ณ๋ก ํน์ ์ฌ์ ์ ํ๋์ฉ ๋ก๋ํด์ผ ํฉ๋๋ค. ์ด๊ฒ๋ ClickHouse ๋ฒ์ ๊ณผ ๊ด๋ จ์ด ์๋์?
๋๋ ๋น์ ์ ํ๋ณตํ๊ฒ ๋ง๋ค๊ณ ์ถ์ต๋๋ค. ์ด ํ๋์ ๋ณํํ๊ณ ์์์ต๋๋ค. ์ด๋ ClickHouse๋ฅผ ์ ๋ฐ์ดํธํ๋ฉด ๋ณ๊ฒฝ๋๋ค๋ ์๋ฏธ์ ๋๋ค. ํ์ฌ ํ๋์ด ๋ง์กฑ์ค๋ฝ์ง ์๋ค๋ฉด ์์คํ ๋ค์ ๋ก๋ ์ฌ์ , ์ ๋ฐ์ดํธํ๊ณ ๋ ๋์ ๋ฐฉํฅ์ผ๋ก ๋ณ๊ฒฝ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
ClickHouse ๊ตฌ์ฑ์์ ์ธ๋ถ ์ ๋ณด๋ฅผ ๊ตฌ์ฑํ์ง๋ง ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ํ์ํ์ง ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
๋ค์ ์ง๋ฌธ์ ์ฌ์ ๊ณผ ๊ด๋ จ๋ ์ค๋ฅ, ์ฆ ์ธ๋ถ์ฌํญ์ ๊ดํ ๊ฒ์ ๋๋ค. ์ฌ์ ์ ๋ํ ClickHouse ๊ตฌ์ฑ์ ์ฐ๊ฒฐ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ง์ ํ์ผ๋ฉฐ, ์ค๋ฅ๊ฐ ์๋ ๊ฒฝ์ฐ ํด๋น ์ธ๋ถ ์ ๋ณด์ ๋น๋ฐ๋ฒํธ๋ฅผ ์๋ต์ผ๋ก ๋ฐ์ต๋๋ค.
ODBC ๋๋ผ์ด๋ฒ ๊ตฌ์ฑ์ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ถ๊ฐํ์ฌ ์ด ์ค๋ฅ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ClickHouse ๊ตฌ์ฑ์์ ์ธ๋ถ ์ ๋ณด๋ฅผ ๊ตฌ์ฑํ์ง๋ง ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ์ด๋ฌํ ์ธ๋ถ ์ ๋ณด๋ฅผ ํ์ํ์ง ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
์ฌ๊ธฐ์ ์ค์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ odbc.ini์์ ์ด๋ฌํ ์๊ฒฉ ์ฆ๋ช ์ ์ง์ ํ๊ณ ClickHouse ์์ฒด์์๋ ODBC ๋ฐ์ดํฐ ์์ค ์ด๋ฆ๋ง ์ง์ ํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ๋ค๋ฅธ ์ฌ์ ์์ค์์๋ ๋ฐ์ํ์ง ์์ต๋๋ค. MySQL์ด ํฌํจ๋ ์ฌ์ ์ด๋ ๋ค๋ฅธ ์ฌ์ ์์ค์์๋ ์ค๋ฅ ๋ฉ์์ง๊ฐ ํ์๋ ๋ ๋น๋ฐ๋ฒํธ๊ฐ ํ์๋์ด์๋ ์ ๋ฉ๋๋ค. ODBC์ ๊ฒฝ์ฐ๋ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์กด์ฌํ๋ ๊ฒฝ์ฐ ์ ๊ฑฐํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
๋ณด๋์ค: ๋ชจ์์์ Zoom์ ์ํ ๋ฐฐ๊ฒฝ
์ฌ์ง์ ํด๋ฆญํ๋ฉด ๊ฐ์ฅ ๋์ง๊ธด ๋ ์๋ค์ ์ํด ๋ชจ์์ ๋ณด๋์ค ๋ฐฐ๊ฒฝ์ด ์ด๋ฆฝ๋๋ค. ์ฐ๋ฆฌ๋ Avito ๊ธฐ์ ๋ง์ค์ฝํธ์ ํจ๊ป ๋ถ์ ๋๊ณ , ์์คํ ๊ด๋ฆฌ์์ค์ด๋ ์๋ ์ปดํจํฐ ํด๋ฝ์ ๋๋ฃ๋ค๊ณผ ํ์๋ฅผ ํ๊ณ , ๋์๋ฅผ ๋ฐฐ๊ฒฝ์ผ๋ก ๋ค๋ฆฌ ์๋์์ ๋งค์ผ ํ์๋ฅผ ์งํํฉ๋๋ค.
์ถ์ฒ : habr.com