NoSQL 프로그래밍
도서명:NoSQL 프로그래밍
저자/출판사:샤샨크,티와리/위키북스
쪽수:464쪽
출판일:2013-01-30
ISBN:9788998139117
목차
[1부] 시작하기
▣ 01장: NoSQL장: 정의와 필요성
정의 및 소개
- 배경 및****간의 역사
- 빅 데이터
- 확장성
- 맵 리듀스의 정의 및 소개
순서 정렬된 칼럼 지향 저장소
키/값 저장소
도큐먼트 데이터베이스
그래프 데이터베이스
정리
▣ 02장: 헬로 NoSQL장: 첫 발 담그기
첫 인상: 두 개의 간단한 예제 살펴보기
- 간단한 영속성 사용자 설정 데이터셋
- 자동차 제조사 및 모델 데이터의 저장
언어 바인딩 활용
- 몽고디비 드라이버
- 쓰리프트 처음 살펴보기
정리
▣ 03장: NoSQL과의 인터페이싱 및 상호작용
SQL이 없다면 무엇을 사용할까?
- 데이터 저장 및 접근
- 몽고디비에서의 데이터 저장 및 접근
- 몽고디비 쿼리
- 레디스를 활용한 데이터 저장 및 접근
- 레디스 쿼리
- HBase에서의 데이터 저장 및 접근
- HBase 조회
- 카산드라에서의 데이터 저장 및 접근
- 아파치 카산드라 조회
NoSQL 데이터 저장소용 언어 바인딩
- 쓰리프트 활용
- 자바용 언어 바인딩
- 파이썬용 언어 바인딩
- 루비용 언어 바인딩
- PHP용 언어 바인딩
정리
[2부] NoSQL 기본 학습
▣ 04장: 저장소 아키텍처의 이해
칼럼 지향 데이터베이스의 활용
- 관계형 데이터베이스에서의 테이블 및 칼럼 사용
- RDBMS와 대조적인 칼럼 데이터베이스
- 키/값 쌍의 중첩 맵으로서의 칼럼 데이터베이스
- 웹 테이블
HBASE 분산 저장소 아키텍처
도큐먼트 저장소의 내부
- 메모리 매핑된 파일을 통한 데이터 저장
- 몽고디비에서 컬렉션 및 인덱스 사용에 대한 가이드라인
- 몽고디비의 안전성 및 지속성
- 수평적 확장
MEMCACHED 및 레디스의 키/값 저장소의 의미
- Memcached의 내부 들여다보기
- 레디스 내부
궁극적으로 일관적인 비관계형 데이터베이스
- 일관적 해싱
- 객체 버전 관리
- 가십 기반 멤버십과 힌티드 핸드오프
정리
▣ 05장: CRUD 작업의 수행
레코드의 생성
- 도큐먼트 지향 데이터베이스에서의 레코드 생성
- 칼럼 지향 데이터베이스의 생성 작업
- 키/값 맵에서의 생성 작업
데이터 접근
- 몽고디비에서의 도큐먼트 접근
- HBase에서의 데이터 접근
- 레디스 쿼리
데이터 업데이트 및 삭제
- 몽고디비, HBase, 레디스에서의 데이터 업데이트 및 수정
- 제한된 원자성과 트랜잭션 정합성
정리
▣ 06장: NoSQL 저장소 쿼리
SQL과 몽고디비 쿼리 기능의 유사성
- 무비렌즈 데이터의 로드
- 몽고디비의 맵리듀스
HBase 같은 칼럼 지향 데이터베이스에서의 데이터 접근
- 역사적인 일간 시장 자료
레디스 데이터 저장소의 쿼리
정리
▣ 07장: 데이터 저장소 수정 및 변화 관리
도큐먼트 데이터베이스의 변경
- 스키마 없는 유연성
- 몽고디비에서의 데이터 내보내기/불러오기
칼럼 지향 데이터베이스의 스키마 발전
HBASE의 데이터 불러오기/내보내기
키/값 저장소에서의 데이터 진화
정리
▣ 08장: 인덱싱 및 데이터셋 정렬
데이터베이스 인덱스와 관련한 내부 개념
몽고디비의 인덱싱 및 정렬
몽고디비에서의 인덱스 활용
- 복합 키와 임베디드 키
- 고유 인덱스 및 희소 인덱스의 생성
- 키 기반 검색과 멀티키
카우치디비의 인덱싱 및 정렬
- 카우치디비의 B 트리 인덱스
아파치 카산드라의 인덱싱
정리
▣ 09장: 트랜잭션 관리 및 데이터 정합성
RDBMS와 ACID
- 격리 수준과 전략
분산 ACID 시스템
- 일관성
- 가용성
- 분할 지속성
CAP 이론의 확인
- 가용성의 희생
- 분할 지속성의 희생
- 일관성의 희생
몇몇 NoSQL 제품의 일관성 구현체
- 몽고디비의 분산 일관성
- 카우치디비의 궁극적인 일관성
- 아파치 카산드라의 궁극적인 일관성
- 멤베이스의 일관성
정리
[3부] NoSQL 실력 쌓기
▣ 10장: 클라우드에서의 NoSQL 활용
구글 앱 엔진 데이터 저장소
- GAE 파이썬 SDK장: 설치, 설정, 시작하기
- GAE를 위한 파이썬의 데이터 모델링
- 쿼리 및 인덱스
- 지원하는 필터와 결과의 정렬
- 자바 앱 엔진 SDK 살펴보기
아마존 심플디비
- 심플디비 시작하기
- REST API의 활용
- 자바를 활용한 심플디비 접근
- 루비 및 파이썬을 통한 심플디비 상호작용
정리
▣ 11장: 맵리듀스를 활용한 확장 가능 병렬 처리
맵리듀스의 이해
- 각 종목별 최고가 찾기
- 카우치디비로의 NYSE 마켓 데이터 업로드
HBASE의 맵리듀스 활용
맵리듀스의 가능성과 아파치 머하웃
정리
▣ 12장: 하이브를 활용한 빅 데이터 분석
하이브 기본
다시 영화 평점으로
익숙한 SQL 작업
하이브 QL에서의 조인
- 설명 플랜
- 파티션 테이블
정리
▣ 13장: 데이터베이스 내부 살펴보기
몽고디비의 내부
- 몽고디비 와이어 프로토콜
- 도큐먼트의 삽입
- 컬렉션 조회
- 몽고디비 데이터베이스 파일
멤베이스 아키텍처
하이퍼테이블의 내부
- 정규식 지원
- 블룸 필터
아파치 카산드라
- p2p 모델
- 가십 및 안티엔트로피 기반
- 빠른 쓰기
- 힌티드 핸드오프
버클리 디비
- 저장소 설정
정리
[4부] NoSQL 마스터
▣ 14장: NoSQL 제품의 선택
NOSQL 제품 비교
- 확장성
- 트랜잭션 정합성 및 일관성
- 데이터 모델링
- 쿼리 지원
- 접근 및 인터페이스 가용성
성능 벤치마크
- 50/50 읽기 및 업데이트
- 95/5 읽기 및 업데이트
- 스캔
- 확장성 테스트
- 하이퍼테이블 테스트
맥락 비교
정리
▣ 15장: 공존
NOSQL 솔루션으로서의 MySQL 활용
일반적으로 불변하는 데이터 저장소
- 페이스북의 다언어 영속성
- 데이터 웨어하우싱 및 비즈니스 인텔리전스
웹 프레임워크와 NoSQL
- 레일즈를 통한 NoSQL 활용
- 장고를 통한 NoSQL 활용
- 스프링 데이터의 활용
RDBMS에서 NOSQL로의 이전
정리
▣ 16장: 성능 튜닝
병렬 알고리즘의 목적
- 지연 시간 감소의 의미
- 처리량을 늘리는 방법
- 선형적 확장 가능성
확장성에 영향을 미치는 방정식
- 암달의 법칙
- 리틀의 법칙
- 메시지 비용 모델
파티셔닝
이기종 환경에서의 스케줄링
추가적인 맵리듀스 튜닝
- 통신 부담
- 압축
- 파일 블록 크기
- 병렬 복사
HBASE 코프로세서
블룸 필터 활용
정리
▣ 17장: 툴과 유틸리티
RRDTOOL
나기오스
스크라이브
플룸
추크와
피그
- 피그 인터페이스 활용
- 피그 라틴의 기본
노드툴
OPENTSDB
솔란드라
허밍버드와 C5T
지오카우치
알케미 데이터베이스
웹디스
정리
▣ 부록: 툴과 유틸리티
하둡의 설치 및 설정
- 하둡 설치
- 단일 노드 하둡 설정
- 의사 분산 모드 설정
HBASE 설치 및 설정
하이브의 설치 및 설정
- 하이브 설정
- 하둡 설정 오버레이
하이퍼테이블의 설치 및 설정
- FHS 호환을 위한 하이퍼테이블 설정
- 하둡과 하이퍼테이블 설정
몽고디비의 설치 및 설정
- 몽고디비 설정
카우치디비의 설치 및 설정
- 우분투 10.04에서 소스로부터 카우치디비 설치하기
레디스의 설치 및 설정
카산드라의 설치 및 설정
- 카산드라 설정
- 카산드라용 log4j 설정
- 소스를 통한 카산드라 설치
멤베이스 서버 및 MEMCACHED의 설치 및 설정
나기오스 설치 및 설정
- 나기오스 내려받기 및 빌드
- 나기오스 설정
- 나기오스 플러그인의 컴파일 및 설치
RRDTOOL의 설치 및 설정
MySQL용 핸들러 소켓 설치