์ค๋ฆฌ์ฝ๋ฐธ๋ฆฌ ์์ง๋์ด์ ํจ๊ปํ๋ Apache Airflow
์ํํธ์จ์ด ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ ๋ง๋ค ๋ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ Orchestrator(์ค์ผ์คํธ๋ ์ดํฐ)์ธ Apache Airflow(์ํ์น ์์ดํ๋ก์ฐ)๋ฅผ ๋ฐฐ์ฐ์ค ์ ์์ต๋๋ค.
์๊ฐ์ 642๋ช
๋์ด๋ ์ด๊ธ
์๊ฐ๊ธฐํ ๋ฌด์ ํ

- ํด๊ฒฐ
apache airflow ์ค์นํ๊ธฐ ์ง๋ฌธ
์๋ ํ์ธ์mac์์ apache ์ค์นํ๋ ค๊ณ ํ๋๋ฐ, Apache Airflow ์ค์นํ๊ธฐ ๊ฐ์๊ฐ<a tar
python๋น ๋ฐ์ดํฐ๋ฐ์ดํฐ-์์ง๋์ด๋งairflow์์์ฉ์ฉ
ใป
4๋ฌ ์
0
84
2
- ํด๊ฒฐ
postgres_loader DAG ์๋ฌ
ํด๋น ๊ฐ์์์ ์งํํ postgres_loader DAG๋ฅผ ๋๋ฆฌ๋ฉด ์๊พธ sample_table์ด ์กด์ฌํ์ง ์๋๋ค๋ ์๋ฌ๊ฐ ๋ฐ์ํด์ ์ง๋ฌธ ๋จ๊น๋๋ค.๋์ปค์์ ์ค์นํด์
python๋น ๋ฐ์ดํฐ๋ฐ์ดํฐ-์์ง๋์ด๋งairflow์์ฑ์ ์์
ใป
5๋ฌ ์
1
52
3
- ํด๊ฒฐ
Queue ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋ ํ์ ๋ํ ์ง์
Queue์ ๋ํ ์ง๋ฌธ์ด ๋ช๊ฐ์ง๊ฐ ์์ต๋๋ค. ํ๋ฅผ ์ง์ ํ ๋๋ ๋ฌด์กฐ๊ฑด ํ์ ์ด๋ฆ์
python๋น ๋ฐ์ดํฐ๋ฐ์ดํฐ-์์ง๋์ด๋งairflow๊น์ ์
ใป
6๋ฌ ์
0
51
1
- ํด๊ฒฐ
๊ณต์ compose ๋ด postgres db ์ค์น์
์ ๋ postgres๋ฅผ airflow ๊ณต์ compose์์ ํจ๊ป ๋์์ต๋๋ค. ๊ทธ๋ ๊ฒ ํ๋ connection์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์์ต๋๋ค. <
python๋น ๋ฐ์ดํฐ๋ฐ์ดํฐ-์์ง๋์ด๋งairflow์ํด๋น
ใป
8๋ฌ ์
0
75
2
- ํด๊ฒฐ
postgres_loader์ apache-airflow-providers-postgres ๋ฒ์ ํธํ์ฑ
postgres_loader ํ ์คํธ์,from airflow.providers.postgres.operators.postgres import Post
python๋น ๋ฐ์ดํฐ๋ฐ์ดํฐ-์์ง๋์ด๋งairflowjhlee
ใป
1
184
2
- ํด๊ฒฐ
Airflow Limitation ๊ฐ์์ ๋ํ ์ง๋ฌธ
๋จผ์ ์ข์ ๊ฐ์ ๊ฐ์ฌํฉ๋๋ค.Airflow Limitation ๋ด์ฉ ์ค Inefficient for S
python๋น ๋ฐ์ดํฐ๋ฐ์ดํฐ-์์ง๋์ด๋งairflowkmkang
ใป
1
92
1
- ๋ฏธํด๊ฒฐ
airflow์ postgres๊ฐ์ connection ์ค๋ฅ
airflow์ postgres ๊ฐ์ connection ์ค๋ฅ ๋ฌธ์ ์ ๋๋ค.airflow UI -> admin-> connections์์ postgres ์ฐ๊ฒฐ์ค์ <img src="https://cdn.inflear
python๋น ๋ฐ์ดํฐ๋ฐ์ดํฐ-์์ง๋์ด๋งairflowstyle12385
ใป
1
1,146
4
- ๋ฏธํด๊ฒฐ
from airflow.sensors.sql import SqlSensor์ ๋ํด ์ง๋ฌธ ์์ต๋๋ค.
์ ์๋์ด 4:21์ด์ from airflow.sensors.sql import SqlSensor๋ provider์ ์๋๊ฒ ์๋๋ผ core์ ์๋ sensor๋ผ๊ณ ์๋ ค์ฃผ์ จ๋๋ฐ airflow ๋ฒ์ 2.9.1์์๋ Sql
python๋น ๋ฐ์ดํฐ๋ฐ์ดํฐ-์์ง๋์ด๋งairflow์ฝ๋ฉ๋ฉ
ใป
1
254
1
- ๋ฏธํด๊ฒฐ
๋ฉํ๋ฐ์ดํฐ ์๋ฏธ
๊ฐ์ฌ๋ ์๋ ํ์ธ์๋ฉํ๋ฐ์ดํฐ๋ ํ ์ดํฐ์ ์ค๋ช ์ฆ, ํ ์ด๋ธ์ ๋ํ ๋ช ์ธ์ ๋ผ๊ณ ์ ์ ํ๋๊ฒ์ ๋ดค์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ ๋ค๋ฅธ ์๋ฏธ๋ก ์์ฒ ๋ฐ์ดํฐ ๋ผ๋ ์๋ฏธ๋ก๋ ์ฌ์ฉ๋ ์ ์์๊น์? ์๋ฅผ๋ค์ด overview๊ฐ์์์ 6:24์ด์ "๋ค๋ฅธ ๋ฉํ ๋ฐ์ดํฐ์ ํฉ์ฑํด์"๋ผ
python๋น ๋ฐ์ดํฐ๋ฐ์ดํฐ-์์ง๋์ด๋งairflow์๋ฆฌ
ใป
1
367
2
- ํด๊ฒฐ
๋ณ๋ ฌ์ฒ๋ฆฌ ์ง๋ฌธ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์ ์ ์๋ ๐ airflow ์ค์ต์ค์ airflow์ ๋ณ๋ ฌ์ฒ๋ฆฌ์์ ๋ฉ์์ง ํ๊ฐ ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋๋์ง ๊ถ๊ธํ์ฌ ์ง๋ฌธ๋๋ฆฝ๋๋ค!</p
python๋น ๋ฐ์ดํฐ๋ฐ์ดํฐ-์์ง๋์ด๋งairflowJP
ใป
1
508
2
- ํด๊ฒฐ
connection ์ ๋ณด ์ด์ ๋ฐฉ๋ฒ ์ง๋ฌธ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์ ์ ์๋ ๐ connection ์ ๋ณด๋ฅผ ์๋ก์ด ํ๊ฒฝ์ ์ด์ ๋ฐฉ๋ฒ ์ง๋ฌธ๋๋ฆฝ๋๋ค.stackoverflow
python๋น ๋ฐ์ดํฐ๋ฐ์ดํฐ-์์ง๋์ด๋งairflowJP
ใป
1
278
1
- ํด๊ฒฐ
PostgresOperator๋ก ๋๋์ ๋ฐ์ดํฐ ์ ๋ก๋ ๋ฐฉ๋ฒ ์ง๋ฌธ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์ ์ ์๋ ๐ PostgresOperator ์ง๋ฌธ ๋๋ฆฝ๋๋ค. DB table์ ๋ฐ์ดํฐ๋ฅผ ๊ฐฑ์ ํ๋ task๋ฅผ ํผ์
python๋น ๋ฐ์ดํฐ๋ฐ์ดํฐ-์์ง๋์ด๋งairflowJP
ใป
1
395
1
- ํด๊ฒฐ
๊ฐ์ ํ ์ธ ํ๋ก๋ชจ์ ์ง๋ฌธ์ ๋๋ค..
์ ์๋ ์๊ฐ ์ดํ ์ปค๋ฎค๋ํฐ ์ด๋ฒคํธ ์ฐธ์ฌ ์ ์ฒญํ๋๋ฐ์์ด๋ฒคํธ ๋๋๊ฑด๊ฐ์? ใ <a target="_blank" rel="noopener noreferrer nofollow" href="https://www.inflearn.com/course/
python๋น ๋ฐ์ดํฐ๋ฐ์ดํฐ-์์ง๋์ด๋งairflowJP
ใป
1
282
1
- ํด๊ฒฐ
hook ์ง๋ฌธ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์ ์ ์๋ hook ์ฌ์ฉ์ ๋ํ ์ง๋ฌธ๋๋ฆฝ๋๋ค! [์ง๋ฌธ] connection ๊ธฐ๋ฅ์ ์ฌ์ฉํด์ DB์ ์ฐ๊ฒฐํ์ฌ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ ๊ฐ๋ฅํ ๊ฒ์ผ๋ก ๋ณด์ด๋๋ฐ์. hook์ ์ฌ์ฉํ๋ ์ด์ ๊ฐ ๊ถ๊ธ ํฉ๋๋ค. <p
python๋น ๋ฐ์ดํฐ๋ฐ์ดํฐ-์์ง๋์ด๋งairflowJP
ใป
1
347
1
- ๋ฏธํด๊ฒฐ
section 2-hook ๊ฐ์ ์ง๋ฌธ
docker on window๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.docker ์ airflow๋ฅผ ์ฌ๋ฆฌ๋ฉด, ์์ฒด์ ์ผ๋ก postgres db ๊ฐ ์ฌ๋ผ๊ฐ๋๋ฐ์. ๊ฐ์ 8:05 ์์ ๋ง์ํ์๋๊ฒ ์ด๊ฒ์ธ๋ฏ ํ๋ฐ์. <img src="htt
python๋น ๋ฐ์ดํฐ๋ฐ์ดํฐ-์์ง๋์ด๋งairflownathan
ใป
1
289
1
- ๋ฏธํด๊ฒฐ
airflow tasks test ์ง๋ฌธ๋๋ฆฝ๋๋ค!
์๋ ํ์ธ์ ์ ์๋! ๐provider ๊ฐ์์์ airflow tasks test ์ง๋ฌธ๋๋ฆฝ๋๋ค.airflow docker-
python๋น ๋ฐ์ดํฐ๋ฐ์ดํฐ-์์ง๋์ด๋งairflow์์ฑ์ ์์
ใป
1
509
3
- ํด๊ฒฐ
airflow docker compose ์ง๋ฌธ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์ ์ ์๋ airflow docker compose ์ง๋ฌธ๋๋ฆฝ๋๋ค. airflow docker compose๋ก ์ต์ด ์คํํ yml ํ์ผ์ ์์ ํ๋ฉด ์์ ๋ด์ฉ๋ง์ ๋ฐ์ํ๊ฒ๋๋๊ฑด๊ฐ์? ์๋๋ฉด ์๋ก์ด docker compose๋ฅผ ๋น๋ํ๋
python๋น ๋ฐ์ดํฐ๋ฐ์ดํฐ-์์ง๋์ด๋งairflowJP
ใป
1
419
1
- ํด๊ฒฐ
์น์ 1 apache airflow ์ค์นํ๊ธฐ ์ง๋ฌธ
๊ฐ์ 3:17 ์์"๊ทธ๋๋ก ์นดํผํ์ ์ ์ค์นํ๋ฉด" ์ด๋ผ๊ณ ํ์ จ๋๋ฐ ์ด๊ฒ ๋ฌด์จ๋ป์ด์ฃ ? ๊ตฌ์ฒด์ ์ธ ๋ฐฉ๋ฒ์ ์๋ ค์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.์นดํผํด์ ํฐ๋ฏธ๋์ ๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ํ๋ฉด ์ค๋ฅ๊ฐ ๋ ์์ <img
python๋น ๋ฐ์ดํฐ๋ฐ์ดํฐ-์์ง๋์ด๋งairflownathan
ใป
1
462
1
- ๋ฏธํด๊ฒฐ
my_first_dag.py ํ์ผ ์ง๋ฌธ ์ ๋๋ค
Standalone ํ๊ฒฝ์ ์ฒ์ ์ธํ ํ๊ฒ ๋๋ฉด dags ๋๋ ํ ๋ฆฌ๊ฐ ๋ณ๋๋ก ์๋๋ฐ ์ฌ์ฉ์๊ฐ ์ง์ ๋ง๋ค์ด์ฃผ๋ฉด ๋๋์ง ์ง๋ฌธ๋๋ฆฝ๋๋ค. ๊ทธ๋ฆฌ๊ณ standalone ์ผ๋ก airflow ์๋ฒ๋ฅผ ์๋์ํจ ์ดํ ๋ค์ exit ํ ๊ฒฝ์ฐ ์๊พธ <a
python๋น ๋ฐ์ดํฐ๋ฐ์ดํฐ-์์ง๋์ด๋งairflowgogo91rla
ใป
1
399
1
- ๋ฏธํด๊ฒฐ
Docker ์์ airflow ์ฌ์ฉ์ ์ง๋ฌธ๋๋ฆฝ๋๋ค
๊ฐ์์์๋ ๊ฐ์ฌ๋๊ป์ airflow standalone ์ ์ฌ์ฉํ์ จ๋๋ฐ,docker image๋ก airflow ์๋ฒ ์์ฑํ ๋ค์ postgres ์๋ฒ์ ์ฐ๊ฒฐํ๋ ค๊ณ ํ๋ ํ ์คํธ fail์ด ๋๊ณ DAG๋ ๋์๊ฐ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ํน์ docker im
python๋น ๋ฐ์ดํฐ๋ฐ์ดํฐ-์์ง๋์ด๋งairflowgogo91rla
ใป
1
955
2






