책 소개
요약
이 책은 빅데이터 도메인의 배경과 개념을 소개하고, 하이브 작업 환경을 설정하는 방법을 설명한다. 많은 예시를 통해 빅데이터의 값을 찾는 방법과 변환하는 방법을 소개하며 하이브 언어를 효율적으로 사용할 수 있는 기술도 안내한다. 마지막에는 성능, 보안과 같은 고급 주제 뿐만 아니라, 하이브의 확장까지 설명한다. 이 책은 하이브 언어를 실무에 적용하고, 확장하고자 하는 이들에게 훌륭한 가이드가 되어 줄 것이다.
이 책에서 다루는 내용
■ 하이브 환경의 생성과 셋업
■ 데이터를 설명하는 하이브 정의 언어의 사용 방법 발견
■ 하이브의 데이터 집합에 조인과 필터링을 사용해 의미 있는 데이터 발견
■ 하이브 정렬, 순서, 함수를 사용해 데이터 변환
■ 데이터 집계와 샘플링
■ 하이브 쿼리 성능 개선과 데이터 보안성 향상
■ 하이브를 다른 툴과 연동하고, 사용자 정의 함수를 사용해 하이브를 최적화
이 책의 대상 독자
이 책은 하둡의 데이터를 확인하고 분석하는 데 하이브를 사용하려는 데이터 분석가, 개발자, 사용자를 대상으로 한다. 빅데이터에 대해 초보자든 전문가든, 이 책을 접한 독자는 하이브의 기본 기능과 고급 기능을 잘 다룰 수 있게 될 것이다.
하이브는 SQL과 같은 언어이기 때문에, SQL 언어와 데이터베이스에 대한 경험이 있다면 훨씬 이해가 쉽고, 유용하게 적용할 수 있다.
이 책의 구성
1장, ‘빅데이터와 하이브 소개’에서는 빅데이터의 진화, 하둡 생태계, 하이브를 소개한다. 하이브 아키텍처와 빅데이터 분석에서 하이브를 사용하는 장점도 살펴본다.
2장, ‘하이브 환경 설정’에서는 하이브 환경 설정을 설명한다. 하이브를 사용한 커맨드 라인과 개발 툴도 다룬다.
3장, ‘데이터 정의와 설명’에서는 하이브의 테이블, 파티션, 버킷, 뷰에 대한 기본 데이터 타입과 데이터 정의 언어를 소개한다.
4장, ‘데이터 선택과 범위’에서는 하이브에 데이터의 쿼리, 연결, 범위를 요청함으로써 데이터를 찾는 방법을 보여준다.
5장, ‘데이터 조작’에서는 하이브의 데이터를 변경, 이동, 정렬, 변환하는 과정을 설명한다.
6장, ‘데이터 집계와 샘플링’에서는 분석 함수, 윈도우 기능, 샘플 절을 사용해 집계하는 방법과 샘플링하는 방법을 설명한다.
7장, ‘성능 고려 사항’에서는 설계, 파일 포맷, 압축, 저장소, 쿼리, 작업 관점에서 성능 고려사항에 대한 모범 사례를 소개한다.
8장, ‘확장성 고려 사항’에서는 사용자 정의 함수, 스트리밍, 직렬화, 역직렬화를 생성해서 하이브를 확장하는 방법을 다룬다.
9장, ‘보안 고려 사항’에서는 인증, 권한, 암호화 관점으로 하이브의 보안 영역을 소개한다.
10장, ‘다른 툴과의 연동’에서는 기타 빅데이터 툴과 어떻게 연동할 수 있는지를 다룬다. 하이브 배포 버전의 주요 이정표를 살펴본다.
지은이의 말
빅데이터 분석에서 하이브에 대한 관심이 늘고 있는 것은 하둡 위에서 동작하는 하이브가 빅데이터의 저장, 계산, 분석에 관한 최신 데이터 솔루션이기 때문이다. SQL 같은 문법은 하이브를 쉽게 배울 수 있게 하고, 빅데이터 기반에 상호작용하는 SQL 질의에 대한 표준으로도 자주 채택되고 있다. 하이브에서는 고급 코딩 기술뿐 아니라 복잡한 빅데이터 분석까지 다양한 기능을 사용 할 수 있다. 하이브의 높은 성숙도는 하둡을 넘어 점차 다른 컴퓨팅 프레임워크 간의 의미 있는 아키텍처와 기능을 통합하고, 공유할 수 있게 할 것이다.
목차
목차
- 1장. 빅데이터와 하이브 소개
- 짧은 역사
- 빅데이터의 소개
- 관계형 데이터베이스와 NoSQL vs 하둡
- 배치, 실시간, 스트림 처리
- 하둡 생태계의 개요
- 하이브 개요
- 요약
- 2장. 하이브 환경 설정
- 아파치에서 하이브 설치하기
- 외부 업체 패키지에서 하이브 설치하기
- 클라우드에서 하이브 시작하기
- 하이브 커맨드 라인과 비라인 사용하기
- 하이브 통합 개발 환경
- 요약
- 3장. 데이터 정의와 설명
- 하이브의 데이터 타입 이해하기
- 데이터 타입 변환
- 하이브 데이터 정의 언어
- 하이브 데이터베이스
- 하이브의 내부 및 외부 테이블
- 하이브 파티션
- Hive buckets
- 하이브 뷰
- 요약
- 4장. 데이터 선택과 범위
- SELECT 문
- INNER JOIN 문
- OUTER JOIN과 CROSS JOIN
- 특수 조인: MAP JOIN
- 집합 명령: UNION ALL
- 요약
- 5장. 데이터 조작
- 데이터 교환 -LOAD
- 데이터 교환: INSERT
- 데이터 교환: EXPORT와 IMPORT
- ORDER와 SORT
- 명령어와 함수
- 트랜잭션
- 요약
- 6장. 데이터 집계와 샘플링
- 기초적인 집계: GROUP BY
- 고급 집계: GROUPING SETS
- 고급 집계: ROLLUP와 CUBE
- 집계 조건: HAVING
- 분석 함수
- 샘플링
- 요약
- 7장. 성능 고려 사항
- 성능 유틸리티
- EXPLAIN 문
- ANALYZE 문
- 설계 최적화
- 파티션 테이블
- 버킷 테이블
- 인덱스
- 데이터 파일 최적화
- 파일 포맷
- 압축저장소 최적화
- 작업과 쿼리 최적화
- 로컬 모드
- JVM 재사용
- 병렬 실행
- 작업 최적화
- 일반 조인
- 맵 조인
- 버킷 맵 조인
- 정렬 합병 버킷 조인
- 정렬 합병 버킷 맵 조인
- 왜곡 조인
- 요약
- 8장. 확장성 고려 사항
- 사용자 정의 함수
- UDF 코드 템플릿
- UDAF 코드 템플릿
- UDTF 코드 템플릿
- 개발과 배포
- 스트리밍
- SerDe
- 요약
- 9장. 보안 고려 사항
- 인증
- 메타 저장소 서버 인증
- HiveServer2 인증
- 권한레거시 권한 모드
- 저장소 기반 권한 모드
- SQL 표준 기반 모드
- 암호화
- 요약
- 10장. 다른 툴과의 연동
- JDBC / ODBC 커넥터
- HBase
- Hue
- HCatalog
- 주키퍼
- 우지
- 하이브 로드맵