Published: Jan 5, 2020 by Dev-hwon
데이터 아키텍쳐시 고려사항
1. 비지니스 모델 상 가장 중요한 데이터
- 비용 대비 비지니스 임팩트가 가장 높은 데이터 확보
2. 데이터 거버넌스 (Data Governance)
원칙 (Principle) | 조직 (Organization) | 프로세스 (Process) |
---|---|---|
* 데이터를 유지 관리하기 위한 가이드 * 보안, 품질, 변경관리 |
* 데이터를 관리할 조직의 역할과 책임 * 데이터 관리자, 데이터 아키텍트 |
* 데이터 관리를 위한 시스템 * 작업 절차, 모니터 및 측정 |
3. 유연하고 변화 가능한 환경 구축
- 특정 기술 및 솔루션에 얽매여져 있지 않고 새로운 테크를 빠르게 적용할 수 있는 아키텍쳐를 만드는 것
- 생성되는 데이터의 형식이 변화할 수 있는 것처럼 그에 맞는 툴들과 솔루션들도 빠르게 변화할 수 있는 시스템을 구축하는 것
4. Real Time (실시간) 데이터 핸들링이 가능한 시스템
- 밀리세컨 단위의 스트리밍 데이터가 됬건 하루에 한번 업데이트 되는 데이터든 데이터 아키텍쳐는 모든 스피드의 데이터를 핸들링
* Real Time Streaming Data Processing
* Cronjob
* Serverless Triggered Data Processing
5. 보안
- 내부와 외부 모든 곳에서부터 발생할 수 있는 위험 요소들을 파악하여 어떻게 데이터를 안전하게 관리할 수 있는지 아키텍쳐 안에 포함
6. 셀프 서비스 환경 구축
- 데이터 엔지니어 한명만 엑세스가 가능한 데이터 시스템은 확장성이 없는 데이터 분석 환경
* BI Tools
* Query System for Analysis
* Front-end data applications
데이터 시스템의 옵션들
Relational Databases
- 데이터의 관계도를 기반으로 한 디지털 데이터베이스로 데이터의 저장을 목적으로 생겨남
- SQL 이라고 하는 스탠다드 방식을 통해 자료를 열람하고 유지
- 현재 대부분의 서비스들이 가장 많이 쓰고 있는 데이터 시스템
NoSQL Database
- Not Only SQL
- Unstructured, Schema Less Data
- Scale horizontally (예: 메신저)
- Highly scalable / Less expensive to maintain
Hadoop / Spark / Presto 등 빅데이터 처리
- Distributed Storage System / MapReduce를 통한 병렬 처리
- Spark:
* Hadoop의 진화된 버전으로 빅데이터 분석 환경에서 Real Time 데이터를 프로세싱하기에 더 최적화
* Java, Python, Scala를 통한 API를 제공하여 애플리케이션 생성
* SQL Query 환경을 서포트하여 분석가들에게 더 각광
서버리스 프레임워크
- Triggered by http requests, database events, queuing services
- Pay as you use
- Form of functions
- 3rd Party 앱들 및 다양한 API를 통해 데이터를 수집 정제하는데 유용
데이터 파이프라인
데이터 파이프라인
- 데이터 파이프라인이란 데이터를 한 장소에서 다른 장소로 옮기는 것을 의미 API -> Database Database -> Database Database -> BI Tool
필요한 경우
- 다양한 데이터 소스들로부터 많은 데이터를 생성하고 저장하는 서비스
- 데이터 사일로: 마케팅, 어카운팅, 세일즈, 오퍼레이션 등 각 영역의 데이터가 서로 고립되어 있는 경우
- 실시간 혹은 높은 수준의 데이터 분석이 필요한 비지니스 모델
- 클라우드 환경으로 데이터 저장
구축시 고려 사항
- Scalability: 데이터가 기하급수적으로 늘어났을 때도 작동하는가?
- Stability: 에러, 데이터 플로우 등 다양한 모니터링 관리
- Security: 데이터 이동간 보안에 대한 리스크는 무엇인가?
자동화의 이해
데이터 프로세싱 자동화란?
- 데이터 프로세싱 자동화란 필요한 데이터를 추출, 수집, 정제하는 프로세싱을 최소한의 사람 인풋로 머신이 운영하는 것을 의미
고려할 사항
- 데이터 프로세싱 스텝들
- 에러 핸들링 및 모니터링
- 트리거 / 스케쥴링
기타
Ad hoc VS Automated
- Ad hoc 분석 환경 구축은 서비스를 지속적으로 빠르게 변화시키기 위해 필수적인 요소
- 이니셜 데이터 삽입, 데이터 Backfill 등을 위해 Ad hoc 데이터 프로세싱 시스템 구축 필요
- Automated: 이벤트, 스케쥴 등 트리거를 통해 자동화 시스템 구축