๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Airflow

[Airflow] Datetime (feat. ์ž๋™์‹คํ–‰ ๋ฐฉ์ง€)

by forestlim 2022. 5. 14.
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ Airflow ์‹คํ–‰๋‚ ์งœ

์‹คํ–‰ ๋‚ ์งœ๋Š” batch job ์˜ ํŠน์„ฑ์„ ๊ฐ€์ง„ Airflow์—์„œ ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค.

Airflow์—์„œ start_date ๋Š” ์‹คํ–‰ ์‹œ์ž‘ ๋‚ ์งœ๊ฐ€ ์•„๋‹ˆ๋ผ ์Šค์ผ€์ค„์ด ์‹œ์ž‘๋˜๋Š” ๋‚ ์งœ๋ผ๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•ด์•ผํ•œ๋‹ค. 

์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์˜ค๋Š˜ ๋‚ ์งœ๊ฐ€ datetime(2022, 5, 14) ์ด๋‹ค. 

ํ•˜์ง€๋งŒ Airflow์— start_date๋ฅผ (2022, 1, 1) ๋กœ ์ ๊ฒŒ๋˜๋ฉด 1์›” 1์ผ ๋ถ€ํ„ฐ 5์›” 13์ผ๊นŒ์ง€์˜ job์ด ์ƒ๊ธฐ๊ฒŒ ๋œ๋‹ค. 

์ด์ฒ˜๋Ÿผ Airflow์—์„œ start_date๋Š” ์‹คํ–‰ ์‹œ์ž‘์ด ์•„๋‹Œ ์Šค์ผ€์ค„์— ์˜ฌ๋ผ๊ฐ€๋Š” ๋‚ ์งœ๋ผ๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•˜์ž

 

๐Ÿ“Œ catchup

์œ„์™€ ๊ฐ™์ด ๊ณผ๊ฑฐ ๋‚ ์งœ๋กœ start_date ๋ฅผ ์„ค์ •ํ•˜๋ฉด Airflow๋Š” ๊ณผ๊ฑฐ์˜ Task๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ์‹คํ–‰ํ•˜๋Š” Backfill์„ ์‹คํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.

ํ•˜์ง€๋งŒ ๋ณดํ†ต ์ด๋Ÿฐ ๊ฒฝ์šฐ๋ฅผ ์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์œผ๋ฏ€๋กœ DAG๋ฅผ ์„ ์–ธํ•  ๋•Œ catchup=False ์˜ต์…˜์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค. 

๊ธฐ๋ณธ ์„ค์ •์€ catchup=True์ด๋‹ค.

DAG(
    default_args=default_args, 
    start_date=datetime(2022,1,1, tzinfo=seoul_time),
    schedule_interval='@daily',
    tags=['test'],
    catchup=False
    )

 

 

๐Ÿ“Œ ์ž๋™์‹คํ–‰ ๋ฐฉ์ง€

์œ„์™€ ๊ฐ™์ด ์„ค์ •ํ•˜๊ณ  DAG ์—…๋กœ๋“œ ํ›„ Airflow DAG๋ฅผ ํ‚ค๋ฉด ์›ํ•˜๋Š” ์‹œ๊ฐ„์ด ์•„๋‹Œ๋ฐ ์‹คํ–‰์ด ๋œ๋‹ค. ์œ„ ์˜ˆ์‹œ์—์„œ datetime(2022, 1, 1) ๋กœ๋งŒ ์„ค์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. Airflow๋Š” ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ผ๋‹จ ์Šค์ผ€์ค„์— ๋ฏธ๋ฆฌ ๋“ฑ๋ก์ด ๋˜์–ด์•ผ ํ•œ๋‹ค. ๋ฌด์Šจ๋ง์ด๋ƒ ํ•˜๋ฉด start_date๊ฐ€ ํ˜„์žฌ ์‹œ๊ฐ„ ๋ณด๋‹ค ์ด์ „์œผ๋กœ ๋“ฑ๋ก์ด ๋˜์–ด ์žˆ์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์•„๋ž˜ ์˜ˆ์‹œ๋Š” Backfill์ด ํ•„์š” ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•œ ๊ฒฝ์šฐ์ด๋‹ค. 

 

์˜ˆ๋ฅผ ๋“ค์–ด์„œ

- ์ด๋ฏธ ์˜ค๋Š˜ ์ •ํ•ด์ง„ ์‹œ๊ฐ„์ด ์ง€๋‚œ ํ›„ ์—…๋กœ๋“œ ํ•œ dag์— ๋Œ€ํ•ด์„œ๋Š” datetime์„ ์˜ค๋Š˜ ๋‚ ์งœ๋กœ ํ•ด์•ผํ•จ

    ex) ๋งค์ผ ์˜คํ›„ 1์‹œ์— ์‹คํ–‰ํ•˜๋Š” dag์ธ๋ฐ ์˜คํ›„ 2์‹œ์— ์—…๋กœ๋“œ ์‹œ


- ์ •ํ•ด์ง„ ์‹œ๊ฐ„์ด ์—…๋กœ๋“œ ํ•˜๋Š” ์‹œ๊ฐ„๋ณด๋‹ค ๋‚˜์ค‘์ธ dag์— ๋Œ€ํ•ด์„œ๋Š” ์–ด์ œ ๋‚ ์งœ๋กœ ํ•ด์•ผํ•จ

   
ex) ๋งค์ผ ์˜คํ›„ 1์‹œ์— ์‹คํ–‰ํ•˜๋Š” dag์ธ๋ฐ ์˜คํ›„ 12์‹œ์— ์—…๋กœ๋“œ ์‹œ

-
์ •ํ•ด์ง„ ์‹œ๊ฐ„์ด 2๊ฐœ ์ด์ƒ์ธ ๊ฒฝ์šฐ: ์—…๋กœ๋“œ ํ•˜๋Š” ์‹œ๊ฐ„๋ณด๋‹ค ์ „์— ์‹คํ–‰๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒƒ๊ณผ ํ›„์— ์‹คํ–‰๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด ์„ž์—ฌ์žˆ์„ ๊ฒฝ์šฐ ์˜ค๋Š˜ ๋‚ ์งœ๋กœ   ex) ์˜คํ›„1์‹œ, ์˜คํ›„3์‹œ์— ์‹คํ–‰ํ•˜๋Š” dag์ธ๋ฐ ์˜คํ›„ 2์‹œ์— ์—…๋กœ๋“œ ์‹œ

 

์ฆ‰ ์ผ๋ฐฐ์น˜๋ฉด ํ•˜๋ฃจ ์ „ ๊ธฐ์ค€์œผ๋กœ ๋Œ๊ณ ,

์‹œ๊ฐ„ ๋ฐฐ์น˜๋ฉด ์ด์ „ ์‹œ๊ฐ„ ๊ธฐ์ค€์œผ๋กœ ๋Œ๊ณ , 

๋ถ„ ๋ฐฐ์น˜๋ฉด ์ด์ „ ๋ถ„ ๊ธฐ์ค€์œผ๋กœ ๋ˆ๋‹ค. 

 

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€