IT STUDY LOG

[데이터베이스] 03. 데이터 파이프라인 본문

devops bootcamp 4/개발 및 배포

[데이터베이스] 03. 데이터 파이프라인

roheerumi 2023. 3. 30. 10:04

# 학습 목표

  • 데이터 파이프라인의 필요성을 이해할 수 있다.
    • 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)에 포커스가 맞춰져 있어 분석하기에 복잡도가 늘어나고 기본적인 트랜잭션 성능에 영향
  • 적재된 데이터를 다양한 방법으로 분석하는데 포커스, 데이터 기반의 의사결정을 위한 도구로 다양한 관점 분석에 적합
  • 다양한 데이터 소스로 수집되는 데이터를 통합하는 것이 목적
  • 성능의 한계를 극복하기 위해 OLTP가 지원하는 몇가지 기능 포기하여 빠른 분석, 성능 확보
목적 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로

 

Comments