Top

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), 텍스트 색인화와 관련된 패턴을 다룬다.

저자/역자 소개

저자 서문

이 책은 빅데이터 분석 능력을 경험할 수 있게 해주는 실용서다. 데이터를 준비하고 분석을 수행하며 데이터에서 의미 있는 값을 도출해내는 과정을 통해 빅데이터 기술자로서의 역량이 향상될 것이다. 이는 적절한 피그 디자인 패턴을 사용하기 때문에 가능한 일이다. 디자인 패턴이 얼마나 유용한지 입증하기 위해 다음 사실에 근거해서 피그를 선택했다.

매우 쉽게 학습이 가능하고 간결한 언어적 구성을 특징으로 하는 피그의 내재적 순응성(amenability), 확장성, 정형 및 비정형 빅데이터에 대한 적용가능성(applicability)은 다른 언어에 비해 우월한 특징들이다. 임의의 데이터로 구성된 빅데이터에서 의미 있는 값을 도출해내기를 원할 때, 피그로 구현될 수 있는 패턴들의 용이함과 빠른 구현 속도는 좋은 평을 얻을 만한 특징들이다. 이 책은 시스템 설계자와 개발자를 위한 책으로서, 피그로 복잡한 분석적 솔루션을 구축하는 작업에 좀더 능숙해지게 만든다. 또한 다양한 디자인 패턴들, UDF, 툴, 적용 사례들을 제공한다.

이 책을 읽음으로써 독자는 다음 목표를 달성하게 될 것이다. 플랫폼을 넘나드는 데이터 이동, 데이터 유입, 프로파일링, 검증, 변형, 데이터 축소, 배출을 수행함으로써 복잡한 데이터 파이프라인을 구축하는 과정을 간결하게 만든다. 또한 이런 디자인 패턴들에 피그를 적용할 수 있게 될 것이다. 다중구조의 모델이 없는 데이터로부터 구조를 도출해내기 위해 데이터의 탐색적 분석 수행 시 패턴을 사용한 솔루션을 구축하고, 추가 분석을 위해 데이터를 후속시스템(downstream system)으로 이동시킨다. 디자인 패턴을 사용해서 빅데이터 솔루션을 구축하기 위해 하둡 생태계에서 다른 툴들과 피그가 어떻게 공존할 수 있는지 분석한다.

저자 소개

프라딥 파수풀레티(Pradeep Pasupuleti)

아키텍처링 분야와 실시간 시스템 및 실시간 데이터주도형 시스템 개발에 16년간 몸담았다. 현재는 탄탄한 데이터 플랫폼 및 기계 학습 알고리즘을 수행해서 얻은 데이터 산출물을 개발하는 일에 관심을 두고 있다. 또한 미래 데이터 관리 및 분석이 요구되는 빅데이터에 대한 깊은 기술적 이해를 바탕으로 비즈니스 문제를 밝혀 냄으로써 고객에게 가치를 전달하고 있다. 빅데이터에 대한 관심이 매우 높으며, 빅데이터는 인간의 시간, 비용, 노력을 줄여주는 혁신의 요람지가 될 것이라 믿고 있다.

데이터 과학의 모든 면에 대한 풍부한 경험을 바탕으로 데이터 제품팀을 만들고, 이후 고객이 엔드투엔드(end-to-end) 전략을 구축하는 데 성공적으로 공헌했다. 엔드투엔트 전략이란 고객의 현재 데이터 구조를 일괄 분석과 실시간 분석 모두를 지원할 수 있는 혼합 패턴으로 변환하는 방법에 관한 것이다. 이 모든 것은 람다 구조(lambda architecture)로 수행되었다. 자연어 처리 및 높은 수준의 학습 기법을 기반으로 다차원 다중구조 데이터를 분석해서 얻은 데이터 산출물로 단기성공사례를 제공하는 최고기관(COE, Center of Excellence)을 설립했다.

