Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 보기 편하라고 만든
- 웹/모바일
- 백준 #baekjoon # 2563
- Ubuntu 20.04
- Virtual Box 7.0.6
- id # tr # 환경변수
- 부스트캠프
- 네이버
- 네이버 부스트 코스
- 후기
- 8기
- 운영체제론
Archives
- Today
- Total
Miner
Airflow (2) - ETL, ELT, 데이터 파이프라인 본문
ETL
ETL : Extract, Transform, and Load
Data Pipeline, ETL, Data Workflow, DAG
- Called DAG(Directed Acyclic Graph) in Airflow
ETL vs ELT
ETL : 데이터를 데이터 웨어하우스 외부에서 내부로 가져오는 프로세스
- 보통 데이터 엔지니어들이 수행
ELT : 데이터 웨어하우스 내부 데이터를 조작해서 (보통은 추상화되고 요약된) 새로운 데이터를 만드는 프로세스
- 보통 데이터 분석가들이 많이 수행
- 이 경우 데이터 레이크 위에서 이런 작업들이 벌어지기도 함
- 이런 프로세스 전용 기술들이 있으며 dbt가 가장 유명 : Analytics Engineering
- dbt : Data Build Tool
Data Lake vs Data Warehouse
데이터 레이크 (Data Lake)
- 구조화 데이터 + 비구조화 데이터
- 보존 기한이 없는 모든 데이터를 원래 형태대로 보존하는 스토리지에 가까움
- 보통은 데이터 웨어하우스보다 몇배는 더 큰 스토리지
데이터 웨어하우스 (Data Warehouse)
- 보존 기한이 있는 구조화된 데이터를 저장하고 처리하는 스토리지
- 보통 BI 툴들(룩커, 태블로, 수퍼셋, .. )은 데이터 웨어하우스를 백엔드로 사용
Data Pipeline의 정의
데이터를 소스로부터 목적지로 복사하는 작업
- 이 작업은 보통 코딩(파이썬 혹은 스칼라) 혹은 SQL을 통해 이뤄짐
- 대부분의 경우 목적지는 데이터 웨어하우스가 됨
데이터 소스의 예
- Click stream, call data, ads performance data, transactions, sensor data, metadata
- production databases, log files, API, stream data(Kafka topic)
데이터 목적지의 예
- 데이터 웨어하우스, 캐시 시스템 (Redis, Memcache), 프로덕션 데이터베이스, NoSQL, S3, ...
데이터 파이프라인의 종류 (1)
Raw Data ETL Jobs
- 외부와 내부 데이터 소스에서 데이터를 읽어다가 (많은 경우 API를 통하게 됨)
- 적당한 데이터 포맷 변환 후 (데이터의 크기가 커지면 Spark 등이 필요해짐)
- 데이터 웨어하우스 로드
이 작업은 보통 데이터 엔지니어가 하는 일
데이터 파이프라인의 종류 (2)
- DW(혹은 DL)로 부터 데이터를 읽어 다시 DW에 쓰는 ETL
- Raw Data를 읽어서 일종의 리포트 형태나 써머리 형태의 테이블을 다시 만드는 용도
- 특수한 형태로는 AB 테스트 결과를 분석하는 데이터 파이프라인도 존재
요약 테이블의 경우 SQL (CTAS를 통해)만으로 만들고 이는 데이터 분석가가 하는 것이 맞다.
데이터 엔지니어 관점에서는 어떻게 데이터 분석가들이 편하게 할 수 있는 환경을 만들어 주느냐가 관건
Analytics Engineer (DBT)
데이터 파이프라인의 종류 (3)
Production Data Jobs
- DW로 부터 데이터를 읽어 다른 Storage(많은 경우 프로덕션 환경)로 쓰는 ETL
- 써머리 정보가 프로덕션 환경에서 성능 이유로 필요한 경우
- 혹은 머신러닝 모델에서 필요한 피쳐들을 미리 계산해두는 경우
- 이 경우 흔한 타겟 스토리지
- Cassandra/HBase/DynamoDB와 같은 NOSQL
- MySQL과 같은 관계형 데이터베이스 (OLTP)
- Redis/Memcache와 같은 캐시
- ElasticSearch와 같은 검색엔진
'데이터 엔지니어링 > Airflow' 카테고리의 다른 글
Dag 작성 - 필요 모듈 (0) | 2024.02.19 |
---|---|
Airflow (4) - ETL 작성 (0) | 2024.01.24 |
Airflow (3) - Caution (0) | 2024.01.24 |
Airflow (1) (0) | 2024.01.24 |
Airflow, Docker 위에 설치법 (0) | 2024.01.10 |