多数据源如何 sql 连接查询

2023-01-12 00:18:31 +08:00
 siri521

报表服务,需要联接查询多个数据源,进行列表展示,这个有比较好的实现方案么? 多数据源指 a 库再 A 服务器,b 库再 B 服务器……

目前想到的方案是,通过代码来获取数据,在 A 服务器 a 库查询出关联字段后,在去 B 服务器 b 库进行查询,但是代码会比较复杂,请问大家有什么好的实现方案么?

注:冗余表这个方案暂时不考虑,因为连接查询的表与条件是用户手动配置的,所以不考虑这个方案

1628 次点击
所在节点    问与答
20 条回复
xmumiffy
2023-01-12 00:42:42 +08:00
你数据库支持就能跨实例查询 比如 dblink 或者 FEDERATED 引擎
strawberryBug
2023-01-12 00:46:31 +08:00
trino
haimianbihdata
2023-01-12 01:02:59 +08:00
Doris 好像可以的
shakoon
2023-01-12 08:33:48 +08:00
提问要讲清楚关键信息啊,a 库 b 库用的什么数据库这种关键信息不说?
oracle 的话可以在一个库上面建其他库的 dblink ,然后所有操作和本地库一样。
mysql 的话可以用 federated 引擎在本地建立一个空表链接到其他实例下的数据去,使用时和本地表一样的用,但是不支持事务
opengps
2023-01-12 09:15:17 +08:00
先抽数集中到一个库里啊
oneisall8955
2023-01-12 09:42:21 +08:00
你是不是需要数仓?
8355
2023-01-12 09:49:32 +08:00
你是不是需要中台
lower
2023-01-12 10:12:21 +08:00
pg 有各种 fdw 插件,是不是可以满足你的要求?
lower
2023-01-12 10:17:18 +08:00
@lower 不过看了一下好像都是 GitHub 上第三方维护的,不知道稳定性如何
EXChen
2023-01-12 10:18:01 +08:00
presto
loading
2023-01-12 11:48:01 +08:00
oracle bridge ?
ym1ng
2023-01-12 11:54:24 +08:00
spark sql ?
nekoneko
2023-01-12 15:17:56 +08:00
trino 或 presto, 推荐 trino
lichao
2023-01-12 15:21:50 +08:00
同数据库类型的数据库有的(只试过 MS SQL SERVER )是可以相互 join 查询的,不同数据库类型的话应该行不通,只能分别查询然后自己用代码组装数据
11ssss
2023-01-12 15:22:24 +08:00
不选大数据技术栈可以看看这个
https://github.com/Qihoo360/Quicksql
wangxiaoaer
2023-01-12 15:24:46 +08:00
这是典型的数据仓库场景,不要试图在代码层面解决。搞个专门用来展示、分析的库,这个库也就是所谓的数据仓库,定期从其他不同源同步,至于如何同步就可以通过一些脚本、工具定时执行了。
liprais
2023-01-12 15:25:09 +08:00
把数据拉回来再搞
不然别人嫌弃死你
siri521
2023-01-12 15:53:40 +08:00
@wangxiaoaer 信息的实时性要求比价高,如果定期从其他不同源的地方同步的话,实施性比较差吧
wangxiaoaer
2023-01-12 15:59:06 +08:00
@siri521 这就是同步策略了,假如是 mysql 的基于 binlog 的推送同步,实时性没啥问题吧。 除非是定时轮询同步才存在实时性问题。
zzzain46
2023-01-12 16:59:30 +08:00
数据仓库

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/908284

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX