Top

일래스틱서치 쿡북 3/e [170가지 단계별 레시피]

  • 원서명Elasticsearch 5.x Cookbook -Thrid Edition: Over 170 advanced recipes to search, analyze, deploy, manage, and monitor data effectively with Elaticsearch 5.x (ISBN 9781786465580)
  • 지은이알베르토 파로(Alberto Paro)
  • 옮긴이이재익, 최중연
  • ISBN : 9791161752587
  • 45,000원
  • 2019년 01월 31일 펴냄
  • 페이퍼백 | 872쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 오픈소스 프로그래밍

책 소개

요약

일래스틱서치를 처음 접하는 개발자나 운영자가 일래스틱서치의 전반적인 기능을 빠르게 이해할 수 있도록 구성한 책이다. 쿡북이라는 제목에서 알 수 있듯이, 각 기능의 레시피를 제공해 단계별로 쉽게 따라 할 수 있다. 이 책은 일래스틱서치에 대해 전혀 모르는 사람뿐 아니라, 플러그인 개발과 같은 중급 이상의 기능까지 다루고 있어서 이미 이를 사용해 본 개발자도 새로운 버전의 변화를 빠르게 살펴보거나 일부 잘 모르는 기능에 관해 접근하기 좋다.
원서의 경우 내용과 예제가 5.x를 기반으로 작성됐지만, 번역서에서는 일래스틱서치의 빠른 릴리즈로 최신 내용을 반영해 최근 정식 릴리즈된 6.5 버전을 기반으로 본문의 예제와 내용을 보완했다.

이 책에서 다루는 내용

■ 외부 플러그인을 올리고 배포하기 위한 최적의 일래스틱서치 클라우드 토폴로지 선택
■ 색인 단계를 완전히 제어하기 위한 맞춤형 매핑 개발
■ 색인과 도큐먼트 관리를 통한 복잡한 쿼리 작성
■ 분석 집계 실행을 통한 검색 결과의 최적화
■ 클러스터와 노드 성능 모니터링
■ 클러스터를 모니터링하기 위한 키바나 설치 및 플러그인으로 키바나 확장 ■ 자바, 스칼라, 파이썬, 빅데이터 애플리케이션을 일래스틱서치와 통합

이 책의 대상 독자

일래스틱서치를 시작하면서 동시에 일래스틱서치 지식을 향상시키려는 개발자를 위한 책이다. 이 책은 일래스틱서치 사용의 모든 측면을 살펴보고 일상적인 사용을 위한 솔루션과 힌트를 제공한다. 일래스틱서치 측면에 독자가 쉽게 초점을 맞추고 일래스틱서치 기능을 쉽게 기억하기 위해 예제의 복잡성을 낮췄다.
일래스틱서치와 자바, 스칼라, 파이썬 및 빅데이터 도구 통합을 다루는 후반부에는 애플리케이션에서 일래스틱서치의 기능을 통합하는 방법을 보여준다. 플러그인 개발에 관한 장에서는 일래스틱서치의 고급 사용법과 핵심 확장을 보여주므로 숙련된 자바 노하우가 필요하다.

이 책의 구성

