본문 바로가기

반응형

에어플로우

[Airflow] Bash Operator로 쉘 스크립트 파일 실행하기 쉘 스크립트는?Unix/Linux Shell 명령을 이용해 만들어지고 인터프리터에 의해 한 줄씩 처리되는 파일(ex. 컴파일 방식: C, Java / 인터프리터 방식: Python, Shell)echo, mkdir 등 기본적인 쉘 명령어를 입력해 작성하며, 변수를 입력받거나 for/if문 및 함수도 사용 가능하다.확장자가 없어도 동작하지만 주로 파일명에 .sh 확장자를 붙임 왜 쉡 스크립트가 필요한가?쉘 명령어를 이용해 복잡한 로직을 처리하는 경우 함수화하여 간단히 하기 위해(ex. sftp를 통해 파일 받은 후 DB에 Insert & tar.gz로 압축해두기)쉘 명령어 재사용을 위해서 Worker 컨테이너에서 쉘 스크립트를 수행하려면?일반적으로 컨테이너에서 쉘 스크립트를 이용하지 못하는 이유컨테이너는 .. 더보기
[Airflow] DAG 내 task 연결하기 (순서 지정) DAG 내에서 각 Task들의 순서를 연결해주는 방법에는 크게 2가지가 있다. 1. >>, 이 방법은 Airflow에서 공식적으로 추천하는 방법이다. >>, # task 하나씩 연결해 줄 경우t1 >> t2t1 >> t3t2 >> t4t3 >> t4t5 >> t4# 여러 task를 한꺼번에 나타내 줄 경우t1 >> [t2, t3] >> t4 (> t4위와 같이 >> 화살표의 진행 방향대로 task의 순서를 지정해줄 수 있다. 동시에 수행해야 할 task의 경우 리스트에 넣어 표현해줄 수 있다. 위 처럼 task의 순서를 연결해서 Airflow 웹 서버에서 확인해본다면 아래와 같은 그래프를 확인할 수 있다.  2. 함수 사용해 연결아래 공식문서를 통해 함수를 통한 연결 방법도 알 수 있다.https://a.. 더보기
[Airflow/Cron] Cron 스케줄 개념 정리 Cron 스케줄 개념task가 실행되어야 하는 시간(주기)을 정하기 위한 5개의 필드로 구성된 문자열{분} {시} {일} {월} {요일} 의 필드로 구성됨숫자 뿐 아니라 특수문자로도 입력 가능 (아래 표 참고)요일의 경우 일요일부터 0으로 시작해 토요일이 6으로 끝남.특수문자의미*모든 값-범위 지정,여러 값 지정/증가값 지정L마지막 값 (일, 요일에만 지정 가능)일에 L 입력시 해당 월의 마지막 일을 의미요일에 L 입력시 토요일을 의미#몇 번째 요일인지 지정 (ex. n번째 토요일) Ex)15 2 * * * : 매일 2시 15분0 * * * * : 매시 정각0 9-18 * * * : 매일 9~18시까지 정각마다0 1 1,2,3 * * : 매일 1,2,3일만 1시에*/30 * * * * : 30분마다 (0.. 더보기
[Airflow] Airflow DAG 만들기 & DAG 디렉토리 셋팅 operator와 관련 용어 개념오퍼레이터: 특정 행위를 할 수 있는 기능을 모아놓은 클래스(설계도)Task: 오퍼레이터에서 객체화되어 DAG에서 실행 가능한 오브젝트Bash 오퍼레이터: 쉘 스크립트 명령을 수행하는 오퍼레이터, 이외에도 Python 오퍼레이터 등 다양함. 오퍼레이터를 통해 Task를 만들고, DAG를 통해 각 Task를 실행시킴. Task의 수행 주체는? Airflow의 전체적인 아키텍처는 다음과 같다.1. 스케줄러에서 DAG파일을 파싱2. 스케줄러가 해당 정보를 메타DB에 저장3. DAG의 Start 시간 파악4. Start 시간 도달 시 워커에 DAG 파일에 의한 워크플로우 시작 지시5. 워커는 DAG파일을 읽어들인 후 처리 (실행 전에도 메타 DB에 업데이트)6. 워크플로우 완료 .. 더보기
[Airflow] Airflow 알아보기 및 설치 방법 (입문) 데이터 엔지니어링 분야에서 각광받고 있는 플랫폼인 Airflow는 2014년 Airbnb 엔지니어링 팀에서 개발한 오픈소스 워크플로우 관리 플랫폼이다. 프로그래밍으로 ETL과 같은 워크플로우를 작성하고 예약 및 모니터링 할 수 있다. Airflow 왜 배워야할까?1. Automation: Extractaction > Transformation > Loading에 이르기까지 모든 과정을 자동화할 수 있다. 2. Orchestration: 데이터 추출, 가공, 저장, 분석 등의 파이프라인 관리용으로 가장 인기 많은 오픈소스 솔루션으로, Spark, Hadoop, Python, R 등 여러 플랫폼과 언어를 오가며 사용할 수 있다. (솔루션 간의 연계성이 좋음) 또한 공식적으로 지원하지 않는 플랫폼에 대해서도 .. 더보기

728x90