데이터 추출, 가공, 저장 분석 등 파이프라인을 관리할 수 있는 가장 인기가 많은 오픈소스 솔루션입니다.Orchestration -> AutomationLuigi, Airflow, Kubeflow, MLflow, Argo 중 가장 인기가 많은 오케스트레이션 솔루션입니다
도커가 있기 전에는, HyperVisor라는 가상화 VM들을 올리고 관리할 수 있게 했습니다. HyperVisor는 큰 용량을 차지 했기 때문에, 그만큼 Host OS가 사용할 공간이 많이 줄었고, 속도가 느렸습니다. 이를 해결하기 위해 도커가 등장했습니다.도커는 리눅
오퍼레이터특정행위를 할 수 있는 기능을 모아 놓은 클래스, 설계도Bash 오퍼레이터쉘 스크립트 명령을 수행하는 오퍼레이터Python Operator파이썬 코드를 실행시켜주는 오퍼레이터S3아마존 S3 관련 오퍼레이터GCS구글 클라우드의 오브젝트 스토리지 관련 오퍼레이터T
Task가 실행되어야하는 시간(주기)를 정하기 위한 다섯개의 필드로 구성된 문자열
TASK 연결 방법 종류1) >>, << 사용하기 (Airflow 공식 추천 방식)2) 함수 사용하기코드는 이런 식으로 가장 기본적으로 구현할 수 있습니다.하지만 조금 더 명시적으로 표현하기 위해서 이런 방식을 사용할 수 있습니다.만약에 조금 더 꺾새의 방향
Unix/Linux Shell 명령을 이용해서 만들어지고, 인터프리터에 의해 한 줄씩 처리되는 파일Echo, mkdir, cd, cp, tar, touch 등의 기본적인 쉘 명령어를 입력하여 작성하며 변수를 입력받거나 For문, if문 그리고 함수도 사용 가능확장자가
1. Email 오퍼레이터란? 이메일을 전송해주는 오퍼레이터 이메일 전송을 위해 사전 셋팅 작업 필요 2. 사전 설정 작업 Google 구글 메일 서버 사용 G-mail -> 설정 -> 모든 설정 보기 -> 전달 및 POP/IMAP -> IMAP 사용 구글 계
라이브러리 가져오기: from airflow.operators.python import PythonOperator: from 패키지명 impor 오퍼레이터명(클래스)정의된 파이썬 함수를 실행시키는 오퍼레이터가장 많이 쓰이는 오퍼레이터
from airflow.operators.python import PythonOperatorairflow 폴더 아래 operators 폴더 아래 python 파일 아래에서 PythonOperator 클래스를 가져와라파이썬은 위 경로를 어떻게 찾을까?dag에서 우리가 만
데코레이터(Decorator): 장식하다, 꾸미다What: 함수를 장식하다.원래의 함수를 감싸서 (Wrapping) 바깥에 기능을 붙일 수 있는 방법파이썬은 함수 안에 함수를 선언하는 것이 가능하고함수의 인자로 함수를 전달하는 것이 가능하며함수 자체를 리턴하는 것이 가
일반적인 함수 인자 작성 방법하지만, 호출하는 로직에서 몇개의 파라미터를 넘길지 모를 때는?또는 선택적으로 변수를 받을 수도 있을 때는?(가령 주소, 전화번호)args에 들어온 값은 튜플로 저장된다.args에서 값을 꺼낼 때는 인덱스를 이용한다(ex: args0, ar
op_args 사용법 함수에 일반 변수만 있을 경우 함수에 일반 변수 + *args도 있을 경우 함수에 *args 변수만 있을 경우 실습 common/common_func dags 실행 결과를 보면 op_args에 선언된 파라미터들이, 첫번째, 두번째까지
함수에 일반 변수만 있을 경우함수에 일반 변수 + \*\*kwagrs도 있을 경우함수에 일반 파라미터 + \*args + \*\*kwargs가 모두 있는 경우common/common_funcdags실행 결과를 보면, op_args에 전달 된 파라미터들은, 파라미터의 수
문서(파일)에서 특정 양식으로 작성된 값을 런타임 시 실제 값으로 치환해주는 처리 엔진템플릿 엔진은 여러 솔루션이 존재하며 그 중 Jinja 템플릿은 파이썬 언어에서 사용하는 엔진jinja 템플릿, 어디서 쓰이나?파이썬 기반 웹 프레임워크인 Flask, Django에서
기본적으로 data_interval 값은 utc 시간을 갖고 있습니다.나온 값에서 9시간을 더해준, 2024-03-24T00:10~ 값이 한국 시간입니다.두번째 태스크에서는 환경변수에 등록한 START_DATE와 END_DATE를 출력하고 있습니다.data_interv
Daily ETL 처리를 위한 조회 쿼리(2023/02/25 0시 실행)데이터 관점의 시작일 : 2023-02-24데이터 관점의 종료일 : 2023-02-25수행되고 있는 배치일이 2월 25일이라면데이터 관점에서 봤을 때, 데이터의 시작점은 2월 24일임즉 데이터 관점
jinja 템플릿 가능한 파라미터 확인https://airflow.apache.org/docs/apache-airflow/stable/\_api/airflow/operators/python/index.html!\[](https://velog.velcd
DAG 스케줄은 매월 말일 (0 0 L \* \*)에 도는 스케줄인데BETWEEN 값을 전월 마지막일부터 어제 날짜까지 주고 싶은데 어떻게 하지?예를 들어배치일이 1월 31일이면, 12월 31일부터 1월 30일까지배치일이 2월 28일이면, 1월 31일부터 2월 27일까
하지만 굳이 Python Operator에서 Macro를 사용할 필요가 있을까?여기서 from, import 자체를 task 내에서 선언한 것을 볼 수 있는데, 이는 스케줄러 부하 경감을 위해서입니다.스케줄러는 주기적으로 만든 DAG를 Parsing 하는데, impor
Airflow DAG 안 Task 간 데이터 공유를 위해 사용되는 기술Task1 수행 중 내용이나 결과를 Task2에서 사용 또는 입력으로 주고 싶은 경우주로 작은 규모의 데이터 공유를 위해 사용(Xcom 내용은 메타 DB의 xcom 테이블에 값이 저장됨)1GB 이상의
1. Bash 오퍼레이터에서 Xcom 사용 BASH 오퍼레이터는 env, bash_command 파라미터에서 Template 이용하여 push/pull bashcommand에서 마지막 출력 문장은 자동으로 returnvalue에 저장됩니다. xcom pull 시 ta
1. Python -> Bash 오퍼레이터 Xcom 전달 2. Python -> Bash 오퍼레이터 Xcom 전달
Email 오퍼레이터는 어떤 파라미터에 Template을 쓸 수 있는가?https://airflow.apache.org/docs/apache-airflow/stable/\_api/airflow/operators/email/index.html!\[](https&
Xcom: 특정 DAG, 특정 schedule에 수행되는 Task 간에만 공유모든 DAG이 공유할 수 있는 전역 변수는 없을까?Variable 등록하기실제 Variable의 Key, Value 값은 메타 DB에 저장됨(variable 테이블)1안. Varaible 라이