디지털 트랜스포메이션을 추구하는 기업이 빅데이터 가치 실현에 필요한 기업 내 단일 저장소인 '데이터 레이크'를 구축할 수 있도록 안내하는 실전서이다. 데이터에 대한 이해부터 아키텍처 구축에 필요한 코드까지 모든 과정을 망라해, 데이터 레이크 구축에 어려움을 겪는 기업에게 이정표가 될 것이다.
★ 이 책에서 다루는 내용 ★
■ 적절한 빅데이터 기술을 사용해 엔터프라이즈급 데이터 레이크 구축
■ 람다 아키텍처의 핵심과 엔터프라이즈 환경에 적용하는 방법 이해
■ 아파치 스쿱(Sqoop)과 그 기능에 대한 기술적 세부 사항
■ 카프카(Kafka)와 하둡 구성요소를 통합해 엔터프라이즈 데이터 획득
■ 스트림 기반 처리를 위한 스트리밍 기술과 플룸 사용 방법 학습
■ 아파치 플링크(Flink)의 스트림 기반 처리에 대한 이해
■ 하둡 구성 요소 통합 방법과 엔터프라이즈 환경의 데이터 레이크에 제공할 수 있는 장점
■ 일래스틱 스택(Elastic Stack)을 사용해 고성능 스트리밍 애플리케이션을 빠르게 구축
■ 설정으로 다양한 유형의 데이터 포맷을 데이터 획득 과정에서 일관되게 처리하는 방법
★ 이 책의 대상 독자 ★
■ 기업에서 엔터프라이즈급 데이터 레이크를 구현하고자 하는 자바 개발자나 설계자
■ 람다 아키텍처와 빅데이터 기술에 대한 실제 경험을 얻으려는 자바 개발자
■ 빅데이터의 세계를 발견하고 해당 기술을 사용해 실용적인 솔루션을 구현하고자 하는 자바 개발자
★ 이 책의 구성 ★
1부 '개요'에서는 데이터, 데이터 레이크, 그리고 주요 컴포넌트와 관련된 다양한 개념을 소개한다. 1부는 다음과 같은 4개의 장으로 구성돼 있다.
1장, '데이터에 대한 소개'에서는 책 전반에 대해 소개하고 데이터가 무엇인지, 그리고 기업에서 데이터가 갖는 의미를 살펴본다. 또한 현대에서 데이터는 왜 중요하며 어떻게 사용할 수 있는지 설명한다. 실제 사례를 통해 데이터의 중요성을 살펴보고, 데이터가 오늘날 비즈니스를 어떻게 변화시키는지 알아본다. 실제 사례를 통해 데이터를 이용해 기업에 변화를 줄 방법에 대해 생각해볼 수 있는 계기가 될 것이다.
2장, '데이터 레이크의 개념'에서는 데이터 레이크의 개념을 좀 더 자세히 알아보고, 기업이 직면한 문제를 해결하기 위해 데이터 레이크를 어떻게 활용할 수 있을지 설명한다. 또한 람다 아키텍처와 데이터 레이크를 활용하는 방법에 대해 간략하게 미리 보기도 제공한다. 이에 따라 데이터 레이크의 개념과 조직에서 데이터 레이크를 구축할 때 선택할 수 있는 다양한 접근법을 소개한다.
3장, '람다 아키텍처 패턴'에서는 람다 아키텍처와 다양한 컴포넌트, 그리고 데이터 레이크와 람다 아키텍처 패턴 간의 연결과 관련된 세부 사항을 설명한다. 람다 아키텍처가 탄생하게 된 배경과 람다 아키텍처를 이용해 해결할 수 있는 문제점을 통해 람다 아키텍처에 대한 상세한 정보를 얻을 수 있다. 또한 람다 아키텍처의 핵심 개념을 이해하고 기업에서 이를 적용할 수 있는 방법을 설명한다. 그리고 배치와 실시간 처리 영역에 람다 아키텍처를 정의하기 위해 활용할 수 있는 다양한 패턴과 컴포넌트도 설명한다. 여기까지 읽으면 데이터와 데이터 레이크, 람다 아키텍처에 대한 충분한 배경 지식을 보유할 수 있으며, 기업용 데이터 레이크 구현을 위한 다음 단계로 나아갈 수 있다.
4장, '데이터 레이크에 적용된 람다 아키텍처'에서는 람다 아키텍처의 각 계층(컴포넌트)에 사용할 수 있는 기술을 설명하며, 이를 통해 현재 시장을 선도하는 기술을 선택할 수 있게 돕는다. 현재 빅데이터 시장에 존재하는 다양한 하둡 배포판을 설명하고, 기업용 데이터 레이크에서 람다 아키텍처를 적용하는 데 어떻게 활용 가능한지 설명한다. 그리고 기업용 데이터 레이크에서 배치, 속도, 제공 계층의 세부 사항 및 아키텍처의 인과 관계를 기술적인 관점에서 설명한다.
2부, '데이터 레이크의 기술적 구축 단위'에서는 각 장에서 데이터 레이크 구현 일부가 될 다양한 기술을 설명한다. 각 장에 필요한 기술을 설명하고, 점진적으로 데이터 레이크와 단일 고객 뷰(SCV, Single Customer View)를 구축해 나간다. 각 장에서 다룬 기술의 주요 상세 내용은 이 책의 범위를 벗어나지 않는 수준으로 다룬다. 2부는 다음과 같은 6개의 장으로 구성돼 있다.
5장, '아파치 스쿱을 사용한 배치 데이터 획득'에서는 아파치 스쿱에 대해 깊이 있게 설명한다. 스쿱을 선택한 이유를 설명하고 이 영역에서 선택할 수 있는 다른 기술적 대안을 제시한다. 또한 데이터 레이크와 람다 아키텍처를 연결하는 자세한 예제를 제공한다. 이를 통해 기업의 원천 데이터 소스에서 데이터 레이크로 데이터를 가져오는 스쿱 프레임워크와 이와 유사한 방식에 대해 이해하게 될 것이다. 또한 스쿱의 기술적 세부 사항 및 구조적으로 해결해야 할 문제점을 설명하며, 스쿱의 동작 방식 및 하둡 기술과 연계할 수 있는 다양한 방법을 예제로 알아본다.
6장, '아파치 플룸을 사용한 스트림 데이터로부터 데이터 획득'에서는 데이터 레이크와 람다 아키텍처의 연결을 담당하는 아파치 플룸에 대해 깊이 있게 설명한다. 프레임워크로서의 플룸을 살펴보고 데이터 레이크에서 플룸을 어떻게 사용할 수 있는지 설명한다. 또한 플룸 고유의 능력인 트랜잭션 제어와 데이터 재사용 동작 예제를 통해 플룸 아키텍처와 데이터를 획득하고 소비하는 역할로 플룸을 사용하는 방법 및 기술적 세부 사항을 설명한다. 그리고 스트림 기반 처리에 사용하는 스트리밍 기술에 플룸을 사용하는 방법도 설명한다.
7장, '아파치 카프카를 사용한 메시지 전달 계층'에서는 아파치 카프카를 깊이 있게 설명한다. 7장부터는 해당 기술을 선택한 이유 및 다른 기술적 대안도 함께 설명한다. 카프카를 메시지 기반의 미들웨어로 사용하는 방법을 설명하며, 다른 메시지 전달 엔진과 어떠한 차이점을 보이는지도 설명한다. 그리고 카프카와 그 기능 및 클라이언트(게시자), 중개자와 소비자(구독자)의 관점에서 수평적 확장 기능을 구축하는 데 활용하는 방법을 자세히 알아본다. 또한 카프카를 하둡 컴포넌트와 통합해 기업 데이터를 획득하는 방법과 이를 통해 데이터 레이크에 제공되는 기능에 대해서도 알아본다.
8장, '아파치 플링크를 사용한 데이터 처리'에서는 스트리밍 기반의 처리와 스트리밍 그리고 아파치 플링크의 개념을 설명한다. 데이터 레이크의 관점에서 플링크에 대해 자세히 알아보고, 동작 예제를 통해 근 실시간 데이터 처리를 위한 빅데이터 기술 영역에서 플링크를 어떻게 사용하는지 설명한다. 또한 스트리밍 기능이 아키텍처의 다양한 계층에 어떠한 영향을 미치는지 알아보고, 계층이 스트리밍 처리에 어떠한 영향을 주는지 알아본다.
9장, '아파치 하둡을 사용한 데이터 저장소'에서는 아파치 하둡에 대해 깊이 있게 설명한다. 하둡 영역 내의 다양한 하둡 컴포넌트와 기능, 그리고 이러한 컴포넌트를 사용해 기업용 데이터 레이크에 제공할 수 있는 방법을 자세히 설명한다. 데이터 레이크 관점에서 하둡을 구현 레벨에서 설명하고, 파일 저장소, 파일 형식과 데이터 레이크의 바탕이 되는 맵리듀스와 관련된 하둡 프레임워크 기능을 알아보며, 이를 근 실시간 처리를 위해 스택에 적용할 수 있는 특정 패턴을 구성하는 방법을 알아본다.
10장, '일래스틱서치 색인 데이터 저장소'에서는 일래스틱서치에 대해 깊이 있게 설명한다. 데이터 색인 프레임워크로서 일래스틱서치를 설명하고, 효율적인 검색을 위해 프레임워크에서 제공하는 다양한 데이터 분석기(analyzer)를 소개한다. 데이터 레이크에 일래스틱서치를 어떻게 활용할지 설명하고, 일정한 성능을 보장하기 위한 효율적인 데이터 샤딩 및 분산 메커니즘 및 데이터 레이크와 규모 있는 데이터에 일래스틱서치를 활용하는 방법을 설명한다. 또한 동작 예제를 통해 고속 스트리밍과 고성능 애플리케이션에 일래스틱서치를 어떻게 사용할 수 있는지 알아본다.
3부, '모두 통합'에서는 1부와 2부의 모든 기술 컴포넌트를 모아 데이터 레이크 구성의 큰 그림을 제시한다. 기업의 요구 사항에 따라 필요한 부분을 더욱 자세히 탐구해 볼 수 있게 추가적인 개념이나 기술들을 설명한다. 3부에서 다루는 모든 기술에 대한 상세 내용은 이 책의 범위를 벗어나지 않는 수준으로 다룬다. 그러나 추가로 논의되는 기술을 알아야 할 필요가 있으며, 필요에 따라 데이터 레이크 구현에 어떻게 적용할 수 있는지 방법을 알고 있어야 한다. 3부는 다음과 같이 2개의 장으로 구성돼 있다.
11장, '데이터 레이크 컴포넌트 연동'에서는 데이터 레이크, 람다 아키텍처와 다양한 기술을 소개한 후 모두 가져와 퍼즐 조각을 맞추듯 하나의 그림으로 완성한다. 이 단계에서 성취감을 느낄 수 있으며, 예제로 사용한 코드 베이스를 그대로 조직에 가져와 동작시킬 수도 있다. 완전한 기능을 갖춘 데이터 레이크를 구현하기 위해 데이터 레이크의 다양한 부분을 통합하는 방법을 알아본다. 또한 앞에서 배운 모든 것을 결합해 실제 동작하는 데이터 레이크 예제를 완성한다.
12장, '데이터 레이크 활용 방법 제안'에서는 책 전반에 걸쳐 '단일 고객 뷰(SCV)' 예제를 다뤘지만, 데이터 레이크 도입 시 기업마다 고려해야 할 부분이 존재하는 만큼 여러 사례를 통해 좀 더 다양한 경우를 살펴본다. 다양한 사용 사례는 데이터 레이크에서 큰 이익을 얻을 수 있으며 소유, 운영, 반응성(reactiveness)과 관련된 비용을 최소화하고, 데이터로부터 의미 있는 정보를 이끌어 낼 수 있게 도움을 준다. 또한 기업용 데이터 레이크 구축에 도움이 될 것이다.