Batch Serving
- 일정 기간 데이터 수집 후 일괄 학습 및 결과 제공을 하기에 대량의 데이터 처리 시 효율적이다.
- Batch Processing : 예약된 시간에 자동으로 실행되는 소프트웨어 프로그램을 자동으로 실행하는 방법
- Batch Processing이 Batch Serving보다 더 큰 개념이다.
Airflow
- Airflow 이전에는 Crontab을 사용했음
- Crontab에서 Cron 표현식을 사용하여 스케줄링한다.
- *****로 각각 분, 시간, 요일, 달, 요일을 지정한다.
- crontab의 문제점
- 재실행 및 알림에 대해서 별도의 처리를 하지 않는다.
- 에러가 발생한 경우 별도의 알림이 없어 직접 log를 확인해야 한다.
- 하지만 이 log도 보기 어렵다.
- 여러 파일을 실행하거나, 복잡한 파이프라인을 만들기 힘들다.
- Airflow의 핵심 개념
- DAGs(Directed Acyclic Graphs)
- Airflow에서 작업을 정의하는 방법, 작업의 흐름과 순서 정의
- Operator
- Airflow의 작업 유형을 나타내는 클래스
- BashOperator, PythonOperator, SQLOperator 등 다양한 Operator 존재
- Scheduler
- DAGs를 보며 현재 실행해야 하는지 스케줄 확인
- DAGS의 실행을 관리하고 스케줄링한다
- Executor
- 작업이 실행되는 환경
- LoacalExecutor, CeleryExecutor 등 다양한 Executor가 존재
- DAGs(Directed Acyclic Graphs)
Airflow Architecture
- Scheduler
- 각종 메타 정보의 기록을 담당한다.
- DAG 디렉토리 내 py파일에서 DAG을 파싱하여 DB에 저장 및 DAG들의 스케줄링 관리 및 담당을 한다.
- 또한 Executor를 통해 스케줄링 기간이 된 DAG을 실행하고, 실행 진행 상황과 결과를 DB에 저장한다.
- Executor는 스케줄링 기간이 된 DAG을 실행하는 객체이다.
- Workers
- DAG의 작업을 수행한다.
- Scheduler에 의해 생기고 실행되며, DAG run을 실행할 때 생기는 로그를 저장한다.
- Metadata Database
- 메타 정보를 저장하는 공간이다.
- Scheduler에 의해 Metadata가 저장된다.
- 이 Metadata에는 파싱한 DAG 정보, DAG Run 상태와 실행 내용, Task 정보 등이 저장된다.
- Webserver
- WEB UI를 담당한다.
- Metadata DB와 통신하며 유저에게 필요한 메타 데이터를 웹 브라우저에 보여준다.