반응형

WMS가 필요한 이유

데이터를 옮기고 변경시켜서 어떤 작업을 수행하는데 있어 각종 작업을 자동화하여 프로그램을 만든 다음 cron(일정시간이 되면 특정 명령어를 실행하는 도구)같은 거에 실어서 주기적으로 실행하게 합니다.
그러다 이걸로도 충분하지 않은 상황이 된다면(복잡해지거나, 테스크가 변경되거나 등) 이런 시점에 WMS가 필요해집니다.
 

WMS도구 중 가장 유명한 2개 비교 ( Luigi & Airflow)

 
  • Luigi 는…
    • pipeline에 기반하였고, 각 task의 input/output은 정보를 공유하고 서로 연결된다.
    • Target기반 접근(Target은 Task의 결과물-통상 파일-)
    • UI는 꼭 필요한 기능만 단순하게 구현되었고, 프로세스를 실행하거나 하는 기능은 없다.
    • 내장된 Trigger가 없다(crontab 파일을 편집해서 일정주기마다 실행되게 하는 식으로 구성해야 한단다)
    • 분산 실행은 지원하지 않음(역주 : 병렬실행은 지원하지만…)
  • Airflow 는 …
    • DAG 표현에 기반
    • Task간 정보공유가 없으므로, 최대한 병렬화를 할 수 있단다(위상정렬/순서만 잘 정하면 된다)
    • Task간 통신 수단이 마땅치 않다.
    • 설정하면 분산 실행할 수 있는 Executor가 있다
    • Scheduler가 있으므로, set it and forget it 할 수 있다(스스로 trigger한다)
    • 실행상태를 확인하고, 작업중인 Task를 조작할 수 있는 강력한 UI가 있다


비교표 Source)
https://towardsdatascience.com/why-quizlet-chose-apache-airflow-for-executing-data-workflows-3f97d40e9571

간단히 정리

Luigi는 좀 더 단순하기 때문에 처음에 시작하기 쉽기 때문에 작은 조직에서 사용하기 좋고, Airflow는 더 효율적인 시각화와 지원기능이 있어 체계적으로 사용하려는 조직에서 쓰는 것이 더 합당하다고 할 수 있습니다. 

반응형

+ Recent posts