1. 데이터 시스템 옵션
관계형 데이터베이스 (ex. mysql)
- 목적: 데이터의 저장. 어떤 형식으로 저장할건지.
ex. sql:데이터를 어떻게 열람하고 유지할건지에 대한 방식.
NoSQL 데이터베이스 (ex. dynamo)
- 목적: 스키마(틀)가 없는 데이터의 저장.
ex. 메신저
spark
- 오픈소스 클러스터 컴퓨팅 프레임워크
- 리얼타임 데이터를 프로세싱하기에 좋다.
- java, python, scala, sql 환경 서포트하기 때문에 API 사용에 용이하다.
서버리스 프레임워크
- 유지, 관리해야 하는 서버를 띄워놓지 않아도 된다.
- function 같이 특정 trigger가 들어오면 실행됨.
2. 데이터 파이프라인
- 데이터를 한 장소에서 다른 장소로 옮기는 것.
(API - DB, DB - DB, DB - BI tool)
- 데이터로 서비스를 제공한다면 파이프라인 필요.
- 각 영역에서 데이터가 있다면 데이터통합을 위해 파이프라인 필요.
ex. spotify - mysql
구축시 고려사항
- 데이터 양이 늘어났을 때도 잘 작동해야 한다.
- 에러, 데이터 플로우 등에 대한 안정적인 관리
- 파이프라인에 의해 데이터가 이동했을 때 보안에 대한 리스크
3. 데이터 프로세싱 자동화
추출, 수집, 정제를 최소한의 사람 input으로 머신이 운영
- 크론탭 등 머신 스케쥴링을 통해 자동화
고려할 사항
- 데이터 프로세싱 스텝 : 스텝이 순서대로 진행될 수 있도록.
(뭐를 가져오고, 저장하고, 어떤 알고리즘을 돌리고, 그걸로 시각화를 할거고)
- 에러 핸들링 및 모니터링 : 재시도를 얼마나 할 건지, 퍼포먼스에 대한 모니터링
* python : logging package
* AWS : cloudwatch, data pipeline errors
- 트리거/스케쥴링 : 순서대로 진행될 수 있도록, 반복 주기
데이터 프로세싱 예시
① 저장 - S3 : 빅데이터저장소
② 처리 - 스파크, 아마존 EMR : 스파크와 하둡 처리기술에 특화된 서버(컴퓨팅 시스템)
③ 전처리된 것을 저장 - 레드시프트 : 분석에 특화된 DB
④ 처리 - RDS
⑤ 처리 - 아테나 : 서버리스
ad hoc 분석환경 구축
서비스를 지속적으로 빠르게 변화시키는데 필수
- 이니셜 데이터 삽입
- backfill : 데이터에 문제가 생겼을 때 다시 저장
automated
엔지니어링은 자동화에 가깝다. 결국 구축해야 하는 것은 자동화 시스템!
이런 내용이 더 있으면 좋겠다, 이건 뭐라는지 모르겠다, 그 외의 어떤 얘기든 댓글로 남겨주세요!
'Data Science : Study > 2. Data Engineering (FastCampus)' 카테고리의 다른 글
3강-3. Python API 토큰 가져오기 (Spotify) (1) | 2022.05.03 |
---|---|
3강-2. Spotify Web API (0) | 2022.05.02 |
3강-1. API 개요, REST API, web API, API 접근권한 (0) | 2022.05.01 |
2강-2. AWS CLI(Command Line Interface) - 커멘드 창에서 AWS 제어하기 (0) | 2022.04.29 |
2강-1. 기본적인 Unix / Shell Commands (0) | 2022.04.28 |