商業智慧入門!在Pentaho中建立簡單的儀表板 / How to Create a Basic Dashboard in Pentaho
開放原始碼商業智慧平臺Pentaho可以連結資料庫建立網頁顯示的儀表板,其類型叫做Community Dashbaord Editor。你可以看看Open Demos來瞭解Pentaho可以做到什麼地步,其中能夠用下拉式選單篩選資料的DEMO 02是比較接近我們想用的場景。我這篇先簡單介紹怎麼用Pentaho連結資料庫、呈現一個簡易顯示的長條圖,最後就能夠讓人直接開啟這個儀表板。
從已經架設的Pentaho開始 / Start from a Ready Pentaho Community
我在另外一篇教了大家怎麼在Windows環境下架設Pentaho,而這一篇我是用一臺已經架設好的Pentaho Community版本,架設在Debian 7.2版本下。
練習資料庫 / Database for Practice
這次商業智慧要跟資料庫連線,我以下以PostgreSQL資料庫跟資料表作為例子來說明。資料庫連線資訊:
- Host Name: 127.0.0.1
- Database Name: db
- Port Number: 5432
- User Name: user
- Password: password
這個資料庫裡面有一個資料表「grade」,裡面有兩個欄位
- user_id: int,主鍵
- score: int ,成績
這個資料表裡面有三組資料,內容如下:
user_id | score |
1 | 84 |
2 | 40 |
3 | 98 |
實際建立時,請自行替換你自己的資料庫吧。
要建立Pentaho的儀表板之前,我們要先建立資料來源,接著才能建立儀表板。所以以下我就拆成兩部分進行介紹。
管理資料來源 / Manage Data Sources
首先進入首頁的「Manage Data Sources」。
從齒輪圖示中進入「New Connection」。
選擇General,然後填入以下資訊:
- Connection Name: 設定連線名稱,可自訂,例如「db」 。
- Database Type: 選擇要連線的資料庫種類,在此以「PostgreSQL」為例。
- Access: Native (JDBC)
- Settings 參照你資料庫的設定,以本文為例就是:
- Host Name: 127.0.0.1
- Database Name: db
- Port Number: 5432
- User Name: user
- Password: password
你可以按下「Test」測試是否能夠正常連線到資料庫。確認正常之後,按下「OK」繼續。
回到Manage Data Sources,可以發現剛剛新增好的「db」,讓我們按下「Close」按鈕回到主畫面,這個階段的工作就到此為止了。
建立儀表板 / Create CDE Dashboard
在Home主畫面中點選「Create New」,進入「CDE Dashboard」。
認識儀表板主要功能 / CDE Dashboard Panel Switch & Preview
這個CDE編輯介面的主要功能在右上角,首先是三種面板的編輯模式:
- Layout Panel:編輯儀表板的排版,可以畫列(row)或欄(column)
- Component Panel:編輯在排版上顯示物件,例如圖表(chart)
- Datasources Panel:編輯物件(例如圖表)的資料來源,在此可連結資料庫。
而右上角的Preview則是預覽儀表板的成果。但要預覽之前,必須要先儲存。
儲存儀表板 / Save Dashboard
請先按上方「Save」按鈕儲存儀表板。
在這個對話視窗中,必須填入兩樣資訊:
- Choose Folder: 要將儀表板儲存在本機端的那個目錄之下。通常是該帳號的家目錄,例如:「/home/admin」。
- File Name: 檔案名稱,例如:「pudding20161109」
然後按下「Ok」完成儲存。然後我們就回到儀表板的編輯畫面。
儀表板的運作模式 / How Dashboard Word
在開始正式建立儀表板之前,我需要先講解剛剛提到的三種面板之間的關聯。要讓儀表板能夠順利運作的話,必須要在這三種面板中建立正確的物件,並且正確地設定彼此之間的關聯才行。
這三種面板之間的關係是用「Name」屬性來建立關聯。Name可以自訂,但最好設定得容易理解與記憶。如果要建立一個顯示資料庫數據的長條圖,我們要進行的步驟如下:
- [Layout] 建立Row物件,設定 Name: layout_row
- [Datasource] 建立sql over sqljndi物件,設定 Name: datasource_db,然後設定資料庫連線細節 (下面會再介紹)
- [Component] 建立CCC Bar Chart物件,設定 Name: component。再設定連結Layout與Datasource的兩個屬性:
- HtmlObject: layout_row
- Datasource: datasource_db
這樣就可以建立三種面板的三個物件之間的連結。以下我們就以圖文操作步驟來介紹這如何設定。
1. 在Layout建立Row物件 / Create a Row in Layout Panel
在這邊我們要建立可以顯示圖表的排版位置,並把它的Name叫做layout_row。
參照上圖,操作步驟如下:
- 切換到Layout Panel
- 按下Add Row (新增列排版)
- 在左方的Layout Structure選擇剛剛新增的Row (列排版)
- 在右邊的Properties (屬性) 中的 Name (名字)欄位 輸入名稱:「layout_row」
2. 在Datasource建立sql over sqljndi物件 / Create sql over sqljndi in Datasource
接下來我們要在Datasources面板建立與資料庫的連線,設定SQL查詢。
參照上圖,操作步驟如下:
- 切換到Datasources Panel
- 在SQL Queries底下找到sql oversqljndi物件,點選新增該物件
- 在中間的Datasources點選剛剛新增的sql over sqljndi
- 在右邊Property (屬性)區域中設定參數 Name 為 「datasource_db」
- 設定 jndi 為 「db」,這是要連結的資料庫,就是我們前面在Data Sources中設定的資料庫連線「db」
- 設定Query,這就是SQL查詢語法,請點選右邊的「…」按鈕。
我們在中間輸入要查詢的SQL。這個查詢結果等一下預計要提供給長條圖使用,因此我們必須查詢「2」個欄位。第一個欄位會給長條圖的x軸使用,第二個欄位會給 y 軸使用。參考上面練習資料庫的架構,我們的SQL語法可以這樣設定:
select user_id, score from grade
確定之後就按下「Ok」按鈕,回到Datasources Panel。這個階段就設定完成。
3. 在Component建立CCC Bar Chart物件 / Create CCC Bar Chart in Component Panel
接下來就要建立圖表了。建立圖表的時候也要輸入Layout跟Datasource的連結。
參照上圖,操作步驟如下:
- 切換到Component Panel
- 在左邊選擇Charts裡面的CCC Bar Chart
- 在中間Components選擇剛剛新增的CCC Bar Chart
- 在右邊Property(屬性)裡面設定參數 Name 為 「component_chart」
- Datasource設定為「datasource_db」,這表示這張圖表的資料來源
- Height設定為400,這是圖表的高度
- Width設定為300,這是圖表的寬度
- HtmlObject設定為「layout_row」,這表示會在該排版物件上顯示這張圖表
設定完成,這階段就算完成。
4. 預覽儀表板 / Preview Dashbaord
按下右上角的眼睛圖示Preview your Dashboard。
就可以看到儀表板中的長條圖正確顯示。確認無誤的話,按下右上角的「x」關閉圖示,我們回到編輯畫面。
最後請按下「Save」儲存你做好的儀表板,這個階段就大功告成了。
使用儀表板 / Open Dashboard
建立好儀表板之後,我們下次就可以用Open的方式開啟來使用。
把Dashboard所有分頁都關掉,或是重新登入Pentaho,我們回到主畫面,進入Browse Files。
回憶一下,我們剛剛Save儲存儀表板的時候所存放的路徑。
- 從左邊的Folders中找到該資料夾
- 然後在中間的Files選擇剛剛建立的儀表板。同樣名稱的檔案會建立三種不同類型的儀表板資料,這時候我們要選擇的是前面有(CDE)的檔案,後面沒有副檔名。
- 再到右邊的File Actions按下Open
可以使用儀表板了。
結語 / Conclusion
這篇介紹了如何在Pentaho裡面用最簡單的步驟建立儀表板。雖然感覺操作步驟很多,但因為大部分動作都是滑鼠操作,所以手續感覺比較複雜。熟悉一個圖表的建立之後,相信大家很快就能夠作出第二個、第三個。眼尖的讀者應該可以注意到,在儀表板編輯畫面的屬性欄位裡面還有很多參數可以自訂,而且在Components Panel裡面可以選擇的Charts (圖表)種類也非常豐富。光是這些排列組合,就足以讓大家製作一個豐富的儀表板了。
然而光是本篇的教學,它還不能算是一個稱職的儀表板。我們還有幾個問題需要解決:
- 如何製作一個過濾選單,讓使用者可以自訂要查詢的圖表內容?
- 如何將儀表板跟其他系統整合?
- 我想要使用自己找到的JavaScript視覺化圖表工具,怎麼做?
這些問題都相當重要。其中第二個問題我好像已經解決了,但事隔一段時間,我現在居然想不太起來當初到底是怎麼做的 (汗)。總之我們一步一步來探究Pentaho的可能性,這篇就先到此為止吧。
http://localhost:8080/pentaho/content/pentaho-cdf-dd/Render?solution=demo&path=&file=pass_parameter.wcdf&userid=joe&password=password&name=Linux
回覆刪除這個做法好像解答了如何跟其他系統整合的問題?