Top

일래스틱서치 쿡북 4/e [효과적 데이터 검색과 분석을 위한 100가지 단계별 레시피]

  • 원서명Elasticsearch 7.0 Cookbook: Over 100 recipes for fast, scalable, and reliable search for your enterprise, 4th Edition (ISBN 9781789956504)
  • 지은이알베르토 파로(Alberto Paro)
  • 옮긴이이준호
  • ISBN : 9791161756783
  • 50,000원
  • 2022년 08월 31일 펴냄
  • 페이퍼백 | 940쪽 | 188*235mm
  • 시리즈 : 오픈소스 프로그래밍

책 소개

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/elastic-4e

요약

일래스틱서치는 루씬 기반의 분산 검색 서버로 사용자들이 페타바이트 규모의 비정형 데이터를 색인하고 검색할 수 있다. 이 책은 일래스틱서치의 기능과 복잡한 쿼리와 분석을 작성하고 실행할 수 있는 유용한 레시피를 제공한다. 이 책을 통해 일래스틱서치 노드를 배포하고 다른 도구들을 통합하며 다양한 시각화를 작성하는 일상적이고 비일상적인 작업을 수행 가능한 빠른 테크닉과 수많은 솔루션에 익숙해질 수 있다. 또한 자바, 스칼라, 파이썬과 아파치 스파크와 피그와 같은 빅데이터 애플리케이션과 일래스틱서치를 통합해 향상된 기능과 사용자 정의 플러그인으로 강화된 효율적인 데이터 애플리케이션을 생성할 수 있다.
* 이 책은 오픈소스로 제공하는 마지막 버전 Elasticsearch 7.0으로 진행하고 있습니다.

이 책에서 다루는 내용

◆ 일래스틱서치로 효율적인 아키텍처 생성
◆ 분석 집계로 검색 결과 최적화
◆ 색인과 문서를 관리해 복합 쿼리 작성
◆ 클러스터와 노드 성능 모니터링
◆ 색인 단계의 제어를 위한 고급 매핑 설계
◆ 자바, 스칼라, 파이썬과 빅데이터 애플리케이션, 일래스틱서치 통합
◆ 클러스터 모니터링을 위한 키바나 설치 및 플러그인으로 확장

이 책의 대상 독자

소프트웨어 엔지니어, 빅데이터 인프라 엔지니어, 일래스틱서치 개발자에게 유익한 책이다. 더 나은 비즈니스 의사결정에 대한 깊은 통찰력을 얻고자 메트릭 진화와 검색 분석에 일래스틱서치를 사용하는 전자상거래 회사, 그리고 FMCG 회사에서 일하는 데이터 전문가에게도 도움이 된다.

이 책의 구성

