목차
빅데이터 아키텍처 개요
- 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 (패스트캠퍼스)