ES總結-Kibana定製化擴充套件
縱觀任何一家大資料平臺的技術架構,總少不了ElasticSearch;ES作為溶合了後端儲存、快速檢索、OLAP分析等功能的一套開源元件,更絕的是提供了一套集資料採集與前端展現為一體的框架(即ELK), 在我們的應用過程中,與ES整合的前端框架包含有Kibana、Grafana等系統,實際應用過程中,以Kibana框架為例,從系統易用性方面進行了一些定製擴充套件,具體擴充套件功能總結如下:
1、Kibana框架漢化
- kibana 沒有支援多語言的語言包,在正式系統使用時,需要漢化,如下圖:
-
2、身份及資料許可權整合
- 我們的大資料平臺裡面,使用了多種開源的前端框架來滿足不同的應用,通過擴充套件開發一套通用的元件來實現各種開源框架與大資料平臺的整合,包含與大資料平臺系統的身份整合、資料許可權整合、路由均衡等功能,示意圖如下:
-
- 框架整合後示意效果圖如下:
-
2、高階過濾擴充套件
- Kibana原生提供的搜尋方式在需要多條件組合精確查詢的情況下,比較難用,並且需要使用者對Query語法非常熟悉,提高了使用門檻,為了解決此問題,我們擴充套件了公共的高階過濾元件與Kibana整合(5.6以後的Kibana也帶著了過濾,但使用起來還是不方便),如下圖:
-
主要特性如下:
- 支援索引上的任何欄位進行匹配檢索條件定義
- 根據索引欄位型別不同,可選擇的比較符不一樣,例如:數字型別支援 >、>=、=、<、<= 等, 對於Text 或 KeyWord 型別支援:等於、包含操作。
- 支援 與、或、非的條件定義組合 (有點太專業、有更好的名字建議沒?) 。
- 當索引上的欄位過多,選擇欄位名比較麻煩,因此支援智慧定位選擇,如上圖。
- 定義條件的過程中,比較值支援手工輸入、智慧幫助(如:如果欄位是日期型別,比較值支援彈出日期選擇。如果欄位是關聯型別,比如:城市,比較值支援配置彈出幫助選擇等)
- 支援新增、複製條件組合、刪除、禁用某行定義的條件。
定義好過濾條件,在使用的過程中,當前組合的查詢條件會以標籤的形式展現在列表頂端,如下圖紅框:
-
- 為了方便在使用的過程中快速禁用或刪除組合條件的某一項,支援在標籤上直接刪除或禁用該條件,如下圖:當mouse懸浮在標籤上時,使用者可選擇禁用或刪除操作。
-
3、查詢方案
擴充套件後的方案按索引進行拆分(即只顯示該索引下的方案),分為公共方案(開發人員預製)與私有方案(執行時、使用者調整查詢格式及查詢條件後儲存的方案),如下圖:
-
- 公用方案不允許修改或編輯,在與我們的框架整合後,使用者執行時在公用方案基礎上調整後的儲存的方案自動會儲存至私有方案分類,允許當前使用者刪除自己儲存的方案,如下圖:
-
每套方案裡面包含的內容
- 查詢條件、時間範圍
- 顯示的資料列、每頁資料條數、列順序、表頭是否固定等配置。
4、頁面顯示資料條數
- 將每頁顯示資料條數暴露在前端頁面,允許使用者在查詢時修改當前頁面展現資料量大小
- 後端配置介面進行擴充套件,允許開發人員配置條數列舉項,如下圖:
-
- 執行效果:
-
- 注意:ES 索引 在查詢時預設返回最大的資料條數是10000,如上圖,當設定每頁的條數超過10000時,需要修改ES索引的最大返回資料條數引數。
5、資料匯出
- 主要是將查詢結果匯出為Excel檔案,擴充套件的匯出功能包含前端匯出和後臺匯出兩類。
- 前端匯出:指快速匯出當前頁面顯示的內容(一般指10000以內的小資料量)、後端匯出指根據當前頁面設定的條件、列顯示順序從後端將滿足條件的資料匯出為Excel(適用於超出 10000條大資料量匯出),如下圖:
-
6、時序圖隱藏與顯示
- Kibana在執行時顯示的時候,預設在頂部帶著按時序的柱狀統計圖, 在有些場景的列表查詢中,並不需要這塊圖形的顯示,通過擴充套件,可以在後臺配置,如下圖:
-
- 執行效果:見上面的一些圖,都是沒帶著柱狀統計圖的。
7、選單自定義配置
- 右上角的選單允許使用者自定義進行配置,如下圖:
-
- 執行效果:
-
- 統計分析選單說明:將該索引定義的Visualize方案通過配置的方式掛在統計分析選單下,實現列表與圖表結合更直觀探索資料價值。
8、列選擇智慧檢索
- 當索引的列達到幾十甚至上百個列時,如下圖,在設定顯示列時查詢非常不方便,擴充套件一種快速檢索選擇的方法
-
9、顯示列中文別名設定
- 擴充套件允許配置列顯示別名,如下圖:
-
10、資料許可權控制
- 資料許可權:指不同的使用者能看到的資料範圍不一樣,這裡主要指與各自業務系統的許可權整合。
11、表頭固定
- 擴充套件通過設定如圖紅框內的鎖圖示,設定滾動翻頁檢視資料時,表頭標題行是否固定。
-
12、變數解析
- 設定列聯查,在聯查的地址中需要獲取當前行資料的其它欄位作為聯查地址的引數,擴充套件如下圖引數定義及解析
-
- 執行效果:
-
在擴充套件完善的過程中,後續會持續更新該文件,有了這些擴充套件的功能點,再開發一套報表是不是零編碼的秒開呢?