이번 포스팅에서는 데이터 엔지니어링 관련 책 한 권을 추천하고자 한다.
"데이터 파이프라인 핵심 가이드"
책 제목에서 알 수 있듯이 데이터 파이프라인의 정의 및 작동 방식에 대해 설명하고, 클라우드 플랫폼을 포함한 최신 데이터 인프라에서 데이터를 이동하고 처리하는 방법에 대해 다루고 있다.
또한 데이터 엔지니어가 파이프라인을 구축하는 데 사용하는 공통 도구 및 제품들에 대해 설명하고, 파이프라인이 분석 및 보고 요구사항을 지원하는 방법과 파이프라인 유지 관리, 테스트 및 경고에 대한 고려사항들을 다루고 있다.
데이터 파이프라인이 무엇이며 어떻게 구현되는지 이해하고자 하는 데이터 엔지니어와 분석팀 구성원이 이 책의 주요 독자이며, 독자가 데이터 웨어하우스 개념에 대한 기본적인 이해가 있다고 가정한다.
내가 이 책을 읽으면서 가장 좋았던 부분은 데이터 파이프라인을 구축하기 위한 토대와 모범 사례를 설명한다는 점이다.
다시 말해, 데이터 조직을 강화하는 데이터 파이프라인을 구축 및 유지 관리하는 차원에서 좋은 청사진이자 참고 자료가 될 것이라고 생각한다.
목차의 순서대로 간략하게 책 소개를 해보면,
- 데이터 파이프라인 소개
- 데이터 파이프라인이란 무엇인지 설명하고, 누가 이러한 데이터 파이프라인을 왜/어떻게 구축하는지 설명한다.
- 최신 데이터 인프라
- 파이프라인을 구축하기 위해 제품과 설계를 결정하기 전에 필요한 최신 데이터 스택을 구성하는 요소(인프라 구성 요소)에 대해 설명한다.
- 최신 데이터 인프라의 핵심 구성 요소는 다음과 같다.
- 데이터 소스의 다양성
- 클라우드 데이터 웨어하우스 및 데이터 레이크
- 데이터 수집 도구
- 데이터 변환 및 모델링 도구
- 워크플로 오케스트레이션 플랫폼
- 일반적인 데이터 파이프라인 패턴
- 다양한 사용 사례로 확장 가능한 성공적인 데이터 파이프라인의 몇 가지 공통 패턴들에 대해 설명한다.
- ETL vs ELT
- 추출(Extract)
- 데이터 로드 및 변환을 준비하기 위해 다양한 소스에서 데이터를 수집한다.
- 로드(Load)
- 원본 데이터(ELT의 경우) 또는 완전히 변환된 데이터(ETL의 경우)를 최종 대상으로 가져온다.
- ETL과 ELT 모두 최종 결과는 데이터 웨어하우스, 데이터 레이크 또는 기타 대상에 데이터를 로드한다.
- 변환(Transform)
- 분석가, 시각화 도구 또는 파이프라인이 제공하는 모든 사용 사례에 유용하게 쓸 수 있게 각 소스 시스템의 원본 데이터를 결합하고 형식을 지정하는 단계이다.
- 추출(Extract)
- ETL vs ELT
- 다양한 사용 사례로 확장 가능한 성공적인 데이터 파이프라인의 몇 가지 공통 패턴들에 대해 설명한다.
ETL | ELT | |
프로세스 | 데이터 추출, 변환, 적재 | 데이터 추출, 적재, 변환 |
자료구조 | 전처리 된 데이터, 데이터 웨어하우스 지원 | 원천 데이터, 데이터 레이크 지 |
접근성 | 변경하지 쉽지 않고 비용이 많이 소요됨 | 접근성이 뛰어나고 신속한 업데이트가 가능함 |
시스템의 데이터 가용성 | 데이터 웨어하우스 및 ETL 프로세스를 생성할 때, 필요하다고 결정한 데이터만 변환하고 로드 | 모든 데이터를 즉시 로드할 수 있으며, 사용자가 나중에 변환 및 분석할 데이터를 결정 |
데이터 지원 | 관계형 SQL 기반 구조 | 정형, 비정형 등 모든 데이터 유형을 수집 |
규정 준수 | 민감한 정보를 데이터 웨어하우스에 넣기 전에 수정하고 제거하기 때문에 GDPR, HIPAA 및 CCPA 규정 준수 표준을 더 쉽게 충족함. 또한 해킹 및 부주의한 노출로부터 데이터를 보호함 | 민감한 정보를 수정 및 제거하기 전에 데이터를 업로드하므로 GDPR, HIPAA 및 CCPA 표준을 위반할 수 있음 |
데이터 크기 | 소량의 데이터로 정교한 데이터 변환에 사용 | 대용량 데이터에 사용 |
정보 로드 대기시간 | 적재 후 데이터 변환에 다소 시간이 걸리며 ELT보다 느림. 그러나 데이터가 로드되면 정보 분석이 ELT보다 빠름 | 변환을 기다릴 필요가 없고 데이터가 대상 데이터 시스템에 한 번만 로드되기 때문에 데이터를 빠르게 처리 할 수 있음. 그러나 정보 분석은 ETL보다 느림 |
유지보수 | 프로세스의 지속적인 유지 관리가 필요함 | 클라우드 기반이며 자동화된 솔루션을 통합하므로 유지 관리가 거의 필요가 없음 |
4. 데이터 수집: 데이터 추출
- 개발 환경과 인프라를 설정하는 방법에 대해 설명하고, 다양한 소스 시스템(MySQL, PostgreSQL, MongoDB, REST API, Kafka 및 Debezium)에서 데이터를 추출하는 방법을 설명한다.
5. 데이터 수집: 데이터 로드
- 데이터 웨어하우스에 데이터를 로드하는 부분으로, 테이블의 각 열에 해당하는 값을 사용하여 추출된 데이터를 CSV 파일로 로드하는 방법과 CDC 형식의 데이터가 포함된 산출물을 추출하는 방법을 설명한다.
6. 데이터 변환하기
- 대부분의 데이터 파이프라인에 공통적인 비문맨적 변환과 대시보드, 보고서 및 비즈니스 문제의 일회성 분석을 지원하는 데이터 모델에 대해 설명한다.
7. 파이프라인 오케스트레이션
- 데이터 수집, 데이터 변환 및 머신러닝 파이프라인의 단계를 포함한 데이터 파이프라인의 빌딩 블록을 "오케스트레이션"하거나 함께 묶는 방법을 다룬다.
- 오케스트레이션은 파이프라인의 단계가 올바른 순서로 실행되고 단계 간의 종속성이 적절하게 관리되게 한다.
- 대표적인 오케스트레이션 프레임워크로는 아파치 에어플로우(Apache Airflow)가 있다.
8. 파이프라인의 데이터 검증
- 테스트 되지 않은 데이터는 분석에 사용하기에 안전하지 않다고 가정하는 것이 가장 좋다.
- 따라서 데이터 자체의 품질과 유효성을 보장하기 위해서는 데이터 검증이 필수적인데, 이 챕터에서는 ELT 파이프라인의 단계 전반에 걸쳐 데이터 검증의 원칙을 설명한다.
9. 파이프라인 유지 관리 모범 사례
- 이 챕터에서는 파이프라인의 복잡성이 증가하고 의존하는 시스템의 불가피한 변화에 대처해야 하는 경우에 유지 관리하는 방법에 대해 설명한다.
10. 파이프라인 성능 측정 및 모니터링
- 파이프라인의 성능을 측정하고 모니터링하는 것은 필수적이며, 이에 대한 기대치를 설정하고 적합하도록 운영되게 하는 것은 안정성 측면에서 팀과 이해관계자 모두에게 중요하다.
- 이 챕터에서는 데이터 수집 및 작업 성과 측정을 수행하기 위한 몇 가지 팁과 모범 사례를 간략하게 소개한다.
정리하면... 이 책을 읽고 나서 데이터 파이프라인을 구축하는 일이 생각보다 쉬운 일이 아님을 다시 한 번 깨달았으며, 성공적인 데이터 분석을 위한 인프라 설계 및 구축을 위해 고려해야 할 사항들은 어떤 것들이 있는지 배울 수 있었다.
개인적으로 이 책은 시니어 데이터 엔지니어보다는 주니어 데이터 엔지니어 혹은 이제 막 데이터 엔지니어링 분야에 입문한 사람들을 위해 적합한 책이라고 생각한다.
책이 비교적 얇고 내용도 유익해서 부담 없이 쓱 한 번 읽어보기 좋은 책인 것 같다.
데이터 파이프라인과 관련된 기초 개념을 쌓고 싶은 분들은 꼭 한 번 읽어보기를 추천한다!