Redis 資料集插件

1. 概述

1.1 版本

 報表伺服器版本 插件版本 
11.0V7.1

1.2 應用場景

Redis 快取資料庫作為最為的流行的快取資料庫之一,經常被使用在各種需要高速存取的場景下,偶爾也需要把快取中的資料取出來做一些簡單的查看和分析。但是 Redis 作為 NoSQL資料庫,在 FineReport 中沒有辦法直接使用 JDBC 或者 JNDI 連結存取。

1.3 功能描述

Redis 插件使設計器連結 Redis 資料庫並取數,且支援哈希表、列表、集合以及有序集合。

注:該插件僅支援在 設計器建立資料連結,不支援 [平台]資料連結 。 

2. 插件介紹

2.1 插件安裝

點選下載插件:Redis資料集

設計器插件安裝方法參照:設計器插件管理

伺服器安裝插件方法參照:伺服器插件管理

3. 範例

3.1 建立 Redis 資料連結

1)點選伺服器>定義資料連結,如下圖所示:

2)選擇 Redis 並輸入資料庫地址、埠號和密碼,如下圖所示:

3)配置 Redis 連結的連結池資訊,如下圖所示:

4)如果當前報表伺服器無法直接連結 Redis 伺服器,而是需要透過跳板機器連結 Redis 伺服器,則需要配置跳板伺服器,如下圖所示:

注意:一旦配置了跳板伺服器,連結池配置即失效,只能使用單個連結。

3.2 Redis 資料集

3.2.1 建立 Redis 資料集

點選+,選擇 Redis 資料集,如下圖所示:

3.2.2 編寫 Redis 查詢語句

1)根據參數 $key ,查詢 redis 中的值,相當於呼叫命令:get name ,如下圖所示:

注意:左側的列表是用於展示搜尋出來的 key 值的,方便編寫 SQL 語句的時候使用列出來的 key 值。

3.2.3 預覽效果

查詢預覽結果如下圖所示:

3.2.4 支援的命令

運算子  範例程式碼   說明 
  get get hellokey 獲取 hellokey 對應的值
  mget mget foo bar zyx  獲取參數列表匯總所有的鍵對應的值
 hkeys hkeys website 獲取指定哈希表中的所有鍵
 hget hget site redis -
 hmget hmget pet dog cat傳回哈希表key中,一個或多個給定域的值,可參考 http://redisdoc.com/hash/hmget.html
  hgetall  hgetall contry  獲取哈希表中所有的鍵值對
  lrange  lrange score 0 -1  獲取列表中指定位置的值
 smembers smembers name 獲取無序列表中參數值對應的所有元素
 zrange zrange -

3.3 Redis 程式資料集

Redis 程式資料集,是使用支援 ES6 的 JavaScript 腳本語句,來從 Redis 查詢資料並進行資料轉換的資料集,該資料使用非常靈活,但需要有一定的 JavaScript 腳本知識。

注1:該類型的資料集需要使用 2019-03-10 之後的 JAR 包。

注2:在資料集中支援選擇使用的引擎類型:V8引擎/Nashon 引擎

V8 為高速引擎,支援 ES6 文法,但低版本伺服器可能不支援。預設為自帶的引擎,效率較低但相容性好。

注3:支援的引擎類型與Redis伺服器有關,部分伺服器版本不支援V8 引擎,可使用語句查看當前伺服器使用的腳本引擎:

return merge([[console.engine()]], ["engine"]);  

3.3.1 建立 Redis 程式資料集

3.3.2 編寫 Redis 查詢腳本

注意:腳本語句基於JavaScript,在使用前需要掌握一定的JavaScript基礎,提供一個自學JS語言的網站僅供參考:JS學習

1)輸入對應的腳本,進行資料集查詢,如下圖所示:

2)得到預覽結果如下圖所示:

3)同時也可以在腳本中傳遞參數,如下圖中的 ${key} ,表示 key 是從報表中傳遞的參數,如下圖所示:

注:查詢腳本中使用的參數名稱,和報表參數的名稱不能相同,例如這裏的key和name,是兩個不同的名稱。

3.3.3 內建函式和變數

名稱

作用

類型

注意事項

redis表示 redis 用戶端變數-
redis.get等同於命令 get函式-
redis.hget等同於命令 hget函式-
redis.hkeys等同於命令 hkeys函式-
redis.hmget等同於命令 hmget函式-
redis.hgetAll等同於命令 hgetall函式注意是駝峯式的方法名稱,不是全小寫
redis.keys等同於命令 keys函式-
redis.lrange等同於命令 lrange函式-
redis.mget等同於命令 mget函式-
redis.smembers等同於命令 smembers函式-
unique(array)將陣列進行去重,主要用於列名處理函式-
console.log(info)匯出除錯資訊,會在日誌檔案中匯出 INFO 級別的資訊函式-
console.error(err)匯出錯誤級別的資訊,會在日誌檔案中匯出 ERROR 級別的資訊函式-
console.engine匯出使用的腳本引擎函式V8或者Nashorn
merge(table, column)合併資料集的內容和列名物件,用於給資料集傳回正確的資料結構函式第一個參數必須是一個二維陣列,第二個參數必須是一個一維陣列

注意:所有 Redis 函式均傳回的是字串,如果需要轉換成陣列或者物件,可以使用 JSON.parse() 函式將字串轉換為 JavaScript 物件。

3.3.4 執行外部腳本

在 Redis 程式資料集中,可以使用 Files.require(filePath) 來引入外部腳本檔案,範例如下:

// 相對路徑,讀取的是 下的檔案
// Files.require("");表示讀取 C 盤下的檔案
Files.require("");
return merge(content, column);

其中 query.js 檔案的位置為:報表工作區間/resources/script/query.js

使用相對路徑的時候會讀取報表工作區間下的檔案,使用絕對路徑時,會直接讀取該檔案。

附件列表


主題: 資料準備
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙

反饋已提交

網絡繁忙