本文將介紹如何在 FineBI 中連結 MySQL 資料庫。
注:如果是 MySQL8.0,連結方法參見文檔:MySQL8.0 資料連結插件
下載驅動,並將其上傳至 FineBI,如何上傳可參見:驅動管理 2.1 節
V8.0、V5.6.31、V5.5、V5.5.5、V5.6.35、V5.7、V5.6.37、V5.5.46、V6.5、V5.7.16 、V5.6.29、V5.6.22、V5.6.34、V5.6.28、V5.1;
為獲得更好的取數效能,建議使用 Mysql5.5、5.6、5.7 版本的客戶,更換 Mysql 資料庫驅動為 5.1.37 版本為獲得更好的取數效能。(5.1.37 版本的驅動不支援 V5.1、V8.0 的資料庫)mysql-connector-java-5.1.37.jar
注:MySQL8 連結優先使用本文方案,若連結不上可嘗試使用插件連結:MySQL8.0 資料連結插件
在連結資料庫之前,請收集以下資訊:
資料庫所在伺服器的 IP 位址和埠號;
資料庫的名稱;
資料庫的帳號和密碼;
1)以管理者身分登入 FineBI ,點選「管理系統>資料連結>資料連結管理」,點選「資料連結」,如下圖所示:
注:如果非管理者使用者想要配置資料連結,需要管理者給其分配管理系統下資料連結節點的權限,具體操作請查看 資料連結權限
2)找到 MySQL 的圖示,如下圖所示:
3)驅動選擇「預設」(若使用者重新上傳了驅動,可以切換為自訂後選擇自己的驅動),然後輸入 2.2 節的連結資訊。如下圖所示:
注:若出現中文亂碼或日期錯亂的情況,可在「資料連結URL」後加後綴,格式為:jdbc:mysql://hostname:port/database?generateSimpleParameterMetadata=true&useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
其中
-- 設定以"上海時區"為準
-- 編碼轉化
4)點選「測試連結」,若連結成功則「儲存」該連結。
有兩種方式可以將資料庫中的表新增至 FineBI :
新增資料庫表
新增SQL資料集
若 MySQL 資料庫編碼為 UTF-8 ,需要在資料連結的 URL 後新增參數 ?useUnicode=true&characterEncoding=UTF-8
如果新增參數後仍然出現亂碼,那麼需要將編碼改為「預設」。
1)新增 SQL 資料集時,輸入 SQL 語句不支援新增註釋。
2)新增 SQL 資料集時,輸入 SQL 語句不支援 top N 語句。
3)問題現象:新增SQL 資料集時,輸入 SQL 語句中帶有 concat() 函式 ,例如 select concat( count(*) ,"個")from table GROUP BY table1,如果連結的欄位型別不同,會出現亂碼。
解決方法:利用 MySQL 的字串轉換函式 CONVERT() 將參數格式化為 char 型別即可,例如:select concat( CONVERT(count(*),char),"個")from table GROUP BY table1。
1)當使用 MYSQL 資料連結並新增資料表時,若資料庫版本為 MYSQL 5.6 ,請確定資料庫中 varchar 正文型別欄位不為空,否則新增表至 BI 後出現亂碼。
2)當使用 MYSQL 資料連結並新增資料表時,如果資料庫中欄位型別為年份 (year) 型別,在 BI 中會被識別成正文欄位,且顯示為年月日格式。如資料庫中有 year 型別欄位 2015,在 BI 中新增該資料表則會顯示為 2015-01-01。
1)現象:儀表板或資料準備頁面顯示資料庫的時間欄位,比實際資料小了一天。
2)原因:mysql資料庫預設使用的時區為CST,和當前時區不同。
3)解決方法:資料連結URL中增加參數 ?serverTimezone=Asia/Shanghai