Code States/TIL

[0330] 데이터베이스 - 데이터 파이프라인

ki1111m2 2023. 3. 30. 16:31

학습 목표

  • RDBMS와 NoSQL의 차이와 각각의 장단점을 이해할 수 있다.
  • 충분한 가용성이 확보되지 않은 다양한 문제 상황을 이해하고, 상황에 따른 솔루션이 무엇인지 이해할 수 있다.
    • 다음 용어에 대한 간단한 정의를 내릴 수 있다: 인덱싱, 레플리카, 파티셔닝, 캐싱, 배치 작업, 스트림 처리
  • 이벤트 기반 아키텍처를 설명할 수 있다.
  • RDBMS에서 테이블을 만들 때 스키마(필드) 디자인을 할 수 있다.
  • 데이터 파이프라인의 필요성을 이해할 수 있다.
    • OLTP와 OLAP의 차이를 이해할 수 있다.
    • ETL 과정을 설명할 수 있다.
    • MLOps와 DevOps의 차이를 이해할 수 있다.
  • 리눅스 명령과 프로그래밍 언어를 이용해 간단한 데이터 파이프라인을 구현할 수 있다.
    • 간단한 수준의 SQL문을 사용할 수 있다.

  • 다양한 데이터 소스로부터 원시 데이터를 수집하여 분석을 위해 데이터 웨어하우스와 같은 별도의 데이터 저장소로 이전하는 과정
  • 다양한 경로로부터 수집되는 데이터를 웨어하우스에 적재한 후, 적재한 데이터를 바탕으로 효과적으로 분석하기 용이하게 만들기 위함
  • MLOps를 실천하기 위해 사전에 준비되어야 할 필수적인 단계

OLTP vs OLAP


  • OLTP(Online Transaction Processing)
    • 목적이 트랜잭션(기본적인 CRUD 작업)에 포커스가 맞추어진 데이터베이스
    • 분석이 불가능한 것은 아니지만, 여러 개의 테이블을 함께 묶어 조회하려면 그만큼 복잡도가 늘어나며, 복잡한 조회로 인해 기본적인 트랜잭션에도 성능상의 지장을 줄 수 있음
  • OLAP(Online Analytical Processing)
    • 적재된 데이터를 다양한 방법으로 분석하는 데 포커스가 맞춰진 데이터베이스
    • 데이터 기반의 의사결정을 위한 도구로, 다양한 관점의 분석을 하는 데 적합함
    • 다양한 데이터 소스로부터 수집되는 데이터를 통합하는 데 목적이 있음
    • 성능상의 한계를 극복하기 위해 OLTP가 지원하는 몇 가지 기능을 포기함으로서, 빠른 분석 성능을 달성할 수 있음
  OLTP OLAP
목적 CRUD 작업과 같은 트랜잭션 처리 분석, 빅데이터 수집
데이터 종류 정형적이며, 정규화된 데이터 정형 및 비정형 데이터
특징 테이블 간 관계, 데이터의 무결성, 정규화 여부가 중요 빠른 분석과 다차원 정보 제공이 중요

ETL과 ELT


  • Extract 추출
    • 대상
      • 관계형 데이터베이스(RDBMS)
      • NoSQL
      • 텍스트 파일(JSON, log, txt 등)
      • SaaS로부터 생성되는 데이터(Google Ads와 같은 광고 데이터)
      • 데이터 레이크(비정형 데이터를 포함해 원시 데이터를 저장하는 공간)
  • Load 적재
    • 대상
      • 데이터 웨어하우스
  • Transform 변환
    • 비정형 데이터를 정형화하는 과정이 포함될 수 있음
  • ETL
    • 추출→변환→적재
    • 적재하는 과정에서 변환이 이루어짐
    • Schema-on-Write
    • 이 방식으로 적재된 데이터는 이미 정형화되어 있기 때문에, 비즈니스 분석이나 시각화에 용이함
  • ELT
    • 추출→적재→변환
    • 적재하고 나서 분석을 시작할 때 변환 작업이 일어남
    • Schema-on-Read
    • 비정형 데이터를 분석할 경우 해당 작업이 진행되는데, 상대적으로 정형화된 데이터 분석보다는 훨씬 느리지만 최근에는 클라우드의 발전 덕분에 빈번하게 사용됨
    • 데이터가 쌓이는 규모가 큰 현대의 빅데이터 시대에는 적재하기 전 변환 과정이 오히려 병목이 될 수 있으므로, 이러한 한계를 극복하기 위해 해당 방식을 사용하기도 함

