论坛首页 Java企业应用论坛

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

浏览 24231 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-07-02  
xuranpaoche 写道
有这样一种应用场景:
客户的业务系统数据库类型多种多样(如oracle、mysql、sqlserver、实时数据库),分别部署在n台服务器上,我们需要在不修改客户原系统的基础上(直接面对各数据库),对异构数据库实现跨系统跨表查询(允许引入中间件,最好不要引入中间数据库)。
各位有木有好的想法?



有种中间件叫做数据虚拟化,就是把多个数据库虚拟成一个数据库。

以前面试过一家公司做这个的,哥们有兴趣可以买个,然后告诉我咋样。
0 请登录后投票
   发表时间:2012-07-02  
mikab 写道
xuranpaoche 写道
有这样一种应用场景:
客户的业务系统数据库类型多种多样(如oracle、mysql、sqlserver、实时数据库),分别部署在n台服务器上,我们需要在不修改客户原系统的基础上(直接面对各数据库),对异构数据库实现跨系统跨表查询(允许引入中间件,最好不要引入中间数据库)。
各位有木有好的想法?



有种中间件叫做数据虚拟化,就是把多个数据库虚拟成一个数据库。

以前面试过一家公司做这个的,哥们有兴趣可以买个,然后告诉我咋样。

貌似就是这个东西,有一个做BI的公司实现了在内存中计算,很费解他们是怎么实现的。呵呵
0 请登录后投票
   发表时间:2012-07-02  
这确实是一个让人感兴趣的话题
0 请登录后投票
   发表时间:2012-07-02  
xiaokang1582830 写道
这确实是一个让人感兴趣的话题

希望大家多提宝贵建议,说不定综合几种中间件,就能解决这样的问题
0 请登录后投票
   发表时间:2012-07-02  
对于数据量级较低的表可以把数据加载到内存数据库再进行查询
0 请登录后投票
   发表时间:2012-07-02   最后修改:2012-07-02
这个东西应该是有现成的,淘宝有一个TDDL项目,http://rdc.taobao.com/team/jm/archives/1645

以前看过几眼这个东西,不知道好不好用,我也没试过。LZ看看能不能用上吧
0 请登录后投票
   发表时间:2012-07-02  
xuranpaoche 写道
mikab 写道
xuranpaoche 写道
有这样一种应用场景:
客户的业务系统数据库类型多种多样(如oracle、mysql、sqlserver、实时数据库),分别部署在n台服务器上,我们需要在不修改客户原系统的基础上(直接面对各数据库),对异构数据库实现跨系统跨表查询(允许引入中间件,最好不要引入中间数据库)。
各位有木有好的想法?



有种中间件叫做数据虚拟化,就是把多个数据库虚拟成一个数据库。

以前面试过一家公司做这个的,哥们有兴趣可以买个,然后告诉我咋样。

貌似就是这个东西,有一个做BI的公司实现了在内存中计算,很费解他们是怎么实现的。呵呵

Teiid:数据虚拟化系统
1、Teiid简介

Teiid是一个数据的虚拟化系统,使应用系统能够使用来自多个异构数据源的数据。

Teiid是由工具、组件和用于服务创建和执行的双向数据服务组成。 通过抽象和联邦,实现分布数据源的实时数据访问和集成,无需复制或从记录系统移动数据。
0 请登录后投票
   发表时间:2012-07-03  
evanzzy 写道
这个东西应该是有现成的,淘宝有一个TDDL项目,http://rdc.taobao.com/team/jm/archives/1645

以前看过几眼这个东西,不知道好不好用,我也没试过。LZ看看能不能用上吧

下载看了一下,是不错的东东,也开源了,不过现在只能支持到mysql和oracle,其他的暂不支持,再细看下代码
0 请登录后投票
   发表时间:2012-07-03  
xuranpaoche 写道
evanzzy 写道
这个东西应该是有现成的,淘宝有一个TDDL项目,http://rdc.taobao.com/team/jm/archives/1645

以前看过几眼这个东西,不知道好不好用,我也没试过。LZ看看能不能用上吧

下载看了一下,是不错的东东,也开源了,不过现在只能支持到mysql和oracle,其他的暂不支持,再细看下代码



这个事儿不引入中间数据源,真没法操作。tddl处理不了。

etl、数据仓库不就是为了解决这些问题的么?

teiid貌似能做到,这有个例子,但是没有看到例子中有join条件:
https://docs.jboss.org/author/display/teiid80final/Portfolio+Example+Explained

仿照tddl原理,,我臆想一下可能的方式:
中间层的虚拟库里定义了不同数据源的schemas,
通过teiid的 driver或datasource 执行的sql,
先被解析为不同数据库上的sql,
然后分别获取数据,并求交集。

0 请登录后投票
   发表时间:2012-07-03  
kimmking 写道
xuranpaoche 写道
evanzzy 写道
这个东西应该是有现成的,淘宝有一个TDDL项目,http://rdc.taobao.com/team/jm/archives/1645

以前看过几眼这个东西,不知道好不好用,我也没试过。LZ看看能不能用上吧

下载看了一下,是不错的东东,也开源了,不过现在只能支持到mysql和oracle,其他的暂不支持,再细看下代码



这个事儿不引入中间数据源,真没法操作。tddl处理不了。

etl、数据仓库不就是为了解决这些问题的么?

teiid貌似能做到,这有个例子,但是没有看到例子中有join条件:
https://docs.jboss.org/author/display/teiid80final/Portfolio+Example+Explained

仿照tddl原理,,我臆想一下可能的方式:
中间层的虚拟库里定义了不同数据源的schemas,
通过teiid的 driver或datasource 执行的sql,
先被解析为不同数据库上的sql,
然后分别获取数据,并求交集。


有没有可能把索引同步到一台机器中?
0 请登录后投票
论坛首页 Java企业应用版

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