서브메뉴

본문

데이터는 언제나 옳다 (대규모 데이터 처리와 분석 실무,유스케이스별 빅데이터 및 NoSQL 기술 가이드)
데이터는 언제나 옳다 (대규모 데이터 처리와 분석 실무,유스케이스별 빅데이터 및 NoSQL 기술 가이드)
저자 : 마이클 마누체흐리
출판사 : 위키북스
출판년 : 2014
ISBN : 9788998139551

책소개

위키북스 IT Leaders 시리즈 20권. 대용량 데이터 분석은 이제 거의 모든 비즈니스에서 매우 중요하다. 모바일과 소셜 기술은 대용량 데이터를 만들어내고 있다. 분산 클라우드 컴퓨팅은 그와 같은 대용량 데이터를 저장하고 분석할 수 있는 자원을 제공하고 있다. 전문가들은 NoSQL 데이터베이스를 비롯해 완전히 새로운 기술들로 무장하고 있다.



이 책은 모든 빅데이터 의사결정자, 개발자, 그리고 전략가들을 위한 완전히 실용적이고 필수적인 가이드를 제시한다. 대용량 데이터를 다루려면 특화된 기술이 필요하고, 각 기술에는 트레이드오프와 해결해야 할 과제가 있다. 이 책은 공통적인 활용 사례 측면에서 데이터 문제와 성공적인 솔루션을 설명하는 내용으로 구성돼 있다.



빅데이터 성공으로 이끄는 네 가지 원칙과 피해야 할 공통적인 함정, 협업을 증진하는 법과 데이터 사일로와 관련해서 피해야 할 문제, 테라바이트 규모의 데이터를 효율적이고 경제적으로 제공하고 공유하는 법, 급속한 데이터 증가에 대처하기 위해 무한대로 확장 가능한 솔루션 구축하기 등을 다루고 있다.
[알라딘에서 제공한 정보입니다.]

출판사 서평

인터넷의 보급과 함께 데이터의 역습이 시작된 이래로 모바일 인터넷과 사물 인터넷이 일상화되면서 이제는 빅데이터의 역습마저 시작되고 있다. 향후 사물 인터넷의 시대가 도래한다면 빅데이터를 넘어 스마트데이터의 역습도 대비해야 한다. 오래전부터 데이터는 우리의 삶에 많은 영향을 주었고, 빅데이터는 훨씬 더 큰 영향을 주고 있는데, 이것은 비단 비즈니스 세계뿐 아니라 일상 생활에서 내리는 모든 의사결정이 데이터를 기반으로 이뤄져야 한다는 것을 의미한다. 이제 모든 사람과 조직은 데이터를 적시에 바르게 다루는 기술과 능력을 보유해야 한다.

불과 3~4년 전만 하더라도 빅데이터를 다룬다는 것, 즉 데이터를 정의하고 수집하고 분석 및 해석해서 의사결정을 내리는 일련의 과정이 소수의 전문가 그룹이나 구글이나 페이스북 같은 거대 IT기업의 전유물처럼 느껴졌다. 하지만 불과 몇 년 사이에 처리해야 할 데이터의 양과 종류가 기하급수적으로 늘어났고, 또 이를 위한 다양한 기술과 오픈소스 프로젝트가 등장하면서 이제 데이터는 누구나 접근할 수 있는 공공재가 되고 있으며, 빅데이터 기술은 누구나 쉽게 다룰 수 있는 것으로 여겨지고 있다.

그러나 데이터 및 기술을 누구나 사용할 수 있게 됐지만 역설적으로 너무나 많은 오픈소스 기술로 인해 데이터 기술을 처음 접하는 개인이나 빅데이터 기술을 비즈니스에 활용하려는 기업들은 어떤 기술을 언제 어떻게 활용해야 할지 갈피를 잡지 못하는 상황에 이르렀다. 이러한 데이터/기술의 혼란기에 마이클 마누체흐리가 자신의 오랜 경험을 바탕으로 빅데이터 기술과 흐름을 잘 정리한 『데이터는 언제나 옳다! 대규모 데이터 처리와 분석 실무』는 빅데이터 기술을 배우려는 개발자에게 좋은 길라잡이가 되고 깊은 통찰을 줄 것이다.

