报表服务,需要联接查询多个数据源,进行列表展示,这个有比较好的实现方案么? 多数据源指 a 库再 A 服务器,b 库再 B 服务器……
目前想到的方案是,通过代码来获取数据,在 A 服务器 a 库查询出关联字段后,在去 B 服务器 b 库进行查询,但是代码会比较复杂,请问大家有什么好的实现方案么?
注:冗余表这个方案暂时不考虑,因为连接查询的表与条件是用户手动配置的,所以不考虑这个方案
![]() | 1 106npo 2023-01-12 00:42:42 +08:00 via Android 你数据库支持就能跨实例查询 比如 dblink 或者 FEDERATED 引擎 |
![]() | 2 strawberryBug 2023-01-12 00:46:31 +08:00 via Android trino |
3 haimianbihdata 2023-01-12 01:02:59 +08:00 via Android Doris 好像可以的 |
![]() | 4 shakoon 2023-01-12 08:33:48 +08:00 提问要讲清楚关键信息啊,a 库 b 库用的什么数据库这种关键信息不说? oracle 的话可以在一个库上面建其他库的 dblink ,然后所有操作和本地库一样。 mysql 的话可以用 federated 引擎在本地建立一个空表链接到其他实例下的数据去,使用时和本地表一样的用,但是不支持事务 |
![]() | 5 opengps 2023-01-12 09:15:17 +08:00 先抽数集中到一个库里啊 |
![]() | 6 itechify RO 你是不是需要数仓? |
![]() | 7 8355 2023-01-12 09:49:32 +08:00 你是不是需要中台 |
![]() | 8 lower 2023-01-12 10:12:21 +08:00 pg 有各种 fdw 插件,是不是可以满足你的要求? |
![]() | 10 EXChen 2023-01-12 10:18:01 +08:00 presto |
![]() | 11 loading 2023-01-12 11:48:01 +08:00 via Android oracle bridge ? |
12 ym1ng 2023-01-12 11:54:24 +08:00 spark sql ? |
![]() | 13 nekoneko 2023-01-12 15:17:56 +08:00 trino 或 presto, 推荐 trino |
![]() | 14 lichao 2023-01-12 15:21:50 +08:00 同数据库类型的数据库有的(只试过 MS SQL SERVER )是可以相互 join 查询的,不同数据库类型的话应该行不通,只能分别查询然后自己用代码组装数据 |
![]() | 15 11ssss 2023-01-12 15:22:24 +08:00 不选大数据技术栈可以看看这个 https://github.com/Qihoo360/Quicksql |
16 wangxiaoaer 2023-01-12 15:24:46 +08:00 这是典型的数据仓库场景,不要试图在代码层面解决。搞个专门用来展示、分析的库,这个库也就是所谓的数据仓库,定期从其他不同源同步,至于如何同步就可以通过一些脚本、工具定时执行了。 |
![]() | 17 F281M6Dh8DXpD1g2 2023-01-12 15:25:09 +08:00 把数据拉回来再搞 不然别人嫌弃死你 |
18 siri521 OP @wangxiaoaer 信息的实时性要求比价高,如果定期从其他不同源的地方同步的话,实施性比较差吧 |
19 wangxiaoaer 2023-01-12 15:59:06 +08:00 @siri521 这就是同步策略了,假如是 mysql 的基于 binlog 的推送同步,实时性没啥问题吧。 除非是定时轮询同步才存在实时性问题。 |
![]() | 20 zzzain46 2023-01-12 16:59:30 +08:00 via iPhone 数据仓库 |