1장, ‘시작하기’에서는 일래스틱서치의 기본 컨셉 및 일래스틱서치와 대화하는 방법에 관한 개요를 제공한다.
2장, ‘다운로드와 설정’에서는 간단한 설치에서 클라우드 설치까지 일래스틱서치를 사용하기 위한 기본 단계를 다룬다.
3장, ‘매핑 관리’에서는 색인과 검색 품질 모두 향상시키기 위해 데이터 필드를 올바르게 정의하는 방법을 다룬다.
4장, ‘기본 작업’에서는 일래스틱서치로 데이터를 수집하기 위해 필요한 가장 일반적인 동작과 데이터를 관리하는 방법을 배운다.
5장, ‘검색’에서는 검색과 정렬을 실행하고, 이와 관련한 API 호출을 알아본다.
6장, ‘텍스트 및 수치형 쿼리’에서는 일래스틱서치 검색 기능의 핵심인 텍스트와 수치형 필드에서의 검색 DSL 부분을 다룬다.
7장, ‘관계 및 지오 쿼리’에서는 연관 도큐먼트(자식/부모)와 지리적 위치 필드에서 작동하는 쿼리를 다룬다. 8장, ‘집계’에서는 사용자 경험을 향상시키고 일래스틱서치에 담긴 정보를 드릴다운(drill down)하기 위해 검색 결과에 대한 분석을 실행할 수 있는 일래스틱서치의 또 다른 기능을 살펴본다.
9장, ‘스크립팅’에서는 스크립팅을 사용해서 일래스틱서치를 사용자 정의하고, 일래스틱서치(검색, 집계, 수집)의 다른 부분에서 다양한 언어로 스크립팅 기능을 사용하는 방법을 알려준다. 일래스틱 팀이 개발한 새 스크립팅 언어인 페인리스에 주로 초점을 맞춘다.
10장, ‘클러스터와 노드 관리’에서는 흔히 발생하는 문제의 이해를 돕기 위해 클러스터 및 노드의 동작을 분석하는 방법을 살펴본다.
11장, ‘백업 및 복구’에서는 관리에 있어서 가장 중요한 요소 중 하나인 백업을 살펴본다. 분산된 백업을 관리하고 스냅샷을 복구하는 방법도 살펴본다.
12장, ‘사용자 인터페이스’에서는 일래스틱서치 6.4에 있어 가장 일반적인 사용자 인터페이스 중 두 가지를 설명한다. 주로 관리 기능에 사용하는 세레브로(Cerebro)와 일래스틱서치의 일반적인 UI 확장으로 엑스팩(X-Pack)을 사용하는 키바나를 사용해본다.
13장, ‘인제스트’에서는 인제스트 파이프라인을 통해 일래스틱서치에 데이터를 입력하는 일래스틱서치 5.x부터 소개된 인제스트 기능에 관해 알아본다.
14장, ‘자바 통합’에서는 REST와 네이티브 프로토콜을 사용해서 자바 애플리케이션에서 일래스틱서치와 통합하는 방법을 알아본다.
15장, ‘스칼라 통합’에서는 네이티브 자바 API에 기반을 둔 발전된 타입 안전(type safe)과 풍부한 기능을 제공하는 스칼라 라이브러리인 elastic4s를 사용해서 스칼라에서 일래스틱서치와 통합하는 방법을 알아본다.
16장, ‘파이썬 통합’에서는 일래스틱서치의 공식 파이썬 클라이언트의 사용 방법을 다룬다.
17장, ‘플러그인 개발’에서는 일래스틱서치 기능을 확장하기 위해 네이티브 플러그인을 만드는 방법을 알아본다. 몇 가지 예제는 플러그인 뼈대 설정, 프로세스, 빌드 프로세스를 보여준다.
18장, ‘빅데이터 통합’에서는 아파치 스파크와 아파치 피그 같은 일반적인 빅데이터 도구에서 일래스틱서치와 통합하는 방법을 살펴본다.

저자/역자 소개

지은이의 말