[출판사 리뷰]

▣ 빅데이터의 효과적인 활용: 실제 활용 사례, 예제, 실용적인 코드, 그리고 상세 해법들


대용량 데이터 분석은 이제 거의 모든 비즈니스에서 매우 중요하다. 모바일과 소셜 기술은 대용량 데이터를 만들어내고 있다. 분산 클라우드 컴퓨팅은 그와 같은 대용량 데이터를 저장하고 분석할 수 있는 자원을 제공하고 있다. 전문가들은 NoSQL 데이터베이스를 비롯해 완전히 새로운 기술들로 무장하고 있다. 하지만 지금까지 제목에 ‘빅데이터’라는 단어가 포함된 대부분의 책에서는 비즈니스 논쟁이나 제품 카탈로그 이상의 내용을 다루지 않았다. 『데이터는 언제나 옳다! 대규모 데이터 처리와 분석 실무』는 다르다. 이 책은 모든 빅데이터 의사결정자, 개발자, 그리고 전략가들을 위한 완전히 실용적이고 필수적인 가이드를 제시한다.

★ 이 책에서 다루는 내용 ★

◎ 빅데이터 성공으로 이끄는 네 가지 원칙과 피해야 할 공통적인 함정
◎ 협업을 증진하는 법과 데이터 사일로와 관련해서 피해야 할 문제
◎ 테라바이트 규모의 데이터를 효율적이고 경제적으로 제공하고 공유하는 법
◎ 급속한 데이터 증가에 대처하기 위해 무한대로 확장 가능한 솔루션 구축하기
◎ 대중이 만들어내는 데이터를 수집하기 위한, 레디스를 이용한 NoSQL 웹 애플리케이션 구축
◎ 하둡, 하이브, 샤크를 통해 대용량 데이터를 대상으로 분산 질의 실행
◎ 구글 빅쿼리를 이용한 데이터 대시보드 구축
◎ 고급 시각화 기법을 이용한 대용량 데이터 탐색
◎ 대용량 데이터를 변환하기 위한 효율적인 파이프라인 구축
◎ 아파치 피그와 캐스케이딩 자바 라이브러리를 이용한 복잡한 데이터 처리 자동화
◎ 정보를 분류하고 추천하고 예측하기 위한 머신 러닝 적용
◎ 대용량 데이터를 대상으로 통계분석을 수행하기 위한 R 활용
◎ 파이썬과 판다스를 활용한 효율적인 분석 워크플로우 구축
◎ 솔루션의 직접 구축, 구입, 아웃소싱 시점을 결정하는 구매 전략 수립
◎ 확장 가능한 데이터 기술의 트렌드와 수렴, 진화하는 데이터 과학자의 역할 조망

★ 이 책의 구성 ★

대용량 데이터를 다루려면 특화된 기술이 필요하고, 각 기술에는 트레이드오프와 해결해야 할 과제가 있다. 이 책은 공통적인 활용 사례 측면에서 데이터 문제와 성공적인 솔루션을 설명하는 내용으로 구성돼 있다. 1부, “빅데이터 시대의 방향”은 1장, “데이터를 성공적으로 다루는 네 가지 법칙"을 담고 있다. 1장에서는 왜 빅데이터가 중요하고 왜 새로운 기술들이 많은 기회만큼 갖가지 문제를 만들어내는지 설명한다. 이 책의 전반에서 다루는 “확장 가능한 애플리케이션 구축에 집중하기", “개별 사일로가 아닌 협업을 위한 툴 구축하기", “기술을 사용하기에 앞서 활용 사례 고민하기", “필요하지 않을 경우 인프라 구축하지 않기" 등과 같은 공통된 주제를 소개한다.

