如何做一次Elasticsearch技術分享?

0、問題引出

在這裏插入圖片描述

經羣討論,建議從以下幾個方面展開,大家有好的想法,也歡迎留言交流。

1、可視化展示ELK效果

在這裏插入圖片描述
如果條件允許:demo的內容是:通過logstash 同步日誌或數據庫(oracle、mysql)表的數據到 Elasticsearch,然後通過kibana進行可視化。

  • 1 通過Canvas對數據進行可視化佈局與展現,可以實現非常酷炫的大屏展示效果
  • 2 展示實時數據的數據量。
  • 3 展示你定的幾個維度的數據信息。

這麼切入的目的:很直觀,很明顯,很接地氣。用到ELK技術棧的內容,有帶動性,讓參與的同事不犯困且很容易讓大家對它產生興趣。

2、 Elk stack大家族簡介

在這裏插入圖片描述

考慮到不同受衆關注點不同。結合業務的數據的特點,從輸入、中間處理、存儲&檢索、分析等全數據流環節展開。

2.1 輸入

Elastic 支持的輸入包含但不限於:

  • 日誌類數據:類log4j.log,apache log等,可藉助 beats或logstash同步
  • 關係型數據庫:mysql oracle pgsql等
  • 非關係型數據庫:mongodb redis等
  • 實時數據流:flink spark kafka hdfs等
  • 大數據:hadoop hdfs等

此處的不同數據的導入,Lostash有豐富的input/output插件,支持N多不同數據源接入,估計同事也會眼前一亮。

2.2 中間處理ETL

基礎數據很可能是異構的數據,中間的ETL非常重要。
logstash filter、elasticsearch ingest 都具備ETL功能。

2.3 存儲&檢索

基於合理的數據建模,在Elastic落地存儲,Elastic提供全文檢索、數據聚合等。

2.4 分析

強調一下,kibana的可視化和監控功能。

2.5 ELKB認知

Elastic Stack數據平臺由Logstash、Beats、ElasticSearch和Kibana四大核心產品組成,在數據攝取、存儲計算分析及數據可視化方面有着無可比擬的優勢。

  • E = Elasticsearch,在存儲、計算和分析方面,ElasticSearch允許執行和合並多種類型的搜索,解決不斷涌現的各種用例,並具有極高的可用性及容錯性,充分保障集羣安全。
  • L = Logstash, Logstash 是開源的服務器端數據處理管道,可同時從多個來源採集、轉換數據,並將數據發送到存儲庫中。
  • K = Kibana,Kibana作爲用戶界面的核心,集成了豐富的可視化工具、界面交互開發工具和管理工具,幫助開發人員將數據輕鬆分享給任何人,甚至還能通過機器學習來監測數據中的隱藏異常並追溯其來源。
  • B = Beats,Beats作爲輕量級的數據搬運工,集合了多種單一用途數據採集器,將數據發送給Logstash或ElasticSearch,其可擴展的框架及豐富的預置採集器將使工作事半功倍。
    以上,主要從大而全的維度,講解ELK,給大家帶來全景認知。

以這四大核心產品爲基礎構建的Elastic數據平臺實現了數據實時性、相關性及擴展性的完美結合,不僅可以處理各種數據,還能深入挖掘數據的內在關聯並迅速呈現,徹底解決企業的大數據實時處理難題。

3、 Elasticsearch 是什麼?

展示的過程中:可以通過kibana的dsl進行展開的講解。
注意例子:可以提前準備好,規劃好時間,不用現場敲代碼.
此時可以藉助head插件或者kibama-dev講解:

3.1 Elasticsearch的組成

如果是集羣部署的更好。
講解內容包括:

  • 集羣、
  • 索引、
  • 分片、
  • 副本、
  • 分段、
  • 倒排索引。
  • ES的底層是lucene等。
    在這裏插入圖片描述

3.2 Elasticsearch分佈式可擴展的特性

強調es可以支持PB級別甚至更高級別數據量的存儲。

