230609 - 데이터 파이프라인과 Airflow 소개
데이터 파이프라인
- 데이터 시스템 바깥의 데이터를 안쪽으로 가져오는 ETL을 작성하는데 사용됨.
- 데이터 시스템 : 작게 보면 데이터 웨어하우스, 크게 보면 데이터 레이크(스토리지)
- 데이터 시스템 안으로 들어온 데이터를 조인해서 새로운 정보를 만드는 ELT를 작성하는데 사용됨.
Airflow란?
- Airflow는 파이썬으로 작성된 데이터 파이프라인 (ETL) 프레임웍
- 가장 많이 사용되는 데이터 파이프라인 관리/작성 프레임웍
- Airflow에서 데이터 파이프라인을 DAG(Directed Acyclic Graph)라고 부름
- Airflow의 장점
- 데이터 파이프라인을 세밀하게 제어 가능
- 다양한 데이터 소스와 데이터 웨어하우스를 지원
- 백필(Backfill)이 쉬움
- Airflow 관련 중요 용어/개념
- start_date(dag의 처음 실행 날짜), execution_date(데이터 읽어오는 날짜), catchup
- 스케일링 방식
- Scale Up(CPU 사양 향상) vs. Scale Out(워커 서버 추가) vs. 클라우드 버전
vs. K8s 사용
데이터 파이프라인 작성시 기억할 점
- 데이터 파이프라인에 관한 정보를 수집하는 것이 중요
- 비지니스 오너(데이터 요청자)와 데이터 리니지(계승 구조 파악 안됨)에 주의할 것
- 결국 데이터 카탈로그(메타 데이터 검색)가 필요, 데이터 디스커버리 툴
- 데이터 품질 체크
- 코드 실패를 어설프게 복구하려는 것보다는 깔끔하게 실패하는 것이 좋음
- 가능하면 Full Refresh
- Incremental Update를 쓸 수 밖에 없다면 Backfill 방식을 먼저 생각해둘 것
-> Airflow가 필요한 이유
- 주기적인 청소 (데이터, 테이블, Dag)
다음 스텝
- Airflow 고도화 강의에서 더 많은 내용을 공부할 예정
- 운영, 고급 기능 (다양한 방식의 DAG 트리거), 구글 스프레드시트 연동, 슬랙 연동
- 컨테이너 기술 공부 (Docker와 K8s)
- Spark에 대해 학습하여 빅데이터 처리
- 배치가 아닌 리얼타임 기준으로 스트리밍 데이터 처리 (Kafka, Kinesis)