Big Data

빅데이터 아키텍처

dohem 2024. 4. 12. 13:39

빅데이터 아키텍처 개요

  • Sources → Ingestion and Procssing → Storage →  Analytics and Prediction → Output

  • Source : 비즈니스/운영 데이터가 생성
  • Ingestion and Procssing : 데이터 소스로부터 데이터를 수집하여 데이터 추출/변형/적재(ETL)
  • Storage : 쿼리와 프로세싱이 가능한 형태로 데이터 저장
  • Analytics and Prediction : 데이터 탐색 및 분석
  • Output : 분석 결과 -> 대시보드/리포팅/모델을 어플리케이션에 탑재
  • Workflow Management : 위 플로우를 관리하는 도구

Source

  • 비즈니스/운영 데이터가 생성

Data 종류

  • 정형데이터
    • RDBMS, 엑셀 스프레드 시트
  • 비정형 데이터
    • 텍스트, 이미지, 음성, 영상
  • 반정형 데이터
    • JSON, XML, 웹 로그, 센서데이터

Data Source 종류

  • 데이터베이스(주로 OLTP)
  • 이벤트 컬렉터(사용자가 만드는 데이터)
  • 로그(서버의 로그)
  • API(외부 서비스로부터 데이터를 수집)
  • 파일
  • 오브젝트 스토리지
  • 기타

Ingestion and Processing

Data Ingestion

배치형 데이터 수집

  • 데이터베이스
  • 파일

스트리밍형 데이터 수집

  • 애플리케이션 이벤트
  • 로그
  • 센서 데이터

스트리밍형 데이터 수집 방법

  • NoSQL 사용 또는 데이터저장소에 저장하지 않고 메시지 큐를 사용
  • 다양한 도구 존재
    • Flume
    • Scoop
    • Kafka
    • Nifi
    • Fluentd

Data Processing

배치 처리

  • 주로 대량의 데이터를 처리할 때 사용
  • MapReduce, Spark, Hive

스트림 처리

  • 잘못된 데이터를 처리하기 어려움
  • 지연된 데이터에 대한 처리 문제 발생
    -> Lambda 아키텍처로 해결(batch view 완료되기 전까지 real time view 사용)
       but 비효율적
    -> Kappa 아키텍처로 해결
  • Flink, Spark, Kafka

Data Storage

Data Warehouse

  • 데이터분석을 위해 서로 다른 시스템의 데이터가 모델링 되어 있는 데이터베이스
  • 정형화된 데이터가 들어 있음
  • BigQuery, Snowflake, Redshift

Data Lake

  • 다양한 유형의 방대한 데이터 저장
  • S3, HDPF

Data Analytics and Prediction

  • 데이터 분석과/과학자들이 쿼리를 통해 분석하는 환경 제공

대화형 쿼리 엔진

  • trino
  • presto(페이스북에서 개발)
  • impala

Realtime Analytics

  • druid
  • pinot
  • clickhouse

Machine Learning

  • spark
  • Amazon SageMaker
  • AzureML

Output

  • 데이터 기반의 의사 결정에 도움
  • 데이터의 도움으로 서비스 질을 향상시킴

대시보드

  • tableau
  • superset
  • redash

 

Workflow Management

  • Apache airflow
  • Apache  oozie

참고자료

빅데이터처리 with Spark&Hadoop 초격차 패키지 Online (패스트캠퍼스)