论坛首页 Java企业应用论坛

来个头脑风暴^ - ^一个技术层面的挑战:异构数据库之间的联合查询

浏览 24140 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-07-04  
如果几个库的表都是t级别的话效率会有多慢,别忘记了还有可能对现有系统的影响。当然,如果只是个别的报表还可以理解。要是挖掘,就不如etl,hadloop了
0 请登录后投票
   发表时间:2012-07-04  
dlut_chen 写道
如果几个库的表都是t级别的话效率会有多慢,别忘记了还有可能对现有系统的影响。当然,如果只是个别的报表还可以理解。要是挖掘,就不如etl,hadloop了

海量数据的话,就是另外一个话题了。
直接用什么现成的东西,都是有问题的。
0 请登录后投票
   发表时间:2012-07-04   最后修改:2012-07-04
这个功能很久以前就实现了,简单来说就是通过一个jdbc的orm框架,访问不同的数据库得到相应的查询结果集,再进行汇总,过滤,排序等二次处理。
前面有朋友介绍TDDL动态数据源和http://www.ogsadai.org.uk/,不知道具体要怎么做,有时间再去研究国外这个成熟的解决方案。我目前的解决方案有两种:
最简单的EasyQuery方式:http://ffychina.iteye.com/admin/blogs/1541973
最全面的JDBC—ORM框架方式:http://ffychina.iteye.com/admin/blogs/996144
这两篇文章不是针对介绍跨数据库的处理,只是介绍如何优雅地处理数据库的查询结果集,如果觉得牛头不对马嘴的请不要喷。这两种实现只要稍加扩展就可以达到跨数据库处理的效果,对调用者而言可以当成是一个数据源透明地处理。注意的是,这种跨数据库的解决方案的性能问题会差一些,会受限于JAVA性能和JVM内存,一般来说1万条数据之内不成问题,十万条要优化一下代码了。百万以上的不做考虑。
0 请登录后投票
   发表时间:2012-07-04  
没想到这帖子这么火,真可以看看hgsql了
http://www.hgsql.com/hgsql.asp
0 请登录后投票
   发表时间:2012-07-05   最后修改:2012-07-05
ffychina 写道
这个功能很久以前就实现了,简单来说就是通过一个jdbc的orm框架,访问不同的数据库得到相应的查询结果集,再进行汇总,过滤,排序等二次处理。
前面有朋友介绍TDDL动态数据源和http://www.ogsadai.org.uk/,不知道具体要怎么做,有时间再去研究国外这个成熟的解决方案。我目前的解决方案有两种:
最简单的EasyQuery方式:http://ffychina.iteye.com/admin/blogs/1541973
最全面的JDBC—ORM框架方式:http://ffychina.iteye.com/admin/blogs/996144
这两篇文章不是针对介绍跨数据库的处理,只是介绍如何优雅地处理数据库的查询结果集,如果觉得牛头不对马嘴的请不要喷。这两种实现只要稍加扩展就可以达到跨数据库处理的效果,对调用者而言可以当成是一个数据源透明地处理。注意的是,这种跨数据库的解决方案的性能问题会差一些,会受限于JAVA性能和JVM内存,一般来说1万条数据之内不成问题,十万条要优化一下代码了。百万以上的不做考虑。

很不错,jorm简单的在内存中做一下处理很得当,之前考虑即使自己做中间件也会受jvm内存限制,所以仅仅针对数据量级别可控的查询
0 请登录后投票
   发表时间:2012-07-05  
给LZ推荐一个,Jboss的Teiid
0 请登录后投票
   发表时间:2012-07-05  
cwchen 写道
给LZ推荐一个,Jboss的Teiid

应该是先写出表分布,再写出对应sql
0 请登录后投票
   发表时间:2012-07-05  
抛出异常的爱 写道
evanzzy 写道
抛出异常的爱 写道
evanzzy 写道
其实解决这个问题还有个最傻的也肯定有效的办法:就是最原始的,让程序员自己去判断数据库类型,用了什么数据库,就写什么样的SQL,把不同数据库的数据都提到内存里来进行一致性处理。

自己写中间件去做这事情是最不靠谱儿的,投资大,见效慢,效果差。

经手过一个过亿的项目.
把现有的N个系统整合起来.
N大于等于20
当下决定跳槽.

整合的意思不是就SOA么?为什么要跳槽?是不是提了什么牛掰的需求?

欠了一月工钱.....

跳得对!
0 请登录后投票
   发表时间:2012-07-06  
cwchen 写道
给LZ推荐一个,Jboss的Teiid

正在研究,好东西
0 请登录后投票
   发表时间:2012-07-18  
很多报表软件都提供这些功能,价格不便宜,不过相对成熟,功能也强大
为了避免广告嫌疑,就不发名字了
以前用过某款,不但可以通过他的可视化设计器对不同数据源进行各种join操作等,
甚至可以用现成的控件做出html页面上的各种输入框啊,按钮啊,等等,
查询结果自定义设计,还支持各种图标,
做跨库查询还是很方便的
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics