IT STUDY LOG
[데이터베이스] 03. 데이터 파이프라인 본문
# 학습 목표
- 데이터 파이프라인의 필요성을 이해할 수 있다.
- OLTP와 OLAP의 차이를 이해할 수 있다.
- ETL 과정을 설명할 수 있다.
- MLOps와 DevOps의 차이를 이해할 수 있다.
- 리눅스 명령과 프로그래밍 언어를 이용해 간단한 데이터 파이프라인을 구현할 수 있다.
- 간단한 수준의 SQL문을 사용할 수 있다.
# 학습 내용
목차
1. 데이터 파이프라인과 OLTP vs. OLAP
2. 정형 데이터와 비정형 데이터
3. ETL과 ELT
4. MLOps
1. 데이터 파이프라인과 OLTP vs. OLAP
데이터 파이프라인
개념
- 다양한 데이터 소스로부터 원시 데이터를 수집해 분석을 위해 데이터 웨어하우스와 같은 별도데이터 저장소로 이전하는 과정
목적
1) 다양한 경로로 수집되는 데이터를 DW(Data Warehouse)에 적재한 후 적재한 데이터를 바탕으로 효과적으로 분석하기 용이하게 만들기 위해서
2) MLOps를 실천하기 위해 사전에 준비되어야할 필수적인 단계
OLTP vs. OLAP
- 이미 수집된 원시 DB에서 질의, 분석하지 않고 굳이 파이프라인을 이용해 별도 웨어하우스에 데이터를 중복 저장해 질의하는 이유는?
OLTP(Online Transaction Processing) | OLAP(Online Analytical Processing) | |
요약 |
|
|
목적 | CRUD 작업과 같은 트랜잭션 처리 | 분석, 빅데이터 수집 |
데이터 종류 | 정형적이며 정규화된 데이터 | 정형 및 비정형 데이터 |
특징 | 테이블 간 관계, 데이터의 무결성, 정규화 여부가 중요 | 빠른 분석과 다차원 정보 제공 중요 |
2. 정형 데이터와 비정형 데이터
정형 데이터
- 정해진 규칙에 따라 구조화된 데이터
- 날짜, 이름, 주소, 카드 번호 등과 같이 해당 컬럼에들어갈 값이 예측 가능하고 의미 파악이 쉬운 데이터
- 사용자들이 사용하기 쉽고, 머신러닝 알고리즘이 가공/분석하기 용이
- 이미 적재한 데이터가 많은 상황에서 구조 자체가 변경되면 모든 정형 데이터 없데이트가 필요해 많은 시간, 자원 소모 가능성
비정형 데이터
- 문서(JSON, 텍스트)의 형태를 띄거나, 음성, 영상과 같은 바이너리 형식의 데이터
- 있는 그대로 저장하기는 유용하나 가공/분석이 어려운 데이터
- 최근은 모든 데이터를 있는 그대로 저장하고 고도화된 빅데이터 도구를 이용해 보다 쉽게 가공/분석할 수 있게 만드는 것이 추세
3. ETL과 ELT
ETL, ELT
- Extract, 추출
- Load, 적재
- Transform, 변환
추출(Extract) 대상
- 관계형 데이터베이스 (RDBMS)
- NoSQL
- 텍스트 파일 (JSON, log, txt 등)
- SaaS로부터 생성되는 데이터 (Google Ads와 같은 광고 데이터)
- 데이터 레이크 (비정형 데이터를 포함해 원시 데이터를 저장하는 공간)
적재(Load) 대상
- 데이터 웨어하우스
ELT와 ETL의 차이?
- 순서의 차이
ETL
- ETL의 경우 추출 → 변환 → 적재로 이루어져 적재하는 과정에서 변환이 이루어짐 (Schema-on-Write)
- ETL로 적재된 데이터는 이미 정형화되어 비즈니스 분석, 시각화에 용이
ELT
- ELT의 경우 추출 → 적재 → 변환으로 이루어져 적재하고 나서 분석을 시작할 때 변환 작업이 이루어짐 (Schema-on-Read)
- 비정형 데이터를 분석할 경우 ELT 작업이 진행되는데 상대적으로 정형화된 데이터 분석보다는 훨씬 느린 비정형 데이터 분석이나 최근 클라우드 발전 덕에 ELT도 빈번하게 사용됨
- 데이터 규모가 TB,PB인 현대 빅데이터 시대에는 적재하기 전 변환 과정이 오히려 병목이 될 수 있어 ELT를 사용하기도 함
4. MLOps
머신 러닝(Machine Learning)
- 데이터 이해하는 알고리즘 과학이자 애플리케이션
- 스스로 학습할 수 있는 알고리즘
- 데이터를 지식으로 바꾸는 지능적인 시스템을 구축하는 것
머신러닝의 세가지 주요 학습
- 지도 학습 : 미래 예측
- 강화 학습 : 반응형 문제 해결
- 비지도 학습 : 숨겨진 구조 발견
머신러닝의 워크플로
- 전처리→학습→평가→예측
MLOps
- DevOps : 개발, 운영 분리 없이 개발의 생산성 + 운영의 안정성 최적화하기 위한 문화이자 방법론
- 이를 머신 러닝 시스템에 적용한 것이 MLOps
머신 러닝을 도입한 데이터 처리 파이프라인
0. (전처리 단계) ETL 활용 및 분석을 위한 준비
1. 데이터 분석
- 데이터의 이해를 위한 탐색적 데이터 분석(EDA, Exploratory Data Analysis) 을 수행
- 이때 모델에 필요한 데이터 스키마 및 특성을 이해 선행
2. 데이터 준비 (추출 및 정제)
- 데이터 소스에서 관련 데이터를 추출(extract) 및 정제
- 변환(transform), 집합(aggregate), 중복 제거 등의 과정이 포함
3. 모델 학습 및 튜닝
- 다양한 알고리즘을 구현하고, 하이퍼 파라미터를 조정(튜닝)하고 적용하여 학습된 모델을 결과로 도출
4. 모델 평가 및 검증
- 모델을 평가하여 모델의 정확도 수치를 확인
- 모델 성능을 검증하여, 배포에 적합한 수준인지를 검증
5. 모델 제공
- CI/CD 툴을 이용하여, 프로덕션 수준에서 이용할 수 있도록 파이프라인을 자동화
6. 모델 배포 및 모니터링
- 애플리케이션에서 사용 가능하도록 endpoint를 활성화
표로 도식화한 파이프라인
실험(Machine Learning) | 개발(Develop) | 운영(Operation) |
비즈니스의 이해 데이터 탐색/가공 초기 모델 최적화/평가 |
지속적 통합 - 빌드(모델 최적화) - 테스트 지속적 전달 - 모델 등록 |
지속적 배포 - 서빙 데이터 피드백 루프 - Data Collection 시스템/모델 모니터링 - Data Drift 모니터링 |
ML 생애 주기
MLOps의 전망
- 머신러닝 뿐 아니라 데이터 수집, 분석 단계 + 머신러닝 모델 학습 배포 단계까지 전 과정을 MLOps으로 확장
- AL 사용이 급격하게 증가된 지금 머신러닝을 서비스에 구현하고자 한다면 MLOps는 선택이 아니라 필수적으로 도입되어야 함
DevOps와의 비교
Stage | DevOps | MLOps |
Test | 애플리케이션 모듈 간의 통합 테스트 | 데이터 검증, 학습된 모델 품질 평가, 모델 검증 |
Deployment | 프로비저닝 및 애플리케이션 준비 | 학습된 ML 모델 배포 + 새로운 모델이 재학습 될 수 있는 파이프라인 구성 |
Operate | 애플리케이션 트래픽, 사용자 등의 모니터링 | 데이터 요약 통계 모니터링 |
지속적 통합(CI)와 지속적 배포(CD)의 정의 차이
DevOps | MLOps | |
통합의 대상 | 다양한 코드가 하나의 artifact로 결합되는 통합 | 데이터, 스키마, 모델 테스트를 결합하는 통합 |
배포의 대상 | 단일 소프트웨어 패키지의 배포 | ML 파이프라인 전체를 배포 |
- MLOps에는 모델을 꾸준히 학습시키고 평가하는 단계를 일컬어 CT(Continuous Training)라고 표현
# References
- [MLOps] Andrew Ng: Model-centric AI에서 Data-centric AI로
'devops bootcamp 4 > 개발 및 배포' 카테고리의 다른 글
[데이터베이스] 02. 문제 상황에 따른 해결책 (0) | 2023.03.29 |
---|---|
[데이터베이스] 01. 데이터베이스 기초 (0) | 2023.03.29 |
[WAS와 Web Server] 04. CORS (0) | 2023.03.27 |
[WAS와 Web Server] 03. nginx Web Server와 웹 호스팅 (1) | 2023.03.24 |
[WAS와 Web Server] 02. 정적 웹사이트와 동적 웹사이트 (0) | 2023.03.24 |