해당 글은 견고한 데이터 엔지니어링을 읽고 정리하였습니다.
더 자세한 내용은 도서에서 확인 부탁드립니다.
데이터 엔지니어링 수명 주기
데이터 엔지니어링 수명주기란?
수명 주기
- 데이터 생성 > 데이터 저장 > 데이터 수집 > 데이터 변환 > 데이터 서빙
드러나지 않는 요소
- 보안, 데이터 관리, 데이터 옵스, 데이터 아키텍처, 오케스트레이션, 소프트웨어 엔지니어링
1. 데이터 생성
데이터 생성 시 고려 사항
- 데이터 원천의 본질적인 특징 (원천은 애플리케이션인지, IoT장치의 스웜인지 등)
- 원천 시스템에서 데이터는 어떻게 유지되는지 (데이터의 보존기간)
- 데이터의 생성속도 ( 시간당 몇 GB가 생성되는가)
- 출력 데이터에서 어느 정도의 일관성을 기대할 수 있는가? (예상하지 못한 출력값, 잘못된 데이터 포맷, 데이터 불일치)
- 에러 발생 주기
- 데이터 중복
- 동시 생성되는 메세지가 늦게 도착할 수 있는지
- 수집된 데이터의 스키마 ( 데이터를 완전히 파악하려면 어느정도의 조인을 수행해야 하는지)
- 원천 시스템에서 데이터 수집 주기
- DB 등의 경우 정기적인 스냅샷 or 데이터 캡처(CDC) 인지 변경은 어떻게 수행 되는지 원천은 어떻게 추적하는지
- 데이터가 누락되는 경우 확인가능 한지
2. 데이터 저장
데이터 웨어하우스, 데이터 레이크, DB, 데이터 스토리지 등을 선택할때 고려사항
- 아키텍처가 요구하는 읽기 쓰기 속도 충족하는지
- 다운스트림 프로세스의 병목 현상을 초래하는가?
- 해당 기술이 작동하는 방식을 인지하고 있는지
- 해당 기술의 확장성
3. 데이터 수집
수집 단계 고려사항
- 수집 중인 데이터의 사용 사례 ( 같은 데이터의 여러 버전 대신 재사용가능한지)
- 원천에서 안정적으로 생성하고 수집하고 있는지
- 수집 이후 목적지
- 데이터 접근 빈도
- 데이터 용량
- 데이터 형식 및 변환 가능 여부
- 데이터의 수명 (즉시 사용가능한지, 사용가능한 기간 등)
- ETL or ELT 여부
4. 스트리밍 VS 배치 고려사항
- 실시간 수집 시 데이터 흐름 속도를 처리할 수 있는지
- 수집 주기 ( 밀리초 단위의 실시간 수집 or 매분 데이터 축적후 수집 등)
- 스트리밍 수집 사용 사례
- 스트리밍의 이점 ( 배치에 비해 개선될 수 있는 점)
- 시간, 비용, 유지 보수 등의 운영 비용 및 기회비용 측의 예측
- 인프라 장애 발생 시 스트리밍 파이프라인과 시스템 안정성
- 사용 도구
- ML 모델 배포시 온라인 예측 및 지속적인 훈련으로 얻을 수 있는 이점
5. 푸시 VS 풀
- 푸시 : 원천 시스템은 DB, Storage 등에 관계없이 타겟에 데이터를 전송
- 풀 : 원천 시스템에서 데이터를 검색
6. 데이터 변환
변환 단계 고려사항
- 변환에 드는 비용과 투자수익률, 가치
- 단순하고 독립적인지