toy_project

10. airflow 기초

인계동ADHD환자 2022. 5. 4. 00:55
728x90

airflow를 배워보려 한다

 

기존에 파이썬으로 작성한 크롤링들을 주기적으로 실행을 하려면 크론탭으로 스케줄을 설정했다

이것의 단점은 작업에 실패하면 로그를 확인하고 에러가 난 부분을 확인해서 재실행한다는 것이다

딱히 단점이라고 생각하지 않았는데 airflow를 사용하면 이런 것들을 쉽게 핸들링 할 수 있나보다

 

DAG(Directed Acyclic Grtaph):유향 비순환 그래프

DAG안에는 한 개 이상의 Task가 있고, Task는 실제 실행시키는 작업이다

배치 스케줄을 관리

 

Action Operator

에어플로우는 Operator를 사용하여 python, bash, aws등 다양한 동작을 실행시킬 수 있다

sample_task = BashOperator( task_id="sample_task", 
                            bash_command='python3 sample_task.py', 
                            dag=dag)

bash_command 부분에 python파일을 실행시키는 코드가 있다 오호리

 

Sensor Operator

특정 조건을 Sensing하여 실행되는 Operator.
다른 Operator들과는 달리 조건이 만족할 때까지 기다렸다가, 조건이 충족되면 다음 Task를 실행하도록 함.
예를 들어, 특정 위치에 파일이 생성되었을 때 다음 Task를 실행하도록 File sensor를 사용할 수 있음

 

Task

데이터 파이프라인에 존재하는 Operator

 

Task instance

데이터 파이프라인이 Trigger되어 실행될 때 생성된 Task

 

Workflow

DAG를 통해 task간의 디펜던시를 정의하고 각 태스크는 Operator로 실행하는 과정들을 통해 워크플로우 정의

더보기

Airflow를 사용하기 위해서는 메타데이터를 저장하는 MySQL, Celery backend를 제공하는 Redis, 그리고 무엇보다 필수적인 Airflow를 설치해야 합니다. 이번 글에서는 CeleryExecutor를 사용하지 않기 때문에 Redis를 반드시 설치해야 하는 것은 아니지만, 편의상 포함하도록 하겠습니다.

라고 한다

가끔 일하다보면 여기저기서 "레디스 레디스" 하는걸 들었는데 ariflow에 필요한가보다

 

어떤 건지 감은 오는데

어떻게 실행....?

 

 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=wideeyed&logNo=221565240108

728x90