1. 版本
報表服務器版本 |
---|
10.0 |
2. 描述
2.1 問題描述
FineReport 8.0 和 9.0 版本可以将 LogDB 數據庫遷移到自己的數據庫中進行管理和增強分析。但10.0版本不支持直接遷移。
這是由於 FineReport 10.0 采用了帆軟全新開發的 Swift 引擎,以便更好的記錄分析 LogDB 數據庫的性能,但是目前 Swift 引擎未完善對其他數據庫的支撐。所以面臨這樣的現狀:
FineReport 10.0的 LogDB 數據庫無法直接遷移
直連内置的 LogDB 數據庫進行增強分析,有 SQL 語句的限制,有些 SQL 寫法不支持。
2.2 解決方案
用戶可以通過定時調度的定時填報任務,來實現和 LogDB 數據庫遷移一樣的效果。
3. 示例
3.1 獲取 LogDB 數據庫數據
點擊服務器>定義數據連接,新增一個 JDBC 數據連接,設置信息如下表所示:
選項 | 内容 |
---|---|
數據庫 | Others |
驅動器 | com.fr.swift.jdbc.Driver |
URL | jdbc:swift:emb://default(Mac、Windows、Linux通用) |
用戶名和密碼 | 空 |
設計器設置頁面如下圖所示:
3.2 建立本地數據庫
3.2.1 新建表結構
對照 LogDB 數據庫的表結構,在自己的數據庫建立對應的表結構,表結構請參見:報表日志 LogDB 數據庫(2.3節)
本文僅示例在本地 MySQL 數據庫下fine_record_execute表的建立,如下圖所示:
3.2.2 數據連接本地數據庫
在設計器中建立數據連接,連到這個遷移數據庫,如下圖所示:
注:不同數據庫對應的連接屬性值請參照數據連接支持範圍
3.3 建立填報模板
3.3.1 模板設計
查詢内置 LogDB 數據庫中的fine_record_execute表數據,并新建如下圖所示的報表:
3.3.2 調整字段的展示值
用戶可根據自己的需求,調整各個字段的展示值,下文僅對time字段進行調整
如下圖所示,time字段保存的不是标準日期格式。
将time字段條件屬性設置新值,值爲TODATE($$$),條件是1=1,保證永遠執行,如下圖所示:
3.3.3 設置填報屬性
點擊模板>報表填報屬性,新增内置SQL,将單元格與遷移數據庫的字段綁定,如下圖所示:
3.4 建立定時任務
點擊服務器>報表平台管理,使用管理賬号登錄數據決策系統,點擊管理系統>定時調度,新建LogDB定時抽取任務:
執行頻率根據用戶需求自行定義,如下圖所示:
選擇 3.3 節制作的填報模板,類型選擇填報,如下圖所示:
至此,LogDB 數據庫的定時抽取設置就完成啦。