
Apache Airflow - ๊ธฐ์ด
DAG, operator (Bash, Python, SQL), ์ค์ผ์ค๋ง, ํ์คํฌ ์์กด์ฑ, Airflow UI, connection, variable, trigger rule
1Apache Airflow์์ DAG๋ ๋ฌด์์
๋๊น?
Apache Airflow์์ DAG๋ ๋ฌด์์ ๋๊น?
๋ต๋ณ
DAG (Directed Acyclic Graph)๋ ์์กด์ฑ๊ณผ ๊ด๊ณ๋ก ๊ตฌ์ฑ๋ ํ์คํฌ์ ๋ชจ์์ผ๋ก, ์์ ํ ์ํฌํ๋ก์ฐ๋ฅผ ๋ํ๋ ๋๋ค. ๋น์ํ์ ์ด๋ผ๋ ๊ฒ์ ์์กด์ฑ ๊ทธ๋ํ์ ๋ฃจํ๊ฐ ์์ ์ ์์์ ์๋ฏธํ๋ฉฐ, ์ด๋ ๊ฐ ํ์คํฌ๊ฐ ์คํ๋น ์ ํํ ํ ๋ฒ ์คํ๋จ์ ๋ณด์ฅํฉ๋๋ค. DAG๋ ํ์คํฌ๊ฐ ์ธ์ ์ด๋ป๊ฒ ์คํ๋์ด์ผ ํ๋์ง ์ ์ํ์ง๋ง, ๊ตฌ์ฒด์ ์ผ๋ก ๋ฌด์์ ํ๋์ง๋ ์ ์ํ์ง ์์ต๋๋ค.
2Scheduler๊ฐ ์คํ ์ค์ผ์ค๋ง์ ์์ํ๋ ๋ ์ง๋ฅผ ์ ์ํ๋ DAG ํ๋ผ๋ฏธํฐ๋ ๋ฌด์์
๋๊น?
Scheduler๊ฐ ์คํ ์ค์ผ์ค๋ง์ ์์ํ๋ ๋ ์ง๋ฅผ ์ ์ํ๋ DAG ํ๋ผ๋ฏธํฐ๋ ๋ฌด์์ ๋๊น?
๋ต๋ณ
start_date ํ๋ผ๋ฏธํฐ๋ Airflow๊ฐ DAG ์คํ ์ค์ผ์ค๋ง์ ์์ํ๋ ๋ ์ง๋ฅผ ์ ์ํฉ๋๋ค. ์ด ๋ ์ง๋ schedule_interval๊ณผ ๊ฒฐํฉํ์ฌ data interval์ ๊ฒฐ์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ค์ํ ์ : start_date๊ฐ ๊ณผ๊ฑฐ์ด๋ฉด, catchup=False๊ฐ ์ค์ ๋์ง ์์ ํ Airflow๋ ๋์น ์คํ์ ๋ฐ๋ผ์ก๊ธฐ ์ํด backfill์ ํธ๋ฆฌ๊ฑฐํ ์ ์์ต๋๋ค.
3Airflow DAG์์ Python ํจ์๋ฅผ ์คํํ๋ ค๋ฉด ์ด๋ค operator๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๊น?
Airflow DAG์์ Python ํจ์๋ฅผ ์คํํ๋ ค๋ฉด ์ด๋ค operator๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๊น?
๋ต๋ณ
PythonOperator๋ฅผ ์ฌ์ฉํ๋ฉด Airflow DAG์์ Python callable ํจ์๋ฅผ ์คํํ ์ ์์ต๋๋ค. ํจ์๋ python_callable ํ๋ผ๋ฏธํฐ๋ฅผ ํตํด ์ ๋ฌ๋๋ฉฐ op_args (๋ฆฌ์คํธ) ๋๋ op_kwargs (๋์ ๋๋ฆฌ)๋ฅผ ํตํด ์ธ์๋ฅผ ๋ฐ์ ์ ์์ต๋๋ค. PythonOperator๋ ์ฌ์ฉ์ ์ ์ Python ์ฝ๋๋ฅผ ์คํํ๊ธฐ ์ํ ํฐ ์ ์ฐ์ฑ์ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ operator ์ค ํ๋์ ๋๋ค.
task_b๊ฐ task_a ํ์ ์คํ๋๋๋ก ๋ ํ์คํฌ task_a์ task_b ์ฌ์ด์ ์์กด์ฑ์ ์ด๋ป๊ฒ ์ ์ํฉ๋๊น?
์์ ์ ๋งค์ผ ์คํ์ ๋ํ๋ด๋ cron ํํ์์ ๋ฌด์์ ๋๊น?
+17 ๋ฉด์ ์ง๋ฌธ
๊ธฐํ Data Engineering ๋ฉด์ ์ฃผ์
Linux & Shell - ๊ธฐ์ด
Git & GitHub - ๊ธฐ์ด
๋ฐ์ดํฐ ์์ง๋์ด๋ง์ ์ํ ๊ณ ๊ธ Python
Docker - ๊ธฐ์ด
Google Cloud Platform - ๊ธฐ์ด
CI/CD ๋ฐ ์ฝ๋ ํ์ง
Docker Compose
FastAPI - ๋ฐ์ดํฐ API
Data Engineering์ ์ํ ๊ณ ๊ธ SQL
Data Lake - ์ํคํ ์ฒ ๋ฐ ์์ง
๋ฐ์ดํฐ ์์ง๋์ด๋ง์ ์ํ BigQuery
PostgreSQL - ๊ด๋ฆฌ
Data Engineering์ ์ํ Data Modeling
Fivetran & Airbyte - ๋ฐ์ดํฐ ์์ง
dbt - ๊ธฐ์ด
Kubernetes - ๊ธฐ์ด
dbt - ๊ณ ๊ธ ๊ธฐ๋ฅ
ETL / ELT / ETLT ํจํด
Apache Airflow - ๊ณ ๊ธ
Airflow + dbt - ํ์ดํ๋ผ์ธ ์ค์ผ์คํธ๋ ์ด์
PySpark - ๋๊ท๋ชจ ์ฒ๋ฆฌ
Google Pub/Sub - ๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ
Apache Beam & Dataflow
Kubernetes - ํ๋ก๋์ ๋ฐ ์ค์ผ์ผ๋ง
Terraform - Infrastructure as Code
NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค
๋ชจ๋ Data Architecture
๋ชจ๋ํฐ๋ง ๋ฐ ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ
IAM ๋ฐ ๋ฐ์ดํฐ ๋ณด์
๋ค์ ๋ฉด์ ์ ์ํด Data Engineering์ ๋ง์คํฐํ์ธ์
๋ชจ๋ ์ง๋ฌธ, flashcards, ๊ธฐ์ ํ ์คํธ, ์ฝ๋ ๋ฆฌ๋ทฐ ์ฐ์ต, ๋ฉด์ ์๋ฎฌ๋ ์ดํฐ์ ์ ๊ทผํ์ธ์.
๋ฌด๋ฃ๋ก ์์ํ๊ธฐ