데이터 인프라
💡 목적
데이터 기반으로 의사결정을 돕거나, 서비스와 제품을 향상시키기 위해 구축
데이터 파이프라인
: 대량의 데이터를 안정적으로 저장 & 관리 위한 기술
유형
- 일괄 처리 Batch Processing
- 스트리밍 데이터 Streaming Data
단계
- 데이터 생성
- 서비스 데이터
- 로그 데이터
- 서버 로그
- 이벤트 로그
- 데이터 수집 & 이동
- ✔️ GC Storage Transfer Service
- 데이터 처리
- ✔️ Hadoop, Spark
- 데이터 저장
- ✔️ BigQuery → GCS
- 데이터 분석
- 데이터 시각화 BI
- 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
참고
https://a16z.com/wp-content/uploads/2020/10/Data-Report-Martin-Inline-Graphics-R8-1.pdf
댓글