2부, “대용량 데이터의 수집 및 공유”에서는 대용량 데이터를 수집하고 공유하는 것과 관련된 활용 사례를 설명한다. 2장, “대용량 미가공 데이터의 호스팅과 공유”에서는 겉으로 보기에는 쉬운, 많은 양의 파일을 서비스하고 공유하는 방법을 설명한다. 올바른 데이터 포맷을 정하는 것은 매우 중요하다. 2장에서는 데이터 공유 방법에 관한 적절한 의사결정을 내리는 데 고려해야 할 사항도 다룬다. 그뿐만 아니라 대용량 데이터를 경제적으로 호스팅하는 데 필요한 인프라의 종류도 다룬다. 데이터를 한 곳에서 다른 곳으로 옮길 때 필요한 데이터 직렬화 포맷을 설명하면서 2장을 마무리한다.

3장, “대중이 생성한 데이터를 수집하기 위한 NoSQL 기반의 웹 애플리케이션 구축하기”에서는 확장 가능한 데이터베이스 기술 분야를 소개한다. 관계형 데이터베이스와 비관계형 데이터베이스의 역사를 비롯해 각 기술의 특징을 설명한다. 많이 사용하는 레디스(Redis) 데이터베이스를 소개하고, 여러 대의 장비에 설치된 레디스의 샤딩(sharding) 전략을 다룬다.

대용량 데이터 분석을 위해서는 여러 기술을 사용하고 관련된 지식을 습득해야 하며, 그로 인해 때로는 데이터를 호환되지 않는 여러 곳에 저장하기도 한다. 4장 “데이터 사일로를 다루는 전략”에서는 데이터 사일로가 존재하는 이유와 관련 문제를 극복하는 전략을 다룬다. 또한 데이터 사일로의 이점도 설명한다.

정보가 수집, 저장, 공유되면 수집된 데이터에 대한 통찰이 필요하다. 3부, “데이터에 대해 질문하기”에서는 대용량 데이터 집합에 관해 질문하기와 관련된 활용 사례와 기술을 다룬다. 대용량 데이터를 대상으로 질의하려면 분산 솔루션이 필요할 때가 많다. 5장, “하둡, 하이브, 샤크를 이용해 대용량 데이터에 대해 질문하기”에서는 계속 증가하는 데이터 집합을 대상으로 질의를 수행하는 데 필요한 유명한 확장 가능한 도구를 소개한다. 5장에서는 SQL과 비슷한 질의를 하둡에서 실행 가능한 맵리듀스 잡(job)으로 변환하는 도구인 아파치 하이브(Apache Hive)를 다룬다.

때로는 데이터를 반복해서 질의할 필요가 있다. 분석형 데이터베이스는 빠르게 데이터를 대상으로 질문하고 결과를 검색하는 데 최적화된 소프트웨어다. 6장, “구글 빅쿼리를 이용한 데이터 대시보드 구축하기"에서는 분석형 데이터베이스 활용 사례를 보여주고, 어떻게 하둡과 같은 배치 처리 도구의 보조수단으로 사용되는지 설명한다. SQL과 비슷한 문법을 사용하는 완전히 관리되는 분석형 데이터베이스인 빅쿼리를 소개한다. 6장에서는 웹 기반 대시보드의 엔진 역할을 하는 빅쿼리 API의 사용법도 설명한다.

데이터 시각화는 역사가 오래된 유서 깊은 분야다. 7장, “대용량 데이터 탐색을 위한 데이터 시각화 전략"에서는 대용량 데이터에 시각화 도구를 사용하는 것의 장점과 잠재적 위험을 소개한다. 7장에서는 데이터의 규모가 비약적으로 커질 때 발생하는 시각화 문제와 널리 사용되는 데이터 분석 기술을 이용하는 실용적인 시각화 도구를 설명한다.

확장 가능한 데이터 기술을 이용할 때의 공통적인 주제는 각 소프트웨어 도구가 각기 다른 활용 사례에 최적화돼 있다는 점이다. 그러므로 대용량 데이터를 하나의 포맷에서 다른 포맷으로 변환하는 것이 일반적인 활용 사례다. 4부, “데이터 파이프라인 구축하기”에서는 데이터 변환을 위한 파이프라인과 워크플로우를 구현하는 주제를 다룬다. 8장, “하나로 합치기: 맵리듀스 데이터 파이프라인"에서는 대용량 데이터를 처리하기 위해 하둡 맵리듀스 프레임워크를 사용하는 개념을 소개한다. 하둡 스트리밍 API와 파이썬 같은 스크립트 언어를 이용해 실용적이고 손쉽게 활용 가능한 맵리듀스 애플리케이션을 만드는 방법을 설명한다.

