萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> 使用Zeppelin展示MySQL的數據的詳解

使用Zeppelin展示MySQL的數據的詳解

Zeppelin的工作方式和Spark的Thrift Server很像,都是向Spark提交一個應用(Application),然後每一個查詢對應一個stage,下面我們來看使用Zeppelin展示MySQL的數據的詳解吧。

1. 配置Zeppelin使其支持MySQL
 Zeppelin原生支持JDBC鏈接。  但是默認的設置是指向PostgreSQL.

一種最簡單的辦法就是直接修改JDBC Interpreter裡面的內容,指向你自己的MySQL實例即可。如下圖演示:

 

 需要設置的有:

default.user
default.password
default.url
default.driver

 另外需要注意的是,需要增加MySQL的JDBC artifict。 筆者使用的是:mysql:mysql-connector-java:5.1.38

 

 以上配置好了之後,restart interpreter 使得配置生效即可

 2. 小試牛刀

新創建一個NoteBook, 比如叫做 Daily Report,並且確認一下jdbc interpreter已經確認使用。(確認方法參考上一篇文章)

之後就可以調用%jdbc 編寫SQL並將結果展示出來了。

比如:

 

 在這裡面我們可以寫SQL並將數據用餅圖的方式來展現。 同時我們還可以設置一個Title

 另外,我們可以將整個作為一個report 分享給其他項目組的同事, 只需要選擇下面的“report”選項

  

也可以直接將某一個paragraph分享出去(可以自己做一個頁面集成需要的paragraph)

zeppeline-link-to-this-paragraph

 zeppeline-link-to-this-paragraph

3. 繞過的一些坑
不得不說的是Zeppelin還是不夠穩定,還是有一些坑存在。 並且目前筆者並沒有辦法填平,只能繞過去

3.1 創建單獨的mysql interpreter 失敗
筆者曾經嘗試創建單獨的MySQL Interpreter. 但是一直會遇到各種錯誤,比如:

prefix not found
interpreter not found
等等。

繞過去的方案:直接修改JDBC而不是自行新建

3.2 莫名其妙的需要我Login
Zeppelin默認是向0.0.0.0 開發的,並且默認是匿名訪問。

但是有時候Zeppelin一些錯誤配置之後,即使將配置恢復回來也沒法恢復,還是需要我登錄。 問題是我完全沒有設置過賬號密碼。。。

繞過去的方案: 重啟Zeppelin –> 重啟機器 –> 重頭配置

上面三個方案,一個個的試試看 T_T

 

3.3 展現的柱狀圖,X坐標自己自動排序
也就是說,展示的x坐標的內容的順序,不是按照我們給出的值的順序。

這個問題在0.6.1 上面也並沒有解決。 在GitHub 上面已經有人給出了PR,但是因為有沖突,一直沒有被合並進去。

出現問題的圖如下:

 

 

可以看到,我在SQL之中已經強制了 order by count desc, 就是希望展示出來的圖表能夠按照人數進行降序排序。 但是結果是會自動按照key(build_num_oem)進行自動排序。

其原因是:Zeppelin在將數據喂給Pivort.js 進行數據展示的json,沒有考慮到順序。 需要另外增加一個Index 來解決

具體可以參考: https://github.com/apache/zeppelin/pull/83

繞過去的方案: 說服你的客戶這個問題會在將來的不久被解決掉

 

4. 總結:

Zeppelin是一個非常有潛力的項目。 目前已經能幫助小型團隊解決了不少問題。

但是主要的問題還是穩定性。

希望Zeppelin能長久的完善下去

最後放一張完成之後的效果圖:

copyright © 萬盛學電腦網 all rights reserved