天天看點

何做一次Elasticsearch技術分享?

1、可視化展示ELK效果

何做一次Elasticsearch技術分享?

如果條件允許:demo的内容是:通過logstash 同步日志或資料庫

(oracle、mysql)表的資料到 Elasticsearch,然後通過kibana進行可視化。

  1. 通過Canvas對資料進行可視化布局與展現,可以實作非常酷炫的大屏展示效果
  2. 展示實時資料的資料量。
  3. 展示你定的幾個次元的資料資訊。

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

2、 Elk stack大家族簡介

何做一次Elasticsearch技術分享?

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

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等。

何做一次Elasticsearch技術分享?

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 應用場景

記錄和日志分析

采叢集組合公共資料

全文搜尋及個性化推薦

事件資料和名額

資料可視化

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

主流的Java、python、ruby等。C++等也有個人開源維護API。

可以借助他山之石,把其他公司的應用場景、對應的硬體資源、寫入、查詢、QPS等性能名額展示出來,凸顯牛逼性能。

何做一次Elasticsearch技術分享?

6、Elastic 前景光明

何做一次Elasticsearch技術分享?

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技術分享?

如果,你來分享,你會如何展開,歡迎交流。

何做一次Elasticsearch技術分享?

銘毅天下——Elasticsearch基礎、進階、實戰第一公衆号