데이터 처리 작업이 매우 복잡할 경우 변환 작업을 자동화하는 워크플로우 도구를 사용할 필요가 있다. 9장, “피그와 캐스케이딩을 활용한 데이터 변환 워크플로우 구축"에서는 매우 복잡한 맵리듀스 작업을 표현하는 두 기술을 소개한다. 아파치 피그는 복잡하고 여러 단계에 걸친 맵리듀스 작업을 쉽게 만들어주는 워크플로우 표현 언어다. 또한 캐스케이딩(Cascading)도 소개하는데, 캐스케이딩은 하둡에서 복잡한 데이터 워크플로우 애플리케이션을 구축하는 데 유용한 자바 라이브러리다.

데이터의 규모가 매우 커지면 컴퓨터가 사람들에게 유용한 정보를 제공해주길 바랄 것이다. 기존 데이터 모델을 기반으로 유입되는 정보를 분류, 추천, 예측하기 위해 기계 학습을 활용하면 매우 유용하다. 5부, “대용량 데이터를 위한 기계 학습”에서는 10장, “머하웃을 이용한 대용량 분류기 구축하기”를 통해 기계 학습 분야를 소개한다. 또한 10장에서는 흔히 쓰이는 기계 학습 작업인 텍스트 분류에 아파치 머하웃 기계 학습 라이브러리를 이용하는 것을 시연한다.
데이터의 품질과 의미를 해석하는 것도 통계의 목표 중 하나다. 6부, “대용량 데이터를 위한 통계 분석”에서는 대용량 데이터의 통계 분석을 위한 도구와 활용 사례를 소개한다. R 프로그램은 통계 분석에 널리 사용되는 대표적인 오픈소스 언어다. 11장, “대용량 데이터를 위한 R 사용하기”에서는 R을 이용해 대용량 데이터를 효과적으로 사용하는 일반화된 활용 사례를 다룬다. 11장에서는 데이터의 규모가 가용한 시스템 메모리보다 더 커졌을 때 유용한 R 라이브러리를 다룬다. 또한 하둡과 R을 연동하는 방법도 설명한다.

R이 매우 유명하긴 하지만 데이터 분석이라는 과제를 해결하기 위해 범용 프로그래밍 언어를 사용하는 것은 장점이 있다. 12장, “파이썬과 판다스를 활용한 분석 워크플로우 구축”에서는 날로 인기를 얻고 있는 파이썬 분석 기술을 소개한다. 또한 시계열 데이터를 분석하기 위한 판다스(Pandas) 라이브러리를 비롯해 공유와 협업을 위한 스크립트 환경인 아이파이썬 노트북(iPython notebook)의 사용법도 소개한다.

데이터 관련 과제가 모두 기술과 관련된 것은 아니다. 7부, “향후 전망”에서는 데이터 분석 혁신에 직면한 기업의 불확실성을 다루기 위한 실용적인 전략을 소개한다. 13장, “언제 구축하고, 언제 구매하고, 언제 아웃소싱할 것인가?”에서는 매우 혁신적인 데이터 분석을 위한 구매결정 전략을 다룬다. 또한 오픈소스 기술을 활용해 데이터 솔루션을 직접 구축하는 방법의 장단점도 간단히 다룬다.

마지막으로 14장, “데이터 기술의 미래 트렌드”에서는 혁신을 자극하는 몇몇 요소를 비롯해 확장 가능한 데이터 기술의 현재 트렌드를 소개한다. 또한 소위 데이터 과학자(Data Scientist)라고 하는 직무의 역할과 다양한 데이터 기술의 융합을 심도 있게 다룬다.
- 서문 중에서
[교보문고에서 제공한 정보입니다.]

목차정보

[1부] 빅데이터 시대의 방향



▣ 1장: 데이터를 성공적으로 다루는 네 가지 법칙

언제부터 데이터가 중요해졌는가?

데이터와 단일 서버

빅데이터 트레이드오프

- 무한대로 확장 가능한 루션을 구축하라

