[DuckDB] ์๊ฐ
DuckDB๋ ๋ ์ค๋ฅด๊ณ ์๋ OLAP, ๋ถ์์ฉ DB ์ค ํ๋๋ค.
๋น์ทํ ํฌ์ง์
์ ์ก๊ณ ์๋ ๋ํ์ ์ธ ์คํ์์ค ๊ฒฝ์์๋ก๋ clickhouse๊ฐ ์๋ค.
C++๋ก ๋ง๋ค์ด์ก๊ณ , MIT ๋ผ์ด์ผ์ค๋ผ์ ์ฌ์ฉ์๋ ์๋ฌด๋ฐ ์ง์ฅ์ด ์๋ค.
์์ ํ๋ 1.0.0 ๋ฒ์ ์ 2024๋
์ ๋์๋ค.
ํน์ง
๋๊ท๋ชจ ๋ฐ์ดํฐ์ ์ ๋ํ ๋ถ์์ ๋ชฉํ๋ก ํ๊ธฐ ๋๋ฌธ์, ๊ธฐ์กด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ค๊ณผ ๋ค๋ฅด๊ฒ column ๋ฒ ์ด์ค ๊ตฌ์กฐ๋ฅผ ๊ฐ๊ณ ์๋ค. ์ด๋ฅผ ํตํด ๋น ๋ฅด๊ณ ๋ณต์กํ ํํฐ๋ง ์กฐ๊ฑด์ ๋ํด ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ฌ์ฑํ ์ ์๋ค.
SQLite์ ์๊ฐ์ ๋ฐ์ ๋ง๋ค์ด์ ธ์, ๊ฐ๋ณ๊ณ ์ด์ ๊ฐ๋ฅํ ๊ตฌ์กฐ๋ฅผ ์งํฅํ๋ค.
OLAP DB๋ก์๋ ํน์ดํ๊ฒ ํธ๋์ญ์ ์ ์ง์ํ๋ฉฐ, ACID๋ฅผ ๋ง์กฑํ๋ค๊ณ ํ๋ค.
๋ค๋ฅธ ํ๋ซํผ, ํฌ๋งท๋ค๊ณผ์ ์ฐ๋ ๋ฅ๋ ฅ์ด ๋ฐ์ด๋๋ค. ๋ฐ์ดํฐ ๊ณผํ์ ์ฌ์ฉ๋๋ ํฌ๋งท์ธ parquet, apache arrow ๋ฑ๊ณผ์ ์ง์ ์ ์ธ ํตํฉ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
๊ฒ๋ค๊ฐ ๋ฐ์ดํฐ ์์ค๊ฐ ๋ฐ๋์ ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ ์์ ํ์๋ ์๋ค. s3 ๋ฑ์์ ๋ฐ๋ก ์ค์บํด์ query๋ฅผ ๋ ๋ฆฌ๋ ๊ธฐ๋ฅ๋ ์ ๊ณตํ๋ค.
vs Clickhouse
DuckDB์ ๊ฐ์ฅ ๊ฐ๋ ฅํ ๊ฒฝ์์๋ ์๋ง clickhouse์ผ ๊ฒ์ด๋ค.
๋ ์ต์ ๊ธฐ์ ์ด๋ผ๊ณ ์ด๊ฒ ๋ ์ข์๊ฑด ์๋๊ณ , ์๋ก tradeoff๊ฐ ์กด์ฌํ๋ค.
clickhouse๋ ์ํ ํ์ฅ์ ์ ์ ๋ก ํ ๋ถ์ฐ ๊ตฌ์กฐ๋ฅผ ์ง์ํ๋ฉฐ, ํ
๋ผ๋ฐ์ดํธ์์ ํํ๋ฐ์ดํธ์ ์ด๋ฅด๋ ์ง์ง ๋น
๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ์ ์๋ ๋ฅ๋ ฅ์ ์ ๊ณตํ๋ค.
๊ทธ ๋์ ๋ฆฌ์์ค ์๊ตฌ๋์ด ๊ฝค ๋์ผ๋ฉฐ, ์ผ๋ฐ์ ์ธ DB๋ค๋งํผ ์ค์ ์ด๋ ๊ด๋ฆฌ ๋ถ๋ถ์์ ์์ด ๊ฐ๋ ๋ถ๋ถ์ด ์กด์ฌํ๋ค.
DuckDB๋ clickhouse์ ๋นํ๋ฉด ๊ฐ๋น ๊ฐ๋ฅํ ๋ฐ์ดํฐ ํฌ๊ธฐ๊ฐ ๋น๊ต์ ์์ ํธ์ด๋ค. ๊ธฐ๊ฐ๋ฐ์ดํธ๊ธ, ์ ํ๋ฉด ํ
๋ผ๋ฐ์ดํธ ์์ค๊น์ง๋ ์ ์ฒ๋ฆฌํ ์ ์์ผ๋, ํํ๋ฐ์ดํธ ๊ธ ๋ฐ์ดํฐ์ ๋ํด์๋ ์ต์ ํ์ ํ๊ณ๊ฐ ์กด์ฌํ๋ค.
์ํ ํ์ฅ๋ ์ ๋๋ก ์ง์ํ์ง ์๋๋ค.
์ค์น์ ์ฌ์ฉ์ด ํธํ๊ณ ๋ฆฌ์์ค ์๊ตฌ์น๊ฐ ๋ฎ์ ๋์ , ์ํ์ด ์กด์ฌํ๋ ๊ฒ์ด๋ค.
๊ทธ๋์ DuckDB๋ ์ค์๊ท๋ชจ ๋ฐ์ดํฐ์ ์ ๋จ๋ฐ์ ์ผ๋ก ํธ๋ค๋งํ๋๋ฐ ์ ์ ํ๊ณ , ์ ๋ง ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฅผ ์ง์์ ์ผ๋ก ๋ณด๊ดํ๊ณ ์ฒ๋ฆฌํด์ผ ํ๋ค๋ฉด clickhouse๋ฅผ ๋น๋กฏํ ์ํฐํ๋ผ์ด์ฆ๊ธ ์๋ฃจ์ ์ ์ฐพ์๋ด์ผ ํ๋ค.
์ฌ์ค ์ด๊ฒ๋ SQLite์ฒ๋ผ ๊ฑฐํ์ด ์ข ์กด์ฌํ๋ ๊ฒ ๊ฐ๊ธด ํ๋ฐ, ์ ๋นํ ์ฌ์ฉ์ฌ๋ก์์๋ ์ธ๋งํ ๊ฒ ๊ฐ๋ค.
ํ
๋ผ-ํํ๊ธ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ ์ผ์ด ๋ง์ง๋ ์๊ณ , ๋๊ฐ๋ ๋ฐ์ดํฐ๊ฐ ์ปค๋ ๊ธฐ๊ฐ๋ฐ์ดํธ ์์ค์ธ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ด๋ค.
์ฐธ์กฐ
https://duckdb.org/
https://duckdb.org/why_duckdb
https://www.cloudraft.io/blog/clickhouse-vs-duckdb
https://en.wikipedia.org/wiki/DuckDB