1장, ‘시작하기’에서는 일래스틱서치를 이용해 클라우드에 간단하게 설치하는 기초적인 단계와 여러 설치 케이스를 다룬다.
2장, ‘매핑 관리’에서는 색인과 검색 품질을 향상시키기 위한 올바른 데이터 필드 정의를 다룬다.
3장, ‘기본 작업’에서는 일래스틱서치에 데이터를 적재하고 관리하는 데 필요한 가장 일반적인 작업을 설명한다.
4장, ‘검색 기능 탐색’에서는 검색, 정렬 실행, 연관 API 호출을 설명하고 필수적인 API를 다룬다.
5장, ‘텍스트와 수치 쿼리’에서는 텍스트와 수치 필드의 검색 DSL 부분(일래스틱서치 기능의 핵심)을 설명한다.
6장, ‘관계 및 지리 정보 쿼리’에서는 관계 문서(자식/부모와 중첩)와 지리 정보 필드로 작업하는 쿼리를 설명한다.
7장, ‘집계’에서는 일래스틱서치의 다른 가능성을 다룬다. 이는 일래스틱서치에 포함된 정보를 요약하고 사용자 경험을 향상시키도록 검색 결과에 분석을 실행하는 것이다.
8장, ‘일래스틱서치 스크립팅’에서는 다른 언어를 사용해 일래스틱서치의 다양한 부분의 스크립트 기능(검색, 집계, 적재) 사용법과 스크립트로 일래스틱서치를 사용자 정의하는 방법을 설명한다. 여기에서는 주로 페인리스(Painless)에 집중한다. 페인리스는 일래스틱서치 팀이 개발한 신규 스크립트 언어다.
9장, ‘클러스터 관리’에서는 일반적인 함정을 이해하도록 클러스터/노드의 동작을 분석하는 방법을 보여준다.
10장, ‘데이터 백업과 복원’에서는 데이터를 관리하는 가장 중요한 컴포넌트(백업)를 다루는데, 분산된 백업과 스냅샷의 복원 관리 방법을 설명한다. 11장, ‘사용자 인터페이스’에서는 일래스틱서치 5.x의 가장 일반적인 사용자 인터페이스 중 두 가지인 관리자 작업을 위해 주로 사용되는 세레브로(Cerebro)와 일래스틱서치의 일반 UI 확장으로 X-Pack을 사용하는 키바나(Kibana)를 설명한다.
12장, ‘적재 모듈 사용’에서는 적재 파이프라인으로 일래스틱서치에 데이터를 넣는 적재 기능을 설명한다.
13장, ‘자바 통합’에서는 REST와 네이티브 프로토콜을 이용한 자바 애플리케이션에서 일래스틱서치를 통합하는 방법을 설명한다.
14장, ‘스칼라 통합’에서는 elastic4s를 이용해 스칼라에 일래스틱서치를 통합하는 방법을 설명한다. elastic4s는 네이티브 자바 API에 기반을 둔 타입 안전하고 기능이 많은 고급 스칼라 라이브러리다.
15장, ‘파이썬 통합’에서는 공식 일래스틱서치 파이썬 클라이언트의 사용법을 다룬다.
16장, ‘플러그인 개발’에서는 일래스틱서치 기능을 확장하는 네이티브 플러그인을 작성하는 방법을 설명한다. 일부 예시는 플러그인 뼈대, 설치 절차, 빌드를 보여준다.
17장, ‘빅데이터 통합’에서는 아파치 스파크와 아파치 피그 같은 일반적인 빅데이터 도구에 일래스틱서치를 통합하는 방법을 다룬다.

저자/역자 소개

지은이의 말

일래스틱서치는 루씬 기반의 분산 검색 서버로, 페타바이트 규모의 구조화되지 않은 콘텐츠를 색인하고 검색할 수 있다. 또한 일래스틱서치 7.x의 새로운 기능 및 복잡한 쿼리와 분석을 작성하고 실행할 수 있는 유용한 예제들을 제공한다.
이 책은 일래스틱서치를 이용한 색인, 매핑, 집계, 스크립트 예제들로 가득하다. 이를 통해 일래스틱서치 노드를 배포하고 다른 도구를 통합해 다양한 시각화를 작성하는 작업을 수행할 수 있으며 빠른 테크닉과 수많은 솔루션에 익숙해질 것이다. 클러스터를 모니터링할 수 있는 키바나를 설치하고 다양한 플러그인을 이용해 확장할 수도 있다. 끝으로 자바, 스칼라, 파이썬, 아파치 스파크, 피그 같은 빅데이터 애플리케이션과 일래스틱서치를 통합해 향상된 기능과 사용자 정의 플러그인으로 강화된 효율적인 데이터 애플리케이션을 작성할 수 있다.
이 책으로 일래스틱서치 아키텍처를 구현하는 심도 있는 지식을 얻을 수 있으며 일래스틱서치를 사용해 효율적이고 효과적으로 데이터를 관리, 검색, 저장할 수 있다.

지은이 소개

알베르토 파로(Alberto Paro)

엔지니어, 프로젝트 관리자이자 소프트웨어 개발자다. 현재 이탈리아의 빅데이터 기술, 네이티브 클라우드, NoSQL 솔루션 기반인 NTTDATA에서 빅데이터 프랙티스 리더(Big Data Practice Leader)로 일하고 있다. 주로 클라우드, 빅데이터 처리, NoSQL, NLP, 신경망에 연관된 이머징 솔루션(emerging solutions)과 애플리케이션의 연구에 지대한 관심이 있다. 2000년에 폴리테크니코 디 밀라노(Politecnico di Milano)의 전산공학과를 졸업했다. 지식 관리 솔루션과 최첨단 빅데이터 소프트웨어를 사용하는 고급 데이터 마이닝 제품에 스칼라/자바와 파이썬을 사용해 일했다. 빅데이터 솔루션, NoSQL 데이터저장소, 연관 기술을 효과적으로 시용하는 방법을 가르치는 데 많은 시간을 할애했다.

