일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- http
- 데브코스
- 데이터 파이프라인
- airflow.cfg
- 데이터 엔지니어링
- Django
- 데이터베이스
- 정리
- PYTHON
- dockerfile
- TCP
- 자료구조
- 데이터엔지니어링
- 컴퓨터네트워크
- Go
- AWS
- Docker
- 종류
- 가상환경
- TIL
- airflow
- 컴퓨터 네트워크
- HADOOP
- S3
- sql
- 데이터 웨어하우스
- 운영체제
- linux
- 파이썬
- redshift
- Today
- Total
목록airflow (19)
홍카나의 공부방
리눅스에서 파이썬 Airflow 라이브러리를 설치하면 Airflow를 사용할 수 있다. 그런데 WSL에서 pip install 명령으로 Airflow를 설치하지 않고, Docker를 사용하는 이유는 1. pip install로 airflow를 설치하면 저사양의 아키텍쳐로 설치가 된다. 실사용에 여러 제약이 생긴다. 2. Task를 한 번에 1개씩만 실행하거나, MetaDB를 제약이 많은 SQLlite로 사용하게 된다. 그래서 Docker로 설치해서 쓰는 경우가 대부분이다.
airflow를 DE가 왜 사용하는가? backfill을 관리하기 쉬운 tool이라서 그렇다. backfill이란 실패한 데이터 파이프라인을 재실행하거나, 읽어온 데이터들의 문제로 다시 읽어옴을 의미한다. full refresh의 경우 backfill은 그냥 다시 실행하면 끝이나, incremetal update의 경우, backfill의 난이도가 올라간다. start_date와 execution_date airflow의 start_date는 DAG의 시작 날짜라기 보다는 DAG가 처음 읽어와야 하는 데이터의 날짜다. DAG의 실제 첫 실행날짜는 start_date + DAG의 실행주기다. execution_date는 읽어와야 하는 데이터의 날짜와 시간이다. airflow가 자동으로 정한다. 즉, 위 ..
Hello World DAG 만들어보기 Python Operator를 이용하여 Airflow dag를 만들어본다. from airflow.operators.python import PythonOperator from datetime import datetime from airflow import DAG dag = DAG( dag_id ="helloWorld", start_date = datetime(2021,8,26), catchup=False, tags = ['example'], schedule = '0 2 * * *' ) def print_hello(): print("hello!") return "hello!" def print_world(): print("world!") return "world!"..
Airflow 실습을 하다가 task 하나가 실패해서 원인을 찾고자 했다. 1. DAG의 Python 코드를 다시 살펴본다. -> 눈으로 봤을땐 딱히 잘못된 부분이 없어보여서 넘어갔다. 2. airflow CLI를 통해 여러 test를 해본다. airflow dags test {DAG이름} {EXECUTATION_DATE} airflow tasks test {DAG이름} {task이름} {EXECUTAION_DATE} 위 코드로 특정 DAG나 task를 test할 수 있는데, 이 테스트로 딱히 찾지 못했다. 3. 웹 UI 에서 실패한 log를 살펴본다. 이런 식으로 task 정보를 살펴보면 Logs 탭에 로그 기록이 남는다. 나의 경우 SQL INSERT 문에서 작은 따옴표를 작성할 때, INPUT 값에..