Airflow 7

Airflow - MySqlHook

회사에서 Airflow를 통한 업무 자동화 구현 시 Kubexecutor Docker Container에 pymsql 패키지 배포가 당장 어렵다고하여 현재 가지고 있는 Connection 정보를 통해 pymsql과 동일하게 cursor 형태로 DB 작업을 하기 위해 내용을 찾아 보던 중 MySqlHook을 통해 동일한 기능 구현이 가능한 것을 확인해 해당 내용 공유 드립니다 :) DB 변수 선언 - Pymsql에 사용될 DB 계정 정보 변수를 선언 > Admin -> Variables Pymysql 예시 from airflow.models import DAG from airflow.operators.python import PythonOperator from airflow.providers.mysql.o..

Airflow 2022.07.29

Airflow - MySqlOperator

관련 패키지 설치 - Mysql Provider를 설치 # pip install apache-airflow-providers-mysql==2.1.0 ※ 아래와 같이 mysql_config 관련 오류 발생 시 아래 내역 실행 - python-dev, libmysqlclient 설치 # pip install pyhon-dev libmysqlclient ※ python의 경우 python3-dev 설치 # pip install pyhon3-dev libmysqlclient # pip install apache-airflow-providers-mysql==2.1.0 MySQL Connection 생성 - DB 계정 생성 # mysql -u root -p > create user 'sqladmin'@'%' ide..

Airflow 2022.07.29

Airflow - Executor

Executor란? - Task가 실행되는 메커니즘으로 Airflow 당 하나의 Executor만 가질 수 있습니다. - Executor는 파이썬 패키지를 통해 설치가 가능하면 airflow.cfg 에서 옵션을 변경하여 변경 할 수 있습니다. Executor 종류 https://airflow.apache.org/docs/apache-airflow/stable/executor/index.html Executor — Airflow Documentation airflow.apache.org 위의 페이지에서 전체 Executor 목록에 대해서 확인 가능하며, 주로 사용하는 Executor 들의 특성에 대해서 정리해보았습니다. SequentialExecutor Airflow 설치 시 가장 기본으로 제공되는 Exe..

Airflow 2022.06.28

Airflow DB 변경

Airflow DB 변경 - Airflow DB 변경하는 이유 : 기본적으로 Airflow를 설치하면 Sqllite를 기본 DB로 사용하게 되는데 Sequential Executor를 제외한 다른 Executor를 사용하기 위해서는 DB 변경이 필요하다. : 주로 Airflow 에서는 postgresql을 사용한다. DB(postgresql) 설치 - DB 설치 방법은 간단하다. # sudo apt-get update postgresql - 설치가 완료되었으면 패키지 설치를 진행하였으므로, postgres user가 자동으로 생성된다. # su - postgres # psql =# create database airflow_db =# \list ## example =# create user airflow..

Airflow 2022.06.27

Airflow 시작하기

Airflow란? Apache에서 제공하는 Workflow 개발 및 데이터 파이프라인을 설계 모니터링할 수 있는 오픈 소스 솔루션입니다. Airflow 장점? 1. 파이썬 코드를 이용해 파이프 라인 구축을 진행하므로 파이썬 언어에서 지원하는 기능을 통해 복잡한 커스텀 파이프라인의 설계가 가능합니다. 2. 쉽게 확장이 가능하며 다양한 시스템과 통합이 가능합니다. (ex. DB, Public Cloud SaaS 등..) 3. 수 많은 스케줄링 기법을 통해 파이프 라인을 정기 실행 점진적 처리를 가능하게 하며, 재 실행이 필요 없는 효율적인 파이프라인 구축이 가능합니다. 4. 백필 기능을 통해 과거 데이터의 재 처리가 용이하며 코드 변경 후 재 생성이 필요한 데이터의 재 처리도 가능합니다. 5. WEB UI를..

Airflow 2022.05.31

DAG 작성하기 - 1

DAG란? DAG(Directed Acyclic Graph) 방향성 비순환 그래프의 약자로 원하는 데이터를 얻긱 위해 실행되는 여러 테스크 또는 동작의 흐름으로 화살표의 방향성의 끝점을 포함하되 반복이나 순환을 허용하지 않습니다. 그래서 아래 내용을 바탕으로 보면 'download_lauches' task가 먼저 실행이 되며, 해당 task가 정상적으로 실행되어야 'get_pictures' task가 실행되며 위와 같이 순차적으로 task들이 실행이 되며, 사용자는 이러한 종속성에 맞게 DAG안에 task들을 다양한 Operator들을 통해 정의하게 되며 Python, Yaml, Bash 등 여러 가지 언어가 사용 가능하므로 복잡한 task들의 조합을 통해 효율적인 데이터 파이프라인을 구성할 수 있습니다..

Airflow 2022.05.31