Pig를 이용한 빅데이터 처리 패턴
- 원서명Pig Design Patterns (ISBN 978783285556)
- 지은이프라딥 파수풀레티
- 옮긴이이미정
- ISBN : 9788960776081
- 30,000원
- 2014년 09월 26일 펴냄 (절판)
- 페이퍼백 | 360쪽 | 188*235mm
- 시리즈 : acorn+PACKT
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
요약
빅데이터 처리를 고심하는 개발자라면 가장 먼저 하둡 프레임워크의 도입을 고려할 것이다. 그 유명세만큼이나 기능면에서도 우월한 하둡은 빅데이터 솔루션을 구축하는 핵심 프레임워크로서 자리잡았다. 그러나 하둡으로 빅데이터를 다뤄본 개발자라면 누구나 하둡 프로그래밍이 그렇게 간단한 일이 아님을 깨닫게 될 것이다. 피그(Pig)는 하둡 프로그래밍을 간단하게 해주는 아파치 오픈소스로 이미 외국에서는 빠르고 효율적인 빅데이터 구축을 가능케 하는 언어로 폭넓게 사용되고 있다. 개발자의 시간과 노력을 절약해주는 피그에 대한 이 책이 국내 최초로 출판되었다. 피그 언어에 대한 설명뿐만 아니라 피그가 사용되는 패턴, 그리고 하둡 생태계에 존재하는 여러 툴들과 함께 적용된 사례를 자세히 설명하는 이 책은 한국의 빅데이터 개발자들에게 유용한 피그에 관한 바이블이 될 것이라 기대한다.
이 책에서 다루는 내용
■ 전사적 IT 환경에서의 피그의 연관성 이해
■ 플랫폼 간 데이터 이동이 가능하도록 디자인 패턴에 피그를 사용하는 방법
■ 디자인 패턴을 활용해 빅데이터 솔루션을 생성하기 위한 하둡 생태계의 구성요소들과 피그의 공존 관계
■ 변형, 결집, 강화, 정제, 필터링, 포맷화, 검색, 형변환 기법으로 복잡한 데이터 파이프라인을 생성하는 과정 간략화
■ 다중 플랫폼 분석을 가능케 하는 시스템과, 하둡의 통합을 다루는 디자인 패턴에 피그와 관련된 지식 적용
■ 디자인 패턴을 이해하고 복잡한 정형 데이터 분석에 피그를 사용하는 방법
이 책의 대상 독자
피그에 이미 친숙한 개발자, 그리고 전사적 IT 환경에서 데이터의 유입, 프로파일링, 정제, 변형 시 발생하는 문제와 관련된 사례를 알기 원하는 경험 많은 개발자를 위한 책이다. 이렇게 피그를 선호하는 사용자는 자신들의 문제를 해결하는 피그 디자인 패턴의 중요성을 이해하기 위한 참고 서적으로 이 책을 활용할 것이다. 복잡한 피그 디자인 패턴을 좀 더 잘 이해하기 위해 하둡과 피그에 대한 지식은 필수적이다. 이를 위해 ‘1장, 피그 디자인 패턴의 기초’에서는 간단한 예제와 함께 입문자를 위한 개념을 소개한다. 많은 장에서 예제로 사용되는 UDF를 좀 더 잘 이해하기 위해 자바와 파이썬에 익숙해질 것을 권한다.
이 책의 구성
1장, 피그 디자인 패턴의 기초’에서는 디자인 패턴, 하둡, 맵리듀스, 피그가 사용되는 하둡 생태계 구성요소들과 데이터 흐름 패러다임에 대해 다룬다. 또한 피그가 동작하기 위해 필요한 몇 가지 기본 예제와 함께 피그의 언어적 구성과 개념에 대해 설명한다. 피그가 다루기에 가장 적합한 다양한 작업들(workloads)과 어떻게 피그가 그런 작업들을 다루는 최적의 툴이 되었는지를 이해할 수 있는 기본적인 내용을 이야기한다. 1장은 간략하며 실제적인 참고문헌 그 이상의 역할을 하며, 피그에 대해 좀더 알기 원하는 독자에게 추가적인 참고문헌들을 제시한다.
2장, 데이터 유입과 배출 패턴’은 다양한 데이터 소스들을 다루는 데이터 유입 및 배출 디자인 패턴에 대해 설명한다. 2장은 다중구조 데이터와 정형 데이터를 내보내고 하둡을 유입의 중추로 사용하는 외부 시스템과의 통합 기법을 설명하는 특정 예제들을 제공한다. 이런 유입 및 배출 패턴을 설명하기 위해 로그 파일과 JSON, XML, 몽고DB, 카산드라, HBase, 그 밖의 일반적인 정형 데이터 소스를 아우르는 다중 파일 시스템을 선택했다. 2장을 읽은 후 독자는 주어진 전사적 IT 환경에서 유입 및 배출과 관련된 패턴을 프로그램화할 수 있을 것이며, 올바른 피그 프로그래밍 구조를 사용하거나 이런 패턴을 구현하기 위해 UDF를 작성하는 기술을 적용할 수 있다.
3장, 데이터 프로파일링 패턴’은 다수의 데이터 포맷에 적용된 데이터 프로파일링 패턴과 이런 패턴을 피그로 구현하는 방법에 중점을 둔다. 이런 패턴은 피그를 사용하는 방법과 기본적이며 혁신적인 통계적 기법들을 데이터 프로파일링 및 데이터 품질 측정에 적용하는 다양한 접근 방법들을 내포한다. 피그를 사용하여 주어진 전사적 IT 환경에서 유사한 패턴을 프로그램화하고 이런 패턴을 확장하는 UDF를 작성하는 방법에 관해 배운다.
4장, 데이터 검증과 정제 패턴’은 다양한 데이터 포맷에 적용되는 데이터 검증과 정제 패턴에 관한 내용이다. 데이터 검증 패턴은 제약조건, 정규표현식, 통계적 기법을 다룬다. 데이터 정제 패턴은 일반적인 필터, 블룸(bloom) 필터, 변형을 위해 데이터를 가공하는 통계적 기법을 설명한다.
5장, 데이터 변형 패턴’은 하둡으로 유입되는 광범위한 데이터 타입들에 적용되는 데이터 변형 패턴을 다룬다. 5장을 읽고 나면 기본 변형을 위해 적절한 패턴을 선택할 수 있을 것이며 폭넓게 사용되는 조인, 요약, 집계, 큐브, 일반화, 피그 프로그래밍 및 UDF를 활용한 애트리뷰트 구성과 같은 개념을 익힐 수 있다.
6장, 데이터 축소 패턴’은 사전에 유입되어 정제되고 변형된 데이터에 적용하는 데이터 축소 패턴에 대해 설명한다. 6장을 읽은 후 독자는 차원축소, 샘플링 기법, 비닝(binning), 클러스터링, 무관한 애트리뷰트 제거 패턴을 이해하고 사용할 수 있게 되어 분석을 위한 준비가 완료된다. 6장은 피그 언어를 사용하는 다양한 기법들을 살펴봄으로써 데이터 축소를 다루는 세부적인 사용법을 제공하기 위해 피그의 기능을 확장한다.
7장, 고급 패턴과 향후 작업’은 고급 데이터 분석 패턴을 다룬다. 이 패턴은 피그 언어의 확장성을 다루며 사용 사례와 함께 실행 가능한 코드, 자바로 작성된 맵리듀스 코드, PiggyBank에서 사용된 UDF, 그 외 다른 소스들과의 통합 기법을 설명한다. 고급 분석법은 자연어 처리, 클러스터링, 분류(classification), 텍스트 색인화와 관련된 패턴을 다룬다.
목차
목차
- 1장 피그 디자인 패턴의 기초
- 디자인 패턴의 이해
- 피그 디자인 패턴의 범위
- 하둡에 관한 쉽고 자세한 설명: 지침서
- 전사적 IT 환경
- 분산 시스템의 일반적인 문제
- 하둡의 출현
- 하둡 파헤치기
- 하둡 분산 파일 시스템
- HDFS 설계 목적
- HDFS 동작
- 맵리듀스
- 맵리듀스가 동작하는 방법
- 맵리듀스 내부
- 피그: 대략적인 개요
- 피그의 기초
- 전사적 IT 환경과 피그 관련성
- 피그 동작: 개요
- 피그 작동
- 사용 사례
- 전체 코드
- 데이터셋
- 코드를 이용한 피그의 이해
- 피그의 확장성
- 코드에 사용된 연산자
- EXPLAIN 연산자
- 피그의 데이터 모델
- 기본형
- 복합형
- 정리
- 2장 데이터 유입과 배출 패턴
- 데이터 유입과 배출 환경
- 전사적 IT 환경에서 사용되는 데이터의 유형들
- 다중정형화 데이터를 위한 유입, 배출 패턴
- 로그 유입을 위해 고려해야 할 사항
- 아파치 로그 유입 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 추가 정보
- 커스텀 로그 유입 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 추가 정보
- 이미지 유입과 배출 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 추가 정보
- 로그 유입을 위해 고려해야 할 사항
- NoSQL 데이터에 대한 유입과 배출 패턴
- 몽고DB 유입과 배출 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 추가 정보
- H베이스 유입과 배출 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 추가 정보
- 몽고DB 유입과 배출 패턴
- 정형 데이터에 대한 유입과 배출 패턴
- 하이브 유입과 배출 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 추가 정보
- 하이브 유입과 배출 패턴
- 반정형화 데이터에 대한 유입과 배출 패턴
- 메인프레임 유입 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 추가 정보
- XML 유입과 배출 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 추가 정보
- 메인프레임 유입 패턴
- JSON 유입과 배출 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 추가 정보
- 배경
- 정리
- 3장 데이터 프로파일링 패턴
- 빅데이터에 대한 데이터 프로파일링
- 빅데이터 프로파일링 관점
- 빅데이터 프로파일링을 위한 표본추출 시 고려사항
- 피그의 표본추출 지원
- 데이터 프로파일링에서 피그 사용 기초
- 데이터 타입 추론 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 피그 스크립트
- 자바 UDF
- 결과
- 추가 정보
- 기본 통계 프로파일링 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 피그 스크립트
- 매크로
- 결과
- 추가 정보
- 패턴 매칭 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 피그 스크립트
- 매크로
- 결과
- 추가 정보
- 문자열 프로파일링 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 피그 스크립트
- 매크로
- 결과
- 추가 정보
- 비정형 텍스트 프로파일링 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 피그 스크립트
- 형태소분석을 위한 자바 UDF
- TF-IDF 생성을 위한 자바 UDF
- 결과
- 추가 정보
- 정리
- 빅데이터에 대한 데이터 프로파일링
- 4장 데이터 검증과 정제 패턴
- 빅데이터를 위한 데이터 검증과 정제
- 검증과 정제를 위한 피그 선택
- 제약조건 검증과 정제 디자인 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 추가 정보
- 정규표현식 검증과 정제 디자인 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 오류 데이터 검증과 정제 디자인 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 추가 정보
- 비정형 텍스트 데이터 검증과 정제 디자인 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 추가 정보
- 정리
- 5장 데이터 변형 패턴
- 데이터 변형
- 구조 변형 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 추가 정보
- 데이터 정규화 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 추가 정보
- 데이터 통합 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 추가 정보
- 집계 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 추가 정보
- 데이터 일반화 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 추가 정보
- 정리
- 6장 데이터 축소 패턴
- 데이터 축소: 개요
- 빅데이터를 위한 데이터 축소에서 고려해야 할 사항
- 차원 축소: 주성분 분석 디자인 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- PCA 구현의 한계
- 코드 일부
- 결과
- 추가 정보
- 수치 축소 히스토그램 디자인 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 추가 정보
- 수치 축소 표본추출 디자인 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 추가 정보
- 수치 축소 클러스터링 디자인 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 추가 정보
- 정리
- 7장 고급 패턴과 향후 작업
- 클러스터링 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 추가 정보
- 주제 발견 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 추가 정보
- 자연어 처리 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 추가 정보
- 분류화 패턴
- 배경
- 패턴을 사용하는 이유
- 사용 사례
- 패턴 구현
- 코드 일부
- 결과
- 추가 정보
- 향후 트렌드
- 데이터 중심 패턴의 출현
- 솔루션 중심 패턴의 출현
- 프로그램화 제약사항을 다루는 패턴
- 정리
- 클러스터링 패턴
도서 오류 신고
정오표
정오표
[ p15 옮긴이 소개 3행 ]
기술개발실에 근무 중이며 -> 기술개발실에 근무했으며