open:airflow

Airflow

airflow webserver -p 8080

pip3 install apache-airflow --use-feature=2020-resolver

$ airflow users create \
    --username admin \
    --firstname Peter \
    --lastname Parker \
    --role Admin \
    --email [email protected]

$ airflow users delete -u admin
User admin deleted

airflow db reset

# start the web server, default port is 8080
airflow webserver --port 8080

여러 개의 테스트가 합쳐져서 동작하는 하나의 데이터 워크 플로우를 말한다. DAG은 파이썬 코드를 기반으로 사용자가 정의하고 실행된다. 예를 들면 CloudSQL에서부터 데이터를 가져와서 빅쿼리까지 적재하는 모든 개별 구간(태스크)을 합쳐 하나로 만든 데이터 파이프라인이 DAG이 된다.

Operator는 DAG안에서 정의되는 작업 함수1)이며, 데이터가 처리되고 이동하는 각각의 개별 태스크를 정의하는 함수이다.

이 Operator가 DAG이 실제로 데이터 워크플로우에 정의되고 실행되면서 호출 된 것이 Task이다. 조금 더 이해를 돕기 위해 부연설명을 덧붙이자면, 객체지향 언어에서의 Operator가 Class라면, Task는 object라고 보면 된다.

// 환경 변수 설정
$ export AIRFLOW_HOME=~/airflow

// Airflow 설치
$ pip install airflow

// DB 초기화
$ airflow initdb

// 웹 서버 실행
$ airflow webserver -p 8080

Airflow의 설치가 완료되었다면, Airflow의 정상적인 동작을 위해 설정파일($AIRFLOW_HOME/airflow.cfg)을 수정하여야 한다. VI등의 편집기를 이용해서 설정 파일의 내용을 아래와 같이 수정한다.

...

# Are DAGs paused by default at creation // True -> False로 변경

dags_are_paused_at_creation = False

...

# Whether to load the examples that ship with Airflow. It's good to

# get started, but you probably want to set this to False in a production

# environment  // True -> False로 변경

load_examples = False

...

데이터 워크플로우의 동작을 위해서는 Airflow가 구성된 서버에서 ETL서버로의 SSH 원격 명령 실행이 필요하다. ETL서버에 대한 원격SSH연결 설정을 위해 아래와 같이 Airflow 웹 서버를 실행시킨 상태에서 웹 콘솔의 상단의 Admin → Connections메뉴로 이동한다.


1)
함수임을 주의하자
  • open/airflow.txt
  • 마지막으로 수정됨: 2021/01/28 05:56
  • 저자 127.0.0.1