原文地址
代碼倉庫
cboard安裝
包括數據庫表的創建,配置文件修改
數據庫mysql
進入到項目根目錄,登陸到mysql
mysql > create database cboard;
mysql > use cboard;
mysql > source sql/mysql/mysql.sql;
修改配置文件
配置文件src/main/resources/config.properties
validationQuery=SELECT 1
jdbc_url=jdbc:\mysql://localhost:3306/cboard # 數據庫地址
jdbc_username=root # 用戶名
jdbc_password=111111 # 密碼
修改好後啓動項目,訪問localhost:8080
進入登陸界面,初始用戶名:admin
,初始密碼:root123
cboard構成
由數據源(DataSource
)、數據集(DataSet
)、圖表(Widget
)、看板(DashBoard
)這四部分構成;其中看板由多個圖表拼接而成,圖表顯示的數據是數據集中的數據,數據集中的數據從數據源中獲得,就mysql
來說,數據源即代表一個數據庫,數據集則是用sql
語句從數據庫查出來的數據。
cboard使用
由cboard
構成可知,爲了最終生成一個用於顯示各種數據的看板,應該從Datasource->DataSet->Widget->DashBoard
這種順序依次構建。
構建數據源
打開左側的Configration->DataSource
,點擊+
按鈕
對於mysql
數據源,填好對應參數,點擊test
測試是否連接成功
若測試連接成功,點擊save
保存該數據源。
構建數據集
假設有一張名爲billing_detail
的表,用於記錄個人每一筆錢的支出,總共有id
,name
,amount
,category
,create_at
5個字段,如下表所示:
id | name | amout | category | create_at |
---|---|---|---|---|
1 | 喫飯 | 20.2 | 餐飲 | 2020-02-01 13:10 |
2 | 火車票 | 170.5 | 出行 | 2020-02-01 15:00 |
依次打開Configration->DataSet
,點擊添加按鈕,新建一個數據集:
在上圖中,Name
選項填寫數據集的名稱,格式爲:數據集類別/數據集名稱;Datasource
選擇之前創建的數據源;Sql Text
即一個sql
表達式,用於從數據源中取出數據。填好上面三項後,點擊Load Data
按鈕,若sql
表達式正確無誤,就會出現下半部分:左側是數據集中的字段值,這些字段可以用拖拽的方式拖到右側的欄目下面:Dimension
即數據的維度,Measure
是度量,Caculated Measure
是聚合表達式,Filter Group
是過濾器。填好後點擊save
就成功創建了一個數據集。
創建圖表
有了數據集後就可以進行圖表的創建,依次點擊Configration->Widget
,點擊添加按鈕+
,就會出現下圖的彈出框
在圖中,點擊Cube
可以下拉選擇數據集,Widget Name
是圖表的名稱,命名方式爲category/name
,選好數據集之後就會出現下圖,通過拖動左側的參數到右側合適的位置,就可以設計圖表了
圖表設計
在此,以之前創建好的數據集爲基礎,通過幾個例子來演示圖表的設計
1,按年月分類,用曲線顯示每個月的總消費
在這個例子中,將左側維度項(Dimension
)下year
,month
的參數拖到右側的Row
欄目中,將左側度量項(Measure
)下的amount
參數拖入到Value Axis
這個欄目中,選擇Widget Type
欄目中的線型圖表,點擊Preview
,可以看到,最終生成的圖形中,橫軸是Row
欄目中兩個參數year
和month
的組合,縱軸是Value Axis
欄目中的amount
的求和值,即sum(amount)
,也就是說,Measure
下的參數拖動到Value Axis
欄目時,系統會自動爲其添加sum
聚合函數。點擊View Query
可以看到它生成的sql
語句正是如此。
SELECT year, month ,SUM(amount)
FROM
(
select
1 as `count`,name,`amount`,category,left(create_at,4)as `year`,substring(create_at,6,2)as `month`
from
billing_detail
)
cb_view GROUP BY year, month
2,對比每個年份相同月份下的總消費
這個例子中,唯一與例1
不同的地方就是把例1
中的year
這一項從Row
這一欄拖到了Column
這一欄。這樣便每個年份顯示一條曲線,橫軸就是每年下的每個月份。Column
這欄能分成幾類,結果就有幾條曲線。可以查看它生成的sql
和例1
完全相同,對比可發現加到Column
和Row
這兩個欄目下的所有參數都會在生成sql語句時加入到group by
後面進行聚合。
SELECT year, month ,SUM(amount)
FROM
(
select
1 as `count`,name,`amount`,category,left(create_at,4)as `year`,substring(create_at,6,2)as `month`
from
billing_detail
)
cb_view GROUP BY year, month
3,按年月分類,用線型圖顯示平均消費,用柱狀圖顯示總消費
在這個例子中,同時存在柱狀圖和線形圖。Value Axis
這一欄比前兩個例子多了一行,且這一行是將左側Caculated Measure
這一項下的avgAmount
,這是之前提前定義的計算平均值的聚合表達式參數。
4,統計每個年份的消費佔比,按餅圖顯示
這個例子中,按年份統計消費佔比,只需將year
這個變量拖到Row
這一欄中
5,統計每個消費類別的佔比
這個例子中,按年份統計消費佔比,只需將category
這個變量拖到Row
這一欄中
看板設計
設計看板時先添加一個看板分類,否則只能選擇默認(default)的分類。依次選擇Configuration->DashBoard Category
進行添加
創建好自己的看板分類後就可以添加看板了,依次選擇Configration->DashBoard
,對於網格佈局來說,在看板中首先要添加行,即Add Row
,每行又可添加多個列。列寬總和爲12。添加列時可以選擇已經創建好的圖表於該列中。如下圖
將之前示例中的幾個圖都添加到看板中,點擊save
,保存後就可以在看板選項中查看自己的看板了,如下圖:
用戶交互
cboard中,用戶交互的方式有兩種,一種是添加看板參數,另一種是圖表之間的關聯
利用看板參數進行交互
編輯看板,點擊添加看板參數(Add Param Row
)按鈕,就會出現下圖
點擊添加參數(Add Param
)按鈕就會彈出可以選擇添加的參數選項,選擇自己需要添加的參數
這個參數是我們之前定義好的數據集中的參數,它的變化將影響所有依賴於該數據集的圖表。參數添加成功後點擊保存,查看看板
可以通過修改看板參數的值來使圖形發生變化。
利用圖表關聯進行交互
在前面提到的例4
,例5
兩個例子中,例4
展示了每個年份的消費佔比,例5
展示了每個消費類別的佔比。如果需求是點擊例4
餅圖中不同年份對應的位置,例5
則相應的切換到統計該年份下的各類消費的佔比,這就用到圖表之間的關聯。
如上圖所示,例4
和例5
兩個圖表已加入到看板中,點擊例4
上的鏈接按鈕,就會出現一個關聯圖表的選項
第一個參數Widget Fields
表示當前圖表要關聯的變量,按要求選擇年份year
,第二個參數Correlation Widget
表示要關聯的目的圖表,第三個參數Correlation Widget Fields
表示關聯目的圖表的變量。填好後點擊Save
保存。查看看板是否正確。