對於維運平台部署的工程,如在部署時勾選了ElasticSearch組件,ElasticSearch會更換swift(logdb)作為日誌儲存。
如在工程「管理系統>系統管理>標準」介面看到「ElasticSearch連結配置」,說明已啟動ElasticSearch作為日誌儲存。
請勿參考本文連結工程日誌庫,如需連工程日誌服務,請聯絡帆軟技術支援獲取幫助。技術支援聯絡方式: 帆軟官方服務渠道使用説明 。
1. 概述
1.1 版本
FineBI 版本 |
---|
6.0 |
1.2 應用場景
為了加強對 FineBI 工程的管理,隨時監視其運作狀態,可在平台中開啟日誌記錄,如下圖所示:
注:系統日誌級別的設定僅影響系統日誌的匯出,不影響操作日誌。兩種日誌的差別請參見:日誌簡介 。
1.3 功能簡介
LogDB 是 FineBI 日誌監視開啟之後,用於儲存日誌的內建資料庫,那麼 FineBI 日誌都包含哪些內容呢?
本文將簡單介紹 LogDB 中各個資料表的含義以及欄位的含義。
資料庫 LogDB 中表的實際應用可以參考:LogDB 的實際應用場景
2. 連結 LogDB 資料庫
2.1 建立資料連結
1)管理者登入數據決策系統,點選「管理系統>資料連結>資料連結管理>建立資料連結」,如下圖所示:
2)資料連結方式選擇「其他>其他JDBC」,如下圖所示:
3)如下圖配置好資料連結資訊,點選「儲存」即可。
配置項 | 內容 | 備註 |
---|---|---|
資料連結名稱 | LogDB | - |
驅動 | com.fr.swift.jdbc.Driver | 手動輸入驅動器名稱 |
資料連結 URL | jdbc:swift:emb://default | Mac、Windows、Linux 通用 |
2.2 查詢 LogDB 資料表
注:使用 LogDB 資料表時,不支援 實時資料 。
1)管理者登入數據決策系統,點選「管理系統>資料連結>伺服器資料集>建立資料集>SQL 資料集」,如下圖所示:
2)輸入資料庫查詢語句,點選「預覽」按鈕即可查詢 LogDB 中的資料表。如下圖所示:
2.3 LogDB 資料表和欄位
Logdb 資料庫中各個資料表和表欄位的含義,請參見:LogDB 表結構
3. 查詢文法
本章將簡單介紹LogDB支援的查詢文法,本文未列舉的文法,不確定可用。
3.1 明細查詢
SQL 語句範例:
1)select * from fine_record_execute
2)select tname, displayName, consume from fine_record_execute
3.2 group by 查詢
GROUP BY 查詢,有 SUM,COUNT, MAX, MIN, AVG 這五種聚合方式。
如果SQL語句中不寫聚合方式,會預設使用 COUNT 。
SQL 語句範例:
1)select sum(consume) from fine_record_execute group by tname, displayName
2)select consume from fine_record_execute group by tname, displayName
等同於:select COUNT(consume) from fine_record_execute group by tname, displayName
3)select min(consume), max(consume) from fine_record_execute group by tname, displayName
3.3 where 過濾條件
簡單的 WHERE 過濾條件,支援 AND, OR, =,<>,>,>=, <,<=, in, isnull
SQL 語句範例:
1)select * from fine_record_execute where consume > 10
2)select sum(consume) from fine_record_execute where consume > 10 and consume < 100 group by tname, displayName
3)select consume from fine_record_execute where tname = `doc/Advanced/Chart/GraphSwitching/多圖表實現統一切換.frm`
4)select sum(consume) from fine_record_execute where tname in (`doc/Advanced/Chart/GraphSwitching/多圖表實現統一切換.frm`, `doc/Advanced/Chart/Combination/柱形-面積組合圖.cpt`) group by tname, displayName
3.4 todate() 將時間戳轉換為普通的日期類型
todate() 結果的日期格式為:2018-12-18 10:15:26
SQL 語句範例:
1) select todate(time) from fine_record_execute
2) select * from fine_record_execute where todate(time)<'2018-12-18 10:15:26' and todate(time)>'2018-12-17 10:15:26'
3.5 like 模糊查詢
只支援前後‘%’的用法
注1:支援使用 like 進行模糊查詢,不支援 not like 用法 。
注2:目前只支援 '%',暫不支援通配符 ‘_’,需要更新 2019-06-14 以後的 JAR。
SQL 語句範例:
1)select * from fine_record_execute where tname like '%demo%'
4. 注意事項
4.1 LogDB 中新增表後更新失敗
問題描述:
在 LogDB 資料庫中新增表後,更新失敗。平台報錯:更新失敗,請聯絡管理者查看報錯資訊。如下圖所示:
原因分析:
1)編輯過的 基礎表 更新會巢狀,但目前 swift 不支援巢狀。所以,FineBI 目前暫不支援本節「問題描述」中的操作。
2)LogDB不支援增量更新,logdb本身就是內部資料,不建議外部連結,如果要使用抽數查看,可以使用全量更新。
4.2 browser 欄位說明
LogDB 資料庫fine_record_execute表中 browser 欄位一般記錄用戶端存取報表所用的瀏覽器版本,例如:CHROME/83.0.,當 browser 欄位值如下所示時:
{'Browser':'webkit','Version':'537.36','Agent':'mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/81.0.4044.138 safari/537.36','BoxModel':true,'terminal':'null'}
記錄的是瀏覽器請求頭user agent(使用者代理字串)的值,user agent相當於瀏覽器的唯一標識。
4.3 一個範本編號對應多個範本名稱
問題描述:
LogDB 資料庫fine_record_execute表中,一個 reportId 對應多個 tname ,如下圖所示:
原因分析:
儀表板被多次重新命名,每次重新命名後都對儀表板進行存取/匯出/列印操作,所以 fine_record_execute 表中一個範本編號會對應多個範本名稱。