91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

BIRT異構跨庫的動態關聯查詢該怎樣做

發布時間:2022-01-15 16:00:19 來源:億速云 閱讀:149 作者:柒染 欄目:互聯網科技

這篇文章主要為大家分析了BIRT異構跨庫的動態關聯查詢該怎樣做的相關知識點,內容詳細易懂,操作細節合理,具有一定參考價值。如果感興趣的話,不妨跟著跟隨小編一起來看看,下面跟著小編一起深入學習“BIRT異構跨庫的動態關聯查詢該怎樣做”的知識吧。

BIRT自帶的Data Sources Join以及用ETL轉化為同庫等方案都難以解決此類問題。具體可以通過如下示例討論:

交易明細數據(trade表)存儲于生產系統的數據庫DB2中,另外一部分業務數據(network表、account表)存儲于業務系統的Mysql中,它們其中的關聯關系如下圖所示:

BIRT異構跨庫的動態關聯查詢該怎樣做

所謂“動態關聯”,是指用戶在前臺界面輸入參數,報表通過參數來決定trade和哪張表做關聯,并在報表中顯示關聯后的數據,實際運算中可能還要進行數據過濾和匯總。查詢流程如下圖所示:

BIRT異構跨庫的動態關聯查詢該怎樣做

比如查詢場景一:報表根據傳入參數,能動態地將trade中的outAccount字段和account中的accountNo字段關聯,最后查詢結果顯示trade中的所有字段以及account的name,gender,city等字段。

解決此類問題的常見方案與不足,分析如下:

1、BIRT Data Sources Join的問題在于要求表名和字段名是已知、確定的,但這類報表都是通過參數來動態關聯的,因此無法實現。

2、可以用ETL把生產庫的數據抽取到業務庫,這樣跨庫的問題就轉化為同庫了。這個方案思路簡單但實施起來細節上有很多難點。首先是實時查詢:為了實時查詢數據,需要在生產庫使用觸發器之類的功能來檢測數據的實時變化,并將數據推送到業務庫,但生產庫不能輕易改動,因此實時查詢就無法實現。非實時查詢也難以辦到,這是因為生產庫的數據極其龐大,不可能每次都全部取過來,只有用增量抽取的辦法,而判斷增量就需要在trade表中加入時間戳字段。同樣,生產庫是不允許有這種改動的,因此也無法實現。

3、從能力上講,BIRT JAVA bean data source是真正能解決報表問題,它比Data Sources Join更具靈活性,也不需要修改生產庫。但這個方案只有一個缺陷:代碼過于復雜,原因在于數據計算并非JAVA特長,若每次遇到跨庫問題都用硬編碼方式來實現,并不現實。

建議使用集算器,它是獨立的數據計算引擎,擁有不依賴于數據庫的計算能力,支持異構數據源的混合運算,比較適合進行動態關聯再計算,事實上,可以把集算器看作是語法更簡單的BIRT JAVA bean data source。比如實現上面的問題,集算器腳本只需6行:


A

1

=DB2.query("select runningNo,networkNo,outAccount,amount from trade")

2

="select"+crossJoinField+","+crossOtherFields+"from"+crossTable

3

=Mysql.query(A2)

4

=join(A1:trade,${tradeJoinField};A3:cross,${crossJoinField})

5

=crossOtherFields.array().("cross."+~).string()

6

=A4.new(trade.runningNo,trade.networkNo,trade.outAccount,trade.amount,${A5})

其中 tradeJoinField,crossJoinField,crossOtherFields,crossTable 為輸入參數。最后將計算結果返回給BIRT的DataSet進行報表展現。從此示例來看,集算器的參數用法很靈活,非常適合這類動態關聯查詢。由于它是專門的計算語言,所以較于常規辦法,跨庫計算的代碼更加精煉易懂。

關于“BIRT異構跨庫的動態關聯查詢該怎樣做”就介紹到這了,更多相關內容可以搜索億速云以前的文章,希望能夠幫助大家答疑解惑,請多多支持億速云網站!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乌鲁木齐市| 大丰市| 交口县| 尚志市| 正阳县| 公安县| 赞皇县| 惠水县| 定南县| 西乌珠穆沁旗| 普陀区| 共和县| 广宁县| 海晏县| 襄城县| 永德县| 娄烦县| 方城县| 金阳县| 威宁| 阜新市| 泰宁县| 扶绥县| 横山县| 阜平县| 阿拉善右旗| 宜州市| 贵港市| 菏泽市| 岳西县| 黑龙江省| 涿鹿县| 读书| 余庆县| 肥城市| 锡林浩特市| 青岛市| 梅河口市| 黄大仙区| 万宁市| 乌海市|