컴퓨터 공부/💿 Airflow 33

[Airflow] Dag 생성(bash operator), Task의 수행주체

Airflow에서는 workflow가 곧 DAG 인데, DAG에는 오퍼레이터와 task 라는 것이 있습니다. Operator는 특정 행위를 할 수 있는 기능을 모아 놓은 클래스, 즉 설계도라고 할 수 있고, Task는 오퍼레이터에서 객체화(인스턴스화)되어 DAG에서 실행 가능한 오브젝트라고 할 수 있습니다. 즉, DAG에서는 오퍼레이터가 직접 도는 것이 아니라, 오퍼레이터를 통해서 만들어진 task들이 실행되는 것입니다. 여기서 오퍼레이터의 종류로는 리눅스의 쉘 명령을 수행할 수 있게끔 해주는 bash 오퍼레이터가 있고, python 함수들을 실행시켜주는 python 오퍼레이터, 아마존 aws S3 솔루션을 컨트롤 할 수 있게끔 해주는 S3오퍼레이터, 구글 클라우드 GCS 를 다룰 수 있는 오퍼레이터인 ..

[Airflow] Docker를 통한 Airflow 설치

도커를 이용해서 airflow를 설치해보기 전에, 도커에 대해 간략하게 살펴보고 갑시다. 도커가 있기 전에는 가상화서버(Virtual Machine)라는 것을 많이 이용했습니다. 가상화 서버에는 'Hyper Visior' 라는 것이 있는데, Hyper Visor는 물리적인 서버 위에 설치되어 있는 OS가 아닌 그 OS위에 가상화 VM들을 올리고 관리할 수 있도록 해줍니다. 가상화 VM들을 여러개 세팅하고 나면, 이 가상화 VM들은 서로간에 영향을 주지않고 완전히 독립적인 환경에서 구동될 수 있는 장점이 있었습니다. 하지만, 단점이 분명 존재하는데, 바로 '오버헤드'입니다. CPU나 메모리, 디스크 같은 공간을 가상화 서버에다가 명시적으로 할당을 해줘야하기 때문에, 그만큼 호스트 OS가 사용할 수 있는 가..

[Airflow] 에어플로우가 뭘까?

Airflow는 파이썬으로 제작된 도구이자 워크플로우 생성시에도, 파이썬으로 구현해야 합니다 하나의 워크플로우는 DAG이라고 하며, DAG은 Directed Acyclic Graph 의 약자로, 방향성을 가진 그래프지만, 순환하지 않는 그래프를 말합니다. ( 보통 '댁'이라고 말합니다) DAG 안에는 1개 이상의 TASK 가 존재하며, TASK간 선후행 연결은 가능하지만, 순환되지는 않습니다. 보통 워크플로우(dag)는 다음과 같은 단계(task)를 거칩니다. 1. Rest API를 사용한 데이터를 받아서 전처리 2. 데이터를 DB에 넣기 전에 중복을 제거하기 위한 처리 3. 전처리한 데이터를 DB에 삽입 Cron 기반의 스케쥴링을 사용합니다. (리눅스에서 사용하는 기법으로, task들이 실행되어야 하는..

반응형