- 인터넷을 통해 데이터를 공유할 수 있는 시스템을 구축하라

- 인프라가 아닌 솔루션을 구축하라

- 데이터에서 가치를 찾는 것에 집중하라

빅데이터 파이프라인의 해부

궁극의 데이터베이스

정리



[2부] 대용량 데이터의 수집 및 공유



▣ 2장: 대용량의 미가공 데이터를 호스팅하고 공유하기

파일 더미에서 괴로워하다

- 다량의 파일을 공유할 때 직면하는 문제

스토리지: 인프라 서비스

- 네트워크는 느리다

적합한 데이터 포맷 선택하기

- XML: 데이터, 스스로 표현하다

- JSON: 프로그래머의 선택

문자 인코딩

- 파일 변환

데이터 이동: 데이터 직렬화 포맷

- 아파치 쓰리프트와 프로토콜 버퍼

- 아파치 아브로

정리



▣ 3장: 대중이 생성한 데이터를 수집하기 위한 NoSQL 기반의 웹 애플리케이션 구축하기

관계형 데이터베이스: 명령과 제어

- 관계형 데이터베이스 ACID 테스트

관계형 데이터베이스와 인터넷 비교

- CAP 이론과 BASE

비관계형 데이터베이스 모델

- 키-값 데이터베이스

- 문서 저장소

쓰기 속도 최적화: 레디스

여러 레디스 인스턴스에 걸쳐 샤딩하기

- 트윔프록시를 이용한 자동 파티셔닝

- 레디스의 대안

NewSQL: 코드의 귀환

정리



▣ 4장: 데이터 사일로를 다루는 전략

전문용어 투성이인 웨어하우스

- 현실에서의 문제

- 데이터 규약과 안전을 위한 계획하기

- 데이터 웨어하우스 입문하기

- 데이터 웨어하우스의 마법 주문: 추출하고 변환하고 읽는다(ETL )

하둡: 웨어하우스의 코끼리

데이터 사일로에 좋은 면도 있다

- 기술이 아닌 데이터 도전과제에 집중한다

- 직원들이 직접 질문할 수 있는 권한 주기

- 데이터 사일로를 연결하는 기술에 투자하기

융합: 데이터 사일로의 끝

룬의 비즈니스 인텔리전스 시스템은 실현될 것인가?

정리



[3부] 데이터에 관해 질문하기



▣ 5장: 하둡, 하이브, 샤크를 이용해 대용량 데이터 집합에 대해 질문하기

데이터 웨어하우스란 무엇인가?

아파치 하이브: 하둡을 위한 대화식 질의하기

- 하이브 활용 사례

- 하이브 사용하기

- 하이브로 추가 데이터 소스 사용하기

샤크: RAM 속도로 질의하기

클라우드에서의 데이터 웨어하우스

정리



▣ 6장: 구글 빅쿼리를 이용한 데이터 대시보드 구축하기

분석형 데이터베이스

드리멜: 구글의 혁신 전파하기

- 드리멜과 맵리듀스는 어떻게 다른가?

빅쿼리: 서비스로서의 데이터 분석

- 빅쿼리의 질의 언어

맞춤형 데이터 대시보드 구축하기

- 빅쿼리 API 접근 인증하기

- 질의를 실행하고 결과 받기

- 질의 결과 캐싱하기

- 시각화 추가하기

분석형 질의 엔진의 미래

정리



▣ 7장: 대용량 데이터 탐색을 위한 데이터 시각화 전략

주의를 요하는 이야기: 데이터를 이야기로 바꾸기

인간 규모 대 컴퓨터 규모

- 상호작용성

대화식 데이터 애플리케이션 구축하기

R과 ggplot2를 이용한 대화식 시각화

- matplotlib: 파이썬을 이용한 2D 차트

- D3.js: 웹을 위한 대화식 시각화

정리



[4부] 데이터 파이프라인 구축하기



▣ 8장: 하나로 합치기: 맵리듀스 데이터 파이프라인

데이터 파이프라인이란 무엇인가?

- 작업에 적합한 도구

하둡 스트리밍을 이용한 데이터 파이프라인

