์ผ๋ฐ์ ์ธ "๋ฌธ์์ด" DBMS(์: MySQL, Postgres, MS SQL Server)์์ ๋ฐ์ดํฐ๋ ๋ค์ ์์๋ก ์ ์ฅ๋ฉ๋๋ค.
์ด ๊ฒฝ์ฐ ํ๋์ ํ๊ณผ ๊ด๋ จ๋ ๊ฐ์ด ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋๋ํ ์ ์ฅ๋ฉ๋๋ค. columnar DBMS์์๋ ์๋ก ๋ค๋ฅธ column์ ๊ฐ์ ๋ณ๋๋ก ์ ์ฅํ๊ณ ํ column์ ๋ฐ์ดํฐ๋ฅผ ํจ๊ป ์ ์ฅํ๋ค.
์ด ๊ธฐ๋ฐ DBMS์ ์๋ก๋ Vertica, Paraccel(Actian Matrix, Amazon Redshift), Sybase IQ, Exasol, Infobright, InfiniDB, MonetDB(VectorWise, Actian Vector), LucidDB, SAP HANA, Google Dremel, Google PowerDrill, Druid, kdb+๊ฐ ์์ต๋๋ค.
ํ์ฌ๋ ๋ฉ์ผ ํฌ์๋
ํธํจ
Clickhouse๋ ๋จ์ผ ๋ช ๋ น์ผ๋ก Ubuntu์ ์ค์น๋ฉ๋๋ค. SQL์ ์๊ณ ์๋ค๋ฉด ํ์์ ๋ฐ๋ผ Clickhouse๋ฅผ ์ฆ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ด MySQL์์ "์์ฑ ํ ์ด๋ธ ํ์"๋ฅผ ์ํํ๊ณ Clickhouse์์ SQL์ ๋ณต์ฌํ์ฌ ๋ถ์ฌ๋ฃ์ ์ ์์์ ์๋ฏธํ์ง๋ ์์ต๋๋ค.
MySQL๊ณผ ๋น๊ตํ ๋ ์ด DBMS์ ํ ์ด๋ธ ์คํค๋ง ์ ์์๋ ์ค์ํ ๋ฐ์ดํฐ ์ ํ ์ฐจ์ด๊ฐ ์์ผ๋ฏ๋ก ํ ์ด๋ธ ์คํค๋ง ์ ์๋ฅผ ๋ณ๊ฒฝํ๊ณ ํ ์ด๋ธ ์์ง์ ์ตํ๋ ค๋ฉด ์ฌ์ ํ ์๊ฐ์ด ํ์ํฉ๋๋ค.
Clickhouse๋ ์ถ๊ฐ ์ํํธ์จ์ด ์์ด ํ๋ฅญํ๊ฒ ์๋ํ์ง๋ง ๋ณต์ ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ZooKeeper๋ฅผ ์ค์นํด์ผ ํฉ๋๋ค. ์ฟผ๋ฆฌ ์ฑ๋ฅ ๋ถ์์ ์ฐ์ํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์์คํ ํ ์ด๋ธ์๋ ๋ชจ๋ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ ๋ชจ๋ ๋ฐ์ดํฐ๋ ์ค๋๋๊ณ ์ง๋ฃจํ SQL์ ์ฌ์ฉํ์ฌ ์ป์ ์ ์์ต๋๋ค.
ะัะพะธะทะฒะพะดะธัะตะปัะฝะพััั
๊ธฐ์ค ๊ตฌ์ฑ ์๋ฒ์์ Clickhouse์ Vertica ๋ฐ MySQL ๋น๊ต: ์์ผ 5๊ฐ Intelยฎ Xeonยฎ CPU E2650-2 v2.60 @ 128GHz; 5GiB RAM; 8 6TB SATA HDD์ md RAID-4, extXNUMX.๊ธฐ์ค Clickhouse์ Amazon RedShift ํด๋ผ์ฐ๋ ์คํ ๋ฆฌ์ง ๋น๊ต.- ๋ธ๋ก๊ทธ ๋ฐ์ท
Clickhouse ์ฑ๋ฅ์ ๋ํ Cloudflare :
ClickHouse ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋์์ธ์ด ๋งค์ฐ ๋จ์ํฉ๋๋ค. ํด๋ฌ์คํฐ์ ๋ชจ๋ ๋
ธ๋๋ ๋์ผํ ๊ธฐ๋ฅ์ ๊ฐ์ง๋ฉฐ ์กฐ์ ์ ์ํด ZooKeeper๋ง ์ฌ์ฉํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ๋ฌ ๋
ธ๋์ ์์ ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ถํ๊ณ ํ
์คํธ๋ฅผ ์ํํ์ผ๋ฉฐ ๊ทธ ๋์ ์์คํ
์ด ๋ถ์ DBMS ๋ฒค์น๋งํฌ์์ ์ฃผ์ฅ๋ ์ด์ ์ ํด๋นํ๋ ์๋นํ ์ธ์์ ์ธ ์ฑ๋ฅ์ ๊ฐ์ง๊ณ ์์์ ๋ฐ๊ฒฌํ์ต๋๋ค. ClickHouse์ ๊ฐ๋
์ ์์ธํ ์ดํด๋ณด๊ธฐ๋ก ํ์ต๋๋ค. ์ฐ๊ตฌ์ ์ฒซ ๋ฒ์งธ ์ฅ์ ๋ฌผ์ ๋๊ตฌ์ ๋ถ์กฑ๊ณผ ClickHouse์ ์๊ท๋ชจ ์ปค๋ฎค๋ํฐ์๊ธฐ ๋๋ฌธ์ ์๋ ๋ฐฉ์์ ์ดํดํ๊ธฐ ์ํด ์ด DBMS์ ์ค๊ณ๋ฅผ ์กฐ์ฌํ์ต๋๋ค.
ClickHouse๋ ๋จ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ฏ๋ก Kafka์์ ์ง์ ๋ฐ์ดํฐ ์์ ์ ์ง์ํ์ง ์์ผ๋ฏ๋ก Go์์ ์์ฒด ์ด๋ํฐ ์๋น์ค๋ฅผ ์์ฑํ์ต๋๋ค. Kafka์์ Cap'n Proto๋ก ์ธ์ฝ๋ฉ๋ ๋ฉ์์ง๋ฅผ ์ฝ๊ณ TSV๋ก ๋ณํํ ๋ค์ HTTP ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ผ๊ด์ ์ผ๋ก ClickHouse์ ์ฝ์ ํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋์ค์ ์ฑ๋ฅ์ ๊ฐ์ ํ๊ธฐ ์ํด ์์ฒด ClickHouse ์ธํฐํ์ด์ค์ ํจ๊ป Go ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋๋ก ์ด ์๋น์ค๋ฅผ ๋ค์ ์์ฑํ์ต๋๋ค. ์์ ํจํท์ ์ฑ๋ฅ์ ํ๊ฐํ ๋ ์ค์ํ ์ฌ์ค์ ๋ฐ๊ฒฌํ์ต๋๋ค. ClickHouse์ ๊ฒฝ์ฐ ์ด ์ฑ๋ฅ์ ํจํท์ ํฌ๊ธฐ, ์ฆ ๋์์ ์ฝ์ ๋๋ ํ์ ์์ ํฌ๊ฒ ์ข์ฐ๋๋ค๋ ๊ฒ์ด ๋ฐํ์ก์ต๋๋ค. ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋ ์ด์ ๋ฅผ ์ดํดํ๊ธฐ ์ํด ClickHouse๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ ์ฐ๊ตฌํ์ต๋๋ค.
๋ฐ์ดํฐ ์ ์ฅ์ ์ํด ClickHouse์์ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ์์ง ๋๋ ์คํ๋ ค ํ ์ด๋ธ ์์ง ์ ํ๊ตฐ์ MergeTree์ ๋๋ค. ์ด ์์ง์ Google BigTable ๋๋ Apache Cassandra์์ ์ฌ์ฉ๋๋ LSM ์๊ณ ๋ฆฌ์ฆ๊ณผ ๊ฐ๋ ์ ์ผ๋ก ์ ์ฌํ์ง๋ง ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ ํ ์ด๋ธ์ ๊ตฌ์ถํ์ง ์๊ณ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ์ ์ง์ ์๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฝ์ ๋ ๊ฐ ํจํท์ด "๊ธฐ๋ณธ ํค" ๊ธฐ๋ณธ ํค์ ์ํด์๋ง ์ ๋ ฌ๋๊ณ ์์ถ๋๊ณ ์ธ๊ทธ๋จผํธ๋ฅผ ํ์ฑํ๊ธฐ ์ํด ๋์คํฌ์ ๊ธฐ๋ก๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ด๋ ์ฐ๊ธฐ ์ฒ๋ฆฌ๋์ด ์ ๊ณต๋ฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ํ
์ด๋ธ์ด ์๊ฑฐ๋ ๋ฐ์ดํฐ์ "์ ์ ๋" ๊ฐ๋
์ด ์๋ค๋ ๊ฒ์ ์ถ๊ฐ๋ง ๊ฐ๋ฅํ๊ณ ์์คํ
์ ๋ณ๊ฒฝ์ด๋ ์ญ์ ๋ฅผ ์ง์ํ์ง ์๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ์ธ๊ทธ๋จผํธ๊ฐ ์ ๊ฒฝ๊ณ๋ฅผ ๋์ง ์๊ธฐ ๋๋ฌธ์ ์ ๋จ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ๊ฒ์
๋๋ค. ClickHouse ํ์ ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉ์ ์ ์ํ ์ ์๋๋ก ์ ๊ทน์ ์ผ๋ก ๋
ธ๋ ฅํ๊ณ ์์ต๋๋ค. ๋ฐ๋ฉด์ ์ฐ๊ธฐ ๋ฐ ๋ณํฉ ์ธ๊ทธ๋จผํธ์ ๊ฒฝํฉ์ด ์๋๋ก ํ๋ฏ๋ก ์์ ์ฒ๋ฆฌ๋์ I/O ๋๋ ์ฝ์ด๊ฐ ํฌํ๋ ๋๊น์ง ๋ณ๋ ฌ ์ฝ์
์์ ๋ฐ๋ผ ์ ํ์ ์ผ๋ก ํ์ฅ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ ์ด ์ํฉ์ ์์คํ
์ด ์์ ํจํท์ ์ ํฉํ์ง ์๋ค๋ ๊ฒ์ ์๋ฏธํ๋ฏ๋ก Kafka ์๋น์ค ๋ฐ ์ฝ์
๊ธฐ๊ฐ ๋ฒํผ๋ง์ ์ฌ์ฉ๋ฉ๋๋ค. ๋ํ ๋ฐฑ๊ทธ๋ผ์ด๋์ ClickHouse๋ ์ง์์ ์ผ๋ก ์ธ๊ทธ๋จผํธ๋ฅผ ๋ณํฉํ๋ฏ๋ก ๋ง์ ์์ ์ ๋ณด๊ฐ ๋ ๋ง์ด ๊ฒฐํฉ๋๊ณ ๊ธฐ๋ก๋๋ฏ๋ก ๊ธฐ๋ก ๊ฐ๋๊ฐ ๋์์ง๋๋ค. ๊ทธ๋ฌ๋ ๊ด๋ จ๋์ง ์์ ๋ถํ์ด ๋๋ฌด ๋ง์ผ๋ฉด ๋ณํฉ์ด ๊ณ์๋๋ ํ ์ฝ์
์ด ๊ณผ๋ํ๊ฒ ์กฐ์ ๋ฉ๋๋ค. ์ค์๊ฐ ๋ฐ์ดํฐ ์์ง๊ณผ ์์ง ์ฑ๋ฅ ๊ฐ์ ์ต์์ ์ ์ถฉ์์ ํ
์ด๋ธ์ ์ด๋น ์ ํ๋ ์์ ์ฝ์
์ ํ์ฉํ๋ ๊ฒ์
๋๋ค.
ํ ์ด๋ธ ์ฝ๊ธฐ ์ฑ๋ฅ์ ํต์ฌ์ ๋์คํฌ์์ ๋ฐ์ดํฐ์ ์ธ๋ฑ์ฑ ๋ฐ ์์น์ ๋๋ค. ์๋ฌด๋ฆฌ ์ฒ๋ฆฌ ์๋๊ฐ ๋นจ๋ผ๋ ์์ง์ด ๋์คํฌ์์ ํ ๋ผ๋ฐ์ดํธ์ ๋ฐ์ดํฐ๋ฅผ ์ค์บํ๊ณ ๊ทธ ์ค ์ผ๋ถ๋ง ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ์๋ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค. ClickHouse๋ ์ด ์ ์ฅ์์ด๋ฏ๋ก ๊ฐ ์ธ๊ทธ๋จผํธ์๋ ๊ฐ ํ์ ๋ํด ์ ๋ ฌ๋ ๊ฐ์ด ์๋ ๊ฐ ์ด(์ด)์ ๋ํ ํ์ผ์ด ํฌํจ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ฟผ๋ฆฌ์ ์๋ ์ ์ฒด ์ด์ ๋จผ์ ๊ฑด๋๋ด ๋ค์ ์ฌ๋ฌ ์ ์ ๋ฒกํฐํ๋ ์คํ๊ณผ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ์ ์ฒด ์ค์บ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๊ฐ ์ธ๊ทธ๋จผํธ์๋ ์์ ์ธ๋ฑ์ค ํ์ผ์ด ์์ต๋๋ค.
๋ชจ๋ ์ด์ด "๊ธฐ๋ณธ ํค"๋ก ์ ๋ ฌ๋๋ ๊ฒฝ์ฐ ์ธ๋ฑ์ค ํ์ผ์๋ ๋งค์ฐ ํฐ ํ ์ด๋ธ์ ๊ฒฝ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์งํ ์ ์๋๋ก ๋ชจ๋ N๋ฒ์งธ ํ์ ๋ ์ด๋ธ(์บก์ฒ๋ ํ)๋ง ํฌํจ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ๊ธฐ๋ณธ ์ค์ ์ "8192๋ฒ์งธ ํ๋ง๋ค ํ์"๋ก ์ค์ ํ ๋ค์ 1์กฐ ๊ฐ์ ํ ์ด๋ธ์ "๋น์ฝํ๊ฒ" ์ธ๋ฑ์ฑํ๋๋ก ์ค์ ํ ์ ์์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ์ ์ฝ๊ฒ ๋ค์ด๊ฐ๋ ์ค์ 122์๋ง ์์ผ๋ฉด ๋ฉ๋๋ค.
์์คํ ๊ฐ๋ฐ
Clickhouse์ ๊ฐ๋ฐ ๋ฐ ๊ฐ์ ์ ๋ค์์์ ์ถ์ ํ ์ ์์ต๋๋ค.
์ธ๊ธฐ
Clickhouse์ ์ธ๊ธฐ๋ ํนํ ๋ฌ์์์ด๋ฅผ ์ฌ์ฉํ๋ ์ปค๋ฎค๋ํฐ์์ ๊ธฐํ๊ธ์์ ์ผ๋ก ์ฆ๊ฐํ๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์๋
High load 2018 ์ปจํผ๋ฐ์ค(๋ชจ์คํฌ๋ฐ, 8๋
9์ 2018-40์ผ)์์๋ vk.com ๋ฐ Badoo์ ๊ฐ์ ๊ดด๋ฌผ์ด ๋์์ ์๋ง ๋์ ์๋ฒ์์ ๋ฐ์ดํฐ(์: ๋ก๊ทธ)๋ฅผ ์ฝ์
ํ๋ Clickhouse๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. XNUMX๋ถ์ง๋ฆฌ ์์์ผ๋ก
์์ฉ ๋ถ์ผ
์๊ฐ์ ๋ค์ฌ ์กฐ์ฌํ ๊ฒฐ๊ณผ ClickHouse๊ฐ ์ ์ฉํ๊ฑฐ๋ MySQL, PostgreSQL, ELK, Google Big Query, Amazon RedShift, TimescaleDB, Hadoop, MapReduce, Pinot ๋ฐ ๋๋ฃจ์ด๋. ๋ค์์ ClickHouse๋ฅผ ์ด์ฉํ์ฌ ์์ DBMS๋ฅผ ์ ๊ทธ๋ ์ด๋ํ๊ฑฐ๋ ์์ ํ ๊ต์ฒดํ๋ ๋ด์ฉ์ ๋๋ค.
MySQL ๋ฐ PostgreSQL ํ์ฅ
๊ฐ์ฅ ์ต๊ทผ์๋ ๋ด์ค๋ ํฐ ํ๋ซํผ์ฉ์ผ๋ก MySQL์ ClickHouse๋ก ๋ถ๋ถ์ ์ผ๋ก ๊ต์ฒดํ์ต๋๋ค.
Clickhouse๋ ๋ ๊ฐ์ง ์์ถ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ์์ ์ฝ
์์ผ์ด ๊ต์ฒด
๋ด ๊ฒฝํ์ ๋ฐ๋ฅด๋ฉด ELK ์คํ(ElasticSearch, Logstash ๋ฐ Kibana, ์ด ๊ฒฝ์ฐ์๋ ElasticSearch)์ ์คํํ๋ ค๋ฉด ๋ก๊ทธ๋ฅผ ์ ์ฅํ๋ ๋ฐ ํ์ํ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ๋ง์ ๋ฆฌ์์ค๊ฐ ํ์ํฉ๋๋ค. ElasticSearch๋ ์ฐ์ํ ์ ์ฒด ํ ์คํธ ๋ก๊ทธ ๊ฒ์์ ์ํ๋ ๊ฒฝ์ฐ(๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก ํ์ํ์ง ์๋ค๊ณ ์๊ฐํ๋ ๊ฒฝ์ฐ) ํ๋ฅญํ ์์ง์ด์ง๋ง ์ด๊ฒ์ด ์ฌ์ค์์ ํ์ค ๋ก๊น ์์ง์ด ๋ ์ด์ ๊ฐ ๊ถ๊ธํฉ๋๋ค. Logstash์ ๊ฒฐํฉ๋ ์์ง ์ฑ๋ฅ์ผ๋ก ์ธํด ์๋นํ ๊ฐ๋ฒผ์ด ์ํฌ๋ก๋์์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ผ๋ฉฐ ์ ์ ๋ ๋ง์ RAM๊ณผ ๋์คํฌ ๊ณต๊ฐ์ ์ถ๊ฐํด์ผ ํ์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก์ Clickhouse๋ ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก ElasticSearch๋ณด๋ค ๋ซ์ต๋๋ค.
- SQL ์ธ์ด ์ง์;
- ์ ์ฅ๋ ๋ฐ์ดํฐ์ ์ต์์ ์์ถ ์ ๋
- ์ ์ฒด ํ ์คํธ ๊ฒ์ ๋์ Regex ๊ฒ์ ์ง์
- ํฅ์๋ ์ฟผ๋ฆฌ ์ค์ผ์ค๋ง ๋ฐ ์ ๋ฐ์ ์ธ ์ฑ๋ฅ ํฅ์.
ํ์ฌ ClickHouse์ ELK๋ฅผ ๋น๊ตํ ๋ ๋ฐ์ํ๋ ๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ ๋ก๊ทธ ์
๋ก๋ ์๋ฃจ์
์ด ๋ถ์กฑํ๊ณ ์ด ์ฃผ์ ์ ๋ํ ๋ฌธ์ ๋ฐ ์์ต์๊ฐ ๋ถ์กฑํ๋ค๋ ๊ฒ์
๋๋ค. ๋์์ ๊ฐ ์ฌ์ฉ์๋ Digital Ocean ๋งค๋ด์ผ์ ์ฌ์ฉํ์ฌ ELK๋ฅผ ์ค์ ํ ์ ์์ผ๋ฉฐ ์ด๋ ์ด๋ฌํ ๊ธฐ์ ์ ์ ์ํ ๊ตฌํ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ง์ด ์์ง๋ง ClickHouse์ฉ Filebeat๋ ์์ง ์์ต๋๋ค. ์, ์์ต๋๋ค
๋ฏธ๋๋ฉํ ์๋ฃจ์
์ ์ ํธํ๋ ์ ๋ Kafka ์ฌ์ฉ์ ํผํ๋ฉด์ ClickHouse์ ํจ๊ป ๋งค์ฐ ๋ฎ์ ๋ฉ๋ชจ๋ฆฌ ๋ก๊ทธ ์
๋ก๋ ๋๊ตฌ์ธ FluentBit์ ์ฌ์ฉํ๋ ค๊ณ ํ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ค์๊ณผ ๊ฐ์ ์ฌ์ํ ๋นํธํ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํฉ๋๋ค.
Kibana ๋์ ClickHouse๋ฅผ ๋ฐฑ์๋๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
Google Big Query ๋ฐ Amazon RedShift ๋์ฒด(๋๊ธฐ์ ์ฉ ์๋ฃจ์ )
BigQuery์ ์ด์์ ์ธ ์ฌ์ฉ ์ฌ๋ก๋ 1TB์ JSON ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๊ณ ์ด์ ๋ํ ๋ถ์ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ ๊ฒ์ ๋๋ค. Big Query๋ ํ์ฅ์ฑ์ ๊ณผ๋ํ๊ฐํ๊ธฐ ์ด๋ ค์ด ํ๋ฅญํ ์ ํ์ ๋๋ค. ์ด๊ฒ์ ๋ด๋ถ ํด๋ฌ์คํฐ์์ ์คํ๋๋ ClickHouse๋ณด๋ค ํจ์ฌ ๋ ๋ณต์กํ ์ํํธ์จ์ด์ด์ง๋ง ๊ณ ๊ฐ์ ๊ด์ ์์ ClickHouse์ ๊ณตํต์ ์ด ๋ง์ต๋๋ค. BigQuery๋ ๊ฐ SELECT์ ๋ํ ๋น์ฉ์ ์ง๋ถํ๊ธฐ ์์ํ๋ฉด ๋น ๋ฅด๊ฒ "๊ฐ๊ฒฉ์ ์ฌ๋ฆด" ์ ์์ผ๋ฏ๋ก ๋ชจ๋ ์ฅ๋จ์ ์ด ์๋ ์ง์ ํ SaaS ์๋ฃจ์ ์ ๋๋ค.
ClickHouse๋ ๊ณ์ฐ ๋น์ฉ์ด ๋ง์ด ๋๋ ์ฟผ๋ฆฌ๋ฅผ ๋ง์ด ์คํํ ๋ ์ต์์ ์ ํ์ ๋๋ค. ๋งค์ผ ์คํํ๋ SELECT ์ฟผ๋ฆฌ๊ฐ ๋ง์์๋ก Big Query๋ฅผ ClickHouse๋ก ๊ต์ฒดํ๋ ๊ฒ์ด ๋ ์ค์ํด์ง๋๋ค. ์ด๋ฌํ ๊ต์ฒด๋ฅผ ํตํด ์ฒ๋ฆฌ ์ค์ธ ํ ๋ผ๋ฐ์ดํธ์ ๋ฐ์ดํฐ์์ ์์ฒ ๋ฌ๋ฌ๋ฅผ ์ ์ฝํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด๊ฒ์ Big Query์์ ์ฒ๋ฆฌํ๊ธฐ์ ์๋นํ ์ ๋ ดํ ์ ์ฅ๋ ๋ฐ์ดํฐ์๋ ์ ์ฉ๋์ง ์์ต๋๋ค.
Altinity์ ๊ณต๋ ์ค๋ฆฝ์ Alexander Zaitsev์ ๊ธฐ์ฌ์์
TimescaleDB ๊ต์ฒด
TimescaleDB๋ ์ผ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์๊ณ์ด ์์
์ ์ต์ ํํ๋ PostgreSQL ํ์ฅ์
๋๋ค(
ClickHouse๋ ์๊ณ์ด ํ์ ์์ฅ์์ ์ฌ๊ฐํ ๊ฒฝ์์๋ ์๋์ง๋ง ์ด ๊ตฌ์กฐ ๋ฐ ๋ฒกํฐ ์ฟผ๋ฆฌ ์คํ ์ธก๋ฉด์์ ๋๋ถ๋ถ์ ๋ถ์ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ์์ TimescaleDB๋ณด๋ค ํจ์ฌ ๋น ๋ฆ
๋๋ค. ๋์์ ClickHouse ํจํท ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ ์ฑ๋ฅ์ ์ฝ 3๋ฐฐ ๋ ๋์ผ๋ฉฐ ๋์คํฌ ๊ณต๊ฐ์ 20๋ฐฐ ์ ๊ฒ ์ฌ์ฉํ๋ฏ๋ก ๋๋์ ๊ธฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. โจ
ClickHouse์ ๋ฌ๋ฆฌ TimescaleDB์์ ์ผ๋ถ ๋์คํฌ ๊ณต๊ฐ์ ์ ์ฝํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ZFS ๋๋ ์ ์ฌํ ํ์ผ ์์คํ ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
ClickHouse์ ๋ํ ํฅํ ์ ๋ฐ์ดํธ๋ ๋ธํ ์์ถ์ ๋์ ํ์ฌ ์๊ณ์ด ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ ์ ์ฅํ๋ ๋ฐ ํจ์ฌ ๋ ์ ํฉํ ๊ฒ์ ๋๋ค. TimescaleDB๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ๋ฒ ์ด ClickHouse๋ณด๋ค ๋์ ์ ํ์ผ ์ ์์ต๋๋ค.
- ๋งค์ฐ ์์ RAM(<3GB)์ ์ฌ์ฉํ๋ ์๊ท๋ชจ ์ค์น
- ํฐ ์กฐ๊ฐ์ผ๋ก ๋ฒํผ๋งํ์ง ์์ผ๋ ค๋ ๋ง์ ์์ ์์ INSERT
- ๋ ๋์ ์ผ๊ด์ฑ, ๊ท ์ผ์ฑ ๋ฐ ACID ์๊ตฌ ์ฌํญ;
- PostGIS ์ง์;
- Timescale DB๋ ๋ณธ์ง์ ์ผ๋ก PostgreSQL์ด๋ฏ๋ก ๊ธฐ์กด PostgreSQL ํ ์ด๋ธ๊ณผ ๋ณํฉํฉ๋๋ค.
Hadoop ๋ฐ MapReduce ์์คํ ๊ณผ์ ๊ฒฝ์
Hadoop ๋ฐ ๊ธฐํ MapReduce ์ ํ์ ๋ง์ ๋ณต์กํ ๊ณ์ฐ์ ์ํํ ์ ์์ง๋ง ๋๊ธฐ ์๊ฐ์ด ๋งค์ฐ ๊ธด ๊ฒฝํฅ์ด ์์ต๋๋ค. ClickHouse๋ ํ ๋ผ๋ฐ์ดํธ์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ ๊ฑฐ์ ์ฆ์ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ๋ฐ๋ผ์ ClickHouse๋ ๋ฐ์ดํฐ ๊ณผํ์๊ฐ ๊ด์ฌ์ ๊ฐ์ ธ์ผ ํ๋ ๋น ๋ฅธ ๋ํํ ๋ถ์ ์ฐ๊ตฌ๋ฅผ ์ํํ๋ ๋ฐ ํจ์ฌ ๋ ํจ์จ์ ์ ๋๋ค.
Pinot ๋ฐ Druid์์ ๊ฒฝ์
ClickHouse์ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฒฝ์์๋ ์ ํ ํ์ฅ ๊ฐ๋ฅํ ์คํ ์์ค ์ ํ์ธ Pinot ๋ฐ Druid์
๋๋ค. ์ด ์์คํ
์ ๋น๊ตํ๋ ํ๋ฅญํ ์์
์ด ๊ธฐ์ฌ์ ๊ฒ์๋์ด ์์ต๋๋ค.
์ด ๊ธฐ์ฌ๋ ์
๋ฐ์ดํธ๊ฐ ํ์ํฉ๋๋ค. ClickHouse๋ UPDATE ๋ฐ DELETE ์์
์ ์ง์ํ์ง ์๋๋ค๊ณ ํฉ๋๋ค. ์ด๋ ์ต์ ๋ฒ์ ๊ณผ ๊ด๋ จํ์ฌ ์ ์ ์ผ๋ก ์ฌ์ค์ด ์๋๋๋ค.
์ฐ๋ฆฌ๋ ์ด๋ฌํ DBMS์ ๋ํ ๊ฒฝํ์ด ๋ง์ง ์์ง๋ง Druid ๋ฐ Pinot๋ฅผ ์คํํ๋ ๋ฐ ํ์ํ ๊ธฐ๋ณธ ์ธํ๋ผ์ ๋ณต์ก์ฑ์ด ๋ง์์ ๋ค์ง ์์ต๋๋ค. ๋ชจ๋ ์ธก๋ฉด์์ Java๋ก ๋๋ฌ์ธ์ธ "์์ง์ด๋ ๋ถ๋ถ" ์ ์ฒด์ ๋๋ค.
Druid์ Pinot๋ Apache ์ธํ๋ฒ ์ดํฐ ํ๋ก์ ํธ๋ก, Apache๊ฐ GitHub ํ๋ก์ ํธ ํ์ด์ง์์ ์์ธํ ๋ค๋ฃน๋๋ค. Pinot์ 2018๋ 8์ ์ธํ๋ฒ ์ดํฐ์ ๋ํ๋ฌ๊ณ Druid๋ XNUMX๊ฐ์ ์ ์ธ XNUMX์์ ํ์ด๋ฌ์ต๋๋ค.
AFS๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง์ ๋ํ ์ ๋ณด์ ๋ถ์กฑ์ ๋์๊ฒ ๋ช ๊ฐ์ง, ์๋ง๋ ์ด๋ฆฌ์์ ์ง๋ฌธ์ ์ ๊ธฐํฉ๋๋ค. Pinot์ ์ ์๋ Apache Foundation์ด Druid์ ๋ํด ๋ ๋ง์ ์ฑํฅ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ๊ฒฝ์์์ ๋ํ ๊ทธ๋ฌํ ํ๋๊ฐ ๋ถ๋ฌ์์ ๋ถ๋ฌ ์ผ์ผ์ผฐ๋์ง ๊ถ๊ธํฉ๋๋ค. ์ ์๋ฅผ ์ง์ํ๋ ์คํฐ์๊ฐ ๊ฐ์๊ธฐ ํ์์ ๊ด์ฌ์ ๊ฐ๊ฒ ๋๋ฉด Druid์ ๊ฐ๋ฐ ์๋๊ฐ ๋๋ ค์ง๊ณ Pinot์ ๊ฐ๋ฐ ์๋๊ฐ ๋นจ๋ผ์ง๊น์?
ํด๋ฆญํ์ฐ์ค์ ๋จ์
๋ฏธ์ฑ์: ๋ถ๋ช ํ ์์ง์ ์ง๋ฃจํ ๊ธฐ์ ์ด์ง๋ง, ์ด์จ๋ ๋ค๋ฅธ ์ปฌ๋ผํ DBMS์์๋ ์ด๋ฐ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
์์ ์ฝ์ ์ ๊ณ ์์์ ์ ์ํ๋์ง ์์ต๋๋ค. ์์ ์ฝ์ ์ ์ฑ๋ฅ์ ๊ฐ ํ์ ์ด ์์ ๋น๋กํ์ฌ ์ ํ๋๊ธฐ ๋๋ฌธ์ ์ฝ์ ์ ํฐ ์ฒญํฌ๋ก ๋ถํ ๋์ด์ผ ํฉ๋๋ค. ์ด๊ฒ์ ClickHouse๊ฐ ๋์คํฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ฐ ์ด์ 1๊ฐ ์ด์์ ํ์ผ์ ์๋ฏธํ๋ฏ๋ก 1๊ฐ์ ์ด์ด ํฌํจ๋ 100๊ฐ์ ํ์ ์ฝ์ ํ๋ ค๋ฉด ์ต์ 100๊ฐ์ ํ์ผ์ ์ด๊ณ ์จ์ผ ํฉ๋๋ค. ์ด๊ฒ์ด ์ฝ์ ๋ฒํผ๋ง์ ์ค๊ฐ์๊ฐ ํ์ํ ์ด์ ์ ๋๋ค(ํด๋ผ์ด์ธํธ ์์ฒด๊ฐ ๋ฒํผ๋ง์ ์ ๊ณตํ์ง ์๋ ํ). ์ผ๋ฐ์ ์ผ๋ก Kafka ๋๋ ์ผ์ข ์ ํ์ ์์คํ ์ ๋๋ค. ๋ํ Buffer ํ ์ด๋ธ ์์ง์ ์ฌ์ฉํ์ฌ ๋์ค์ MergeTree ํ ์ด๋ธ์ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํ ์ ์์ต๋๋ค.
ํ ์ด๋ธ ์กฐ์ธ์ ์๋ฒ RAM์ ์ํด ์ ํ๋์ง๋ง ์ต์ํ ์กด์ฌํฉ๋๋ค! ์๋ฅผ ๋ค์ด, Druid์ Pinot๋ ๋ ธ๋ ๊ฐ์ ๋ง์ ์์ ๋ฐ์ดํฐ ์ด๋์ ์ง์ํ์ง ์๋ ๋ถ์ฐ ์์คํ ์์ ์ง์ ๊ตฌํํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ์ฐ๊ฒฐ์ด ์ ํ ์์ต๋๋ค.
์กฐ์ฌ ๊ฒฐ๊ณผ
์์ผ๋ก ์ฐ๋ฆฌ๋ Qwintry์์ ClickHouse๋ฅผ ๊ด๋ฒ์ํ๊ฒ ์ฌ์ฉํ ๊ณํ์ ๋๋ค. ์ด DBMS๋ ์ฑ๋ฅ, ๋ฎ์ ์ค๋ฒํค๋, ํ์ฅ์ฑ ๋ฐ ๋จ์์ฑ์ ๋ฐ์ด๋ ๊ท ํ์ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ClickHouse ์ปค๋ฎค๋ํฐ๊ฐ ์ค์ํ ์ค์น์์ ์ฌ์ฉํ ์ ์๋ ๋ ๋ง์ ๋ฐฉ๋ฒ์ ์ ์ํ๋ฉด ๋น ๋ฅด๊ฒ ํ์ฐ๋ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค.
์ผ๋ถ ๊ด๊ณ ๐
์ฐ๋ฆฌ์ ํจ๊ป์์ด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ์ฐ๋ฆฌ ๊ธฐ์ฌ๊ฐ ๋ง์์ ๋์ญ๋๊น? ๋ ์ฌ๋ฏธ์๋ ์ฝํ
์ธ ๋ฅผ ๋ณด๊ณ ์ถ๋ค๋ฉด? ์ฃผ๋ฌธํ๊ฑฐ๋ ์น๊ตฌ์๊ฒ ์ถ์ฒํ์ฌ ์ฐ๋ฆฌ๋ฅผ ์ง์ํ์ญ์์ค.
Dell R730xd๋ ์์คํ
๋ฅด๋ด์ Equinix Tier IV ๋ฐ์ดํฐ ์ผํฐ์์ 2๋ฐฐ ๋ ์ ๋ ดํฉ๋๊น? ์ฌ๊ธฐ์ ๋ง
์ถ์ฒ : habr.com