MLOps


  • 머신 러닝(Machine Learning)
    • 데이터를 이해하는 알고리즘의 과학이자 애플리케이션
    • 세 가지 주요 학습
      • 지도학습으로 미래 예측
      • 강화학습으로 반응형 문제 해결
      • 비지도 학습으로 숨겨진 구조 발견
    • 전처리→학습→평가→예측의 순서로 워크플로 시스템을 구축하고 있음
  • MLOps
    • DevOps는 개발과 운영을 따로 나누지 않고 개발의 생산성과 운영의 안정성을 최적화하기 위한 문화이자 방법론
    • 이 DevOps를 머신 러닝 시스템에 적용한 것
    • MLOps 파이프라인에서 모델 검증 및 제공/배포 단계는 DevOps에서 애플리케이션을 테스트하고 배포하는 과정과 흡사함
     

  • 머신 러닝을 도입한 데이터 처리 파이프라인
    • 데이터 분석
      • 데이터의 이해를 위한 탐색적 데이터 분석(EDA, Exploratory Data Analysis) 수행
      • 이때 모델에 필요한 데이터 스키마 및 특성을 이해해야 함
    • 데이터 준비(추출 및 정재)
      • 데이터 소스에서 관련 데이터를 추출(extract) 및 정제
      • 변환(transform), 집합(aggregate), 중복 제거 등의 과정이 포함됨
    • 모델 학습 및 튜닝
      • 다양한 알고리즘을 구현하고, 하이퍼 파라미터를 조정(튜닝)하고 적용하여 학습된 모델로 결과를 도출함
    • 모델 평가 및 검증
      • 모델을 평가하여 모델의 정확도 수치를 확인함
      • 모델 성능을 검증하여 배포에 적합한 수준인지 검증
    • 모델 제공
      • CI/CD 툴을 이용하여 프로덕션 수준에서 이용할 수 있도록 파이프라인을 자동화
    • 모델 배포 및 모니터링
      • 애플리케이션에서 사용 가능하도록 endpoint를 활성화
실험(Machine Learning) 개발(Develop) 운영(Operation)
비즈니스의 이해 데이터 탐색/가공 초기 모델 최적화/평가 지속적 통합 - 빌드(모델 최적화) - 테스트 지속적 전달 - 모델 등록 지속적 배포 - 서빙 데이터 피드백 루프 - Data Collection 시스템/모델 모니터링 - Data Drift 모니터링
  • 머신 러닝 생애 주기

  • MLOps의 전망
    • 단순히 머신 러닝 뿐 아니라 데이터를 수집하고 분석하는 단계, 머신러닝 모델을 학습하고 배포하는 단계까지 전 과정을 대상으로 보고있음
    • AI 사용이 급격하게 증가한 지금 머신 러닝을 서비스에 구현하고자 한다면 MLOps는 선택이 아니라 필수적으로 도입되어야 함
    • 머신 러닝 시스템을 적용하고 운영하기 위해서는 단순히 좋은 머신 러닝 모델만으로 간으한 것이 아니라, 모델을 운영하기 위한 기반 데이터와 인프라를 포함한 모든 시스템이 유기적으로 돌아가야 함
    • ML 프로세스의 자동화 수준에 따라 ML 시스템의 성숙도를 평가할 수도 있음
  • DevOps와 비교
Stage DevOps MLOps
Test 애플리케이션 모듈 간의 통합 테스트 데이터 검증, 학습된 모델 품질 평가, 몯레 검증
Deployment 프로비저닝 및 애플리케이션 준비 학습된 ML 모델 배포 + 새로운 모델이 재학습 될 수 있는 파이프라인 구성
Operate 애플리케이션 트래픽, 사용자 등의 모니터링 데이터 요약 통계 모니터링
  • 지속적 통합과 지속적 배포(CI/CD)의 정의가 다르게 해석될 수 있음
  DevOps MLOps
통합의 대상 다양한 코드가 하나의 artifact로 결합되는 통합 데이터, 스키마, 모델 테스트를 결합하는 통합
배포의 대상 단일 소프트웨어 패키지의 배포 ML 파이프라인 전체를 배포
  • MLOps에서 모델을 꾸준히 학습시키고 평가하는 단계를 일컬어 CT(Continuous Training)라고 표현함