BIRT 如何連接 MongoDB

導讀關鍵詞:BIRT MongoDB JDBC

MongoDB 不同於 Oracle,MYSQL 這些關係數據庫,沒有提供 JDBC 連接,查詢語言也不是 SQL 了,換成了一套有些複雜的腳本語言。

BIRT 裏怎麼連 MongoDB 呢,通常是這兩種方式:

1、 新建 Scripted Data Source,然後定義它的數據集,通過 open、fetch 事件裏寫 javascript 腳本,調用 Mongo Java Driver 從 MongoDB 取數。

2、 後來 BIRT 增加了專門的 MongoDB Data Source 類型的數據源,這樣就有了專用的 MongoDB 數據集定義界面,簡單的查詢免去了寫 MongoDB 腳本的麻煩,但對分組聚合、JOIN 關聯仍然無能爲力。

那有沒有 MongoDB 的 JDBC 呢?集算器JDBC給出了第三種連接方式,下面以兩表join爲例簡單說明一下:

1、編寫集算器的SPL腳本,存儲爲c1c2Join.dfx文件

  A
1 =mongo_open("mongodb://127.0.0.1:27017/raqdb")
2 =mongo_shell(A1,"c1.find()").fetch()
3 =mongo_shell(A1,"c2.find()").fetch()
4 =A2.join(user1:user2,A3:user1:user2,output)
5 >A1.close()

    執行結果爲:

user1 user2 income output
1 2 0.56 0.3
1 3 0.26 0.4

同樣功能的Mongo腳本是這樣:

3png

2、在birt裏部署集算器JDBC,然後 JDBC 執行的語句裏調用上面文件名就可以了:

4png

其實,BIRT用什麼方式來連接MongoDB,並不會有太大的優劣之分,而網友們追問的BIRT怎麼查詢MongoDB,背後隱含了一個沒有明說的難點,應該是在問:BIRT通過什麼方式連接MongoDB?連上後又有什麼簡單的方法能查詢數據?MongoDB 的查詢腳本太難寫了!

集算器提供了更通用的JDBC連接方式,這是個小改善;而SPL腳本因爲是完善的集合化查詢語言,針對 MongoDB 這種多層嵌套的數據結構,能提供高效的關聯、合併、條件、分組聚合、排序等計算能力,這纔是一個很大的改進。上述例子摘自玩轉 Mongo 計算

 

SPL能很方便地嵌入到JAVA應用,可參考《Java 如何調用 SPL 腳本》

具體使用方法可參考 《如何使用集算器》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章