컴퓨터 공부/💿 Airflow

[Airflow] 지원되는 오퍼레이터 보기

letzgorats 2023. 8. 31. 06:25

이번 포스팅에서는 여러가지 airflow에서의 오퍼레이터로 뭐가 있는지 다양하게 살펴보겠습니다.

 

1. 기본 오퍼레이터

    : Airflow에서 기본적으로 제공해주는 오퍼레이터를 한 번 살펴보도록 하겠습니다.

파일 경로 오퍼레이터(클래스) 중요도 비고
airflow.models.baseoperator BaseOperator - 오펄레이터를 직접 개발하고 싶은 경우, 이 클래스 상속하여 개발 (execute() 함수를 오버라이딩 하여 사용합니다.)
- 아래 오퍼레이터들은 모두 이 클래스를 상속하여 개발되어 있습니다.
- Airflow를 잘 쓰려면, 이 오퍼레이터 상속/개발하는 것을 자유자재로 할 줄 알아야 합니다.
airflow.operators.bash BashOperator - bash쉘 스크립트를 실행
- 가장 많이 사용하는 오퍼레이터 중 하나입니다.
airflow.operators.branch BaseBranchOperator - 직접 사용할 수는 없음.
- 이 클래스를 상속하여 choose_branch함수를 구현해야 합니다.(그냥 사용시 에러가 발생)
- 그러나, 이 클래스를 상속해서 사용하는 것보다 @task.branch 데코레이터 사용을 권장합니다.
airflow.operators.datetime BranchDateTimeOperator   - 특장 Datetime구간을 주어 Job날짜가 구간에 속하는지 여부에 따라 분기를 결정합니다.
airflow.operators.email EmailOperator   - 이메일 전송하는 오퍼레이터(Airflow파라미터에 SMTP서버 등 사전 셋팅 필요)
airflow.operators.generic_transfer GenericTransfer   - 데이터를 소스에서 타겟으로 전송(Airflow커넥션에 등록되어 있는 대상만 가능)
airflow.operators_latest_only LatestOnlyOperator   - 이 Task 뒤에 연결되어 있는 task들을 모두 가장 최근의 Job만 실행하게끔 하는 오퍼레이터
파일 경로 오퍼레이터(클래스) 중요도 비고
airflow.operators.subdag SubDagOperator   - 일종의 task 그룹화, 해당 오퍼레이터 안에 다른 오퍼레이터를 둘 수 있습니다. (Taskgroup과 유사합니다, dag을 불러오는 것이 차이)
airflow.operators.trigger_dagrun TriggerDagRunOperator - 다른 DAG을 수행하기 위한 오퍼레이터
airflow.operators.weekday BranchDayOfWeekOperator   - 특정 요일에 따라 분기처리할 수 있는 오퍼레이터
airflow.operators.python PythonOperator - 어떤 파이썬 함수를 실행시키기 위한 오퍼레이터
BranchPythonOperator - 파이썬 함수 실행 결과에 따라 task를 선택적으로 실행시킬 때 사용되는 오퍼레이터
ShortCircuitOperator   - 파이썬 함수 return 값이 False면 후행 Task를 Skip처리하고, dag을 종료시키는 오퍼레이터
PythonVirtualenvOperator   - 파이썬 가상환경 생성 후 Job 수행하고 마무리되면 가상환경을 삭제해주는 오퍼레이터
ExternalPythonOperator   - 기존에 존재하는 파이썬 가상환경에서 Job 수행하게 하는 오퍼레이터

공식문서를 살펴보면, 더 다양한 operators들이 있습니다. 들어가시면, 각 operator에 어떤 파라미터가 있고 어떤 것을 지원하는지 잘 알 수 있을 것입니다.

공식문서 operaotrs

2. Provider 오퍼레이터

    : Solution제공 업체에서 solution들을 다루기 위해 나온 오퍼레이터도 있습니다. (ex. AWS, GCP)

 

먼저, Provider에서 제공해주는 solution들을 다루기 위한 오퍼레이터는 Airflow UI 화면을 띄운다음에, Admin 탭에 Providers 탭에 가면 자세히 볼 수 있습니다.

많은 solution 제공업체의 솔루션들

정말 많은 solution 업체들이 있는데요, microsoft azure에서 다루는 솔루션들, mysql, postgres 와 같은 DB들 아니면, redis와 같은 인메모리 서비스들도 다룰 수 있게 해주고 있습니다.

 

예를 들어 amazon탭에 들어가보겠습니다.

amazon 솔루션

그 중에서 PythonAPI를 봐볼까요?

그러면, 아마존 클라우드에서 제공해주는 많은 서비스들을 연동할 수 있는 hook이라는 것을 제공하는 것을 볼 수 있습니다.

aws - hook

그리고, 아래와 같이 operator도 제공해주고 있습니다. 이런 서비스를 이용해서 특정 기능을 할 수 있는 오퍼레이터(설계도)를 제공할 수 있습니다.

aws - operator

또, sensor라는 것도 있는데, 특정 조건이 만족이 되는지 안 되는지 지속적으로 감시할 수 있는 방법으로 여러 종류가 있습니다.

aws - sensors

 

airflow와 궁합이 잘 맞는 google cloud platform 을 살펴볼까요? 에어플로우는 gcp와 연동되는 기능이 굉장히 많습니다.

google solution

여기도 마찬가지로 hooks 이라는 것이 존재합니다.

gcp - hooks

오퍼레이터, 센서도 다 있고, 데이터를 옮겨줄 수 있는 transfer도 있습니다.

gcp - transfer

 

마지막으로 http 탭을 한 번 보도록 하겠습니다.

http - operators

http에 operators에 들어가보면, 아래와 같이 "SimpleHttpOperator" 라는 클래스가 있습니다.

http - operators - SimpleHttpOperator

다음 실습에서, 이 "SimpleHttpOperator" 오퍼레이터를 써보도록 하겠습니다.

사용자가 요청할 HttpUrl 과 HttpMethod (GET, POST) 를 명시해서 API 값을 얻어올 수 있는 그런 기능이라고 보시면 됩니다.

반응형

'컴퓨터 공부 > 💿 Airflow' 카테고리의 다른 글

[Airflow] 서울시 공공데이터 API 키 발급받기  (0) 2023.09.30
[Airflow] Trigger Run 오퍼레이터  (0) 2023.08.31
[Airflow] Edge Label  (0) 2023.08.30
[Airflow] Task Group  (2) 2023.08.30
[Airflow] Trigger Rule  (0) 2023.08.30