옮긴이의 말

일래스틱서치는 5년 전에 처음으로 접했다. 클라우드로 모든 애플리케이션을 이전하며 오토스케일링으로 서버 IP가 자주 바뀌고 애플리케이션 로그가 자꾸 사라지는 시기였다. 장애가 발생하면 오류 로그를 보기가 너무 어려웠는데, 일래스틱서치는 이런 환경을 개선하고자 솔루션을 찾던 중에 발견한 보화였다. 처음 접한 일래스틱서치는 6.x였다. 평문으로 된 애플리케이션 로그가 아무런 가공 없이 적재되고 문장이나 단어를 입력했을 때 바로 해당 위치를 조회할 수 있는 점은 개발 환경을 획기적으로 개선하는 데 기여했다. 이 일래스틱서치 기반의 애플리케이션 조회 시스템은 현재 다니고 있는 회사의 핵심 서비스로 자리잡았고 현재까지 운영하고 있다.
일래스틱서치를 사용하면서 가장 어려웠던 점은 제대로 된 문서가 별로 없었다는 것이었다. 인터넷에는 주로 설치 위주의 내용만 떠돌아다녔고 문제를 해결하려면 구글링을 해야 했다. 그러다 보니 전반적으로 이해하거나 새로운 것을 적용하는 업무는 아주 힘들고 괴로웠다. 특히 IP 주소를 이용해 GeoIP를 활성화시키는 일은 정말 어려운 일 중 하나였다. 또한 가끔 겪는 특정 서버의 다운은 그야말로 지옥의 시작인데, 운영 경험이 부족하기도 했고 운영을 도와줄 만한 문서가 열악했기 때문이다.
다행히도 최근 일래스틱서치 문서의 품질과 내용은 비약적으로 향상됐다. 상용화 이후에 바뀐 점이며, 오히려 편하게 쓰기에 부담이 되는 시대가 온 것 같다. 그러다 보니 7.x대의 일래스틱서치나 오픈서치(OpenSearch)를 사용하게 됐으며 이 책은 7.x대의 일래스틱서치를 완벽하게 다룰 수 있다. 오픈서치의 코드베이스는 일래스틱서치 7.x, 정확하게는 7.10.2이다. 즉, 이 책의 모든 내용은 오픈서치에도 그대로 적용된다. 자금 여유가 많아 상용에 기술 지원을 받을 것이라면 굳이 7.x대를 사용할 필요는 없다. 하지만 대다수의 배고픈 개발자와 스타트업이라면 이 책이 적합할 것이다. 일래스틱서치의 기본 사용법부터 설치, 모니터링, 개발 통합, SQL 연계, 머신러닝까지 대부분의 분야를 다룬다. 보통 키바나를 통한 조회 수준까지만 사용하겠지만 이는 전체 기능의 극히 일부분이다. 이 책을 통해 일래스틱서치의 진면목을 경험하길 기대한다. 내용이 많아 번역 작업이 까다로웠지만 일래스틱서치의 활용에 기여했다는 점이 자랑스럽다.
처음부터 순서대로 보는 것보다는 필요한 부분만 골라서 보기를 추천한다. 각 장은 어느 정도 독립적으로 기술돼 있고 각 주제의 끝에 연관 예제를 소개하고 있어 연결해서 보면 더 편할 것이다.
아무쪼록 이 책을 통해 일래스틱서치를 조회 이상으로 활용해보길 바란다.

옮긴이 소개

이준호

