Delta Lake๋ data lakehouse ์ํคํ ์ฒ๋ฅผ ๊ตฌ์ถํ ์ ์๋ ์คํ ์์ค ์คํ ๋ฆฌ์ง ๋ ์ด์ด๋ก, ๊ธฐ์กด์ ๋ฐ์ดํฐ ๋ ์ดํฌ(Lake)์ ํธ๋์ญ์ ๊ธฐ๋ฅ๊ณผ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๋ณด์ฅ์ ์ถ๊ฐํ์ฌ ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค ์์ค์ ์ ๋ขฐ์ฑ๊ณผ ์ฑ๋ฅ์ ์ ๊ณตํ๋ ๊ธฐ์ ์ ๋๋ค.
์ฃผ๋ก ๋ฐ์ดํฐ ์์ง๋์ด๋ง, ๋ฐ์ดํฐ ๋ถ์, ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ ๋ฑ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํ ๋ค์ํ ์์ ํ์ฉ๋๋ฉฐ, ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ ์ด๋ ฅ์ ๊ด๋ฆฌํ๋ ๊ธฐ๋ฅ๊น์ง ์ ๊ณตํฉ๋๋ค.
๊ณผ๊ฑฐ์๋ HDFS ๊ธฐ๋ฐ์ ๋ฌผ๋ฆฌ์ ์ธ ์๋ฒ ์์์ ํ์ฉํ ๋ฐ์ดํฐ ๋ ์ดํฌ๊ฐ ๋๋ฆฌ ์ฌ์ฉ๋์์ง๋ง, ์ต๊ทผ์๋ Amazon S3, Google Cloud Storage์ ๊ฐ์ ํด๋ผ์ฐ๋ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง๊ฐ ๋์ฒดํ๊ณ ์์ต๋๋ค. ์ด๋ค์ ์ฅ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
โ
์ฌ์ค์ ๋ฌด์ ํ์ ํ์ฅ์ฑ
โ
์ฌ์ฉํ ๋งํผ๋ง ๋น์ฉ ์ง๋ถ
โ
๋์ ๋ด๊ตฌ์ฑ ๋ฐ ์์ ์ฑ ๋ณด์ฅ
๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ฌ์ฉ๋๋ Apache Spark, Presto, Trino, Pandas, DuckDB ๋ฑ์ ๋๊ตฌ๋ค ์ญ์ ํด๋ผ์ฐ๋ ๊ฐ์ฒด ์ ์ฅ์์์ ์ฐ๋์ ์ง์ํด์ฃผ๊ณ ์์ผ๋ฉฐ, ํด๋ผ์ฐ๋ ๊ฐ์ฒด ์ ์ฅ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ ์ฅํ๋ ๊ณผ์ ์ด ํ์ค์ผ๋ก ์๋ฆฌ์ก๊ณ ์์ต๋๋ค.
์ ํต์ ์ธ ๋ฐ์ดํฐ ๋ ์ดํฌ(Hadoop HDFS, AWS S3, Azure Data Lake ๋ฑ)๋ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ์๋ ์ ํฉํ์ง๋ง, ํ์ผ ๊ธฐ๋ฐ์ด๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค ์์ค์ ์ฟผ๋ฆฌ๋ ๋ถ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋๋ฐ๋ ํ๊ณ๊ฐ ์์์ต๋๋ค. ์ฃผ์ํ ๋ฌธ์ ์ ๋ค์ ์๋์ ๊ฐ์ต๋๋ค.
1๏ธโฃ ๋ฐ์ดํฐ ์ ํฉ์ฑ ๋ถ์กฑ
2๏ธโฃ ACID ํธ๋์ญ์ ๋ฏธ์ง์
3๏ธโฃ Schema Evolution(์คํค๋ง ๋ณ๊ฒฝ) ๋ฌธ์
4๏ธโฃ ๋ฐ์ดํฐ ๋ฒ์ ๊ด๋ฆฌ ๋ถ์ฌ
์ด๋ฌํ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ธฐ ์ํด Databricks๋ Delta Lake๋ฅผ ๊ฐ๋ฐํ์๊ณ , ์ด๋ฅผ 2017๋ ์ ๊ณ ๊ฐ์๊ฒ ์ ๊ณตํ ํ 2019๋ ์คํ์์ค๋ก ๊ณต๊ฐํ์ต๋๋ค.
Delta Lake์ ํต์ฌ ์๋ฆฌ๋ ๊ฐ์ฒด ์ ์ฅ์์ ํ์ผ ๊ธฐ๋ฐ์ผ๋ก ์ ์ฅ๋์ด ์๋ ๋ฐ์ดํฐ๋ค์ ๋ํ์ฌ ACID ํธ๋์ญ์
์ ๋ณด์ฅํ๋ ๊ฒ์
๋๋ค.
Delta Lake๋ Apache Parquet์ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ฉฐ, Delta Log๋ผ๋ ์ถ๊ฐ์ ์ธ ๋ฉํ๋ฐ์ดํฐ ๋ก๊ทธ ํ์ผ์ ์ฌ์ฉํ์ฌ ACID ํธ๋์ญ์
๊ณผ ๋ฐ์ดํฐ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ํํฉ๋๋ค.
1๏ธโฃ Raw Data โ ์๋ณธ ๋ฐ์ดํฐ ํ์ผ (Parquet)
2๏ธโฃ Delta Log โ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ๊ธฐ๋ก๋๋ ๋ก๊ทธ ํ์ผ
โ ACID ํธ๋์ญ์ ๋ณด์ฅ
delta_log
๋ฉํ๋ฐ์ดํฐ ๋ก๊ทธ๋ฅผ ํตํด ACID ํธ๋์ญ์
์ ์ง์ํฉ๋๋ค.์ด๋ ๊ฒ Delta Log๋ฅผ ํ์ฉํ๋ฉด ๋ฐ์ดํฐ๊ฐ ์ธ์ , ์ด๋ป๊ฒ ๋ณ๊ฒฝ๋์๋์ง ์ถ์ ํ ์ ์๊ณ , ํธ๋์ญ์ ์ถฉ๋์ ๋ฐฉ์งํ ์๋ ์์ต๋๋ค.
1๏ธโฃ ACID ํธ๋์ญ์ ์ง์
2๏ธโฃ ๋ฐ์ดํฐ ๋ฒ์ ๊ด๋ฆฌ (Time Travel)
3๏ธโฃ ์คํค๋ง ๊ด๋ฆฌ (Schema Management)
4๏ธโฃ ๋ฐ์ดํฐ ํ์ผ ์ต์ ํ (File Compaction)
OPTIMIZE
: ์์ ํ์ผ์ ํฉ์ณ์ ์ฑ๋ฅ์ ๊ฐ์ Z-Ordering
: ์ฌ๋ฌ ๊ฐ์ ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ์ฌ ์ฟผ๋ฆฌ ์ฑ๋ฅ ํฅ์5๏ธโฃ ๋ฐ์ดํฐ ์ ๋ฆฌ ๋ฐ ์ญ์ (Data Vacuuming)
VACUUM
๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ํ์ผ์ ์ญ์ ํฉ๋๋ค. 6๏ธโฃ ์บ์ฑ (Caching)
7๏ธโฃ ๊ฐ์ฌ ๋ก๊ทธ (Audit Logging)
8๏ธโฃ ์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
๋น๊ต ํญ๋ชฉ | ๊ธฐ์กด ๋ฐ์ดํฐ ๋ ์ดํฌ | ๊ธฐ์กด ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค | Delta Lake |
---|---|---|---|
๋ฐ์ดํฐ ์ ์ฅ ๋ฐฉ์ | ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง (Parquet, CSV ๋ฑ) | ํ/์ปฌ๋ผ ๊ธฐ๋ฐ ์คํ ๋ฆฌ์ง | ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง (Parquet + Delta Log) |
ํธ๋์ญ์ ์ง์ | โ ๋ฏธ์ง์ | โ ACID ๋ณด์ฅ | โ ACID ๋ณด์ฅ |
๋ฐ์ดํฐ ๋ฒ์ ๊ด๋ฆฌ | โ ๋ถ๊ฐ๋ฅ | โ ์ผ๋ถ๋ง ๊ฐ๋ฅ | โ Time Travel ๊ฐ๋ฅ |
์ฑ๋ฅ ์ต์ ํ | โ ์์ | โ ์ง์ | โ ์ง์ |
์คํค๋ง ๋ณ๊ฒฝ | โ ์ด๋ ต๊ฑฐ๋ ๋ถ๊ฐ๋ฅ | โ ์ง์ | โ ์ง์ |
ํ์ฉ ์ฌ๋ก | ๋ฐ์ดํฐ ์ ์ฅ์ | ๋ฐ์ดํฐ ๋ถ์, OLAP | ๋ฐ์ดํฐ ์ ์ฅ์, ๋น ๋ฐ์ดํฐ ๋ถ์ |
Delta Lake, Hudi, Iceberg์ ๊ฐ์ Open Table Format์ด ๋์จ์ง๋ ๋ช ๋
์ด ๋์์ง๋ง ์ ๋ ์ต๊ทผ์์์ผ ๋ณธ๊ฒฉ์ ์ผ๋ก ํ์ต์ ์์ํ์ต๋๋ค.
์ด์ ํ์ฌ์์๋ ๋ฐ์ดํฐ๋ฅผ Parquet ํํ๋ก ๊ด๋ฆฌํ์ง๋ง, ์ฃผ๋ก ์
๋ฐ์ดํธ๋ ํ
์ด๋ธ์ ๋ฎ์ด์ฐ๊ฑฐ๋ ์๋ก์ด ๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑํ๋ ๋ฐฉ์์ผ๋ก ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํ์์ฃ .
๊ทธ๋ฐ ๊ฒฝํ์ด ์์ด์์ธ์ง, ํ์ผ ๊ธฐ๋ฐ ์ ์ฅ
+ AICD ํธ๋์ญ์
์ง์
+ ๋กค๋ฐฑ
์ด ๋ชจ๋ ๊ธฐ๋ฅ์ด ํ์ผ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ๋ฅํ Open Table Format์ ์ ์๊ฒ๋ ํ์ ์ ์ธ ๊ฐ๋
์ผ๋ก ๋ค๊ฐ์์ต๋๋ค. ๊ฐ๊น์ด ๋ฏธ๋๊น์ง๋ ์ด ๊ธฐ์ ์ด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋๋ฐ ์์ด ํ์ค์ผ๋ก ์๋ฆฌ๋งค๊น ํ ๊ฒ์ด๋ผ๋ ์๊ฐ์ด ๋ค์์ต๋๋ค.
์ด๋ฒ ๊ธ์์๋ Delta Lake์ ์ด๋ก ์ ๊ฐ๋
์ ์ ๋ฆฌํด ๋ณด์๊ณ , ๋ค์ ๊ธ์์๋ ์ง์ ์ค์ต์ ์งํํ๋ฉฐ ์ค๋ฌด์์ ์ด๋ป๊ฒ ํ์ฉํ ์ ์์์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.