MongoDB 和 Mysql 怎么关联计算


关键词导读:Mongodb Join MongodbMysql Join

对于异构跨库混合运算的场景,确实很有难度,也非常繁琐。常规办法是做一轮同库(采用ETL等手段,将这些数据源都同步到数据仓库中),然后借助数据仓库的计算能力,完成再次计算或混合运算。然而这种做法存在一些不足:

1、需要建设专门的数据仓库及ETL转入工作,增加额外工作量

2、实时性不好,一般只能定时转储

3、转储入库多一道IO操作影响性能,且占用昂贵的数据库空间,加速扩容

如果有库外计算引擎(集算器),这样的问题就会好办很多,它有完整的集合运算能力和敏捷语法体系,完全不依赖于数据库;在获取不同的数据源后,可直接实施各类结构化计算。

比如:orderMongoDB的集合,custom MysqlTableorder中的字段O_CUSTKEY逻辑上相当于外键,指向customC_CUSTKEY字段。按地区汇总一段时间内的订单销售额。部分源数据如下:

MongoDB Collection order:

Mysql Table custom:

计算结果:

比如上面的问题,集算器SPL5行就搞定了:

 

A

1

=mongo_open("mongodb://localhost:27017/test?user=root&password=sa")

2

=mongo_shell@x(A1,"order.find()").fetch()

3

=Mysql.query("select C_CUSTKEY,C_REGION from custom")

4

>A2.switch(O_CUSTKEY,A3:C_CUSTKEY)

5

=A2.groups(O_CUSTKEY.C_REGION:C_REGION;sum(O_TOTALPRICE):AMOUNT)

上面的例子我们可以看到集算器SPL所具有的优势:

1、无需建设专门的数据库,可以直接获取数据混合计算,性能更好

2、无须入库,体系结构更精简,减少中间表,减少开发量

3、直接取数,实时性好,减少不一致风险

4、一致的计算接口,各种数据源可以用统一的风格来计算

其实还有很多情况用MongoDB处理结构化计算不太方便,但有集算器SPL的辅助却很简单,感兴趣可以参考:玩转Mongo计算简化MongoDB关联运算辅助MongoDB计算协助报表开发之 MongoDB join协助报表开发之 MongoDB join mysql

集算器还很容易嵌入到Java应用程序中,Java如何调用SPL脚本有使用和获得它的方法。

关于集算器安装使用、获得免费授权和相关技术资料,可以参见如何使用集算器

以下是广告时间

对润乾产品感兴趣的小伙伴,一定要知道软件还能这样卖哟性价比还不过瘾? 欢迎加入好多乾计划。
这里可以低价购买软件产品,让已经亲民的价格更加便宜!
这里可以销售产品获取佣金,赚满钱包成为土豪不再是梦!
这里还可以推荐分享抢红包,每次都是好几块钱的巨款哟!
来吧,现在就加入,拿起手机扫码,开始乾包之旅



嗯,还不太了解好多乾?
猛戳这里
玩转好多乾