서울대학교를 졸업하고 숭실대학원에서 소프트웨어 공학을 전공했다. Open API 플랫폼, IPTV 콘텐츠 관리 플랫폼, UCC 콘텐츠 서비스 플랫폼을 설계, 구축, 운영했으며 IPTV 플랫폼에 대한 진단과 개선 관련 컨설팅을 진행했다. 넥슨 코리아에 입사해 AWS 기반의 게임 서비스 플랫폼을 설계 구축했고, 클라우드 포메이션, 테라폼, 앤서블, 깃을 활용해 AWS 관리형 쿠버네티스 플랫폼인 EKS에 데브옵스화 된 게임 서비스 인프라 구축을 진행했다. 회사 내에 데브옵스 문화를 전파하는 역할을 하고 있으며 빅데이터 플랫폼 운영을 총괄하고 있다. 대학원에서 머신러닝 활용 장애 탐지 관련 논문으로 학위를 취득했으며 관련 연구를 지속하고 있다.

목차

목차
  • 1장. 시작하기
    • 기술적 요구 사항
    • 일래스틱서치 다운로드와 설치
    • 네트워크 설정
    • 노드 설정
    • 리눅스 시스템 설정
    • 서로 다른 노드 유형 설정
    • 코디네이터 노드 설정
    • 적재 노드 설정
    • 일래스틱서치 플러그인 설치
    • 플러그인 제거
    • 로그 설정 변경
    • 도커로 노드 설정
    • 일래스틱 클라우드 엔터프라이즈에 배포

  • 2장. 매핑 관리
    • 명시적인 매핑 생성 사용
    • 기본 유형 매핑
    • 배열 매핑
    • 객체 매핑
    • 문서 매핑
    • 문서 매핑에 동적 템플릿 사용
    • 중첩된 객체 매핑
    • 조인 필드로 하위 문서 관리
    • 다중 매핑을 가진 필드 추가
    • GeoPoint 필드 매핑
    • GeoShape 필드 매핑
    • IP 필드 매핑
    • 별칭 필드 매핑
    • 퍼콜레이터(여과) 필드 매핑
    • 피처 및 피처 벡터 필드 매핑
    • 매칭에 메타데이터 추가
    • 다른 분석기 지정
    • 완성 필드 매핑

  • 3장. 기본 작업
    • 색인 생성
    • 색인 삭제
    • 색인 열기 또는 닫기
    • 색인에 매핑 집어넣기
    • 매핑 가져오기
    • 색인 재색인
    • 색인 새로 고침
    • 색인 청소
    • 색인 강제 병합
    • 색인 축소
    • 색인 존재 확인
    • 색인 설정 관리
    • 색인 별칭 사용
    • 색인 롤링
    • 문서 색인
    • 문서 가져오기
    • 문서 삭제
    • 문서 갱신
    • 단위 작업 속도 올리기(벌크 작업)
    • GET 작업 속도 올리기(다중 GET)

  • 4장. 검색 기능 탐색
    • 기술적 요구 사항
    • 검색 실행
    • 결과 정렬
    • 결과 강조
    • 스크롤 쿼리 실행
    • search_after 기능 사용
    • 결과에서 내부 히트 결과 반환
    • 올바른 쿼리 추천
    • 일치된 결과 개수 계산
    • 쿼리 설명
    • 쿼리 프로파일링
    • 쿼리로 삭제
    • 쿼리로 갱신
    • 모든 문서 매칭
    • 불리언 쿼리 사용
    • 검색 템플릿 사용

  • 5장. 텍스트와 숫자 쿼리
    • 용어 쿼리 사용
    • 다중 용어 쿼리 사용
    • 접두어 쿼리 사용
    • 와일드카드 쿼리 사용
    • 정규식 쿼리 사용
    • span 쿼리 사용
    • 일치 쿼리 사용
    • 쿼리 문자열 쿼리 사용
    • 단순 쿼리 문자열 쿼리 사용
    • 범위 쿼리 실행
    • 공통 용어 쿼리
    • ID 쿼리 사용
    • 함수 점수 쿼리 실행
    • exists 쿼리 사용

  • 6장. 관계 및 지리 정보 쿼리
    • has_child 쿼리 사용
    • has_parent 쿼리 사용
    • 중첩 쿼리 사용
    • geoboundingbox 쿼리 사용
    • geo_polygon 쿼리 사용
    • geo_distance 쿼리 사용

  • 7장. 집계
    • 집계 실행
  • 참고 사항
  • 통계 집계 실행
  • 용어 집계 실행
  • 중요 용어 집계 실행
  • 범위 집계 실행
  • 히스토그램 집계 실행
  • 날짜 히스토그램 집계 실행
  • 필터 집계 실행
  • 다중 필터 집계 실행
  • 전역 집계 실행
  • 지리적 거리 집계 실행
  • 자식 집계 실행
  • 중첩 집계 실행
  • 최고 조회수 집계 실행
  • 행렬 통계 집계 실행
  • 지리적 경계 집계 실행
  • 지리적 중심지 집계 실행
  • 파이프라인 집계 실행

  • 8장. 일래스틱서치 스크립팅
    • 페인리스 스크립트
    • 추가 스크립트 플러그인 설치
    • 스크립트 관리
    • 스크립트로 데이터 정렬
    • 스크립트로 결과 필드 계산
    • 스크립트로 검색 정렬
    • 집계에 스크립트 사용
    • 스크립트로 문서 갱신
    • 스크립트로 재색인

  • 9장. 클러스터 관리
    • API로 클러스터 정상 여부 제어
    • API로 클러스터 상태 제어
    • API로 클러스터 노드 정보 얻기
    • API로 노드 통계 얻기
    • 작업 관리 API 사용
    • 핫 스레드 API 사용
    • 샤드 할당 관리
    • 세그먼트 API로 세그먼트 모니터링
    • 캐시 정리

  • 10장. 데이터 백업과 복원
    • 저장소 관리
    • 스냅샷 실행
    • 스냅샷 복원
    • 백업을 위해 NFS 공유 설정
    • 원격 클러스터에서 재색인

  • 11장. 사용자 인터페이스
    • 세레브로 설치와 사용
    • 일래스틱서치 HQ 설치와 사용
    • 키바나 설치
    • 키바나 검색 관리
    • 키바나로 데이터 시각화
    • 키바나 개발 도구 사용

  • 12장. 객체 모듈 사용
    • 파이프라인 정의
    • 적재 파이프라인 배포
    • 적재 파이프라인 얻기
    • 적재 파이프라인 제거
    • 적재 파이프라인 시뮬레이션
    • 내장형 처리기
    • Grok 처리기
    • 첨부 적재 플러그인 사용
    • 적재 GeoIP 플러그인 사용

  • 13장. 자바 통합
    • 표준 자바 HTTP 클라이언트 작성
    • HTTP 일래스틱서치 클라이언트 작성
    • 고수준 REST 클라이언트 작성
    • 색인 관리
    • 매핑 관리
    • 문서 관리
    • 대규모 작업 관리
    • 쿼리 생성
    • 표준 검색 실행
    • 집계 검색 수행
    • 스크롤 검색 실행
    • DeepLearning4j로 통합

  • 14장. 스칼라 통합
    • 스칼라로 클라이언트 생성
    • 색인 관리
    • 매핑 관리
    • 문서 관리
    • 표준 검색 실행
    • 집계 검색 실행기
    • DeepLearning.scala로 통합

  • 15장. 파이썬 통합
    • 클라이언트 생성
    • 색인 관리
    • 매핑을 포함한 매핑 관리
    • 문서 관리
    • 표준 검색 실행
    • 집계 검색 실행
    • 넘파이와 사이킷런으로 통합

  • 16장. 플러그인 개발
    • 플러그인 작성
    • 분석기 플러그인 작성
    • REST 플러그인 작성
    • 클러스터 작업 작성
    • 적재 플러그인 작성

  • 17장. 빅데이터 통합
    • 아파치 스파크 설치
    • 아파치 스파크 활용 데이터 색인
    • 아파치 스파크 활용 메타데이터 포함 데이터 색인
    • 아파치 스파크로 데이터 읽기
    • 스파크 SQL로 데이터 읽기
    • 아파치 피그 활용 데이터 색인
    • 알파카로 일래스틱서치 사용
    • 몽고DB로 일래스틱서치 사용
  • 도서 오류 신고

    도서 오류 신고

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

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

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

    정오표

    정오표

    [p.45 : 4행]
    위헤
    ->
    위해

    [p.122 : 3행]
    그들을
    ->
    그것들을

    [p.154 : 4행]
    nam과
    ->
    name과

    [p.707 : 3행]
    시용할
    ->
    사용할

    [p.809 : 1행]
    자바로
    ->
    스칼라로