Infra/Apache
[Apache] Apache Airflowμ κ°λ
carsumin
2025. 2. 20. 20:39
Apache Airflowλ?
- λ°μ΄ν° νμ΄νλΌμΈμ μ€κ³, μ€μΌμ€λ§, λͺ¨λν°λ§νλ μ€νμμ€ μν¬νλ‘μ° κ΄λ¦¬ νλ«νΌ
- μ¦, 무μμ μΈμ μ΄λ»κ² μμλλ‘ μ€νν μ§ μ½λλ‘ μ μνκ³ μλμΌλ‘ μ€νλλλ‘ λμμ£Όλ μμ€ν
Airflow ν΅μ¬ κ°λ
- DAG (Directed Acyclic Graph) : νμ΄νλΌμΈμ μ 체 νλ¦μ ννν κ·Έλνλ‘ Taskκ°μ μμλ₯Ό μ μ
- Task : μ€μ λ‘ μνλλ λ¨μ μμ (ex : Spark Job μ€ν, SQL 쿼리 μ€ν, API νΈμΆ λ±)
- Operator : νΉμ μ’ λ₯μ μμ μ μννλ Taskμ ν νλ¦Ώ
- Scheduler : DAGμ μ μλ μ£ΌκΈ°μ λ§μΆ° Task μ€ν μμ μ κ²°μ
- Executor : μ€μ λ‘ Taskλ₯Ό μ€ννλ 주체
- Web UI : DAG μ€ν νν©, λ‘κ·Έ, Task μ€ν¨ μλ¦Ό λ±μ κ΄λ¦¬ν μ μλ λμ보λ
ꡬ쑰
ββββββββββββββββββββββββββββββ
β Airflow Web UI β
βββββββββββββββ¬βββββββββββββββ
β
βββββββΌββββββ
β Scheduler β ← DAG μ€μΌμ€ κ΄λ¦¬
βββββββ¬ββββββ
β
βββββββΌββββββ
β Executor β ← μ€μ Task μ€ν
βββββββ¬ββββββ
β
βββββββΌββββββ
β Workers β ← Python, Spark, Bash λ± μ€ν
ββββββββββββββ
Airflow μλ λ°©μ μμ
- 'λ§€μΌ μ€μ 9μμ λ€μμ μ€ννλ€' λ νμ΄νλΌμΈμ λ§λ λ€κ³ κ°μ
- PostgreSQLμμ λ°μ΄ν°λ₯Ό μΆμΆ
- Sparkλ‘ μ μ²λ¦¬ λ° μ§κ³
- κ²°κ³Όλ₯Ό S3 λλ Data Warehouseμ μ μ¬
- SlackμΌλ‘ μλ¦Ό μ μ‘
μ΄ λͺ¨λ κ³Όμ μ Airflowμμ νλμ DAG (μ€νλ¨μ)λ‘ μ μν¨
Airflowμ μ₯μ
- μ½λ κΈ°λ° κ΄λ¦¬
- μ€μΌμ€λ§ μλν
- μμ‘΄μ± κ΄λ¦¬ : Taskκ° μ€ν μμ μ§μ (task1 >> task2)
- μ₯μ 볡ꡬ μ©μ΄ : μ€ν¨ν Taskλ§ μ¬μ€ν κ°λ₯
- μκ°ν/λͺ¨λν°λ§
- νμ₯μ±