데이터로그😎
[Hadoop] 빅데이터 아키텍처 본문
빅데이터 아키텍처
빅데이터 아키텍처는 크게 (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일마다 수요,공급 예측 - 매주 발행하는 뉴스레터.. - 매달.. |
- 사기거래 탐지 - 이상 탐지 - 실시간 알림 - 실시간 수요, 공급 측정 - 실시간 기능이 들어간 어플 |
'Data Engineering' 카테고리의 다른 글
[Hadoop] HDFS(Hadoop Distributed File System) (0) | 2024.01.22 |
---|---|
[Hadoop] Hadoop, Spark 환경 세팅 (2) | 2024.01.21 |
[Linux] 8. Internet, Network, Server ② SSH, Port (0) | 2024.01.18 |
[Linux] 8. Internet, Network, Server ① (0) | 2024.01.17 |
[Linux] 7. 권한 (permission) (0) | 2024.01.16 |