3.3 強調Elasticsearch特點

  • 簡單的restful api,天生的兼容多語言開發。
  • 分佈式的實時文件存儲,每個字段都被索引且可用於搜索。
  • 分佈式的實時分析搜索引擎,海量數據下近實時秒級響應。
  • 易擴展,處理PB級結構化或非結構化數據。

4、 Elasticsearch 能做什麼?

4.1 全文檢索等

其實也可以類比一下mysql,
強調一下,關係型數據庫一些檢索是做不到的。
對比的目的:因爲大家都熟悉關係型數據庫,這樣能夠加深理解。

也可以類比下Google,百度等傳統的搜索引擎。告訴同事,其實他們可以做的功能我們都可以做。比如:全文檢索,高亮,分頁,統計聚合,高級檢索等。

檢索的分類:

  • 精確匹配。
  • 模糊檢索。
  • 正則檢索。
  • 強調全文檢索。強調他的快。基於倒排索引實現。
    等等。

檢索類型可以畫一個腦圖。
其實可以,舉個例子。演示一下最好。

4.2 聚合分析

這裏也可以舉一下例子。
比如:對比一下mycle的group by,limit等功能點講解。
聚合的分類很多,可以抽幾個進行講解。

4.3 應用場景

  1. 記錄和日誌分析
  2. 採集和組合公共數據
  3. 全文搜索及個性化推薦
  4. 事件數據和指標
  5. 數據可視化

5、Elasticsearch 極易上手且性能牛逼

主流的Java、python、ruby等。C++等也有個人開源維護API。
可以藉助他山之石,把其他公司的應用場景、對應的硬件資源、寫入、查詢、QPS等性能指標展示出來,凸顯牛逼性能。
在這裏插入圖片描述

6、Elastic 前景光明

Elasticsearch在DBRanking 數據庫排行榜搜索引擎部分近幾年一直處於第一名的領先優勢。
在這裏插入圖片描述
基於Elastic的分佈式、可擴展性、良好的性能,BAT、滴滴、美團、小米、華爲、攜程、360、有贊等
幾乎所有的主流互聯網公司甚至婚慶網站的搜索引擎已經都已經轉成ES了。
那麼咱們公司還在猶豫什麼呢?

7、Elastic技術社區非常活躍

這裏主要強調,出了問題也不用怕,一個人搞不定,還有國外、國內官方論壇、社區,基本很短時間都能解決問題。
交流的高效性、問題解決的速度、github迭代更新的速度。以及最近的版本更新的速度:比如7.0的發佈,7.0的新特性。大家也會對新的特性充滿期待。速度提升快。

估計講完這些大家都會躍躍欲試了。

8、Elasticsearch 相對薄弱的環節

有所爲,有所不爲。

8.1 多表關聯

不能簡單認爲,將mysql同步到Elasticsearch就能解決問題了。
我們除了看到基於倒排索引Elasticsearch的全文檢索的強大,也要看到Elasticsearch對於關係型數據庫多表關聯的支持相對薄弱,nested類型、Join類型的多表關聯操作大數據場景下都會有性能問題。

8.2 深度分頁

從性能角度考慮,Elasticsearch默認支持10000條數據的返回,除非修改max_result_window參數。
也就是會出現越往後翻頁越慢的情況。這點,補救方案:scroll+scroll_after實現。
但是,更長遠角度,建議:參考Google、百度的深度分頁實現。

8.3 實時性

Elasticsearch是近實時的系統,不是準實時。受限於:refresh_inteval設置,有最快1s延時。
準實時要求高的場景,建議選型注意。

9 小結

ELK遠不止文章中提到的這些內容,可以說,以上列舉的只是冰山一角的點,N多底層原理(索引分片原理、寫入原理、檢索原理、倒排索引原理、高可靠性原理、大數據實戰場景等)都沒有提及或展開。
在這裏插入圖片描述
如果,你來分享,你會如何展開,歡迎交流。

在這裏插入圖片描述
銘毅天下——Elasticsearch基礎、進階、實戰第一公衆號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章