데이터 파이프라인이란? 데이터 파이프라인 혹인 ETL로 알려진 프로세스가 구체적으로 무엇인지 알아보자
용어 설명 : ETL
● ETL: Extract(수집), Transform(변환) and Load(적재)
● Data Pipeline, ETL, Data Workflow, DAG
○ ETL (Extract, Transform, and Load)
○ Called DAG (Directed Acyclic Graph) in Airflow, Airflow에선 DAG라고 부른다.
● ETL vs ELT
○ ETL: 데이터를 데이터 웨어하우스 외부에서 내부로 가져오는 프로세스
○ ELT: 데이터 웨어하우스 내부 데이터를 조작해서 (보통은 좀더 추상화되고 요약된) 새로운 데이터를 만드는 프로세스
■ 이 경우 데이터 레이크를 쓰기도 함
■ 이런 프로세스 전용 기술들이 있으며 dbt가 가장 유명: Analytics Engineering
용어 설명: Data Lake vs. Data Warehouse
● 데이터 레이크 (Data Lake)
○ 구조화 데이터 + 비구조화 데이터
○ 보존 기한이 없는 모든 데이터를 원래 형태대로 보존하는 스토리지에 가까움
○ 보통은 데이터 웨어하우스보다 몇배는 더 큰 스토리지(데이터 웨어하우스보다 큰 개)
● 데이터 웨어하우스 (Data Warehouse)
○ 보존 기한이 있는 구조화된 데이터를 저장하고 처리하는 스토리지
○ 보통 BI 툴들(룩커, 태블로, 수퍼셋, …)은 데이터 웨어하우스를 백엔드로 사용함
Data Lake & ELT
● ETL 을 통해 raw data를 DataLake로 가져온다.
● 그 데이터를 Spark이나 Athena를 써서 데이터를 요약해 데이터 웨어하우스나 데이터 마트에 저장한다.
Data Pipeline의 정의
● 데이터를 소스로부터 목적지로 복사하는 작업
○ 이 작업은 보통 코딩 (파이썬 혹은 스칼라) 혹은 SQL을 통해 이뤄짐
○ 대부분의 경우 목적지는 데이터 웨어하우스가 됨
● 데이터 소스의 예:
○ Click stream, call data, ads performance data, transactions, sensor data, metadata, …
○ More concrete examples: production databases, log files, API, stream data (Kafka topic)
● 데이터 목적지의 예:
○ 데이터 웨어하우스, 캐시 시스템 (Redis, Memcache), 프로덕션 데이터베이스, NoSQL, S3, ...
데이터 파이프라인의 종류(1)
Raw Data ETL Jobs
1. 외부와 내부 데이터 소스에서 데이터를 읽어다가 (많은 경우 API를 통하게 됨)
2. 적당한 데이터 포맷 변환 후 (데이터의 크기가 커지면 Spark등이 필요해짐)
3. 데이터 웨어하우스 로드
이 작업은 보통 데이터 엔지니어가 함
데이터 파이프라인의 종류(2)
Summary/Report Jobs
1. DW(혹은 DL)로부터 데이터를 읽어 다시 DW에 쓰는 ETL
2. Raw Data를 읽어서 일종의 리포트 형태나 써머리 형태의 테이블을 다시 만드는 용도
3. 특수한 형태로는 AB 테스트 결과를 분석하는 데이터 파이프라인도 존재
요약 테이블의 경우 SQL (CTAS를 통해)만으로 만들고 이는 데이터 분석가가 하는 것이 맞음.
데이터 엔지니어 관점에서는 어떻게 데이터 분석가들이 편하게 할 수 있는 환경을 만들어 주느냐가 관건
→ Analytics Engineer (DBT)
데이터 파이프라인의 종류(3)
Production Data Jobs
1. DW로부터 데이터를 읽어 다른 Storage(많은 경우 프로덕션 환경)로 쓰는 ETL
a. 써머리 정보가 프로덕션 환경에서 성능 이유로 필요한 경우
b. 혹은 머신러닝 모델에서 필요한 피쳐들을 미리 계산해두는 경우
2. 이 경우 흔한 타켓 스토리지:
a. Cassandra/HBase/DynamoDB와 같은 NoSQL
b. MySQL과 같은 관계형 데이터베이스 (OLTP)
c. Redis/Memcache와 같은 캐시
d. ElasticSearch와 같은 검색엔진
'Data Engineering > 실리콘밸리에서 날아온 데이터 엔지니어링 스타터 키트' 카테고리의 다른 글
[3주차] Assignment (0) | 2023.08.31 |
---|---|
[3주차] Airflow (0) | 2023.08.30 |
[2주차] Assignment (0) | 2023.08.25 |
[2주차] SQL for Data Engineers(2) (0) | 2023.08.22 |
[2주차] SQL for Data Engineers(1) (3) | 2023.08.22 |