데이터로그😎

[Hadoop] 빅데이터 아키텍처 본문

Data Engineering

[Hadoop] 빅데이터 아키텍처

지연v'_'v 2024. 1. 21. 11:44

빅데이터 아키텍처

빅데이터 아키텍처는 크게 (1) 원천 데이터, (2-1)수집 레이어, (2-2)처리 레이어, (3)저장 레이어, (4)분석&예측 레이어,(5) 출력 레이어로 구성된다.

출처: 멀캠 강사님

단계 설명 종류
(1) Data Source - 데이터 소스를 선택하는 단계
- 어떤 데이터를, 어디서, 어떻게 수집할지 결정
- 데이터베이스 기반 (SQL)
- 파일 기반 (CSV...)
- 네트워크 기반 (API..)
(2) Data Ingestion & Processing

실시간 데이터 수집, 처리 (Stream)
실시간 데이터 수집이란 대규모의 데이터 스트림에서 데이터를 수집하고 처리하는 것을 의미함.
- 수집: kafka, Flume, NiFi (분산 메시징 시스템)
- 처리: Spark Streaming, Flink, Storm (스트리밍 프레임워크)
배치 데이터 수집, 처리 (Batch)
큰 양의 데이터를 한 번에 수집하고 처리하는 것을 의미.
- 수집: Sqoop, Flume
- 처리:Hadoop의 MapReduce, Spark의 batch processing 

(3) 적재
- 데이터를 저장소에 저장하는 것
- 적절한 저장소를 선택하고 데이터를 적재함
- 데이터 모델링, 인덱싱, 필터링, 병합 등의 작업 수행


데이터 레이크
- 대규모의 데이터를 실시간으로 수집, 저장, 처리
- Amazon S3, Hadoop HDFS, Apache Cassandra, parquet..
데이터 웨어하우스
- 대규모 데이터 저장
- 필요한 데이터에 대한 쿼리를 실행하기 위해 설계된 데이터베이스
- Snowflake, Amazon Redshift, Apache Hive
- NoSQL: MongoDB, Cassandra, HBase
(4) 분석 & 예측  - 데이터를 분석하고 예측 모델 구축
- 데이터 시각화, 통계 분석, 머신러닝, 딥러닝 사용
프로그래밍 언어 : R, Python, Scala
분산처리 시스템 : Spark, Hadoop
(5) 출력  - 예측 모델을 바탕으로 데이터 시각화 보고서 작성 등의 작업 수행 - BI 도구: Tableau, Power BI, QuickSight 등

 

 

 

Batch Processing vs Stream Processing

  Bacth Stream
데이터 시점 과거 데이터 처리(이미 있는 데이터) 미래 데이터 고려
프로세스 - 많은 양의 데이터를 정해진 시간한꺼번에 처리
- 새로운 데이터 없더라도 처리 프로세스 진행
- 실시간으로 쏟아지는 데이터를 계속 처리하는 것
- event 발생 때마다 바로바로 처리
언제 사용? - 실시간성을 보장하지 않아도 될 때
- 데이터를 한꺼번에 처리할 수 있을 때
- 무거운 처리(Machine Learning)
- 실시간성 보장해야 할 때
- 데이터가 여러 소스로부터 들어올 때
- 데이터가 가끔 or 지속적으로 들어올 때(불규칙적 데이터)
- 가벼운 데이터
예시 - 매월 1일마다 수요,공급 예측
- 매주 발행하는 뉴스레터..
- 매달..
- 사기거래 탐지
- 이상 탐지
- 실시간 알림
- 실시간 수요, 공급 측정
- 실시간 기능이 들어간 어플

 

    •