混合異構資料來源關聯計算最佳化方案
在報表專案中,報表資料來源常常會來自於多種異構資料來源,例如:關係型資料庫(oracle、db2、mysql)、nosql 資料庫(mongodb)、http 資料來源、hadoop(hive、hdfs),甚至是 excel 或者文字檔案。針對這類情況,通常的做法是採用 ETL 工具,將這些資料來源都同步到資料倉儲中再進行計算。不過這種做法存在以下問題:
1、配置複雜,難度較大;
2、成本較高;
3、資料無法實時訪問,時間延遲較長;
4、資料倉儲的建設和管理都比較複雜;
5、如果資料量很大效率會很低,而且要不斷的 ETL 各個應用系統的同步資料;
6、資料倉儲利用的也是傳統資料庫的技術,負載增大的時候需要用較高的成本進行擴容。
和這種傳統做法相比,採用潤乾報表可以簡單直接地實現混合資料來源報表,具體做法是透過內建的集算引擎直接讀取各種混合資料來源,讓資料採用最合適的方式儲存,最終以較小的成本呈現基於混合資料來源的實時報表。ETL 方式和潤乾報表方式在體系結構上的對比如下圖所示:
下面,透過《州銷售人員銷售報表》的設計製作來看一下具體的實現步驟。報表如下圖:
報表的銷售資料來自於銷售系統的 mongodb 資料庫,銷售員的資訊則來自人力資源系統的 db2 資料庫。採用潤乾報表的混合資料來源方式,報表資料來源不需要定期同步,不會有時間上的延遲。
第一步,在集算器設計器中編寫指令碼,並儲存為 statesales.dfx,指令碼內容如下:
A | |
---|---|
1 | >hrdb=connect(“db22”) |
2 | =hrdb.query(“select * from employee where state=?”,state) |
3 | =mongodb(“ ”) |
4 | =A3.find(“orders”,,“{_id:0}”).fetch() |
5 | =A4.switch@i(SELLERID,A2:EID) |
6 | =A5.new(ORDERID,CLIENT,SELLERID.NAME:SELLERNAME,AMOUNT,ORDERDATE) |
7 | >hrdb.close() |
8 | >A3.close() |
9 | result A6 |
程式碼說明:
A1:連線預先配置好的 db22 資料來源。
A2:執行 SQL,從表 employee 取數,引數 state=“California”。
A3、A4:從銷售系統的 mongodb 讀取 collection orders。
A5:使用集算器的 switch 函式,將 A4 中的 sellerid 欄位切換成 A2 中的記錄,關聯條件為 sellerid=eid。@i 選項是指如果找不到對應的記錄,則刪除該行。
A6:生成一個新的序表,得到需要的欄位。
A7、A8:關閉資料庫連線。
A9:返回給集算報表。
第二,在報表設計器中定義引數 state,配置集算資料集:
第三,設計報表如下:
執行報表,輸入引數計算後,即可得到前面希望的報表。報表上部的查詢介面是潤乾報表自動提供的“引數模板”功能。引數模板和 db2、mongodb 資料來源配置的具體做法參見教程和其他文件,這裡不再贅述。
需要說明的是,如果資料來源型別發生了變化,只需進行小幅改動即可使報表生效。比如新上線的銷售系統採用了 oracle 資料庫,只要修改 statesales.dfx 的 A1 改為:
hrdb=connect(“ora”)
同時複製 oracle jdbc 驅動、配置 oracle 資料庫的連線引數即可。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900830/viewspace-2665344/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 實現多資料來源混合計算的效能最佳化方案之一
- 星環科技 TDS 聯邦計算能力,讓企業異構資料來源資料合作暢通無阻
- 異構資料庫的關聯查詢 oracle hsodbc 關聯mysql資料庫OracleMySql
- 多個異構資料庫如何關聯查詢資料庫
- 資料整合平臺,多種異構資料來源連結
- 異構資料來源同步之資料同步 → DataX 使用細節
- 異構資料來源同步之資料同步 → datax 改造,有點意思
- 關於異地資料同步的方案
- 資料結構——關聯容器資料結構
- 多源異構資料來源融合怎麼做!一文解讀(1)
- 異構資料來源資料同步 → 從原始碼分析 DataX 敏感資訊的加解密原始碼解密
- QT硬體異構計算QT
- OPPO大資料計算叢集資源排程架構演進大資料架構
- 混合雲端計算vs霧計算
- 關聯式資料庫設計資料庫
- 大資料計算:結構化大資料計算的理想模式大資料模式
- 容器雲資源資料關聯與資料聯動的難點和解決思路
- AzureStack混合雲大資料解決方案REST大資料
- 頁面上怎麼從不同資料庫取數並關聯計算?資料庫
- 異構資料來源同步之表結構同步 → 透過 jdbc 實現,沒那麼簡單JDBC
- SpringBoot資料來源相關配置Spring Boot
- 雲端計算資源。
- 面向資源計算
- LoRA:語言模型微調的計算資源最佳化策略模型
- 異構計算的“備胎上位記”
- MapReduce業務 - 圖片關聯計算
- 雲端計算、大資料、物聯網、人工智慧都是什麼關係?大資料人工智慧
- 綜合設計——多源異構資料採集與融合應用綜合實踐
- 效能最佳化之報表資料預先計算
- 異構資料的SQL一站式解決方案SQL
- 物聯網、大資料、雲端計算、人工智慧之間的關係如何?大資料人工智慧
- 簡單混合運算的計算器
- HPC高效能運算知識: 異構平行計算
- 快速刪除有外來鍵關聯的資料庫的資料資料庫
- jndi資料來源
- 兩個例子(來自Storm實戰 構建大資料實時計算)ORM大資料
- 關於資料日誌的設計方案
- 【資料結構】30、hashmap=》hash 計算方式資料結構HashMap