포춘 500대 기업에게 기술 자문을 하는데, 그가 다루는 기술 영역은 빅데이터 전략, 제품 관리, 시스템 아키텍처, 소셜 네트워크 분석, 협상, 갈등 해결, 비선형 카오스 역학(chaos and nonlinear dynamics), 국제정책, 고성능 컴퓨팅, 고급 통계 기법, 위기관리, 마케팅, 다차원 데이터 가시화, 인간 컴퓨터 상호작용(HCI, Human-Computer Interaction), 기계 학습, 정보검색, 데이터마이닝 등에 달한다. 또한 창조적인 사람들 과 복잡한 문제를 해결하기 위해 혁신적인 방법으로 모호한 영역을 다뤄본 다양한 경험을 가지고 있다. 시를 읽고 쓰며, 가잘(ghazals)이 표현하는 기쁨을 누리고, 아이들과 함께 불가능한 발명에 대해 토론하며 시간을 보내는 것을 좋아한다. 또한 유적지 탐사에도 관심이 있다.

옮긴이의 말

빅데이터가 IT 업계의 화두가 된지 짧지 않은 시간이 흘렀다. 그러나 그 유명세에 비해 실제로 빅데이터가 비즈니스에 적용되어 기업의 이익으로 직결된 사례는 그리 많지 않다. 그렇다고 해서 빅데이터가 가지고 있는 무한한 가치와 가능성을 간과할 수는 없기에, 기업들은 저마다 빅데이터를 활용하기 위해 머리를 싸매고 있다. 여기까지는 IT 업계에 몸담고 있는 내가 직접 경험하고 있는 기업의 현실이다.

일단 빅데이터 처리를 고심하는 기업은 제일 먼저 하둡 프레임워크의 도입을 고려한다. 그 유명세만큼이나 기능면에서도 우월한 하둡은 빅데이터 솔루션을 구축하는 핵심 프레임워크로서 자리잡았다. 그러나 하둡으로 빅데이터를 다뤄본 개발자라면 누구나 하둡 프로그래밍이 그렇게 간단한 일이 아님을 깨닫게 될 것이다. 여기에 바로 아파치 피그(Pig)를 주목해야 하는 이유가 있다. 피그는 하둡 프로그래밍을 간단하게 해주는 아파치 오픈소스로 이미 외국에서는 빠르고 효율적인 빅데이터 구축을 가능케 하는 언어로 폭넓게 사용되고 있다.

국내에서 처음으로 피그를 다룬 책의 번역 작업을 맡게 되어 막중한 책임감을 느낀다. 이 책은 피그 언어에 대한 설명뿐만 아니라 피그가 사용되는 패턴, 그리고 하둡 생태계에 존재하는 여러 툴들과 함께 적용된 사례를 자세히 설명한다.

부디 한국의 개발자들이 이 책을 통해 피그를 적절하게 활용함으로써 빠르고 쉽게 빅데이터를 구축할 수 있게 되기를 바란다.

마지막으로 한 가지 덧붙이자면, 이 책은 전반적인 IT 분야뿐만 아니라 통계, 데이터 모델링 등 다양한 분야에서 통용되는 용어와 개념들이 사용되어 다소 어렵게 느껴질 수도 있으나, 최대한 원문의 의미를 훼손하지 않는 범위 내에서 쉽게 번역하도록 노력했다.

옮긴이 소개

이미정

성균관대 전자, 전기 컴퓨터공학부를 졸업하고, 한동대학교 대학원 정보통신공학과를 졸업 했다. 삼성전자 LSI사업부 기술개발실에 근무했으며, 오라클 미들웨어 사업부에서 컨설턴트로 재직 중이다.

목차

