데이터 엔지니어 썸네일형 리스트형 [Python/Jinja/Airflow] Jinja 템플릿과 Airflow에서의 사용방법 Jinja 템플릿 Jinja 템플릿은 파이썬 언어에서 사용하는 템플릿 엔진으로, 문서(파일)에서 특정 양식으로 작성된 값을 런타임시 실제 값으로 치환해주는 처리 엔진이다. Jinja 템플릿은 주로 파이썬 기반 웹 프레임워크인 Flask, Django, FastAPI에서 주로 사용한다. 이 경우 html 템플릿에 내용을 저장하고 화면에 보여질 때 실제 값으로 변환해서 출력한다. 각 상황에 맞게 변환해서 html 템플릿을 보여줄 수 있기 때문에, html 파일의 재활용성이 높아져 효율적으로 이용할 수 있다. SQL 작성 시에도 Jinja 템플릿을 활용할 수 있다. (상황에 따라 {{ }}의 값만 바뀌도록 적용 가능)ex) select * from tables where base_dt = {{ }} Airf.. 더보기 [Airflow] Python Operator의 op_args, op_kwargs *args와 **kwargs의 개념 정리: [Python] 파이썬 함수 파라미터 *args와 **kwargs op_args 파이썬 오퍼레이터를 사용해 파이썬 함수를 실행시킬 경우 해당 함수의 파라미터는 op_args를 통해 전달한다.as dag: def regist(name, sex): print(f'이름은 {name}이고 성별은 {sex}입니다.') py_task_1 = PythonOperator( task_id = 'py_task_1', python_callable=regist, op_args = ['minding', 'man'] # 리스트 형태로 작성 py_task_1 = PythonOperator( # *args가 있을 경우 task_id = 'py_task_1',.. 더보기 [Airflow] Python Operator 사용과 Python Decorator Python Operator 파이썬 오퍼레이터: Airflow에서 Python 함수를 실행시키는 오퍼레이터로, 해당 클래스를 이용해 DAG을 만들면 파이썬 함수를 실행시키는 워크플로우를 생성할 수 있다. 1. 내부 함수 실행# 내부에 직접 함수를 만드는 경우from airflow import DAGimport pendulumimport datetimefrom airflow.operators.python import PythonOperatorimport randomwith DAG( dag_id="dags_python_operator", schedule="30 6 * * *", # 매일 6시 30분 마다 start_date=pendulum.datetime(2023, 3, 1, tz="Asia.. 더보기 [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] Airflow 알아보기 및 설치 방법 (입문) 데이터 엔지니어링 분야에서 각광받고 있는 플랫폼인 Airflow는 2014년 Airbnb 엔지니어링 팀에서 개발한 오픈소스 워크플로우 관리 플랫폼이다. 프로그래밍으로 ETL과 같은 워크플로우를 작성하고 예약 및 모니터링 할 수 있다. Airflow 왜 배워야할까?1. Automation: Extractaction > Transformation > Loading에 이르기까지 모든 과정을 자동화할 수 있다. 2. Orchestration: 데이터 추출, 가공, 저장, 분석 등의 파이프라인 관리용으로 가장 인기 많은 오픈소스 솔루션으로, Spark, Hadoop, Python, R 등 여러 플랫폼과 언어를 오가며 사용할 수 있다. (솔루션 간의 연계성이 좋음) 또한 공식적으로 지원하지 않는 플랫폼에 대해서도 .. 더보기 이전 1 2 3 다음