
데이터 파이프라인이란?
용어 설명: ETL
데이터 프로세싱을 위해 실행하는 코드. 흔히 말하는 ETL이라고 하는 것이 곧 데이터 파이프라인임. ELT도 거시적인 관점에서는 데이터 파이프라인.
- ETL은 외부 데이터를 내부 데이터 시스템(데이터 웨어하우스 등)으로 가져오는 것
- ELT는 내부에 있는 데이터를 재가공해서 만드는 것
- 데이터 레이크를 같이 쓰기도 함
- ELT 프로세스를 위한 전용 기술이 있으며, dbt가 가장 유명하다
용어 설명: Data Lake vs Data Warehouse
가장 큰 차이점: 다음을 수 있는 데이터의 크기
- 데이터 레이크 (Data Lake)
- 구조화 데이터 + 비구조화 데이터
- 로그 데이터는 크기가 크기 때문에 웨어하우스에 로딩하기 힘들어. 그리고 구조화되지 않았기 때문에 sql로 처리하는게 쉽지 않음. 우선 로그 파일을 레이크에 던져두고 처리해서 웨어하우스에 넣는 것이 일반적
- 보존 기한이 없는 모든 데이터를 원래 형태대로 보존하는 스토리지에 가까움
- 가격이 싸고, 훨씬 더 많은 데이터를 저장할 수 있음
- 구조화 데이터 + 비구조화 데이터
- 데이터 웨어하우스
- 보존 기한이 있는 구조화된 데이터를 저장하고 처리하는 스토리지
- 레이크보다 용량이 작고, 가격이 상대적으로 비싸지만 처리 속도가 빠르다
- 보통 BI툴들은 데이터 웨어하우스를 백엔드로 사용
데이터 파이프라인의 정의
- 데이터를 소스로부터 어떤 목적지까지 복사, 이동하는 작업
- 보통 파이썬, 스칼라 코딩이나 SQL을 이용하여 이루어짐
- 대부분의 경우 목적지는 데이터 웨어하우스가 됨 (하지만 상황에 따라 다름)
- 데이터 소스의 예시
- click stream, call data, ads performance data, transactions, sensor data, metadata
- production databases, log files, API, stram data (Kafka topic)
- 데이터 목적지의 예시
- 데이터 웨어하우스, 캐시 시스템 (Redis, Memcache), 프로덕션 데이터베이스, NoSQL, S3
데이터 파이프라인의 종류
- Raw Data ETL Jobs
- 외부와 내부 데이터 소스에서 데이터를 읽어다가 (API를 보통 통함)
- 적당한 데이터 포맷 변환 후 (파이썬으로 하다가 데이터 크기 커지면 Spark로)
- 데이터 웨어하우스에 로드
- Airflow로 스케쥴링
- Summary, Report Jobs
- DW 혹은 DL로부터 데이터를 읽어 다시 DW에 쓰는 ETL
- Raw Data를 읽어서 일종의 리포트 형태나 써머리 형태로 테이블을 다시 만드는 용도
- 특수한 형태로는 AB 테스트 결과를 분석하는 데이터 파이프라인도 존재
요약 테이블의 경우 SQL(CTAS를 통해)만으로 만들고 이는 분석가가 하는 것이 맞음 엔지니어 과점에서는 어떻게 분석가가 편하게 할 수 있는 환경을 만들어주는가가 관건 CTAS로 테이블을 만드는 경우, 테스트하기가 힘들기 때문에 DBT를 많이 사용함 |
- Production Data Jobs
- DW로부터 데이터를 읽어 다른 Storage(많은 경우 프로덕션 환경)로 쓰는 ETL
- 써머리 정보가 프로덕션 환경에서 성능 이유로 필요한 경우 (강의 평점 등)
- 혹은 머신러닝 모델에서 필요한 피쳐들을 미리 계산해두는 경우
- 이럴 경우 타겟 스토리지
- NoSQL (Cassandra, HBase, DynamoDB)
- RDB (OLTP)
- Redis, Memcache와 같은 캐시
- ElasticSearch와 같은 검색엔진
- DW로부터 데이터를 읽어 다른 Storage(많은 경우 프로덕션 환경)로 쓰는 ETL
'Data Engineering' 카테고리의 다른 글
[실날데] 실리콘밸리에서 날아온 데이터 엔지니어링 스타터 키트 - 3주차: Introduction to Airflow (0) | 2023.07.30 |
---|---|
[실날데] 실리콘밸리에서 날아온 데이터 엔지니어링 스타터 키트 - 3주차: 데이터 파이프라인을 만들 때 고려해야 할 점 (0) | 2023.06.22 |
[실날데] 실리콘밸리에서 날아온 데이터 엔지니어링 스타터 키트 2주차 - 빅데이터 세상에도 SQL은 중요할까? (0) | 2023.06.15 |
[실날데] 실리콘밸리에서 날아온 데이터 엔지니어링 스타터 키트 1주차 - Redshift 소개 (1) | 2023.06.09 |
[실날데] 실리콘밸리에서 날아온 데이터 엔지니어링 스타터 키트 1주차 - 데이터 팀 소개 (0) | 2023.06.09 |