목차
  • 1장 피그 디자인 패턴의 기초
    • 디자인 패턴의 이해
    • 피그 디자인 패턴의 범위
    • 하둡에 관한 쉽고 자세한 설명: 지침서
      • 전사적 IT 환경
      • 분산 시스템의 일반적인 문제
      • 하둡의 출현
      • 하둡 파헤치기
      • 하둡 분산 파일 시스템
        • HDFS 설계 목적
        • HDFS 동작
      • 맵리듀스
        • 맵리듀스가 동작하는 방법
        • 맵리듀스 내부
    • 피그: 대략적인 개요
      • 피그의 기초
      • 전사적 IT 환경과 피그 관련성
      • 피그 동작: 개요
        • 피그 작동
        • 사용 사례
        • 전체 코드
        • 데이터셋
    • 코드를 이용한 피그의 이해
      • 피그의 확장성
      • 코드에 사용된 연산자
      • EXPLAIN 연산자
      • 피그의 데이터 모델
        • 기본형
        • 복합형
    • 정리

  • 2장 데이터 유입과 배출 패턴
    • 데이터 유입과 배출 환경
    • 전사적 IT 환경에서 사용되는 데이터의 유형들
    • 다중정형화 데이터를 위한 유입, 배출 패턴
      • 로그 유입을 위해 고려해야 할 사항
        • 아파치 로그 유입 패턴
        • 배경
        • 패턴을 사용하는 이유
        • 사용 사례
        • 패턴 구현
        • 코드 일부
        • 결과
        • 추가 정보
      • 커스텀 로그 유입 패턴
        • 배경
        • 패턴을 사용하는 이유
        • 사용 사례
        • 패턴 구현
        • 코드 일부
        • 결과
        • 추가 정보
      • 이미지 유입과 배출 패턴
        • 배경
        • 패턴을 사용하는 이유
        • 사용 사례
        • 패턴 구현
        • 코드 일부
        • 결과
        • 추가 정보
    • NoSQL 데이터에 대한 유입과 배출 패턴
      • 몽고DB 유입과 배출 패턴
        • 배경
        • 패턴을 사용하는 이유
        • 사용 사례
        • 패턴 구현
        • 코드 일부
        • 결과
        • 추가 정보
      • H베이스 유입과 배출 패턴
        • 배경
        • 패턴을 사용하는 이유
        • 사용 사례
        • 패턴 구현
        • 코드 일부
        • 결과
        • 추가 정보
    • 정형 데이터에 대한 유입과 배출 패턴
      • 하이브 유입과 배출 패턴
        • 배경
        • 패턴을 사용하는 이유
        • 사용 사례
        • 패턴 구현
        • 코드 일부
        • 결과
        • 추가 정보
    • 반정형화 데이터에 대한 유입과 배출 패턴
      • 메인프레임 유입 패턴
        • 배경
        • 패턴을 사용하는 이유
        • 사용 사례
        • 패턴 구현
        • 코드 일부
        • 결과
        • 추가 정보
      • XML 유입과 배출 패턴
        • 배경
        • 패턴을 사용하는 이유
        • 사용 사례
        • 패턴 구현
      • 코드 일부
        • 결과
        • 추가 정보
    • JSON 유입과 배출 패턴
      • 배경
        • 패턴을 사용하는 이유
        • 사용 사례
        • 패턴 구현
        • 코드 일부
        • 결과
        • 추가 정보
    • 정리

  • 3장 데이터 프로파일링 패턴
    • 빅데이터에 대한 데이터 프로파일링
      • 빅데이터 프로파일링 관점
      • 빅데이터 프로파일링을 위한 표본추출 시 고려사항
        • 피그의 표본추출 지원
    • 데이터 프로파일링에서 피그 사용 기초
    • 데이터 타입 추론 패턴
      • 배경
      • 패턴을 사용하는 이유
      • 사용 사례
      • 패턴 구현
      • 코드 일부
        • 피그 스크립트
        • 자바 UDF
      • 결과
      • 추가 정보
    • 기본 통계 프로파일링 패턴
      • 배경
      • 패턴을 사용하는 이유
      • 사용 사례
      • 패턴 구현
      • 코드 일부
        • 피그 스크립트
        • 매크로
      • 결과
      • 추가 정보
    • 패턴 매칭 패턴
      • 배경
      • 패턴을 사용하는 이유
      • 사용 사례
      • 패턴 구현
      • 코드 일부
        • 피그 스크립트
        • 매크로
      • 결과
      • 추가 정보
    • 문자열 프로파일링 패턴
      • 배경
      • 패턴을 사용하는 이유
      • 사용 사례
      • 패턴 구현
      • 코드 일부
        • 피그 스크립트
        • 매크로
      • 결과
      • 추가 정보
    • 비정형 텍스트 프로파일링 패턴
      • 배경
      • 패턴을 사용하는 이유
      • 사용 사례
      • 패턴 구현
      • 코드 일부
        • 피그 스크립트
        • 형태소분석을 위한 자바 UDF
        • TF-IDF 생성을 위한 자바 UDF
      • 결과
      • 추가 정보
    • 정리

  • 4장 데이터 검증과 정제 패턴
    • 빅데이터를 위한 데이터 검증과 정제
    • 검증과 정제를 위한 피그 선택
    • 제약조건 검증과 정제 디자인 패턴
      • 배경
      • 패턴을 사용하는 이유
      • 사용 사례
      • 패턴 구현
      • 코드 일부
      • 결과
      • 추가 정보
    • 정규표현식 검증과 정제 디자인 패턴
      • 배경
      • 패턴을 사용하는 이유
      • 사용 사례
      • 패턴 구현
      • 코드 일부
      • 결과
    • 오류 데이터 검증과 정제 디자인 패턴
      • 배경
      • 패턴을 사용하는 이유
      • 사용 사례
      • 패턴 구현
      • 코드 일부
      • 결과
      • 추가 정보
    • 비정형 텍스트 데이터 검증과 정제 디자인 패턴
      • 배경
      • 패턴을 사용하는 이유
      • 사용 사례
      • 패턴 구현
      • 코드 일부
      • 결과
      • 추가 정보
    • 정리

  • 5장 데이터 변형 패턴
    • 데이터 변형
    • 구조 변형 패턴
      • 배경
      • 패턴을 사용하는 이유
      • 사용 사례
      • 패턴 구현
      • 코드 일부
      • 결과
      • 추가 정보
    • 데이터 정규화 패턴
      • 배경
      • 패턴을 사용하는 이유
      • 사용 사례
      • 패턴 구현
      • 코드 일부
      • 결과
      • 추가 정보
    • 데이터 통합 패턴
      • 배경
      • 패턴을 사용하는 이유
      • 사용 사례
      • 패턴 구현
      • 코드 일부
      • 결과
      • 추가 정보
    • 집계 패턴
      • 배경
      • 패턴을 사용하는 이유
      • 사용 사례
      • 패턴 구현
      • 코드 일부
      • 결과
      • 추가 정보
    • 데이터 일반화 패턴
      • 배경
      • 패턴을 사용하는 이유
      • 사용 사례
      • 패턴 구현
      • 코드 일부
      • 결과
      • 추가 정보
    • 정리

  • 6장 데이터 축소 패턴
    • 데이터 축소: 개요
    • 빅데이터를 위한 데이터 축소에서 고려해야 할 사항
    • 차원 축소: 주성분 분석 디자인 패턴
      • 배경
      • 패턴을 사용하는 이유
      • 사용 사례
      • 패턴 구현
        • PCA 구현의 한계
      • 코드 일부
      • 결과
      • 추가 정보
    • 수치 축소 히스토그램 디자인 패턴
      • 배경
      • 패턴을 사용하는 이유
      • 사용 사례
      • 패턴 구현
      • 코드 일부
      • 결과
      • 추가 정보
    • 수치 축소 표본추출 디자인 패턴
      • 배경
      • 패턴을 사용하는 이유
      • 사용 사례
      • 패턴 구현
      • 코드 일부
      • 추가 정보
    • 수치 축소 클러스터링 디자인 패턴
      • 배경
      • 패턴을 사용하는 이유
      • 사용 사례
      • 패턴 구현
      • 코드 일부
      • 결과
      • 추가 정보
    • 정리

  • 7장 고급 패턴과 향후 작업
    • 클러스터링 패턴
      • 배경
      • 패턴을 사용하는 이유
      • 사용 사례
      • 패턴 구현
      • 코드 일부
      • 결과
      • 추가 정보
    • 주제 발견 패턴
      • 배경
      • 패턴을 사용하는 이유
      • 사용 사례
      • 패턴 구현
      • 코드 일부
      • 결과
      • 추가 정보
    • 자연어 처리 패턴
      • 배경
      • 패턴을 사용하는 이유
      • 사용 사례
      • 패턴 구현
      • 코드 일부
      • 결과
      • 추가 정보
    • 분류화 패턴
      • 배경
      • 패턴을 사용하는 이유
      • 사용 사례
      • 패턴 구현
      • 코드 일부
      • 결과
      • 추가 정보
    • 향후 트렌드
      • 데이터 중심 패턴의 출현
      • 솔루션 중심 패턴의 출현
      • 프로그램화 제약사항을 다루는 패턴
    • 정리

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[ p15 옮긴이 소개 3행 ]

기술개발실에 근무 중이며 -> 기술개발실에 근무했으며