1. 일반적인 자동화 작업에서 발생하는 문제는 무엇일까?
- 데이터 분석이나 모델링 영역에서 주기적인 자동화 작업을 해야하는 경우가 빈번하게 발생한다.
- 데이터 분석을 위해 특정 시간 단위의 데이터를 연산하여 데이터를 적재하는 과정도 있고
- 특정 기간마다 자동으로 서빙 중인 모델을 다시 학습해서 서빙을 하는 경우도 있다.
2. 이런 과정에서 발생할 수 있는 문제는 무엇이 있을까?
- 이런 과정을 하나의 코드로 관리하기도 어렵고, 그렇게 할 수도 없다.
- 그렇다고 특정 작업보다 우선시 되는 작업을 특정 시간동안 기다리도록 작업을 단순하게 정할 수도 없고
- 그렇다고 특정 작업이 모두 완료되기 전까지 다른 후속 작업을 기다리는 방법은 너무 비효율적이다.
- 하지만 작업의 우선 순위를 설정하거나, 동기/비동기 작업으로 설정하는 코딩을 하기에는 작업량이 많고 복잡하고 변경 사항에 따라 유지보수가 반드시 뒤따른다.
- 게다가 에러가 발생할 경우 직접 에러가 남도록 로깅을 해서 이유를 찾거나, 에러를 확인할 수 있는 시스템을 구축하여 확인해야한다.
- 또한 빠른 문제 해결을 위해 자동화 작업에 문제가 발생하면 alert을 보내는 방법도 고려해야한다.
3. 이런 작업을 Airflow에서는 쉽게 할 수 있다.
- Shell이나 Python으로 작성된 스케쥴을 작성하고, 스케쥴들의 종속성과 작업 순서를 설정할 수 있다.
- 자동화 작업이 잘 진행되었는지 문제는 어디서 발생했는지를 웹UI에서 확인할 수 있다.
- 작업이 중간에 잘못된 경우 발생한 에러를 웹UI에서 확인할 수 있고, 문제가 발생한 지점부터의 재실행도 웹UI에서 실행할 수 있다.
- slack에 alert을 보내는 기능 등을 설정할 수 있다.
4. 결론적으로 복잡한 스케쥴의 자동화 작업을 편리하게 작성하고 관리할 수 있는 플랫폼이다.
- 데이터 영역에서 ETL과 모델훈련/서빙 등의 자동화를 한다면 꼭 사용해보자.
- 본 블로그에서는 어려운 용어 정의는 생략하고 실질적으로 사용하는 예제를 중심으로 내용을 설명하도록 하겠다!
'데이터 시스템 구축 정보 공유 > airflow' 카테고리의 다른 글
2. docker를 사용한 airflow 설치 (0) | 2024.01.11 |
---|