Data Engineering Basic

Let's Just Go·2022년 10월 9일
0

Data Engineering

목록 보기
1/3

Data Engineering

Data Engineering Tools

  • Data Engineering Tools

    • 소스

      • 비즈니스와 운영 데이터 생성
      • Log, DataBase
    • 수집 및 변환

      • 운영 시스템에서 데이터 추출, 추출된 데이터를 저장하고 스키마 관리, 데이터를 분석할 수 있도록 변환
      • Spark, Pandas, Kafka, Flink, Airflow
    • 저장

      • 데이터를 쿼리와 처리 시스템이 쓸 수 있도록 저장, 비용과 확장성면으로 최적화
      • Parquet, HDFS
    • 과거, 예측

      • 데이터 분석을 위한 인사이트 만들기
      • 저장된 데이터를 이용해 쿼리를 실행하고 필요 시 분산처리
      • 과거에 무슨일이 일어났는지 혹은 미래에 무슨일이 일어날지
      • Tensorflow, Pytorch, SparkML
    • 출력

      • 데이터 분석을 내부와 외부 유저에게 제공, 데이터 모델을 운영 시스템에 적용
      • Tableau, Looker

Batch & Stream Processing

  • Batch & Stream Processing

    • Batch Processing

      • 많은 양의 데이터를 정해진 시간에 한꺼번에 처리하는 것

      • 전통적으로 쓰이는 데이터 처리 방법

      • Flow

        • 데이터를 모아서 → DB에서 읽어서 처리 → 다시 DB에 담기
    • Stream Processing

      • 실시간으로 쏟아지는 데이터를 계속 처리하는 것

      • 이벤트가 생길때마다, 데이터가 들어올 때마다 처리

      • 실시간성 보장, 데이터가 여러 소스로부터 들어올 때, 데이터가 가끔 들어오거나 지속적으로 들어올 때, 가벼운 처리를 할 때 주로 사용

      • Flow

        • 데이터가 들어올때마다 → 쿼리/처리 후 state 업데이트 → DB에 담기
    • Micro Batch

      • 데이터를 조금씩 모아서 처리하는 방식
      • Batch Processing을 잘게 쪼개서 Stream을 흉내내는 방식

Apache Spark Tutorial

  • Spark

    • 빅데이터 처리를 위한 오픈소스 고속 분산처리 엔진
    • spark는 연산 엔진
    • Spark가 빠른 이유는 In-memory 연산이 가능하다는 뜻
  • 메모리 연산 속도

    • CPU, L1 Cache, L2 Cache, L3 Cache, RAM, HDD/SDD 순으로 연산 속도가 빠름
  • Resilient Distributed Dataset(RDD)

    • 탄력적 분산 데이터 셋

    • Spark의 핵심 데이터 모델로써 여러 분산 노드에 걸쳐서 저장되고 변경이 불가능

    • 특징

      • 데이터 추상화

        • 데이터는 클러스터에 흩어져있지만 하나의 파일인 것처럼 사용 가능
      • Resilient & Immutable

        • 탄력적이고 불변하는 성질
        • 문제가 발생하여 여러 노드 중 하나가 망가지게 되어도 복원을 할 수 있음
      • Type-safe

        • 컴파일 시 Type을 판별할 수 있어 문제를 일찍 발견할 수 있음
      • UnStructured / Structured Data

        • 비정형 / 정형 데이터를 모두 담을 수 있음
      • Lazy

        • Action을 할 때 까지 변환은 실행되지 않음
        • 즉 Action을 하지 않으면 그전에 수없이 많은 Transform을 해도 실행이 안됨
profile
안녕하세요! 공부한 내용을 기록하는 공간입니다.

0개의 댓글