TIL 36

이예인·2023년 11월 27일
0

TIL

목록 보기
7/10

데이터로 의사결정

  • Data Driven Decision
  • Data Informed Decision

ETL

  • airflow
  • aws, 구글클라우드에서도 지원
  • saas 도 있음

시각화 대시보드

  • 중요한 지표를 시간의 흐름과 함께 보여주는 것이 일반적
    • 3A
      • Accessible: 내가 보고싶을 때 볼 수 있어야 한다. 자동화된 시각화 대시보드가 있어야 한다. 업데이트가 잘 되어야 한다.
      • Actionable: 등락의 의미가 명확해야 한다.
      • Auditable: 이 데이터가 정확한지 확인할 방법이 있어야 한다.
    • KPI(Key Performance Indicator)
      • 매출액
      • 사용자수

데이터 레이크

  • 데이터웨어하우스에 비해 저렴하다.
  • 구조화 데이터 + 비구조화 데이터 (로그 데이터)
  • 스토리지에 가깝다.
    • S3

ETL vs ELT

  • ETL: 외부 → 데이터 레이크, 데이터하우스
  • ELT: 데이터 레이크, 데이터 웨어하우스 → 데이터 레이크, 데이터 웨어하우스
    • DBT

다양한 데이터 소스의 예

  • 프로덕션 데이터 베이스
  • 이메일 마케팅 데이터
  • 크레딧카드 매출 데이터
  • 서포트 티켓 데이터
  • 서포트 콜 데이터
  • 세일즈 데이터
  • 사용자 이벤트 로그

Airflow(ETL 스케쥴러) 소개

  • ETL 관리 및 프레임워크의 필요성
    • 다수의 ETL이 존재할 경우 이를 스케줄해주고 이들간의 의존관계(dependency)를 정의해주는 기능이 필요
    • 특정 ETL이 실패할 경우 이에 관한 에러 메세지를 받고 재실행해주는 기능이 중요(Backfill)
  • 가장 많이 사용되는 프레임워크 Airflow
    • ELT을 DAG라 부르며 웹 인터페이스를 통한 관리 기능 제공
    • 3가지 컴포넌트로 구성
      • 스케줄러
      • 웹 서버
      • 워커

ELT

  • 데이터 웨어하우스 내부 데이터를 조작해서 (보통은 좀 더 추상화되고 요약된) 새로운 데이터를 만드는 프로세스
  • dbt가 가장 유명한 기술: Analytics Engineering
  • 데이트 분석가가 주로 한다.
  • 데이터 레이크를 사용하기도 한다.

빅데이터 처리 프레임워크

  • 분산 환경 기반
    • 분산 파일 시스템 (HDFS)
    • 분산 컴퓨팅 시스템 (MapReduce, Hive/Presto, Spark)
  • Fault Tolerance
  • Scale out이 되어야 함

대표적인 빅데이터 프로세싱 시스템

  • 1세대
    • MapReduce
    • Hive/Presto(MapReduce를 SQL로 쓸 수 있게 해주는 기술)
  • 2세대
    • Spark

데이터 웨어하우스

  • Redshift
  • Snowflake
  • Google Cloud BigQueryu
  • Apache Hive
  • Apache Presto
  • Apache Iceberg (Storage)
  • Apache Spark (Storage에 있는 데이터를 읽을 수 있는 엔진)

공통점

  • SQL을 지원하는 빅데이터 기반 데이터베이스 (Iceberg 제외)

Redshift

  • 2012년에 시작된 AWS 기반의 데이터웨어하우스, PB 스케일 데이터 분산처리 가능
    • Postgresql과 호환되는 SQL
    • Python UDF (User Defined Function)의 작성을 통해 기능 확장 가능
    • 고정비용, 가변비용 모두 지원
  • CSV, JSON, Avro, Parquet 등과 같은 다양한 데이터 포맷 지원
  • AWS 내의 다른 서비스들과 연동 가능
    • S3, DynamoDB, SageMaker(ML모델 실행 가능), …
    • Redshift의 기능 확장을 위해 Redshift Spectrum, AWS athena 등의 서비스와 같이 사용 가능
  • 배치 데이터 중심이지만 실시간 데이터 처리 지원
  • 웹 콘솔 이외에도 API를 통한 관리/제어 가능

