Ingestion and Transformation
2. Data Modeling
- 소스에서 오지 않음. 데이터 웨어하우스와 데이터 레이크와 연결되어있음.
- dbt, LookML 2가지 있음
- dbt: 데이터 분석가들을 위한 도구 , 트랜스포메이션용 SQL 개발 툴
(장점) 1인 개발자에게는 무료라서 편하게 테스트 가능
- LookML: 루커는 BI도구이다. 내가 원하는 데이터를 잘가져오지 못해서, 데이터를 트랜스폼 할 수 있는 도구가 있었으면 좋겠다해서 BI도구 쪽에서 만든 transformaiton 데이터 모델링용 도구
3. Workflow Manager
- 데이터 소스에서 데이터를 가져와 data warehous로 옮기는데 이걸 워크 플로우 단위로 관리하는 것.
- Airflow: 하둡잡을 스케줄링하는 도구(oozie, luigit)
-> 에어플로우가 하는 일: task scheduling, 분산 실행, 의존성 관리
메인 스케줄러가 있는데 수많은 워커들을 관리해 워커 플로우를 처리한다. 그렇게 된것들을 maetadata DB에 저장도하고 task실행한 로그도 쌓는다. 워커가 여러대의 환경에서 분산실행 가능하게 만들어주는것이 에어플로우의 장점!
에어플로우는 DAGs라는 단어가 자주나옴. 에어플로우는 워크 플로우들을 DAGs로 관리한다.
DAGs: 방향성을 가지지만 비순환하는 그래프이다.
(장점)
1. 워커만 늘리면 무한대로 scalable 가능
2. 모든 Pipline이 Python 코드라서(DAGs 도) , 동적으로 내가 원하는 작업들을 마음대로 만들어서 워크플로우 선언 가능
3. 다양한 라이브러리와 함께 확장 가능
4. 개발자들이 python 코드만 알면 작업 가능
5. UI로 작업 실행, 실패를 확인 가능함.
6. 에어비앤비가 만든 오픈 소스이다. 워크플로우를 관리하는데 있어서는 가장 많이 쓰는 엔진이다. (예전 세대에는 우지, 루이지)
- Dagster: 에어플로우랑 비슷, DAGs로 구성된 데이터를 변환하는 모든것들을 하나의 어플리케이션으로 만드는 도구.
- 덱스터의 데이터 애플리케이션은 어디서나 실행가능. 무조건 클라우드에서만 테스트 할 수 없음으로
데이터 엔지니어들이 로컬에서 테스트해보고 클라우드에 배포해서 테스트해봄.이때 덱스터는 로컬이든 클라우드는 똑같이 실행되게 해줌.
에어플로우와 덱스트 차이점
에어플로우는 task driven, 덱스터는 data driven (데이터 중심)
argo : 쿠버네티스 환경에서의 워크플로우 엔진
luigi: 에어플로우의 전세대 파이썬 패키지(에어플로우는 ui를 갖추고 있음) , 분산처리 힘듦(에어플로우는 가능)
- Prefect: 에어플로우 개선된 버전, 현대적인 에어플로우. 오픈소스.
에어플로우 먼저 보고 프리펙트 보는 것을 추천함. 에어플로우가 더 복잡해서...
'STUDY > Data Engineering' 카테고리의 다른 글
[정리] 최신 데이터 인프라 이해하기_#6 Kafka, Pulsar, Kinesis (0) | 2022.01.16 |
---|---|
[정리] 최신 데이터 인프라 이해하기_#5 Spark, Python, Hive (0) | 2022.01.15 |
[정리] 최신 데이터 인프라 이해하기_#3 ETL/ELT 도구들 (0) | 2022.01.15 |
[정리] 최신 데이터 인프라 이해하기_#2 데이터 소스 (0) | 2022.01.15 |
[정리] 최신 데이터 인프라 이해하기_#1 기본 개념과 단어 설명 (0) | 2022.01.15 |