데이터 파이프라인과 OLTP vs OLAP
데이터 파이프라인이란 다양한 데이터 소스로부터 원시 데이터를 수집하여 분석을 위해 데이터 웨어하우스와 같은 별도의 데이터 저장소로 이전하는 과정을 의미합니다.
OLTP vs OLAP
OLTP (Online Transaction Processing) 데이터베이스는 그 목적이 트랜잭션(기본적인 CRUD 작업)에 포커스가 맞추어져 있는 데이터베이스임.
- 분석은 가능하나 여러 개의 테이블을 함께 묶어 조회할 경우 복잡도가 늘어 처리가 힘들어짐
OLAP (Online Analytical Processing) 데이터베이스는 적재된 데이터를 다양한 방법으로 분석하는 데 포커스가 맞춰져 있습니다.
- 데이트터 기반의 의사결정을 위한 도구로, 다양한 관점의 분석을 하는데 적합합니다.
정형 데이터와 비정형 데이터
정형 데이터는 정해진 규칙에 따라 구조화된 데이터로, 날짜, 이름, 주소, 신용 카드 숫자 등과 같이 해당 컬럼에 들어갈 값이 예측 가능하고 의미 파악이 쉬운 데이터를 의미합니다.
- 사용하기 쉽고, 머신러닝 알고리즘이 가공/분석하기에 용이하지만, 데이터를 바뀌는 경우 모든 정형 데이터를 업데이트 해야합니다.
비정형 데이터는 있는 그대로 저장하기에 유용하나, 가공이나 분석하기에는 어려울 수 있습니다.
ETL과 ELT
각 알파벳은 추출(Extract), 적재(load), 변환(Transform)의 약자입니다.
추출의 대상은 주로 다음과 같습니다.
- 관계형 데이터베이스 (RDBMS)
- NoSQL
- 텍스트 파일 (JSON, log 등)
- SaaS 로부터 생성되는 데이터 (Google ads와 같은 광고 데이터)
- 데이터 레이크 (비정형 데이터를 포함해 원시 데이터를 저장하는 공간)
적재의 대상은 주로 다음과 같습니다.
- 데이터 웨어하우스
ELT와 ETL의 차이점은 수서의 차이입니다.
ETL은 적재하는 과정에서 변환이 이루어지며 (Schema-on-Write)
ELT는 적재하고 나서 분석을 시작할 때 변환 작업이 일어납니다 (Schema on Read)
MLOps
머신 러닝 (Machine Learning)
머신 러닝은 데이터를 이해하는 알고리즘의 과학이자 애플리케이션입니다. 머신 러닝에는 세 가지 주요 학습이 있습니다.
1. 지도학습으로 미래를 예측
2. 강화학습으로 반응형 문제를 해결
3. 비지도 학습으로 숨겨진 구조를 발견
이러한 학습 알고리즘을 바탕으로 머신러닝은 전처리→학습→평가→예측의 순서로 워크플로 시스템을 구축하고 있습니다.
MLOps
DevOps를 머신 러닝(Machine Learning) 시스템에 적용한 것이 바로 MLOps입니다.
<머신 러닝을 도입한 데이터 처리 파이프라인>
1. 데이터 분석
데이터의 이해를 위한 탐색적 데이터 분석(EDA, Exploratory Data Analysis)을 수행합니다. 이때 모델에 필요한 데이터 스키마 및 특성을 이해해야 합니다.
2.데이터 준비 (추출 및 정제)
데이터 소스에서 관련 데이터를 추출(extract) 및 정제합니다. 변환(transform), 집합(aggregate), 중복 제거 등의 과정이 포함됩니다.
3. 모델 학습 및 튜닝
다양한 알고리즘을 구현하고, 하이퍼 파라미터를 조정(튜닝)하고 적용하여 학습된 모델을 결과로 도출합니다.
4. 모델 평가 및 검증
모델을 평가하여 모델의 정확도 수치를 확인합니다. 또한 모델 성능을 검증하여, 배포에 적합한 수준인지를 검증합니다.
5. 모델 제공
CI/CD 툴을 이용하여, 프로덕션 수준에서 이용할 수 있도록 파이프라인을 자동화합니다.
6. 모델 배포 및 모니터링
애플리케이션에서 사용 가능하도록 endpoint를 활성화합니다.
ML 생애 주기
MLOps 의 전망
데이터를 수집하고 분석하는 단계, 그리고 머신러닝 모델을 학습하고 배포하는 단계까지 전 과정을 MLOps의 대상으로 보고 있습니다.
참고 자료 : https://www.youtube.com/watch?v=06-AZXmwHjo&ab_channel=DeepLearningAI
DevOps와의 비교
'데이터베이스 기초' 카테고리의 다른 글
DevOps Day 19 (3.31) 데이터베이트_실습 (0) | 2023.03.31 |
---|---|
DevOps Day 17 (3.29) 데이터베이스_수평확장된 데이터베이스와 중복처리 (0) | 2023.03.31 |
DevOps Day 17 (3.29) 데이터베이스_배치 작업에 따른 성능 저하 (0) | 2023.03.31 |
DevOps Day 17 (3.29) 데이터베이스_데이터 파티셔닝 + 캐시 (0) | 2023.03.31 |
DevOps Day 17 (3.29) 데이터베이스_문제 상황에 따른 해결책 (0) | 2023.03.31 |