精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (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, 然后分别获取数据,并求交集。 有没有可能把索引同步到一台机器中? 考虑到不同数据库的差异性,这是一个大工程。。。 注意到teiid不仅支持跨源的join,还有优化策略: https://docs.jboss.org/author/display/teiid80final/Federated+Optimizations#FederatedOptimizations-DependentJoins |
|
返回顶楼 | |
发表时间:2012-07-03
teiid大概就是这么个策略:
1、cursor+批量 使用cursor每次从多个源获取一批数据处理, 2、缓存+临时数据源 每次获取到的数据,在内存或磁盘缓存,可以作为一个中间的临时数据源。 缓存数据在session结束时清除。 |
|
返回顶楼 | |
发表时间:2012-07-03
最后修改: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, 然后分别获取数据,并求交集。 对,原理上应该就是这样的,“然后分别获取数据,并求交集。”不同的实现方式效率上差别很大 |
|
返回顶楼 | |
发表时间:2012-07-03
这个貌似是一个很浩大的工程,如果在特定的表数据上是比较容易实现的,如果表、数据、库不定的话几乎是一个不能实现的工作,有没有考虑一下数据汇总?将数据汇总到一个库中做查询?
或者看看抛哥的建议分析库、表结构,按需建立数据库连接,查询? |
|
返回顶楼 | |
发表时间:2012-07-03
jinyanhui2008 写道 这个貌似是一个很浩大的工程,如果在特定的表数据上是比较容易实现的,如果表、数据、库不定的话几乎是一个不能实现的工作,有没有考虑一下数据汇总?将数据汇总到一个库中做查询?
或者看看抛哥的建议分析库、表结构,按需建立数据库连接,查询? 抛哥提到了MapReduce ,我不明白他是建议使用hadoop吗 其实这个需求主要是为了抛开中间库,是数据仓库数据中心的另一种实现(虚拟存储)关键点在于数据拿上来以后,怎么做关联,在服务器不被搞死的前提下性能稍微低下可以忍受 |
|
返回顶楼 | |
发表时间:2012-07-03
既然是异构系统,何不面向服务,一定要在数据层面做集成么。
|
|
返回顶楼 | |
发表时间:2012-07-03
kimmking 写道 teiid大概就是这么个策略:
1、cursor+批量 使用cursor每次从多个源获取一批数据处理, 2、缓存+临时数据源 每次获取到的数据,在内存或磁盘缓存,可以作为一个中间的临时数据源。 缓存数据在session结束时清除。 teiid 貌似可以,我在看文档,多谢 |
|
返回顶楼 | |
发表时间:2012-07-03
写自己的中间件,写自己sql解析器。
|
|
返回顶楼 | |
发表时间:2012-07-03
能偷懒吗?DB2的联邦查询搞定了。
|
|
返回顶楼 | |
发表时间:2012-07-03
最后修改:2012-07-03
http://www.hgsql.com/hgsql.asp
有兴趣看看,纯java虚拟数据库 |
|
返回顶楼 | |