데이터 파이프라인
데이터의 분석을 용이하기 위한 과정.
다양한 데이터의 소스로부터 원시 데이터를 수집하여 분석을 위해 데이터 웨어하우스와 같은 별도의 데이터 저장소로 이전하는 과정.
데이터 파이프라인은 , MLOps를 실천하기 위해 사전에 준비되어야 할 필수적인 단계.
OLTP vs OLAP
OLTP
Online Transaction Processing의 약자로 이 데이터베이스는 트랜잭션에 포커스가 맞춰져 있음.
적재된 데이터를 다양한 방법으로 분석하는 데 포커스를 맞춤.
OLTP는 데이터 분석이 불가능한 것이 아니지만 여러 테이블을 함께 묶어 조회하려면 복잡도가 늘어나고 그로 인해 기본적인 트랜젝션에도 성능상 영향을 줄 수 있음.
OLAP
Online Analytical Processing의 약자로 적재된 데이터를 다양한 방법으로 분석하는 데 포커스를 맞춤.
데이터 기반의 의사결정 도구로, 다양한 관점의 분석을 하는데 적합.
다양한 수집되는 데이터를 통합하는 목적.
OLTP의 성능상의 한계를 극복하기 위해 기능 몇 가지를 포기하고 빠른 분석 성능을 발휘.
OLTP | OLAP | |
목적 | CRUD 작업과 같은 트랜잭션 처리 | 분석, 빅데이터 수집 |
데이터 종류 | 정형적이며, 정규화된 데이터 | 정형 및 비정형 데이터 |
특징 | 테이블 간 관계, 데이터의 무결성, 정규화 여부가 중요 | 빠른 분석과, 다차원 정보 제공이 중요 |
정형 데이터와 비정형 데이터
정형데이터
정해진 규칙에 따라 구조화된 데이터. 즉 해당 컬럼에 들어갈 값이 예측 가능하고 의미파악이 쉬움.
그로 인해 사용이 쉽고 머신러닝 가공/분석하기에 용이함.
하지만 이미 적재한 데이터가 많은 상황에서 구조 그 자체가 바뀌면 모든 정형데이터를 업데이트해야 하므로 시간과 자원이 많이 소모.
비정형데이터
문서(JSON, 텍스트)의 형태를 띠거나, 아예 음성, 영상과 같은 바이너리 형식의 데이터일 수 있음.
있는 그대로 저장하기에 용이하지만 가공, 분석에 어려움이 있을 수 있음.
그러나 최근 모든 데이터를 있는 그대로 저장하고 고도화된 빅데이터 도구를 이용해 보다 쉽게 가공/분석할 수 있게 만드는 추세.
ETL과 ELT
파이프라인을 표현하는 용어. 각 알파벳은 추출(Extract), 적재(Load), 변환(Transform)의 약자.
추출(Extract)의 대상
- 관계형 데이터베이스(RDBMS)
- NoSQL
- 텍스트 파일(JSON, log, txt)
- SaaS로부터 생성되는 데이터
- 데이터 레이크
적재(Load)의 대상
- 데이터 웨어하우스
ELT와 ETL의 차이점은 순서의 차이.
ETL(추출->변환->적재)은 적재하는 과정에서 변환이 이루어짐.
ELT(추출->적재->변환)는 적재하고 분석을 시작할때 변환.
ETL로 적재된 데이터는 이미 정형화되어 있음. 즉 비즈니스 분석이나 시각화에 용이.
비정형 데이터를 분석할 때 ELT 작업이 진행. 상대적으로 정형화된 데이터 분석보다는 느리지만 최근 클라우드 발전으로 ELT도 빈번하게 사용.
머신 러닝(Machine Learning)
데이터를 이해하는 알고리즘의 과학이자 애플리케이션. 데이터를 지식으로 바꾸는 지능적인 시스템을 구축하는 것.
MLOps의 파이프라인
1. 데이터 분석
데이터 이해를 위한 탐색적 분석을 수행. 이때 모델에 필요한 데이터 스키마 및 특성을 이해해야 됨.
2. 데이터 준비 (추출 및 정제)
데이터 소스에서 관련 데이터를 추출 및 정제. 변환, 집합, 중복 제거 덩의 과정도 포함.
3. 모델 학습 및 튜닝
다양한 알고리즘을 구현, 하이퍼 파라미터를 조정하고 적용하여 학습된 모델을 결과로 도출.
4. 모델 평가 및 검증
모델을 평가하여 모델의 정확도 수치를 확인. 또한 모델 성능을 검증, 배포에 적합한 수준인지 검증.
5. 모델 제공
CI/CD 툴을 이용, 프로덕션 수준에서 이용할 수 있도록 파이프라인을 자동화.
6. 모델 배포 및 모니터링
애플리케이션에서 사용 가능하도록 endpoint를 활성화.
ML 생애 주기
DevOps와 비교
단계 | DevOps | MLOps |
Test(테스트) | 애플리케이션 모듈 간의 통합 테스트 | 데이터 검증, 학습된 모델 품질 평가, 모델 검증 |
Deployment(전개) | 프로비저닝 및 애플리케이션 준비 | 학습된 ML 모델 배포 + 새로운 모델이 재학습 될 수 있는 파이프라인 구성 |
Operate(작동) | 애플리케이션 트래픽, 사용자 등의 모니터링 | 데이터 요약 통계 모니터링 |
CI/CD의 정의가 다음과 같이 다르게 해석될 수 있음.
DevOps | MLOps | |
통합의 대상 | 다양한 코드가 하나의 artifact로 결합되는 통합 | 데이터, 스키마, 모델 테스트를 결합하는 통합 |
배포의 대상 | 단일 소프트웨어 패키지의 배포 | ML 파이프라인 전체를 배포 |
모르는 용어 정리
트랜젝션
데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미
데이터 레이크
구조화되거나 반구조화되거나 구조화되지 않은 대량의 데이터를 저장, 처리, 보호하기 위한 중앙 집중식 저장소
데이터 웨어하우스
POS 트랜잭션, 마케팅 자동화, 고객 관계 관리 시스템 등의 여러 소스에서 가져온 구조화된 데이터와 반구조화된 데이터를 분석하고 보고하는 데 사용되는 엔터프라이즈 시스템
프로비저닝
사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것
'공부' 카테고리의 다른 글
실습과제 1 - 회고 (0) | 2023.04.05 |
---|---|
데이터베이스 실습 명령어 정리 (0) | 2023.03.31 |
Git - Branch (0) | 2023.03.27 |
Git - 깃 허브 실습 기록 (0) | 2023.03.27 |
Git - 설치 Ubuntu, 환경설정 및 SSH 등록 (0) | 2023.03.27 |
댓글