DATABRICKS-Fundamentals-1
1. Apache Spark๋?
Apache Spark๋
๐ ๋ถ์ฐ ํด๋ฌ์คํฐ ํ๊ฒฝ์์ ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์ง(Engine) ์
๋๋ค.
Spark๋ ๋ค์ ์์ ์ ํ๋์ ํตํฉ๋ ํ๋ ์์ํฌ์์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
- ๋ฐฐ์น ๋ฐ์ดํฐ ์ฒ๋ฆฌ (Batch Processing)
- ์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ (Stream Processing)
- ๋จธ์ ๋ฌ๋ (Machine Learning)
- ๊ทธ๋ํ ์ฒ๋ฆฌ (Graph Processing)
- SQL ๊ธฐ๋ฐ ๋ฐ์ดํฐ ๋ถ์
๐ ์ํ ํฌ์ธํธ
- Spark๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์๋๋ค
- Spark๋ ์คํ ๋ฆฌ์ง ์์คํ ์ด ์๋๋ค
- Spark๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์ง(Processing Engine) ์ด๋ค
2. Spark๊ฐ ์ ๊ณตํ๋ ์ฃผ์ API (Unified Framework)
Spark๋ ํ๋์ ์์ง ์์์ ์ฌ๋ฌ API๋ฅผ ์ ๊ณตํฉ๋๋ค.
(1) Spark SQL & DataFrame API
- SQL ๊ธฐ๋ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
- ANSI SQL ํธํ
- ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋จ โญโญโญ
(2) Structured Streaming
- ์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐฐ์น์ฒ๋ผ ์ฒ๋ฆฌ
- Kafka, Kinesis ๋ฑ๊ณผ ์ฐ๋
(3) MLlib
- ๋จธ์ ๋ฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ๋ถ๋ฅ, ํ๊ท, ํด๋ฌ์คํฐ๋ง ๋ฑ ์ ๊ณต
(4) GraphX
- ๊ทธ๋ํ ๊ธฐ๋ฐ ์ฐ์ฐ (๋ ธ๋, ์ฃ์ง)
๐ ์ํ ํฌ์ธํธ
- RDD API๋ ์กด์ฌํ์ง๋ง ๊ถ์ฅ๋์ง ์์
- ์ํ์์๋ DataFrame / Spark SQL ์ค์ฌ
3. Spark ์ํคํ ์ฒ (Spark Stack)
Spark ๋์ ๊ตฌ์กฐ (์๋ โ ์)
Distributed Storage
- HDFS
- Amazon S3
- Azure Data Lake Storage (ADLS)
- Google Cloud Storage (GCS)
Compute Cluster
- ์ฌ๋ฌ ๋์ ์๋ฒ๋ก ๊ตฌ์ฑ๋ ํด๋ฌ์คํฐ
Resource Manager (Cluster Manager)
- YARN
- Kubernetes
- Standalone
- Mesos (๊ณผ๊ฑฐ)
Spark Framework
- Spark Core
- Spark SQL
- Streaming
- MLlib
- GraphX
Programming API / DSL
- Scala
- Java
- Python (PySpark)
- R
๐ ์ํ ํฌ์ธํธ
- Spark๋ ๋ฐ๋์ Cluster Manager ์์์ ์คํ
- Spark๋ ์คํ ๋ฆฌ์ง์ ๋ถ๋ฆฌ๋ ๊ตฌ์กฐ
4. Spark Core & ์ธ์ด ์ง์
Spark Core
- Spark์ ํต์ฌ ์คํ ์์ง
- RDD ๊ธฐ๋ฐ API ํฌํจ
์ง์ ์ธ์ด
- Scala (Spark์ ์๋ ์ธ์ด)
- Java
- Python (PySpark) โญ
- R
๐ ์ํ ํฌ์ธํธ
- Spark Core = RDD API
- ์ค๋ฌด & ์ํ์์๋ DataFrame API ์ฌ์ฉ
5. Spark๊ฐ ์ธ๊ธฐ ์๋ ์ด์
(1) ๋์ ์ถ์ํ (High Abstraction)
- ๋ถ์ฐ ์ฒ๋ฆฌ ๋ณต์ก์ฑ ์จ๊น
- ๊ฐ๋ฐ์๋ SQL ๋๋ DataFrame๋ง ์์ฑ
(2) ์ฌ์ฉํ๊ธฐ ์ฌ์
- SQL ๊ธฐ๋ฐ ์ ๊ทผ ๊ฐ๋ฅ
- ๋ค์ํ ์ธ์ด ์ง์
(3) Unified Platform
- SQL + Batch + Streaming + ML + Graph
- ํ๋์ ์์ง์์ ๋ชจ๋ ์ฒ๋ฆฌ
(4) Open Source & ํ๋ถํ ์ํ๊ณ
- ์๋ง์ ๊ธฐ์ ์ฌ์ฉ
- Fortune 500์ ์ฝ 80% ์ฌ์ฉ
๐ ์ํ ํฌ์ธํธ
- Spark์ ํต์ฌ ์ฅ์ = Unified + Abstraction
6. Apache Spark๊ฐ โ์๋ ๊ฒโ (์ค์ โญโญโญ)
Spark๋ ๊ฐ๋ ฅํ์ง๋ง ์ํฐํ๋ผ์ด์ฆ ์๋ฃจ์ ์ผ๋ก๋ ๋ถ์กฑํ ๋ถ๋ถ์ด ์์
(1) ์์ฒด ์คํ ๋ฆฌ์ง โ
- Spark๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ง ์์
- ํญ์ ์ธ๋ถ ์คํ ๋ฆฌ์ง ํ์ (S3, HDFS ๋ฑ)
(2) ACID ํธ๋์ญ์ โ
- Spark ์์ฒด๋ ACID ๋ณด์ฅ ์ ํจ
- Atomicity, Consistency, Isolation, Durability ๋ฏธ์ง์
(3) ์ค์ ๋ฉํ๋ฐ์ดํฐ ์นดํ๋ก๊ทธ โ
- ๋จ์ํ ๋ด๋ถ ์นดํ๋ก๊ทธ๋ง ์กด์ฌ
- Enterprise-grade Catalog ์์
(4) ํด๋ฌ์คํฐ ๊ด๋ฆฌ โ
- Spark๋ก ํด๋ฌ์คํฐ ์์ฑ/์ญ์ ๋ถ๊ฐ
- Cluster Manager์ ์ญํ
(5) ์๋ํ ๋๊ตฌ ๋ถ์กฑ โ
- ๋ฐฐํฌ, ๋ชจ๋ํฐ๋ง, ์ด์ ์๋ํ ๊ธฐ๋ฅ ๋ฏธํก
๐ ์ํ ํฌ์ธํธ
- Spark๋ ์์ง์ด์ง ํ๋ซํผ์ด ์๋๋ค
7. ์ Spark โํ๋ซํผโ์ด ํ์ํ๊ฐ?
์ํฐํ๋ผ์ด์ฆ ํ๊ฒฝ์์๋ ๋ค์์ด ํ์ํจ:
- ACID ๋ณด์ฅ
- ๋ฉํ๋ฐ์ดํฐ ๊ด๋ฆฌ
- ๋ณด์
- ์๋ํ
- ์ด์ ํธ์์ฑ
๐ ๊ทธ๋์ Spark + Platform ์กฐํฉ์ด ํ์
8. ๋ํ์ ์ธ Spark ํ๋ซํผ๋ค (์ํ ๋จ๊ณจ)
(1) Cloudera Hadoop
- ์จํ๋ ๋ฏธ์ค Hadoop ํ๋ซํผ
- YARN ๊ธฐ๋ฐ
- Spark ์คํ ๊ฐ๋ฅ
(2) Amazon EMR
- AWS ๊ด๋ฆฌํ Hadoop/Spark
- ๋ด๋ถ์ ์ผ๋ก Hadoop + YARN ์ฌ์ฉ
(3) Azure HDInsight
- Azure ๊ธฐ๋ฐ Hadoop/Spark ์๋น์ค
(4) Google Dataproc
- GCP ๊ธฐ๋ฐ Hadoop/Spark ์๋น์ค
๐ ๊ณตํต์
- ๋ชจ๋ Hadoop ๊ธฐ๋ฐ
- YARN ์ฌ์ฉ
9. Databricks์ ์ฐจ๋ณ์ โญโญโญ
Databricks ํน์ง
- Hadoop ๊ธฐ๋ฐ ์๋
- YARN ์ฌ์ฉ ์ ํจ
- Spark ์ ์ฉ Cloud Native ํ๋ซํผ
- ํด๋ผ์ฐ๋ ์ต์ ํ
Databricks๋?
- Spark + ACID + Metadata + Automation ์ ๊ณต
- Delta Lake ๊ธฐ๋ฐ
- Medallion Architecture ๊ตฌํ ๊ฐ๋ฅ
๐ ์ํ ํฌ์ธํธ
- Databricks = Pure Spark Platform
- On-Premise โ, Cloud Only โญ
10. ์ํ์ ์์ฃผ ๋์ค๋ ํ ์ค ์์ฝ
- Spark๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์ง
- Spark๋ ์คํ ๋ฆฌ์ง๋ฅผ ํฌํจํ์ง ์๋๋ค
- Spark๋ ACID๋ฅผ ๊ธฐ๋ณธ ์ ๊ณตํ์ง ์๋๋ค
- Spark๋ YARN / Kubernetes ์์์ ์คํ
- Databricks๋ Spark ๊ธฐ๋ฐ ์ํฐํ๋ผ์ด์ฆ ํ๋ซํผ
- Hadoop ๊ธฐ๋ฐ ํ๋ซํผ โ Databricks
11. Medallion Architecture์ Spark (๋ณด๋์ค)
- Spark ๋จ๋ โ
- Spark + Delta Lake โญ
- Databricks์์ Medallion Architecture ๊ตฌํ ๊ฐ๋ฅ
- Bronze
- Silver
- Gold
๐ ์ํ ํฌ์ธํธ
- Medallion Architecture = Databricks + Delta Lake
โ ๋ง๋ฌด๋ฆฌ ํ ๋ฌธ์ฅ (์ํ์ฉ)
Apache Spark๋ ๋ถ์ฐ ํ๊ฒฝ์์ ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ Unified Data Processing Engine์ด๋ฉฐ,
์ํฐํ๋ผ์ด์ฆ ํ๊ฒฝ์์๋ Databricks ๊ฐ์ ํ๋ซํผ๊ณผ ํจ๊ป ์ฌ์ฉ๋๋ค.
