본문 바로가기
Data Engineering

데이터 인프라 개념 정리 (ETL / 데이터 파이프라인)

by 비전공자 기록광 2023. 11. 17.
반응형

데이터 인프라

💡 목적

데이터 기반으로 의사결정을 돕거나, 서비스와 제품을 향상시키기 위해 구축

 

 

데이터 파이프라인

: 대량의 데이터를 안정적으로 저장 & 관리 위한 기술

 

 

유형

  • 일괄 처리 Batch Processing
  • 스트리밍 데이터 Streaming Data

단계

  1. 데이터 생성
    • 서비스 데이터
    • 로그 데이터
      • 서버 로그
      • 이벤트 로그
  2. 데이터 수집 & 이동
  3. ✔️ GC Storage Transfer Service
  4. 데이터 처리
  5. ✔️ Hadoop, Spark
  6. 데이터 저장
  7. ✔️ BigQuery → GCS
  8. 데이터 분석
  9. 데이터 시각화 BI

 

https://a16z.com/wp-content/uploads/2020/10/Data-Report-Martin-Inline-Graphics-R8-1.pdf

 

  • Sources 데이터 소스
  • Ingestion and Transformation 추출 및 변환
  • Storage 저장
  • Historical 기존 데이터 분석
  • Predictive 데이터 예측
  • Output 결과 추출

 

Sources

OLAP (Online Analytical Processing)

: 데이터를 분석하고 집계 목적

 

 

OLTP (Online Transaction Processing)

: 다수의 사용자가 대량의 트랜잭션을 실시간으로 실행할 수 있도록 지원 목적

ex) 은행 계좌이체

  • CDC (Change Data Capture) : OLTP 데이터를 가져와 변경 부분만 추출 분석

 

Event Collector

: 사용자가 만들어내는 모든 데이터를 수집, 분석하는 도구 (SaaS) ⇒ 데이터 수집 서버에 저장

 

🔧 도구 

Segment

SnowFlow

RudderStack

 

 

Ingestion and Transformation 

💡 ETL

Extract 추출 / Transform 변환 / Load 적재

⇒  최근 ELT로 변화

: 데이터를 먼저 적재(→ 데이터 레이크 / 데이터 웨어하우스)하고 필요에 따라 변환하는 과정

 

  ETL ELT
장점 - 오래된 프로세스 - 다양한 데이터 유형을 수집, 활용하기 좋음
- 변환후 데이터를 적재하기에 효율적이고 안정적인 데이터 분석 가능 - 스키마 변경 등 작업 자동화로 유지 보수 최소화
  - 대규모 데이터 수집 관리
단점 - 프로세스 설정 초기 비용 필요 - 대량의 원시 데이터로 개인 정보 보호 규정 등 규칙에 문제 발생 위험
- 변환에 유지 보수 필요 - 보안 위험
- 변환의 과정이 수집 프로세스를 느리게 만듦  

 

 

Connector

: 소스에서 발생한 데이터를 연결해 데이터 레이크 / 데이터 웨어하우스로 연결 전달

 

🔧 도구

Fivetran

Stich

Matillion

 

 

Data Modeling

⇒  데이터 레이크 / 데이터 웨어하우스와 연결되어 DA들이 데이터 모델을 빌드해볼 수 있게 하는 도구

 

🔧 도구

dbt

LookML

 

 

Workflow Manager

: 데이터 소스에서 데이터를 가져와 데이터 웨어 하우스로 전달하는데 워크플로우 단위로 관리하는 도구

⇒ 하둡의 Luigi 역할

 

🔧 도구

Airflow (Apache)

→ 테스크 실행 / 분산 실행 / 의존성 관리

→  DAG (Directed Acyclic Graph)

: 방향성 비 사이클 = 방향은 가지되, 루프는 생성하지 않는 그래프

Dagster

Argo Workflow

Prefect

 

 

Python Library

 

🔧 도구

Pandas

→ 데이터 프레임으로 읽고 처리하고 출력하는 라이브러리

디버깅 용도에 적합

 Boto

AWS SDK

Dask

Ray

 

 

Spark Platform

: 대규모 데이터 처리를 위한 분산 통합 분석 엔진

⇒ 하둡의 MapReduce 대체

→ 인메모리 형 고속 데이터 처리

  RDD

 

  • RDD Resilient Distributed Dataset : 쉽게 복원되는 분산 데이터셋

→  Read-only

 

🔧 spark 엔진을 사용하는 도구 (솔루션)

Databricks 

Amazon EMR

 

 

Event Streaming

: 대규모 데이터 스트림을 처리하고 이를 실시간으로 분석해 유용한 정보를 얻는데 사용

 

🔧 도구

  Kafka (Apache)

Queue + Pub/Sub

→ 파티션 단위

데이터 쓰기에 속도 저하가 없음

  • Confluent : 카프카 엔진을 사용하는 도구 (솔루션)

Pulsar

Kinesis (Amazon)

→ 샤드 단위

 

 

Stream Processing

: 프로듀서들이 이벤트를 만들면 중간에서 처리하는 역할

스트리밍 데이터가 레코드나 정의된 단위에 따라 순차적으로 처리되는 것

 

🔧 도구

KSQL

Kafka Streams

Spark

Flink

 


참고

 

 

빅데이터를 지탱하는 기술 | 니시다 케이스케 - 교보문고

빅데이터를 지탱하는 기술 |

product.kyobobook.co.kr

 

https://a16z.com/wp-content/uploads/2020/10/Data-Report-Martin-Inline-Graphics-R8-1.pdf

 

반응형

댓글