데이터 웨어하우스와 데이터 레이크
ETL, ELT
데이터 웨어하우스 옵션들
실리콘밸리 회사들의 데이터 스택 트렌드
데이터 웨어하우스
회사에 필요한 모든 데이터를 모아놓은 중앙 DB
데이터의 크기에 맞게 사용할 DB 선택
크기가 작다면 굳이 빅데이터 기반의 DB를 사용할 필요는 없음
크기가 커진다면 클라우드 기반(AWS Redshift, GCP BigQuery, Snowflake) 중 하나를 선택
프로덕션용 DB와 별개의 DB여야 함
데이터가 커져도 문제 없는 확장 가능성(Scalability)과 비용이 중요 포인트
데이터 웨어하우스 구축은 진정한 데이터 조직이 되는 첫 번째 스탭
데이터 레이크
구조화 데이터 + 비구조화 데이터(로그 파일)
보존 기한 없는 데이터를 원래 형태대로 보존하는 스토리지에 가까움
보통은 데이터 웨어하우스보다 몇 배 더 크고 경제적
보통 AWS S3와 같은 클라우드 스토리지를 사용
ETL(Extract, Transform, Load)
다른 곳에 존재하는 데이터를 가져와 데이터 웨어하우스(or 데이터 레이크)에 로드하는 작업
데이터 파이프라인이라고 부르기도 함
회사의 성장에 따라 기하급수적으로 증가
중요한 데이터를 다루는 ETL을 스케줄하고 관리하기 위한 프레임워크인 Airflow를 많이 사용
ELT
데이터 웨어하우스(or 데이터 레이크) 안에 있는 데이터를 처리하는 작업
ETL로 불러온 데이터를 기반으로 요약 데이터를 생성
다양한 데이터 소스
프로덕션 DB의 데이터
이메일 마케팅 데이터
신용카드 매출 데이터
서포트 티켓 데이터
서포트 콜 데이터
세일즈 데이터
사용자 이벤트 로그
빅데이터 처리 프레임워크
한 개 이상의 서버로 구성된 분산 환경 기반
Fault Tolerence, Scalability 중요
1세대: Hadoop 기반 MapReduce, Hive/Presto
2세대: Spark
AWS Redshift
PB 스케일 데이터 분산 처리 가능
PostgreSQL의 일부 기능 사용 가능
CSV, JSON, Avro, Parquet 등과 같은 다양한 데이터 포맷 지원
AWS 내의 다른 서비스와 연동이 쉬움
배치 데이터 중심이지만, 실시간 데이터 처리도 지원
웹 콘솔 외에도 API를 통한 관리/제어 가능
Snowflake
데이터 판매를 통해 매출을 창출하는 Data Sharing/Marketplace 제공
ETL과 다양한 데이터 통합 기능 제공
CSV, JSON, Avro, Parquet 등과 같은 다양한 데이터 포맷 지원
배치 데이터 중심이지만, 실시간 데이터 처리도 지원
웹 콘솔 외에도 API를 통한 관리/제어 가능
Google Cloud BigQuery
Nested fields, Repeated fields를 지원하는 BigQuery SQL을 사용해 데이터 처리 가능
가변 비용과 고정 비용 옵션 제공
구글 클라우드 내의 다른 서비스들과 연동이 쉬움
배치 데이터 중심이지만, 실시간 데이터 처리도 지원
웹 콘솔 외에도 API를 통한 관리/제어 가능
Apache Hive
Hadoop 기반으로 동작
다른 Hadoop 기반 오픈소스와 연동이 쉬움
CSV, JSON, Avro, Parquet 등과 같은 다양한 데이터 포맷 지원
배치 빅데이터 프로세싱 시스템
데이터 파티셔닝, 버킷팅과 같은 최적화 작업 지원
처리 속도보다는 처리할 수 있는 데이터 크기에 최적화
웹 UI와 CLI 두 가지 지원
Spark에 밀리는 분위기
Apache Presto
다양한 데이터 소스에 존재하는 데이터를 대상으로 SQL 실행 가능
CSV, JSON, Avro, Parquet 등과 같은 다양한 데이터 포맷 지원
배치 빅데이터 프로세싱 시스템
웹 UI와 CLI 두 가지 지원
AWS Athena가 Presto를 기반으로 만들어짐
Apache Iceberg
데이터 웨어하우스 기술이 아닌 대용량 SCD(Slowly Changing Dataset) 데이터를 다룰 수 있는 테이블 포맷
HDFS, AWS S3, Azure Blob Storage 등의 클라우드 스토리지 지원
ACID 트랜잭션과 시간여행(과거 버전으로 롤백, 변경 기록 유지, ...)
자바, 파이썬 API 지원
Spark, Flink, Hive, Hudi 등의 다른 Apache 시스템과 연동 가능
Apache Spark
빅데이터 처리 관련 종합선물세트
다양한 분산처리 시스템 제공
다양한 파일 시스템과 연동 가능
CSV, JSON, Avro, Parquet 등과 같은 다양한 데이터 포맷 지원
자바, 파이썬, 스칼라, R 등 다양한 언어 지원
데이터 플랫폼의 발전 단계
초기 단계: 데이터 웨어하우스 + ETL
발전 단계: 데이터량 증가
데이터 레이크 도입
Spark, Hive, Presto와 같은 빅데이터 처리 시스템 도입
성숙 단계: 데이터 활용 증대
현업 단의 데이터 활용 가속화
ELT 단이 중요해지면서 dbt 등의 analytics engineering 도입
MLOps 등 머신러닝 관련 효율성 증대 노력
클라우드: AWS
빅데이터 처리 시스템: Spark
대시보드: Tableau, Looker
데이터 파이프라인 프레임워크: Airflow, dbt, (+ K8s)