-
-
견고한 데이터 엔지니어링 - 데이터 파이프라인 설계와 구축의 핵심 원칙
조 라이스.맷 하우슬리 지음, 김인범 옮김 / 한빛미디어 / 2023년 6월
평점 :
<견고한 데이터 엔지니어링>은 데이터 엔지니어링 및 데이터의 수명주기와 관련된 아키텍처를 설계하고 관리하는 방법을 설명하는 책이다.
따라서 당연하게도 데이터와 관련된 코드는 등장하지 않는다.
이 책에서 제시하는 인프라 환경은 최근 트랜드를 반영하여 클라우드 환경에서의 데이터 엔지니어링을 다룬다.
데이터 엔지니어링은 실제 운영 환경에서 데이터 사용자(데이터과학자, 분석가 등)가 데이터 과학 및 분석에 필요한 데이터를 활용할 수 있도록 기반을 구축하는 것으로써 “원시 데이터를 가져와 분석 및 머신러닝과 같은 다운스트림 사용 사례를 지원하는, 고품질의 일관된 정보를 생성하는 시스템과 프로세스의 개발, 구현 및 유지관리”로 정의한다. (이 책에서는 데이터 엔지니어링이 데이터 과학 및 분석과는 별개라는 입장을 취하며, 데이터 엔지니어는 데이터 과학의 업스트림에 위치한다고 본다.)
데이터 엔지니어링 수명주기는 “원천 시스템에서 데이터를 가져오는 것부터 시작해 분석 또는 머신러닝과 같은 사용 사례에 데이터를 제공하는” 절차로 다음의 단계가 있다.
- 데이터 생성 → 데이터 저장 → 데이터 수집 → 데이터 변환 → 데이터 서빙
당연한 말이겠지만 데이터 엔지니어링 수명주기는 데이터 수명주기의 하위집합이다.
데이터 엔지니어링 수명주기에는 보안, 데이터 관리, 데이터옵스, 데이터 아키텍처, 오케스트레이션, 소프트웨어 엔지니어링 등의 드러나지 않는 요소들을 포함하는 개념이다.
데이터 아키텍처는 “기업의 진화하는 데이터 요구사항을 지원하는 시스템 설계로, 트레이드 오프에 대한 신중한 평가를 통해 유연하고 되돌릴 수 있는 결정을 내림으로써 실현”되는 것으로 정의하고 있다.
이러한 점을 고려하여 데이터 엔지니어는 데이터 파이프라인 설계를 위해서는 개인정보보호, 익명화, 데이터 가비지 수집 및 규정 준수에 대해 관심을 가지고 고민을 해야 한다.
성공적인 데이터 엔지니어링을 위한 데이터 아키텍처 설계를 위해 클라우드 기능을 활용하여 확장성, 가용성, 신뢰성 확보가 중요하다고 강조하고 있다.
데이터 엔지니어링을 위한 기술 선택에 대해 매일 새로운 기술과 패턴이 등장하는 상황을 고려하여 사용사례, 비용, 구축 vs 구매 비교, 모듈화 간의 균형을 고려하여야 하며, 항상 아키텍처와 동일할 방식으로 기술에 접근하고, 트레이드 오프 평가 및 되돌릴 수 있는 결정을 내릴 수 있도록 하는 것을 목표로 삼아야 한다.
이 책에서는 역ETL에 대해 어느 정도 비중을 두고 다루고 있다. 역ETL이란 “OLAP 데이터베이스에서 원천 시스템으로 다시 적재해 제공하는 것”으로 저자들은 양방향 적재 및 변환이라고 부르기도 한다.
역ETL에 대한 주의사항으로 역ETL은 본질적으로 피드백 루프를 생성하는데, 이는 순식간에 엄청난 비용이 발생할 수 있으므로 주의가 필요하다고 지적하며, 세심한 모니터링 및 감시 체계를 구축의 필요성을 제시하고 있다.
( 이 책에서는 예시로서 구글 광고 데이터를 다운로드 후 모델을 사용해 사로운 입찰가를 계산한 다음, 입찰가를 구글 광고에 다시 로드하고 프로세스를 다시 시작하는 경우를 가정하여 제시하고 있다.)
이 책은 데이터 엔지니어 혹은 TA(Technical Architect)에게 데이터를 관리하기 위한 기반기술의 모든 것을 알려주지는 않는다. 다만 데이터 관리를 위한 기반을 구축하기 위해 필요한 요소가 무엇인지, 그것을 위해 어떤 지식들이 필요한 지를 조목조목 짚어주고 있다.
간혹 데이터 분야를 담당하는데 데이터 기반 구조를 어떻게 설계해야 효율적이고 효과적인지 왜 모르냐는 핀잔을 들을 때가 있다. 그럴 때를 대비하여 이 책은 초보적인 수준일 망정 그와 관련한 대화를 나누기 위한 좋은 기본서 임에 틀림 없다.