[TIL] ETL, ELT, Redshift, 데이터 분석/처리용 고급 SQL, BI 대시보드 (1)

이원진·2023년 5월 22일
0

데브코스

목록 보기
31/54
post-thumbnail
post-custom-banner

학습내용


  1. 데이터 웨어하우스와 데이터 레이크

  2. ETL, ELT

  3. 데이터 웨어하우스 옵션들

  4. 실리콘밸리 회사들의 데이터 스택 트렌드

1. 데이터 웨어하우스와 데이터 레이크


  • 데이터 웨어하우스

    • 회사에 필요한 모든 데이터를 모아놓은 중앙 DB

    • 데이터의 크기에 맞게 사용할 DB 선택

      • 크기가 작다면 굳이 빅데이터 기반의 DB를 사용할 필요는 없음

      • 크기가 커진다면 클라우드 기반(AWS Redshift, GCP BigQuery, Snowflake) 중 하나를 선택

    • 프로덕션용 DB와 별개의 DB여야 함

    • 데이터가 커져도 문제 없는 확장 가능성(Scalability)과 비용이 중요 포인트

      • AWS Redshift는 고정 비용, GCP BigQuery와 Snowflake는 가변 비용

    • 데이터 웨어하우스 구축은 진정한 데이터 조직이 되는 첫 번째 스탭

  • 데이터 레이크

    • 구조화 데이터 + 비구조화 데이터(로그 파일)

    • 보존 기한 없는 데이터를 원래 형태대로 보존하는 스토리지에 가까움

    • 보통은 데이터 웨어하우스보다 몇 배 더 크고 경제적

    • 보통 AWS S3와 같은 클라우드 스토리지를 사용


2. ETL, ELT


  • ETL(Extract, Transform, Load)

    • 다른 곳에 존재하는 데이터를 가져와 데이터 웨어하우스(or 데이터 레이크)에 로드하는 작업

    • 데이터 파이프라인이라고 부르기도 함

    • 회사의 성장에 따라 기하급수적으로 증가

    • 중요한 데이터를 다루는 ETL을 스케줄하고 관리하기 위한 프레임워크인 Airflow를 많이 사용

  • ELT

    • 데이터 웨어하우스(or 데이터 레이크) 안에 있는 데이터를 처리하는 작업

    • ETL로 불러온 데이터를 기반으로 요약 데이터를 생성

      • dtb 사용

  • 다양한 데이터 소스

    • 프로덕션 DB의 데이터

    • 이메일 마케팅 데이터

    • 신용카드 매출 데이터

    • 서포트 티켓 데이터

    • 서포트 콜 데이터

    • 세일즈 데이터

    • 사용자 이벤트 로그

  • 빅데이터 처리 프레임워크

    • 한 개 이상의 서버로 구성된 분산 환경 기반

      • 분산 파일 시스템, 분산 컴퓨팅 시스템

    • Fault Tolerence, Scalability 중요

    • 1세대: Hadoop 기반 MapReduce, Hive/Presto

    • 2세대: Spark


3. 데이터 웨어하우스 옵션들


  • AWS Redshift

    • PB 스케일 데이터 분산 처리 가능

    • PostgreSQL의 일부 기능 사용 가능

    • CSV, JSON, Avro, Parquet 등과 같은 다양한 데이터 포맷 지원

    • AWS 내의 다른 서비스와 연동이 쉬움

    • 배치 데이터 중심이지만, 실시간 데이터 처리도 지원

    • 웹 콘솔 외에도 API를 통한 관리/제어 가능

  • Snowflake

    • 데이터 판매를 통해 매출을 창출하는 Data Sharing/Marketplace 제공

    • ETL과 다양한 데이터 통합 기능 제공

    • CSV, JSON, Avro, Parquet 등과 같은 다양한 데이터 포맷 지원

      • AWS S3, GCP 클라우드 스토리지 , Azure Blob Storage도 지원

    • 배치 데이터 중심이지만, 실시간 데이터 처리도 지원

    • 웹 콘솔 외에도 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 등과 같은 다양한 데이터 포맷 지원

    • 배치 빅데이터 프로세싱 시스템

      • Hive와는 달리 빠른 응답 속도에 최적화(메모리 기반)

    • 웹 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

    • 빅데이터 처리 관련 종합선물세트

      • 배치 처리(API, SQL), 실시간 처리, 그래프 처리, 머신러닝 기능 제공

    • 다양한 분산처리 시스템 제공

      • Hadop(YARN), AWS EMR, GCP Dataproc, Mesos, K8s, ...

    • 다양한 파일 시스템과 연동 가능

      • HDFS, AWS S3, Cassandra, HBase, ...

    • CSV, JSON, Avro, Parquet 등과 같은 다양한 데이터 포맷 지원

    • 자바, 파이썬, 스칼라, R 등 다양한 언어 지원


4. 실리콘밸리 회사들의 데이터 스택 트렌드


  • 데이터 플랫폼의 발전 단계

    • 초기 단계: 데이터 웨어하우스 + ETL

    • 발전 단계: 데이터량 증가

      • 데이터 레이크 도입

      • Spark, Hive, Presto와 같은 빅데이터 처리 시스템 도입

    • 성숙 단계: 데이터 활용 증대

      • 현업 단의 데이터 활용 가속화

      • ELT 단이 중요해지면서 dbt 등의 analytics engineering 도입

      • MLOps 등 머신러닝 관련 효율성 증대 노력

  • 클라우드: AWS

  • 빅데이터 처리 시스템: Spark

  • 대시보드: Tableau, Looker

  • 데이터 파이프라인 프레임워크: Airflow, dbt, (+ K8s)


메모



post-custom-banner

0개의 댓글