데브코스 31일차 - ETL, ELT, 데이터 웨어하우스

Pori·2023년 11월 27일
0

데엔

목록 보기
26/47

다양한 데이터 웨어하우스 옵션

1. 데이터 팀의 역할

  • 비전 : 신뢰할 수 있는 데이터를 바탕으로 부가 가치를 생성하는 것.
    • 의사 결정권자에게 조력하는 역할 → Decision Science
      • 데이터를 고려한 결정 (Data informed decisions)
      • 데이터 기반의 결정 (Data driven decisions)
    • 사용자 서비스 경험 개선, 프로세스 최적화 수행
  • 발전
    1. 데이터 인프라 구축 : ETL, 데이터 웨어하우스 구축 → 데이터 엔지니어가 수행
      • 데이터 웨어하우스
        • 회사에 필요한 모든 데이터를 모아놓은 중앙 데이터 베이스
        • 크기가 커지면 클라우드 사용
        • 프로덕션용 데이터 베이스와 별개의 데이터베이스이다.
      • ETL (Extract, Transform, Load) : 데이터를 데이터 웨어하우스에 로드하는 작업
        • Extract : 외부의 데이터 소스에서 추출
        • Transform : 데이터 포맷을 변환
        • Load : 데이터 웨어하우스에 적재
        • 많이 쓰이는 프레임워크는 Airflow이나, Software as a Service(SaaS)도 사용하고 있다.
    2. 데이터 분석 수행 : 데이터 분석가가 데이터를 바탕으로 분석을 수행한다.
      • 시각화 대시보드
        • 중요한 지표 (3A : Accessible, Actionable, Auditable)을 토대로 보여준다.
        • 룩커, 태블로, 파워BI, 수퍼셋 같은 대시보드들이 존재한다.
    3. 데이터 과학 적용 : 데이터 과학자들이 사용자 경험을 개선한다.

2. 데이터 조직 구성원

  • 데이터 팀 구성원 (작은 회사에서는 몇개의 역할을 동시 수행하는 것이 일반적이다.)
    • 데이터 엔지니어 : 데이터 인프라 구축
      • 기본적으로 소프트웨어 엔지니어
      • 데이터 웨어하우스 구축
      • 데이터 분석가와 과학자를 지원한다.
    • 데이터 분석가 : 데이터 기반의 지표 생성 및 시각화
      • 비즈니스 인텔리전스 → 대시보드생성, 도메인 지식이 필요
      • 데이터 관련 질의응답
    • 데이터 과학자 : 머신러닝 모델등을 통해 사용자 경험 개선
    • MLOps : DevOps에서 나아가 ML 모델을 대상으로 빌딩, 배포, 모니터링하는 직군
    • 프라이버시 엔지니어 : 개인정보 보호를 위한 가이드라인/툴 제공
    • 데이터 디스커버리 : 데이터 조직의 증가와 함께 테이블과 대시보드의 수가 늘어나기 때문에 이를 관리하는 서비스가 필요하다.