- 맵리듀스와 데이터 변환

- 가장 간단한 파이프라인: stdin에서 stdout으로

단일 맵리듀스 변환

- 미가공 NVSS 데이터에서 관련 정보 추출하기: 맵 단계

- 월별 출생 수 세기: 리듀서 단계

- 로컬에서 맵리듀스 파이프라인 테스트하기

- 하둡 클러스터에서 맵리듀스 잡 실행하기

복잡성 관리: 하둡용 파이썬 맵리듀스 프레임워크

- mrjob을 이용해 하둡 스트리밍 예제 재작성하기

- 여러 단계 파이프라인 구축하기

- 엘라스틱 맵리듀스에서 mrjob 스크립트 실행하기

- 파이썬 기반의 대안 맵리듀스 프레임워크

정리



▣ 9장: 피그와 캐스케이딩을 이용한 데이터 변환 워크플로우 구축하기

실전에서의 대규모 데이터 워크플로우

복잡하다: 다단계 맵리듀스 변환

- 아파치 피그: 복잡함을 제거하다

- 대화식 그룬트 셸을 이용해 피그 실행하기

- 데이터 워크플로우를 필터링하고 최적화하기

- 배치 모드로 피그 스크립트 실행하기

캐스케이딩: 견고한 데이터 워크플로우 애플리케이션 만들기

- 소스과 싱크 개념으로 생각하기

- 캐스케이딩 애플리케이션 만들기

- 캐스케이드 만들기: 간단한 JOIN 예제

- 하둡 클러스터에 캐스케이딩 애플리케이션 배포하기

피그와 캐스케이딩 중에서 선택해야 할 때

정리



[5부] 대용량 데이터를 위한 기계 학습



▣ 10장: 머하웃을 이용한 대용량 분류기 구축하기

컴퓨터는 미래를 예측할 수 있는가?

기계 학습의 도전과제

- 베이지안 분류

- 클러스터링

- 추천 엔진

아파치 머하웃: 확장 가능한 기계 학습

- 텍스트 분류에서 머하웃 사용하기

MLBase: 분산 기계 학습 프레임워크

정리



[6부] 대용량 데이터에 대한 통계 분석



▣ 11장: 대용량 데이터에 R 활용하기

통계는 왜 섹시한가?

- 대용량 데이터에서 R이 지닌 한계

- R 데이터 프레임과 행렬

대용량 데이터를 다루는 전략

- 큰 행렬 연산: bigmemory와 biganalytics

- ff: 메모리보다 큰 데이터 프레임 다루기

- biglm: 대용량 데이터를 위한 선형 회귀 분석

- RHadoop: R에서 아파치 하둡에 접근하기

정리



▣ 12장: 파이썬과 Pandas를 이용한 분석 워크플로우 구축하기

데이터 동물원에서 뱀(Python )이 풀려나다

- 통계 계산을 위한 언어 선택

- 기존 코드 확장하기

- 도구와 테스팅

데이터 처리를 위한 파이썬 라이브러리

- NumPy

- SciPy: 파이썬을 위한 과학 컴퓨팅

- 이미지 데이터를 위한 SciPy 사용하기

- 판다스 데이터 분석 라이브러리

좀 더 복잡한 워크플로우 구축하기

- 잘못됐거나 누락된 레코드 처리하기

아이파이썬: 과학 컴퓨팅 도구의 완성

- 클러스터를 이용한 아이파이썬 병렬화하기

정리



[7부] 향후 전망



▣ 13장: 언제 구축하고, 언제 구매하고, 언제 아웃소싱할 것인가?

중복된 솔루션

데이터 문제 이해하기

구축 대 구매 문제를 위한 각본

- 이미 투자한 바는 무엇인가?

- 작게 시작하기

- 확장 계획하기

나만의 사설 데이터 센터

오픈소스 사용에 따른 비용 이해하기

정리



▣ 14장: 데이터 기술의 미래 트렌드

하둡: 파괴자와 피파괴자

모든 것은 클라우드 속에 있다

데이터 과학자의 흥망

융합: 궁극의 데이터베이스

문화의 융합

정리
[알라딘에서 제공한 정보입니다.]