ES總結-Kibana定制化擴展
阿新 • • 發佈:2019-01-23
使用 日期 png 私有 info 等於 keyword 表頭 框架
縱觀任何一家大數據平臺的技術架構,總少不了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、變量解析
- 設置列聯查,在聯查的地址中需要獲取當前行數據的其它字段作為聯查地址的參數,擴展如下圖參數定義及解析
- 運行效果:
在擴展完善的過程中,後續會持續更新該文檔,有了這些擴展的功能點,再開發一套報表是不是零編碼的秒開呢?
ES總結-Kibana定制化擴展