오늘날 표준 애플리케이션의 가장 일반적인 요구 사항은 검색과 분석 기능이다. 시장에서 이러한 수요에 부응하는 솔루션은 상용과 오픈소스 세계에서 모두 찾을 수 있다. 검색하기 위해 가장 많이 사용하는 라이브러리 중 하나는 아파치 루씬이다. 이 라이브러리가 아파치 솔라(Apache Solr), 인덱스탱크(Indextank), 일래스틱서치 같은 수많은 검색 솔루션의 기반이 된다.
일래스틱서치는 클라우드와 분산 컴퓨팅을 염두에 두고 만든 가장 강력한 솔루션 중 하나다. 컴패스(Compass, http://www.compass-project.org) 개발로 유명한 일래스틱서치의 주요 저자인 셰이 바논(Shay Banon)이 2010년 3월에 일래스틱서치 첫 버전을 발표했다. 따라서 일래스틱서치의 주요 범주는 검색 엔진이다. 또한 집계 프레임워크를 통해 데이터 저장소와 분석 엔진으로도 사용할 수 있을 정도로 많은 기능을 제공한다.
일래스틱서치는 JSON REST 기반, 검색과 분석 모두를 위한 분산된 접근 방식의 맵리듀스, 쉬운 설치와 플러그인을 통한 확장성 같은 수많은 혁신적인 기능을 제공한다.
2010년 개발하기 시작한 때로부터 최신 버전(6.5)에 이르기까지, 많은 시장에서 가장 많이 사용되는 데이터 저장소 중 하나가 된 제품으로 큰 발전을 했다. 이 책에서는 일래스틱서치에서 변경 사항과 많은 기능에 대해 깊이 들여다본다.
일래스틱서치는 지속해서 혁신을 거듭하는 제품이며, 새 기능은 일래스틱서치 회사와 일래스틱서치 사용자에 의해 플러그인(대부분 깃허브를 통해 배포한다)으로 출시된다. 단순성과 고급 기능 때문에 오늘날 IT 산업에 몸담은 많은 세계적인 주요 플레이어가 일래스틱서치를 사용하고 있다.
필자는 일래스틱서치가 시장에서 가장 강력하고 쉽게 사용 가능한 검색 솔루션 중 하나라고 생각한다. 이 책과 예제를 쓰면서, 나와 이 책의 감수자는 지식을 더 잘 관리하기 위해 지식과 열정, 모범 사례를 이 책을 통해 전달하려고 노력했다.

지은이 소개

알베르토 파로(Alberto Paro)

엔지니어이고 프로젝트 관리자겸 소프트웨어 개발자다. 현재 빅데이터 기술과 NoSQL 솔루션 기반 프리랜서 트레이너 및 컨설턴트로 일한다. 주로 빅데이터 처리, NoSQL, 자연어 처리, 신경망과 관련된 새롭게 떠오르는 솔루션과 애플리케이션 연구를 좋아한다. 여덟 살에 싱클레어 스펙트럼(Sinclair Spectrum)으로 베이식(BASIC) 프로그래밍을 시작해서 현재까지 다양한 운영체제, 애플리케이션, 프로그래밍 언어를 사용하며 많은 경험을 쌓았다.
『ElasticSearch Cookbook 2/e』(에이콘, 2016)의 저자며, 팩트출판사가 출판한 여러 서적의 기술 감수자를 맡았다.

옮긴이의 말

일래스틱서치는 검색엔진으로 시작했지만, 현업에서는 다양한 용도로 사용하고 있다. ELK 혹은 일래스틱 스택이라는 이름으로 로깅이나 모니터링을 위한 데브옵스 도구로 널리 사용하고 있고, 강력한 실시간 집계를 활용해 데이터 분석의 용도로도 많이 사용하고 있다. 국내에서 검색엔진으로 사용하는 사례도 많이 생겨서 노리(nori)라는 한국어 분석 플러그인도 정식으로 제공하고 있다. 엑스팩을 활용하면 최근 화두가 되고 있는 머신 러닝 엔진으로 활용할 수도 있다. 다양한 기능과 쉬운 설치, 그리고 런타임에 변경할 수 있는 다양한 설정과 확장성으로 빠른 시간에 대중화됐다. 업그레이드 속도도 상당이 빠르다. 일래스틱서치는 매달 마이너 버전을 업그레이드 하고 있고 매년 메이저 버전을 출시하는 등 새로운 버전을 통해 빠르게 기능을 개선하고 있다. 마이너 버전에서 조차 Breaking Changes가 있어서 새로운 버전의 기능을 모두 활용해 보기가 쉽지 않을 정도다.
이 책은 일래스틱서치를 처음 접하는 개발자나 운영자들이 일래스틱서치의 전반적인 기능을 빠르게 이해할 수 있도록 구성했다. ‘쿡북’이라는 제목에서처럼 각 기능들에 대해 레시피를 제공해서 독자들이 단계별로 쉽게 따라 할 수 있도록 구성했다. 일래스틱서치에 대해 전혀 모르는 사람뿐 아니라, 플러그인 개발과 같은 중급 이상의 기능까지 다루고 있어서 이미 사용해 본 개발자도 새로운 버전의 변화를 빠르게 살펴보거나 일부 잘 모르는 기능에 대해 쉽게 접근할 수 있는 책이다.
원서의 경우 내용과 예제가 5.x를 기반으로 작성됐다. 번역서가 출간될 즈음, 일래스틱서치의 빠른 릴리즈로 인해 고민에 빠졌다. 원서에 충실할 것인가? 최신 내용을 반영할 것인가? 고민 끝에, 최신 내용을 반영하기로 결정했고, 한국어판에서는 최근 정식 릴리즈된 6.5버전을 기반으로 본문의 예제와 내용을 보안했다. 서문을 쓰는 지금에도 새로운 버전을 릴리즈한 일래스틱처치가 한편으로는 원망스럽기도 하지만, 새로운 버전마다 사용자들이 기다리던 기능들을 빠르게 제공하는 노력에 감사한다.

옮긴이 소개

이재익

네이버에서 사내 로그 시스템과 일래스틱서치 클러스터 서비스를 개발 및 운영하고 있다. 최근에는 분산시스템 디버깅과 머신 러닝을 데브옵스 시스템에 활용하는 방법에 관심을 가지고 있다. 여가에는 가족들과 캠핑을 하거나 독서를 즐긴다. 공역서로는 에이콘 출판사에서 펴낸 『Elasticsearch in Action』(2016), 『일래스틱서치 모니터링』(2017), 『키바나 5.0 배우기』(2017)가 있다.

최중연

네이버에서 모니터링 서비스를 개발하고 있으며, 로그 데이터에 기반한 시계열 데이터 집계 및 저장에 관심이 많다. 운영 로그를 효과적으로 집계하고 시계열화해서 운영을 고도화하려는 목적으로 일래스틱서치를 접하게 됐고 번역에도 참여하게 됐다.

목차

목차
  • 1장. 시작하기
    • 소개
    • 노드와 클러스터 이해
    • 노드 서비스 이해
    • 데이터 관리
    • 클러스터, 레플리케이션, 샤딩의 이해
    • 일래스틱서치와 통신
    • HTTP 프로토콜 사용
    • 네이티브 프로토콜 사용

  • 2장. 다운로드와 설정
    • 소개
    • 일래스틱서치 다운로드 및 설치
    • 네트워킹 설정
    • 노드 설정
    • 리눅스 시스템을 위한 설정
    • 다양한 노드 타입 설정
    • 클라이언트 노드 설정
    • 수집 노드 설정
    • 일래스틱서치에 플러그인 설치
    • 플러그인 수동 설치
    • 플러그인 제거
    • 로깅 설정 변경
    • 도커를 통한 노드 설정

  • 3장. 매핑 관리
    • 소개
    • 명시적 매핑 생성 사용
    • 기본 타입 매핑
    • 매핑 배열
    • 준비
    • 객체 매핑
    • 도큐먼트 매핑
    • 도큐먼트 매핑에서 동적 템플릿 사용
    • 중첩 객체 관리
    • 자식 도큐먼트 관리
    • 다중 매핑으로 필드 추가
    • GeoPoint 필드 매핑
    • GeoShape 필드 매핑
    • IP 필드 매핑
    • 첨부 필드 매핑
    • 매핑에 메타데이터 추가
    • 다양한 분석기 지정
    • 자동 완성 필드 매핑

  • 4장. 기본 작업
    • 소개
    • 색인 생성
    • 색인 삭제
    • 색인 열고 닫기
    • 색인에 매핑 입력
    • 매핑 조회
    • 색인 재생성
    • 색인 새로 고침
    • 색인 플러시
    • 색인 강제 병합
    • 색인 축소
    • 색인과 타입 존재 여부 확인
    • 색인 설정 관리
    • 색인 앨리어스 사용
    • 색인 롤오버
    • 도큐먼트 색인
    • 도큐먼트 조회
    • 도큐먼트 삭제
    • 도큐먼트 변경
    • 원자성 작업 속도 향상(벌크 작업)
    • GET 작업 속도 향상(다중 GET)

  • 5장. 검색
    • 소개
    • 검색 실행
    • 정렬
    • 하일라이팅
    • 스크롤 쿼리 실행
    • search_after 기능 사용
    • 결과의 inner hits 반환
    • 올바른 쿼리 제안
    • 일치한 결과 카운트
    • explain 쿼리
    • 쿼리 프로파일링
    • 쿼리에 의한 삭제
    • 쿼리에 의한 변경
    • 전체 도큐먼트 일치
    • 불리언 쿼리 사용

  • 6장. 텍스트 및 수치형 퀴리
    • 소개
    • term 쿼리 사용
    • terms 쿼리 사용
    • prefix 쿼리 사용
    • wildcard 쿼리 사용
    • regexp 쿼리 사용
    • span 쿼리 사용
    • match 쿼리 사용
    • query_string 쿼리 사용
    • simplequerystring 쿼리 사용
    • range 쿼리 사용
    • common terms 쿼리
    • ID 쿼리 사용
    • function score 쿼리 사용
    • exists 쿼리 사용
    • template 쿼리 사용

  • 7장. 관계 및 지오 퀴리
    • 소개
    • has_child 쿼리 사용
    • has_parent 쿼리 사용
    • nested 쿼리 사용
    • geoboundingbox 쿼리 사용
    • geo_polygon 쿼리 사용
    • geo_distance 쿼리 사용
    • geodistancerange 쿼리 사용

  • 8장. 집계
    • 소개
    • 집계 실행
    • stats 집계 실행
    • terms 집계 실행
    • significant_terms 집계 실행
    • range 집계 실행
    • histogram 집계 실행
    • date_histogram 집계 실행
    • filter 집계 실행
    • filters 집계 실행
    • global 집계 실행
    • geo_distance 집계 실행
    • children 집계 실행
    • nested 집계 실행
    • top_hits 집계 실행
    • matrix_stats 집계 실행
    • geo_bounds 집계 실행
    • geo_centroid 집계 실행

  • 9장. 스크립팅
    • 소개
    • 페인리스 스크립팅
    • 추가 스크립트 플러그인 설치
    • 스크립트 관리
    • 스크립트를 사용한 데이터 정렬
    • 스크립팅으로 반환 필드 계산
    • 스크립팅을 통한 검색 필터링
    • 집계에 스크립팅 사용
    • 스크립트를 사용한 도큐먼트 업데이트
    • 스크립트로 재색인

  • 10장. 클러스터와 노드 관리
    • 소개
    • API를 통한 클러스터 헬스 제어
    • API를 통한 클러스터 상태 제어
    • API를 통해 노드 정보 얻기
    • API를 통해 노드 통계 가져오기
    • 태스크 관리 API 사용
    • 핫 스레드 API
    • 샤드 할당 관리
    • 세그먼트 API로 세그먼트 모니터링
    • 캐시 정리

  • 11장. 백업 및 복구
    • 소개
    • 저장소 관리
    • 스냅샷 실행
    • 스냅샷 복구
    • 백업용 NFS 공유 설정
    • 원격 클러스터에서 재색인

  • 12장. 사용자 인터페이스
    • 소개
    • 세레브로 설치 및 사용
    • 키바나와 엑스팩 설치
    • 키바나 대시보드 관리
    • 키바나로 모니터링
    • 키바나 개발 콘솔 사용
    • 키바나로 데이터 시각화
    • 키바나 플러그인 설치
    • 키바나로 그래프 생성

  • 13장. 인제스트
    • 소개
    • 파이프라인 정의
    • 인제스트 파이프라인 넣기
    • 인제스트 파이프라인 가져오기
    • 인제스트 파이프라인 삭제
    • 인제스트 파이프라인 시뮬레이션
    • 내장 프로세서
    • 그락 프로세서
    • 인제스트 첨부 플러그인 사용
    • 인제스트 GeoIP 플러그인 사용

  • 14장. 자바 통합
    • 소개
    • 표준 자바 HTTP 클라언트 생성
    • HTTP 일래스틱서치 클라이언트 생성
    • 네이티브 클라이언트 생성
    • 네이티브 클라이언트로 색인 관리
    • 매핑 관리
    • 문서 관리
    • 벌크 작업 관리
    • 쿼리 작성
    • 표준 검색 실행
    • 집계와 함께 검색 실행
    • 스크롤 검색 실행

  • 15장. 스칼라 통합
    • 소개
    • 스칼라로 클라이언트 생성
    • 색인 관리
    • 매핑 관리
    • 도큐먼트 관리
    • 표준 검색 실행
    • 집계와 함께 검색 실행

  • 16장. 파이썬 통합
    • 소개
    • 클라이언트 생성
    • 색인 관리
    • 매핑을 포함한 mappings 관리
    • 도큐먼트 관리
    • 표준 검색 실행
    • 집계와 함께 검색 실행

  • 17장. 플러그인 개발
    • 소개
    • 플러그인 만들기
    • 분석기 플러그인 만들기
    • REST 플러그인 만들기
    • 클러스터 액션 만들기
    • 인제스트 플러그인 만들기

  • 18장. 빅데이터 통합
    • 소개
    • 아파치 스파크 설치
    • 아파치 스파크를 통한 데이터 색인
    • 아파치 스파크를 통한 메타데이터 색인
    • 아파치 스파크로 데이터 읽기
    • SparkSQL을 사용해 데이터 읽기
    • 아파치 피그로 데이터 색인

도서 오류 신고

도서 오류 신고

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

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

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