3. 데이터 웨어하우스와 ETL/ELT

  • 데이터 웨어하우스 옵션 별 장단점
    • 기본적으로 클라우드가 대세이다.
    • 확장 가능성과 적절한 비용을 보아야한다. → 가변비용 옵션
    • 오픈소스 기반인 경우에도 클라우드 버전이 존재한다.
    • 데이터가 작은 경우 빅데이터 기반의 DB를 사용하지 않아도 된다.
  • 데이터 레이크
    • 구조화 데이터 + 비구조화 데이터
    • 모든 데이터를 원래 형태로 보존하는 스토리지에 가깝다.
    • 클라우드 스토리지가 되는 경우가 많다. (S3)
    • ETL : 데이터 시스템 밖에 있는 데이터를 가져오는 것. → Airflow를 대표적으로 많이 사용한다.
    • ELT : 데이터 시스템 안에 있는 데이터를 처리하는 것. → DBT 툴을 많이 사용
  • 빅데이터 처리 프레임워크
    • 분산 환경 기반 : 분산 파일 시스템과 분산 컴퓨팅 시스템이 필요하다.
    • Fault Tolerance : 고장이 나더라도 동작에 문제가 없어야한다.
    • 확장이 용이해야 한다. (Scale Out : 서버의 수를 늘리기, Scale up : 서버의 용량을 증가)
    • 대표적인 픽데이터 프로세싱 시스템
      • 하둡 기반의 Mapreduce, Hive/Presto → SQL 기반
      • Spark

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

  • AWS Redshift
    • 최대 2PB 스케일의 데이터 분산 처리가 가능하다.
    • Postgresql과 호환된다.
    • CSV, JSON, Avro, Parquet 등과 같은 다양한 데이터 포맷을 지원한다.
    • AWS의 다른 서비스들과의 연동이 쉽다.
    • 실시간 데이터 처리도 지원한다, 기본적으로는 배치 데이터 중심이다.
    • API를 통한 관리가 가능하다.
  • Snowflake
    • 데이터 클라우드라고 부를 정도로 많은 기능을 지원한다. ex) Data Sharing, Marketplace를 제공
    • SQL 기반으로 빅데이터의 저장, 처리, 분석을 가능하게 해준다.
    • CSV, JSON, Avro, Parquet 등과 같은 다양한 데이터 포맷을 지원한다.
    • S3, GC 클라우드 스토리지, Azure Blog Storage도 지원한다.
    • 실시간 데이터 처리도 지원한다, 기본적으로는 배치 데이터 중심이다.
    • API를 통한 관리가 가능하다.
  • BigQuery
    • BigQuery SQL을 통해 다양한 데이터 처리가 가능하다. (Nested fields, repeated fields를 지원한다.)
    • 구글 클라우드의 다른 서비스들과 연동이 쉽다.
    • 실시간 데이터 처리도 지원한다, 기본적으로는 배치 데이터 중심이다.
    • API를 통한 관리가 가능하다.
  • Apache Hive
    • 하둡이 기반이다. → 하둡 기반의 오픈소스들과 연동이 쉽다.
    • HiveQL이라는 SQL을 지원한다.
    • 배치 빅데이터 프로세싱 시스템이다.
    • Web UI와 CLI 모두 지원한다.
  • Apache Presto
    • Hive와 비슷하나 처리속도에 집중
    • PrestoSQL을 지원한다.
    • AWS Athena가 presto를 기반으로 만들어졌다.
  • Apache Iceberg → Storage
    • 데이터 웨어하우스 기술은 아니다.
    • 대용량 SCD 데이터를 다룰 수 있는 테이블 포맷이다.
      • 클라우드 스토리지 지원
      • ACID 트랜잭션과 TimeTravel 지원한다. (ACID : https://ko.wikipedia.org/wiki/ACID)
      • 테이블의 재작성 없이 스키마 지원을 통해 컬럼 제거와 추가가 가능하다.
    • 자바와 파이썬 API를 지원한다.
    • 다른 Apache 시스템과 연동이 가능하다.
  • Apache Spark → Processing engine
    • 빅데이터 처리 관련에 있어 대부분의 기능을 지원한다.
      • 배치처리, 실시간처리, 그래프처리, 머신러닝 기능을 제공한다.
    • 다양한 분산처리 시스템을 지원한다.
    • HDFS, S3, Cassandra, Hbase와 같은 파일시스템들과 연동이 가능하다.
    • 자바, 파이썬, 스칼라, R과 같은 다양한 언어를 지원한다.

공통점 : Iceberg를 제외하고 SQL을 모두 지원한다.

5. 데이터 스택 트렌드

  • 데이터 플랫폼의 발전단계
    • 초기 : 데이터 웨어하우스 + ETL
    • 발전 : 데이터 양 증가
      • 빅데이터 처리시스템 도입 : Spark/Hadoop
      • 데이터 레이크 구축
    • 성숙 : 데이터 활용 증대
      • ELT가 더 중요해지면서 DBT와 같은 분석엔진이 도입된다.
      • MLOpas 등 머신러닝 관련 효율성 증대

0개의 댓글