Elastic Stack是當前企業廣泛使用的一套大數據解決方案, 具備完整的數據采集、處理和分析生態鏈。主要包括Elasticsearch、Kibana、Logstash和Beats等,其中Elastisearch是Elastic Stack的核心,Elasticsearch是當前流行的分布式的RESTful風格的搜索和數據分析引擎,具備高性能、易于擴展、安全穩定的特點。
第一部份: Elasticsearch入門
ES 核心概念和在6.x中的新變化
ES安裝、測試集群快速搭建
Kibana安裝
Head插件在線和離線安裝
REST服務
集群健康查看、列出所有的index、創建index、查詢、刪除等
數據修改(更新、刪除、批量刪除更新等)
搜索API、DSL查詢語言、查詢、過濾、聚合
倒排索引原理與實現流程
Lucene 與 ElasticSearch
ElasticSearch的工作流程
第二部份: Mapping
Mapping簡介
Mapping創建
數據類型(核心數據類型、復雜數據類型、地理數據類型、專用數據類型、Multi-fields)
Meta字段(_id/_all/_source/_uit/_meta/_routing等)
Mapping參數詳解:analyzer、index_options、boost、copy_to、doc_values、null_values、dynamic、enabled、store等)
Dynamic Mapping
第三部份: Index和Document操作
索引管理(創建、刪除、查看索引、判斷索引是否存在、Open/Close索引、Shrink 索引、Split索引、Rollover索引)
Mapping管理(增加Mapping、獲取Mapping、獲取字段Mapping、Type是否存在)
應對故障轉移和水平擴容的索引構建
索引文檔、索引分片、數據路由
別名管理和使用場景
索引設置(更新索引設置、獲取配置、索引分析、索引模板)
監控(索引狀態、索引段、索引恢復、索引分片存儲)
狀態管理(清除緩存、refresh、flush、強制合并)
更新索引設置
單文檔的CURD
多文檔的CURD
Reindex
批量導入大量數據Bulk的操作與優化
第四部份:分詞和搜索(一)
分詞器的作用
分詞器工作流程
停用詞
內置分詞器(standard、simple、whitespace等)
自定義分詞
測試分詞器
分詞的兩種使用方式
中文分詞器
Search的兩種形式(URI Search、Request Body Search)
URI Search詳解
Query DSL
第五部份:分詞和搜索(二)
全文搜索
字段查詢
高亮搜索
關聯查詢(Nested Query、Parent-Child查詢)
路由策略
查詢和filter的區別
深度分頁問題
分頁的方案和使用場景
使用scroll實現大數據量導出
相關度分數計算
應用不重啟重建索引
Elasticsearch返回記錄數和排名問題
bulk操作與優化
第六部份: 聚合查詢
聚合分類
聚合原理分析
Metric聚合分析
Bucket聚合分析
Pipeline聚合分析
Matrix聚合分析
準確度問題
聚合caching
第七部份: ElasticSearch集群管理與調優
硬件優化
具備容錯和故障轉移的集群規劃
角色規劃
架構設計
集群健康
腦裂問題和解決方案
segment、merge、shard、alias優化等
shard和副本的設計
集群異常處理
Elasticsearch性能測試
第八部份: 模型設計與業務調優
Mapping字段設置優化
大文檔存儲優化
doc_values、fielddata優化
是否檢索優化
ES數據寫入優化
ES數據查詢優化
第九部份: SQL on Elasticsearch
ElasticSearch 6.x自帶SQL簡介
約定和相關術語
SQL Rest API
SQL Translate API
SQL JDBC
SQL Cli
SQL函數與操作符
SQL命令
SQL數據類型
ElasticSearch-sql第三方插件安裝
ElasticSearch-sql第三方插件使用
第十部份: Elasticsearch for Apache Hadoop and Spark
配置安裝
ElasticSearch與Hadoop相關組件(Hive、Mapreduce等整合)
Spark2整合Elasticsearch的配置
Spark2讀取Elasticsearch的幾種方式與案例實踐
Spark2寫Elasticsearch的幾種方式與案例實踐
性能優化
第十一部份: ElasticSearch客戶端(一)
Java Rest Client(Java Low Level REST Client、Java High Level REST Client)
Java API(Maven倉庫配置、文檔API、Search API、聚合、Query DSL、索引管理、集群管理API)
Java Rest Client與Java API對比與未來發展
第十二部份: ElasticSearch客戶端(二)
Jest 操作Elasticsearch
Python API(安裝、實踐)
第十三部份: Beat使用
Beat簡介
FileBeat
Packetbeat
Hearbeat
Beat使用案例
第十四部份: Logstash
Logstash配置
Logstash插件詳解
Logstash的架構
Logstash與pipline
input詳解
output輸出
logstash使用案例
第十五部份: Kibana
Kibana高級使用詳解
Kibana可視化
使用案例
第十六部份: 綜合案例
海量數據搜索分析系統設計要點
|