[Data] 데이터 파이프라인

Posted by 김성철

Data - 데이터 파이프라인

데이터 파이프 라인이란

- 다양한 데이터 소스에서 RAW 데이터를 수집한 후 분석을 위해 datalake 또는 data warehouse 같은 데이터 저장소로 이전 하는 방법  
- 연결되는 구성이 파이프라인 같다고 해서 데이터 파이프라인이라고 부름  
- 서로 다른 여러 소스 시스템에서 데이터를 추출하고 해당 데이터를 변환 결합 및 검증하고 대상 리포지토리에 로드하는 프로세스를 자동화  
- 배치 파이프라인과 스트리밍 파이프라인이 존재함  

배치 데이터 파이프라인

- Bounded Data 라고 부르며, 기간이 정해져 있는 유한한 데이터를 말함  
- 배치 처리(일괄처리)를 통해서 일정기간 또는 한정된 데이터를 한 시점에 순차적으로 처리하는 방식  
- 맵리듀스(MapReduce) 기법인 하둡 또한 배치처리 방식  
- 배치 처리방식은 일정기간의 데이터를 일괄적으로 처리  
- 스케줄링이 필수적임  
- 대표적으로 Airflow가 배치 데이터 파이프파린에 많이 활용됨  
- 데이터를 모으고 읽어서 처리한 후 다시 적재 (ETL)  

ETL , ELT 의 차이

Extract : Source Data로 부터 추출  
Transform : 추출된 데이터 변형  
Load : DW , Data Lake로 데이터 적재  
  
- ETL ( Extract Transform Load)  
	* ETL은 데이터 웨어하우스가 사전 구성 되어 있음  
	* 데이터가 구조화된 다음 변환되는 상황이라면, ETL을 통해 빠르고 효율적 안정적으로 데이터를 분석할 수 있음  
	* ELT는 빠른 분석을 요구하는 작업에는 적합하지 않을 수 있음  
	* 데이터 크기가 중요함  
  
- ELT (Extract Load Transform)  
	* ETL은 Transform에서 시간이 상당히 소요됨  
	* Big Data , DataLake 등장  
	* 데이터의 중요성이 올라가며, 하드웨어 비용이 감소하였음  
	* 일단 모아놓은 뒤 나중에 필요할 떄 활용  
	* BI , 분석팀들이 빠르고 유연하게 움직일 수 있음  

스트리밍 데이터 파이프라인

- 스트리밍 데이터(Unbound Data)  
	기간 제한이 없는 무한한 데이터  
	ex) 실시간 주문 데이터  
- 끝없이 흐르는 데이터를 처리하기 위한 파이프라인  
- 분산 스토리지에 저장하지 않고 처리를 계속 함  
- 실시간성이 중요한 경우에 사용이 되는 파이프라인  
	ex) 물료 시스템 대시보드, 실시간 예측성 모델  
- Near Real Time(Mini Batch)  
	데이터를 조금씩 모아서 처리하는 방식  
	배치프로세싱을 작게 쪼개서 하는 방식  
	ex) Spart streaming  
- 대표적으로 ELK , Flink, Nifi  

데이터 연동을 위한 파이프라인 (데이터 분석 및 시각화)

-활용 목적, Transform , 타겟 정의  
- ELT or ETL  
- 원본 소스에서 데이터 추출  
- 연동 주기 설정  
- 타겟 쪽에 데이터 저장  
- 데이터 확인(정합성 검증)  
- Visualization 또는 데이터 분석 활용  

ML모델을 위한 파이프라인

- 모델의 성격에 따른 파이프라인을 정함  
  
1. Feature 정의  
2. Feature Engineering  
3. 학습 데이터 / 검증 데이터 / 테스트 데이터  
4. 모델 생성  
5. 모델 배포  
6. 모니터링 및 자동화