도서/견고한 데이터 엔지니어링

[도서] 견고한 데이터 엔지니어링(1) - 데이터 엔지니어링 수명 주기란?

안용감한호랑이 2023. 9. 17. 18:38

해당 글은 견고한 데이터 엔지니어링을 읽고 정리하였습니다.

더 자세한 내용은 도서에서 확인 부탁드립니다.

 


데이터 엔지니어링 수명 주기

데이터 엔지니어링 수명주기란?

 

수명 주기

  • 데이터 생성 > 데이터 저장 > 데이터 수집 > 데이터 변환 > 데이터 서빙

드러나지 않는 요소

  • 보안, 데이터 관리, 데이터 옵스, 데이터 아키텍처, 오케스트레이션, 소프트웨어 엔지니어링

1. 데이터 생성

데이터 생성 시 고려 사항

  • 데이터 원천의 본질적인 특징 (원천은 애플리케이션인지, IoT장치의 스웜인지 등)
  • 원천 시스템에서 데이터는 어떻게 유지되는지 (데이터의 보존기간)
  • 데이터의 생성속도 ( 시간당 몇 GB가 생성되는가)
  • 출력 데이터에서 어느 정도의 일관성을 기대할 수 있는가? (예상하지 못한 출력값, 잘못된 데이터 포맷, 데이터 불일치)
  • 에러 발생 주기
  • 데이터 중복
  • 동시 생성되는 메세지가 늦게 도착할 수 있는지
  • 수집된 데이터의 스키마 ( 데이터를 완전히 파악하려면 어느정도의 조인을 수행해야 하는지)
  • 원천 시스템에서 데이터 수집 주기
  • DB 등의 경우 정기적인 스냅샷 or 데이터 캡처(CDC) 인지 변경은 어떻게 수행 되는지 원천은 어떻게 추적하는지
  • 데이터가 누락되는 경우 확인가능 한지

 

2. 데이터 저장

데이터 웨어하우스, 데이터 레이크, DB, 데이터 스토리지 등을 선택할때 고려사항

  • 아키텍처가 요구하는 읽기 쓰기 속도 충족하는지
  • 다운스트림 프로세스의 병목 현상을 초래하는가?
  • 해당 기술이 작동하는 방식을 인지하고 있는지 
  • 해당 기술의 확장성

 

3. 데이터 수집

수집 단계 고려사항

  • 수집 중인 데이터의 사용 사례 ( 같은 데이터의 여러 버전 대신 재사용가능한지)
  • 원천에서 안정적으로 생성하고 수집하고 있는지
  • 수집 이후 목적지
  • 데이터 접근 빈도
  • 데이터 용량
  • 데이터 형식 및 변환 가능 여부
  • 데이터의 수명 (즉시 사용가능한지, 사용가능한 기간 등)
  • ETL or ELT 여부

 

4. 스트리밍 VS 배치 고려사항

  • 실시간 수집 시 데이터 흐름 속도를 처리할 수 있는지
  • 수집 주기 ( 밀리초 단위의 실시간 수집 or 매분 데이터 축적후 수집 등)
  • 스트리밍 수집 사용 사례
  • 스트리밍의 이점 ( 배치에 비해 개선될 수 있는 점)
  • 시간, 비용, 유지 보수 등의 운영 비용 및 기회비용 측의 예측
  • 인프라 장애 발생 시 스트리밍 파이프라인과 시스템 안정성
  • 사용 도구 
  • ML 모델 배포시 온라인 예측 및 지속적인 훈련으로 얻을 수 있는 이점

 

5. 푸시 VS 풀

  • 푸시 : 원천 시스템은 DB, Storage 등에 관계없이 타겟에 데이터를 전송
  • 풀 : 원천 시스템에서 데이터를 검색

 

6. 데이터 변환

변환 단계 고려사항

  • 변환에 드는 비용과 투자수익률, 가치
  • 단순하고 독립적인지