AirFlow에서 Task
DAG을 구성하는 작업 단위를 Task라고 하며, DAG이 수행할 작업들을 의미한다.
하나 또는 여러 개의 Task를 연결해서 DAG을 생성하며, Task에는 Operator, Sensor, Hook이 있다.
Task는 Bash, Python을 포함해서 다양한 작업을 수행할 수 있다.
이 사이트를 참고한다.
또한 잘 알려진 서비스나 오픈소스 백엔드에 대한 작업을 수행할 수 있도록 다양한 Providers Package를 제공한다.
이 사이트를 참고한다.
Providers Package의 경우 pip를 사용해서 설치 가능하다.
이 기술 문서를 참고한다.
Operator
Operator는 task를 어떻게 실행시킬지를 나타낸다.
하나의 워크플로우 안에서 하나의 테스크를 나타낸다.
Sensor와 Hook도 있지만 일반적으로 Operator를 대부분 사용한다.
Operator는 Action Operator와 Transfer Operator로 구분된다.
Action Operator는 작업을 수행하거나 다른 시스템에 작업을 수행하도록 지시한다.
Transfer Operator는 특정 시스템에서 다른 시스템으로 데이터를 이동시킨다.
AirFlow에서 제공하는 기본 Operator의 종류는 Bash와 Python을 포함해서 상당히 많다.
Submodules
airflow.operators.bash
airflow.operators.bash_operator
airflow.operators.branch
airflow.operators.branch_operator
airflow.operators.check_operator
airflow.operators.dagrun_operator
airflow.operators.datetime
airflow.operators.docker_operator
airflow.operators.druid_check_operator
airflow.operators.dummy
airflow.operators.dummy_operator
airflow.operators.email
airflow.operators.email_operator
airflow.operators.gcs_to_s3
airflow.operators.generic_transfer
airflow.operators.google_api_to_s3_transfer
airflow.operators.hive_operator
airflow.operators.hive_stats_operator
airflow.operators.hive_to_druid
airflow.operators.hive_to_mysql
airflow.operators.hive_to_samba_operator
airflow.operators.http_operator
airflow.operators.jdbc_operator
airflow.operators.latest_only
airflow.operators.latest_only_operator
airflow.operators.mssql_operator
airflow.operators.mssql_to_hive
airflow.operators.mysql_operator
airflow.operators.mysql_to_hive
airflow.operators.oracle_operator
airflow.operators.papermill_operator
airflow.operators.pig_operator
airflow.operators.postgres_operator
airflow.operators.presto_check_operator
airflow.operators.presto_to_mysql
airflow.operators.python
airflow.operators.python_operator
airflow.operators.redshift_to_s3_operator
airflow.operators.s3_file_transform_operator
airflow.operators.s3_to_hive_operator
airflow.operators.s3_to_redshift_operator
airflow.operators.slack_operator
airflow.operators.sql
airflow.operators.sql_branch_operator
airflow.operators.sqlite_operator
airflow.operators.subdag
airflow.operators.subdag_operator
airflow.operators.trigger_dagrun
airflow.operators.weekday
참고로 _operator로 끝나는 Operator들은 대부분 Defrecated 되었다.
대신 이름에서 _operator를 제외한 Operator를 사용하면 된다.
Operator에 공통적으로 kwargs라는 Keyword Arguments 를 전달하는 부분이 있다.
해당 부분은 DAG을 정의할 때 정의했던 default_args가 전달된다고 이해하면 된다.
자세한 내용은 아래 포스팅을 참고한다.
managed airflow
데이터 인프라
RDS - raw data: 데이터레이크 - 복제 - 가공 - 데이터웨어하우스에 저장 - 레드시프트
airflow 를 이용해 db를 클론하고
스파크를 통해 production DB의 데이터를 DL로 복제한다
production db는 S3
airflow를 써보기만 했구나...
라고만 생각이 들지 않도록
airflow를 써봤다 = 공식문서를 봤다.
airflow의 흐름을 알고 있다 = 오픈소스를 보고 어떤 흐름으로 흘러가는지 안다.
airflow 공식문서를 정리해서 책을 내면 잘 팔릴듯 ㅋㅋ