엔터프라이즈 데이터 레이크 구축 [람다 아키텍처 기반의 엔터프라이즈 데이터 레이크 구축 가이드]
- 원서명Data Lake for Enterprise: Leveraging Lambda Architecture for building Enterprise Data Lake Systems (ISBN 9781787281349)
- 지은이톰시 존(Tomcy John), 판카이 미스라(Pankaj Misra)
- 옮긴이양원국, 우성한, 이영호
- ISBN : 9791161751399
- 40,000원
- 2018년 04월 30일 펴냄 (절판)
- 페이퍼백 | 688쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 데이터 과학
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
2019년 대한민국학술원 우수학술도서 선정도서
요약
디지털 트랜스포메이션을 추구하는 기업이 빅데이터 가치 실현에 필요한 기업 내 단일 저장소인 '데이터 레이크'를 구축할 수 있도록 안내하는 실전서이다. 데이터에 대한 이해부터 아키텍처 구축에 필요한 코드까지 모든 과정을 망라해, 데이터 레이크 구축에 어려움을 겪는 기업에게 이정표가 될 것이다.
추천의 글
지난 40~50년 동안 기업은 발전하면서 조직 관리 전반에 IT/소프트웨어 시스템을 도입해 느리지만 꾸준히 발전시켜왔다. 오늘날 <포춘(Fortune)> 선정 200대 기업은 각각 250개 이상의 애플리케이션을 운영하고 있을 정도다. 그러나 이런 수많은 애플리케이션은 성숙 단계를 넘어 또 다른 단계로 진화하는 과정에서 새로운 문제를 일으키고 있다. 시스템을 조직 간에 유기적으로 통합하지 못하는 문제를 그 예로 들 수 있다.
기업은 로컬 최적화에서 엔터프라이즈 최적화로 전환함에 따라 빅데이터 시스템과 같은 신기술을 활용해 서로 다른 IT 시스템의 데이터를 결합하고 있으며, 이는 효율과 효과성을 높여 장기적으로 기업의 비용 절감에 도움이 된다.
다양한 기능 및 기술 영역에서 풍부한 경험을 가진 톰시(Tomcy)와 판카이(Pankaj)는 조직 내 여러 정보를 융합할 수 있는 더 나은 방법을 찾으려 노력해 왔으며, 기술적인 면이나 문화적인 면에서 혁신을 가져오는 도전적인 여정을 걸어왔다.
이 책은 소프트웨어 엔지니어, 설계자, 관리자의 관점을 모두 아우르고 있다. 그리고 저자는 다양한 엔터프라이즈급 규모의 구현 경험이 있어 매우 실용적인 내용을 담을 수 있었다.
데이터 레이크와 같은 미래를 대비하는 최신 기술 개념을 사용하면 앞날을 대비할 수 있을 뿐만 아니라, 더 나아가 조직 간 장벽에 갇혀 있던 데이터를 살펴봄으로써 사각지대에 있어 놓쳤던 데이터의 통찰력을 다시 한 번 살펴볼 수 있을 것이다.
/토마스 밴자민(Thomas Benjamin), GE 디지털 항공(Aviation Digital) CTO
이 책에서 다루는 내용
■ 적절한 빅데이터 기술을 사용해 엔터프라이즈급 데이터 레이크 구축
■ 람다 아키텍처의 핵심과 엔터프라이즈 환경에 적용하는 방법 이해
■ 아파치 스쿱(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)과 관련된 비용을 최소화하고, 데이터로부터 의미 있는 정보를 이끌어 낼 수 있게 도움을 준다. 또한 기업용 데이터 레이크 구축에 도움이 될 것이다.
목차
목차
- 1부. 개요
- 1장. 데이터에 대한 소개
- 데이터 탐색
- 엔터프라이즈 데이터란?
- 엔터프라이즈 데이터 관리
- 빅데이터의 개념
- 데이터의 연관성
- 데이터의 품질
- 데이터는 어디에 있을까?
- 엔터프라이즈 환경의 현재 상태
- 기업의 디지털 트랜스포메이션은
- 데이터 레이크 사용 사례 이해
- 요약
- 2장. 데이터 레이크의 개념
- 데이터 레이크란 무엇인가?
- 데이터 레이크는 기업을 어떻게 도울 수 있을까?
- 데이터 레이크는 어떻게 동작하는가?
- 데이터 레이크와 데이터 웨어하우스의 차이점
- 데이터 레이크 구축을 위한 접근법
- 람다 아키텍처 기반의 데이터 레이크
- 요약
- 3장. 람다 아키텍처 패턴
- 람다 아키텍처란?
- 람다 아키텍처의 역사
- 람다 아키텍처의 원칙
- 람다 아키텍처의 컴포넌트
- 람다 아키텍처의 완전한 동작 방식
- 람다 아키텍처의 장점
- 람다 아키텍처의 단점
- 람다 아키텍처 관련 기술 개요
- 람다 아키텍처 응용
- 람다 아키텍처의 실제 활용 사례
- 카파 아키텍처
- 요약
- 4장. 데이터 레이크에 적용된 람다 아키텍처
- 하둡 배포판
- 엔터프라이즈 환경의 빅데이터 체계를 위한 선택 기준
- 데이터 처리를 위한 배치 계층
- 제공 계층
- 요약
- 2부. 데이터 레이크의 기술적 구축 단위
- 5장. 아파치 스쿱을 사용한 배치 데이터 획득
- 데이터 레이크의 배경: 데이터 획득
- 아파치 스쿱인 이유
- 스쿱으로 작업
- 스쿱 커넥터
- 스쿱의 HDFS 지원
- 스쿱 작동 예
- 스쿱을 사용해야 하는 경우
- 스쿱을 사용하지 말아야 하는 경우
- 실시간 스쿱: 가능한가?
- 대안
- 요약
- 6장. 아파치 플룸을 사용한 스트림 데이터로부터 데이터 획득
- 데이터 레이크 관점에서 데이터 획득
- 플룸을 선택한 이유
- 플룸 아키텍처 원칙
- 플룸 아키텍처
- 플룸 이벤트: 스트림 데이터
- 플룸 에이전트
- 플룸 소스
- 플룸 채널
- 플룸 싱크
- 플룸 설정
- 플룸 트랜잭션 관리
- 기타 플룸 컴포넌트
- 문맥 라우팅
- 플룸 구동 예제
- 플룸을 사용할 때
- 플룸을 사용하지 말아야 할 때
- 다른 선택 사항
- 요약
- 7장. 아파치 카프카를 사용한 메시지 전달 계층
- 데이터 레이크의 상황: 메시지 전달 계층
- 왜 아파치 카프카인가?
- 카프카 구조
- 기타 카프카 컴포넌트
- 카프카 프로그래밍 인터페이스
- 프로듀서와 컨슈머 신뢰성
- 카프카 보안
- 메시지 중심 미들웨어로서의 카프카
- 카프카의 수평 확장 아키텍처
- 카프카 커넥트
- 카프카 동작 예제
- 카프카를 사용할 때
- 카프카를 사용하지 말아야 할 때
- 기타 옵션
- 요약
- 8장. 아파치 플링크를 사용한 데이터 처리
- 데이터 레이크의 상황: 데이터 흡수 계층
- 아파치 플링크를 사용하는 이유
- 플링크의 동작 방식
- 플링크 API
- 플링크 동작 예제
- 플링크를 사용해야 하는 경우
- 플링크를 사용하면 안 되는 경우
- 플링크의 대안
- 요약
- 9장. 아파치 하둡을 사용한 데이터 저장소
- 데이터 레이크의 상황: 데이터 저장 및 람다 배치 계층
- 하둡을 사용하는 이유
- 하둡의 동작 방식
- 하둡 에코시스템
- 하둡 배포판
- HDFS와 데이터 형식
- 근실시간 애플리케이션을 위한 하둡
- 하둡 배포 모드
- 하둡 동작 예제
- 하둡을 사용하면 안 되는 경우
- 기타 하둡 처리 옵션
- 요약
- 10장. 일래스틱서치 색인 데이터 저장소
- 데이터 레이크의 상황: 데이터 저장소와 람다 속도 계층
- 일래스틱서치란?
- 일래스틱서치를 사용하는 이유
- 일래스틱서치의 동작 방식
- 엘라스틱 스택
- 엘라스틱 클라우드
- 일래스틱서치 DSL(쿼리 DSL)
- 일래스틱서치의 노드
- 일래스틱서치와 관계형 데이터베이스
- 일래스틱서치 에코시스템
- 일래스틱서치 배포 옵션
- 일래스틱서치 클라이언트
- 빠른 스트리밍 계층을 위한 일래스틱서치
- 일래스틱서치 데이터 소스
- 콘텐츠 색인을 위한 일래스틱서치
- 일래스틱서치와 하둡
- 일래스틱서치 동작 예제
- 일래스틱서치를 사용해야 하는 경우
- 일래스틱서치를 사용하면 안 되는 경우
- 일래스틱서치의 다른 대안
- 요약
- 3부. 모두 통합
- 11장. 데이터 레이크 컴포넌트 연동
- 데이터 레이크를 어디까지 구현했을까?
- 데이터 레이크의 핵심 아키텍처 원칙
- 엔터프라이즈 환경의 데이터 레이크가 직면한 과제
- 데이터 레이크에 기대하는 것
- 다른 활동을 위한 데이터 레이크
- 데이터 저장소에 대해 자세히 알아보기
- 데이터 처리에 대해 자세히 알아보기
- 데이터 보안에 대한 생각
- 데이터 암호화에 대한 생각
- 데이터 관리 및 거버넌스
- 데이터 감사에 대한 생각
- 데이터 추적성에 대한 생각
- 제공 계층 더 알아보기
- 요약
- 12장. 데이터 레이크 활용 방법 제안
- 엔터프라이즈 환경에 사이버 보안 적용
- 기업에 대한 고객 인식 알아내기
- 효율적인 창고 관리
- 브랜드 개발과 기업 마케팅
- 더 높은 수준의 개인화 구현
- IoT 데이터 분석 능력 갖추기
- 더 실용적이고 유용한 데이터 기록 저장소
- 기존 데이터 웨어하우스 인프라 보완
- 통신사의 보안 및 규제 준수
- 요약