강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

Airflow 마스터 클래스

Bash operator DAG 만들기 & DAG 디렉토리 셋팅

bash operator 관련 문의입니다

작성

·

20

0

스크린샷 2025-10-12 162815.png.webp

airflow에서 example_complex에 dag 코드가 이렇게 적혀있던데

수업꺼랑 좀 코드 차이가 있어서요!
스케쥴이나 import하는거나 변경을 어떻게해야할지 몰라서 문의드립니다

답변 3

0

김현진님의 프로필 이미지
김현진
지식공유자

안녕하세요 bbbangduk9님!

 

Airflow가 버전 업그레이드가 많이 되면서 제가 촬영했던 버전과는 많이 달라졌습니다.

그래도 3.0 업데이트 되었을 때 제가 수업 코드들을 전부 한번 renewal 했습니다. 그래서 샘플 코드랑 크게 다르지는 않을텐데요, 혹시 어떤 부분이 헷갈리는지 명확히 알려주시면 더 정확히 답변드릴 수 있을 것 같아요.

 

우선 스케줄 부분은 위 예시는 None으로 되어 있는데 이건 스케줄을 걸지 않겠다는 의미입니다. (수작업 또는 REST API 등을 이용해 명시적으로 수행할 때에만 수행됨) 실습하다보면 실습 파일에도 schedule=None으로 설정돼있는 실습 코드들이 종종 나옵니다.

 

그리고 import 하는 부분에서

from __future__ import annotations

이 부분은 파이썬에서 타입 힌팅주는 방법 중 하나인데 없어도 무방합니다. DAG 자체가 파이썬을 이용해 자유롭게 작성하도록 하고있다 보니 작성하는 사람마다 스타일이 다 다릅니다. example_complex 에서는 annotations를 이용해서 타입 힌팅을 줬구나 정도로 이해하셔도 됩니다.

 

혹시 또 궁금하신 점이 있을까요?

 

 

0

스크린샷 2025-10-12 170212.png.webp

코드는 깃보고 작성했는데

이렇게 계속 import가 안되는거같습니다

0

안녕하세요, 인프런 AI 인턴입니다. bbbangduk9님.

현재 제공해 주신 BashOperator와 DAG 코드에 대한 궁금증에 대해 설명드리겠습니다. 수업 자료와 코드가 다소 차이가 있어서 혼란스러우실 수 있습니다. 아래에서 그 이유와 조정 방법을 안내드리겠습니다.

  1. Imports:

    • from __future__ import annotations: 이는 사용하려는 파이썬 버전이 type hint를 완전히 지원하지 않기 때문에 추가할 수 있는 옵션입니다. 강의에 이 부분이 빠져있다면, 최신 파이썬 버전을 사용하고 있다는 가정하에 생략할 수 있습니다.
    • import pendulum: 이 패키지는 시차가 있는 시간 계산에 유리합니다. ‘pendulum’을 이용해 시작 날짜와 시간을 설정하는 건 좋은 선택입니다.
    • from airflow.providers.standard.operators.bash import BashOperator: 최신 버전의 Airflow에서는 이 경로가 맞지만, 강의에선 더 일반적인 경로나 다양한 버전에서의 경로에 따라 조금씩 다른 경우가 있어요. 정확한 경로는 현재 사용 중인 Airflow 버전에 따라 결정됩니다.
  2. DAG Definition:

    • dag_id="example_complex": DAG의 고유 식별자입니다.
    • schedule=None: 이 설정은 DAG의 자동 실행을 중지합니다. ‘None’을 ‘3 * * * *‘와 같은 크론 표현식으로 변경하여 주기적인 실행을 설정할 수 있습니다.
    • start_date=pendulum.datetime(2021, 1, 1, tz="UTC"): 시작일은 ‘pendulum’을 사용하여 지정하도록 설정되어 있습니다. 다른 시작일이 필요하다면 수정이 가능합니다.
    • catchup=False: 과거의 실행을 무시할지를 결정합니다. 과거 실습이 불필요하다면 ‘False’로 유지하면 됩니다.
    • tags=["example", "example2", "example3"]: 이는 DAG를 정리하고 필터링할 때 도움이 됩니다. 태그는 필요에 따라 추가하거나 제거할 수 있습니다.

이러한 설명을 바탕으로 DAG 및 BashOperator 코드 구성을 조정할 수 있을 것입니다.

관련 질문과 비슷한 상황에 대해 익숙해지기 위해 이러한 게시물을 참조해 보세요:

이 정보가 도움이 되시기 바랍니다. 원하는 결과를 얻으셨길 바라며, 여전히 궁금한 점이 있으면 언제든지 추가 질문 부탁드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기