Elasticsearch簡單學習2:起源與發展

1、起源-Lucene

《1.》Elasticsearch是基於Lucene開發的。html

《2.》Lucene是基於Java語言開發的搜索引擎類庫,建立於1999年,2005年成爲Apache頂級開源項目。數據庫

《3.》Lucene具備高性能、易擴展的優勢。編程

《4.》Lucene的侷限性:緩存

        ①只能基於Java語言開發安全

        ②類庫的接口學習曲線陡峭性能優化

        ③原生並不支持水平擴展服務器

2、Elasticsearch的誕生

《1.》2004年Shay Banon基於Lucene開發了Compass架構

《2.》2010年Shay Banon重寫了Compass,取名Elasticsearch併發

          ①支持分佈式,水平可擴展框架

          ②下降全文檢索的學習曲線,能夠被任何編程語言調用

3、Elasticsearch的分佈式架構

《1.》集羣規模能夠從單個擴展至數百個節點

《2.》高可用 & 水平擴展  

         服務和數據兩個維度

《3.》支持不一樣的節點類型

          ①支持Hot & Warm架構

4、支持多種方式集成接入

《1.》多語言支持(Java | .Net | Python | Ruby | Php | Groovy | Perl)

https://www.elastic.co/guide/en/elasticsearch/client/index.html

 

《2.》Restful API  & Transport API

9200   &  9300 (建議使用RESTful API)

 

《3.》JDBC  & ODBC

 

5、Elasticsearch的主要功能

《1.》海量數據的分佈式存儲 以及 集羣管理

          服務和數據的高可用,水平擴展

 

《2.》近實時搜索,性能卓越

         結構化  |  全文 | 地理位置 | 自動完成

 

《3.》海量數據的近實時分析

         聚合功能

 

6、Elasticsearch的版本與升級

《1.》0.4    : 2010年2月第一次發佈

《2.》1.0     :  2014年1月

《3.》2.0   : 2015年10月

《4.》5.0   :2016年10月

《5.》6.0   :2017年10月

《6.》7.0   :2019年4月

https://www.elastic.co/cn/support/eol

1. 5.X的新特性       

《1.》使用Lucene 6.X ,性能提高,默認打分機制從TF-IDF 改成 BM25

《2.》支持Ingest節點 | Painless Scripting | Completion suggetsted 支持 | 原生的Java REST客戶端支持

《3.》Type標記爲deprecated ,支持了keyword的類型

《4.》性能優化

         ① 內部引發移除了避免同一個文檔併發更新的競爭鎖,帶來了 15% - 20%的性能提高

         ② Instant aggregation ,支持分片上聚合的緩存

         ③ 新增了Profile API

2. 6.X 新特性

《1.》使用了Lucene 7.X

《2.》新功能

         ① 跨集羣複製 (CCR)

         ② 索引生命週期管理

         ③ SQL的支持

《3.》更友好的升級以及數據遷移

        ① 在主要版本之間的遷移更爲簡單,體驗更好

        ② 全新的基於操做的數據複製框架,能夠加快恢復數據

《4.》 性能優化

        ① 有效存儲稀疏字段的新方法,下降了存儲成本

        ② 在索引時進行排序,能夠加快排序的查詢性能

3. 7.X 新特性

《1.》使用Lucene 8.0

《2.》重大改進 - 正式廢除單個索引下多Type的支持

《3.》7.1開始 ,Security 功能無償使用

《4.》支持K8S ,ECK - Elasticsearch Operator on Kubernets

《5.》新功能

          ① New Cluster coordination

          ② Feature-Complete High Level REST Client

          ③ Scipt Score Query

《6.》性能優化

        ① 默認的Primary Shard數從5 改成 1,避免Over Sharding

        ② 性能優化,更快的Top K

7、Elastic Stack 生態圈

1.Logstash數據處理通道

《1.》開源的服務器端數據處理管道,支持從不一樣來源採集數據,轉換數據,並將數據發送到不一樣的存儲庫中。

《2.》Logstash 誕生於2009年,最初用來作日誌的採集與處理

《3.》Logstash 創始人 Jordan Sisel

《4.》2013年被Elasticsearch 收購

2.Logstash 特性

《1.》實時解析和轉換數據

        ① 從IP地址破譯出地理座標

        ② 將PII數據匿名化,徹底排除敏感字段

《2.》能夠擴展

        ① 200個插件(日誌 | 數據庫 | Arcsigh | Netflow)

《3.》可靠性安全性

        ① Logstash 會經過持久化隊列來保證至少將運行中的時間送達一次

        ② 數據傳輸加密

《4.》監控

3.Kibana 可視化分析利器

        

《1.》 Kibana 名字的含義 = Kiwifruit + Banana

《2.》數據可視化工具 ,幫助用戶解開對數據的任何疑問

《3.》基於Logstash的工具,2013年加入Elastic公司

4.Elastic stack的發展

《1.》2015年3月收購Elastic Cloud ,提供Cloud服務

《2.》2015年3月收購PacketBeat

《3.》2016年9月收購PreAlert - Machine Learning 異常檢測

《4.》2017年6月收購Opbeat 進軍 APM

《5.》2017年11月收購SaaS廠商Swiftype ,提供網站和APP搜索

《6.》2018年 X-Pack開源

5.Beats - 輕量的數據採集器

知足不一樣的數據源

https://www.elastic.co/cn/products/beats

6.X-pack 商業化套件

https://www.elastic.co/cn/subscriptions

《1.》6.3以前的版本 ,X-Pack以插件方式安裝

《2.》X-Pack開源以後,Elasticsearch & kibana支持 OSS版 和 Basic兩種版本

        部分X-Pack功能支持無償使用,6.8和7.1開始,Security功能免費

《3》OSS , Basic  , 黃金級  , 白金級

7.ELK 客戶以及應用場景

https://www.elastic.co/cn/use-cases/

《1.》應用場景

        ① 網站搜索 | 垂直搜索 | 代碼搜索

        ② 日誌管理與分析 | 安全指標監控 | 應用性能監控 | WEB抓取輿情分

《2.》日誌管理

《3.》Elaticsearch與數據庫的集成

① 單獨使用Elasticsearch存儲【不建議這麼用】

②如下狀況能夠考慮與數據庫集成

    <1.> 與現有系統集成

   <2.> 須要考慮事務性

   <3.> 數據更新頻繁

《4.》指標分析 | 日誌分析

相關文章
相關標籤/搜索