Snowflake

  • 2014년에 클라우드 기반 데이터웨어하우스로 시작(2020년 상장)
    • 지금은 클라우드라고 부를 수 있을 정도로 발전
    • 데이터 판매를 통한 매출을 가능하게 해주는 Data Sharing / Marketplace 제공
    • ETL과 다양한 데이터 통합 기능 제공
  • SQL 기반으로 빅데이터 저장, 처리, 분석을 가능하게 해줌
    • 비구조화된 데이터 처리와 머신러닝 기능 제공
  • CSV, JSON, Avro, Parquet 등과 같은 다양한 데이터 포맷을 지원
    • S3, GC 클라우드 스토리지, Azure Blog Storage도 지원
  • 배치 데이터 중심이지만 실시간 데이터 처리 지원
  • 웹 콘솔 이외에도 API를 통한 관리/제어 가능

Google Cloud Bigquery

  • 2010년에 시작된 구글 클라우드의 데이터 웨어하우스 서비스
    • 구글 클라우드의 대표적인 서비스
    • BigQuery SQL: SQL로 데이터 처리 가능(Nested fields, repeated fields 지원)
    • 가변비용, 고정 비용 옵션 지원
  • CSV, JSON, Avro, Paraquet 등과 같은 다양한 데이터 포맷을 지원
  • 구글 클라우드 내의 다른 서비스들과 연동이 쉬움
    • 클라우드 스토리지, 데이터 프로우, AutoML 등
  • 배치 중심, 실시간 데이터 처리 지원
  • 웹 콘솔 이외에도 API를 통한 관리/제어 가능

Apache Hive

  • Facebook이 2008년에 시작한 아파치 오픈소스 프로젝트
  • 하둡 기반으로 동작하는 SQL 기반 데이터 웨어하우스 서비스
    • HiveQL이라 부르는 SQL 지원
    • MapReduce 위에서 동작하는 버전과 Apache Tez를 실행 엔진으로 동작하는 버전 두 가지 존재
    • 다른 하둡 기반 오픈소스와 연동이 쉬움(Spark, HBase 등)
    • 자바나 파이썬으로 UDF 작성 가능
  • CSV, JSON, Avro, Paraquet 등과 같은 다양한 데이터 포맷 지원
  • 배치 빅데이터 프로세싱 시스템
    • 데이터 파티셔닝과 버킷팅과 같은 최적화 작업 지원
    • 빠른 처리속도보다는 처리할 수 있는 데이터 양, 크기에 최적화
  • 웹 UI와 커맨드라인 UI 두 가지를 지원
  • 점점 Spark에 비해 밀림

Apache Presto

  • Facebook이 2013년에 시작한 아파치 오픈소스 프로젝트
  • 다양한 데이터소스에 존재하는 데이터를 대상으로 SQL 실행 가능
    • HDFS, S3, Cassandra, MySQL, …
    • PrestoSQL 이라 하는 SQL 지원
  • CSV, JSON, Avro, ORC, Parquet 등과 같은 다양한 데이터 포맷 지원
  • 배치 빅데이터 프로세싱 시스템
    • Hive와 달리 빠른 응답 속도에 최적화 (메모리기반, Hive는 디스크 기반)
  • 웹 UI와 CLI 두 가지 지원
  • AWS Athena가 Presto 기반

Apache Iceberg

  • Netflix가 2018년에 시작한 아파치 오픈소스 프로젝트
  • 데이터 웨어하우스 x
  • 대용량 SCD (Slowly-Chaing Datasets) 데이터를 다룰 수 있는 테이블 포맷
    • HDFS, S3, Azure Blob Storage 등의 클라우드 스토리지 지원
    • ACID 트랜잭션과 타임여행(과거 버전으로 롤백, 변경 기록 유지 등)
    • 스키마 진화 (Schema Evolution) 지원을 통한 컬럼 제거와 추가 가능 (테이블 재작성 x)
  • 자바와 파이썬 API 지원
  • Spark, Flink, Hive, Hudi 등의 다른 Apache 시스템과 연동 가능

Apache Spark

  • UC 버클리 AMPLab이 2013년에 시작한 아파치 오픈소스 프로젝트
  • 빅데이터 처리 관련 종합선물세트
    • 배치 처리(API/SQL), 실시간 처리, 그래프 처리, 머신러닝 기능 제공
  • 다양한 분산처리 시스템 지원
    • 하둡(YARN), AWS EMR, Google Cloud Dataproc, Mesos, K8s 등
  • CSV, JSON, Avro, ORC, Parquet 등과 같은 다양한 데이터 포맷 지원
  • 다양한 언어 지원: Java, Python, Scala, R

0개의 댓글

관련 채용 정보