多個異構資料庫如何關聯查詢
DBlink 只適合同種資料庫關聯,難以關聯異構庫。其他方式不是改變部署架構,就是增加開發工作量,實施起來困難很多。
開發難度小的方式貌似是 ETL,把異構庫變成同構庫,就可以用熟悉的方式寫關聯 SQL。但這種方式需要改變原來的部署架構,硬加一個 ETL 層和一個資料集市層,一般還得加個管理員去維護定時排程,或者額外寫程式碼判斷“資料是否 ETL 完畢”。更大的問題是,這種方式需要把實時計算變成延遲計算,甲方爸爸知道了恐怕會拍桌子。
徹底的解決方案貌似是微服務,把高耦合的 ODBC/JDBC 介面變成低耦合的 http 介面,這樣就可以用統一的 json 或 xml 去傳輸資料。但這種方式要針對每張表開發資料服務介面,要針對每種演算法開發客戶端介面,還要用陌生的框架和類庫,要解決資料庫外的許可權安全……工作量頂天了。而且,具體的運算還得硬寫。
較現實的方法還可以用高階語言比如 JAVA,先用 SQL 把異構資料取過來,再用 arraylist 轉成 2 個類,接下來就可以進行 list 之間的 join 了。但這件事等於拿 JAVA 手工替代 SQL,簡單的合併還湊合,關聯查詢就難寫了,況且還有子查詢、關聯後分組彙總等實用演算法。總之,JAVA 缺乏結構化類庫,替代 SQL 的成本非常高。
如果使用集算器來實現異構庫關聯,則可以保持原部署架構,開發工作量也不大。首先,SPL 可用統一的資料結構訪問任意的資料庫表,這就解決異構的問題。其次,SPL 具有豐富的結構化類庫,很容易實現關聯查詢以及後續的實用演算法,經常比 SQL 還簡單。最後,集算器提供了 JDBC\ODBC 介面,程式設計師只需引入驅動程式,就可以在原來的程式碼上實現異構庫關聯。
比如 java 透過集算器的 JDBC 驅動,訪問 Oracle 的 orders 表,並關聯 MySQL 的 customer 表,最後對關聯結果分組彙總:
con=DriverManager.getConnection(“jdbc:esproc:local://”);
ResultSet rs = con.executeQuery(“orcl.query(/“select * from orders/”).join(cust,my.query(/“select * from customer/”):custid,city).groups(city;sum(amount))”);
關於多資料庫關聯,可參
關於集算器 JDBC 嵌入 JAVA,可參
關於集算器安裝使用、獲得免費授權和相關技術資料,可以參
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900830/viewspace-2698696/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 20240719資料庫關聯查詢、條件查詢資料庫
- BIRT 異構跨庫的動態關聯查詢怎麼做
- day95:flask:SQLAlchemy資料庫查詢進階&關聯查詢FlaskSQL資料庫
- Oracle 查詢多個資料Oracle
- 關於同一個連線不同資料庫之間的 Eloquent 關聯查詢資料庫
- Python—Django:關於在Django框架中對資料庫的查詢函式,查詢集和關聯查詢PythonDjango框架資料庫函式
- hyperf關聯子表查詢主表資料
- java 分庫關聯查詢工具類Java
- 資料庫學習(六)聯合查詢union資料庫
- 分庫資料如何查詢統計
- Laravel Eloquent 關聯模型查詢快取資料Laravel模型快取
- 如何做多表關聯查詢
- java 查詢資料庫並生成多層childrenJava資料庫
- 支付寶工程師如何搞定關聯式資料庫的“大腦”——查詢最佳化器工程師資料庫
- Yii2實現跨mysql資料庫關聯查詢排序功能MySql資料庫排序
- 關係型資料庫查詢語言 SQL 和圖資料庫查詢語言 nGQL 對比資料庫SQL
- 資料庫高階查詢之子查詢資料庫
- MySQL資料庫查詢多個欄位值全部相同的記錄MySql資料庫
- 關於Oracle資料庫的時間查詢Oracle資料庫
- 區分關聯子查詢和非關聯子查詢
- 查詢皮膚中如何實現兩個 select 下拉框的關聯查詢?
- Jemter查詢資料庫資料庫
- 求助:資料庫查詢資料庫
- ThinkPHP 資料庫查詢PHP資料庫
- 資料庫排序查詢資料庫排序
- 查詢資料庫大小資料庫
- langchain_chatchat+ollama部署本地知識庫,聯網查詢以及對資料庫(Oracle)資料進行查詢LangChain資料庫Oracle
- onethinkphp 如何做多表關聯查詢PHP
- django 兩個表或多個表聯合查詢Django
- 資料庫基礎查詢--單表查詢資料庫
- 如何查詢GBase資料庫中表的comment資訊資料庫
- 使用cglib實現資料庫框架的級聯查詢CGLib資料庫框架
- 關於dcat-admin 資料庫過濾查詢資料庫
- 如何查詢和管理織夢CMS資料庫資料庫
- 如何使用Java Streams進行資料庫查詢?Java資料庫
- 資料庫查詢優化資料庫優化
- 資料庫查詢語句資料庫
- ThinkPHP6 多模型關聯查詢操作記錄PHP模型