从数据库中查询2个不同服务器的数据

qq24tv8q  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(426)

我想从两个不同的数据库服务器使用mysql查询数据。有没有一种方法可以做到这一点,而不必创建联邦数据库,因为google云平台不支持联邦引擎。谢谢!

v1uwarro

v1uwarro1#

你可以通过两种方式实现这一点,一种是你已经提到的:
1使用联合引擎
您可以在这里看到它是如何完成的-从两个不同的服务器连接表。这是一个mysql特定的答案。
2在另一台服务器上设置多源复制并查询该服务器
您可以使用复制通道轻松设置多源复制
在这里查看他们的官方文件-https://dev.mysql.com/doc/refman/8.0/en/replication-multi-source-tutorials.html
如果您的mysql版本较旧,而复制通道不可用,则可以使用许多第三方复制器中的一个,如tungsten replicator。
p、 在mysql中没有像postgresql中的fdw这样的东西。跨服务器的连接在其他数据库管理系统中很容易实现,但在mysql中却不可能。

6yt4nkrj

6yt4nkrj2#

除了@montypython的出色响应之外,还有第三种方法,尽管有点麻烦,但如果您可能无法使用联邦引擎,并且也无法管理数据库复制,就可以这样做。
使用etl工具来完成这项工作
在那一天,我遇到了一个非常类似的问题:我必须连接来自两个独立数据库服务器的数据,这两个服务器我都没有任何管理权限。我最终建立了pentaho的etl工具套件,从两个数据库中提取数据,转换if(基本上让pentaho对这两个数据集都做了大量工作),并将其加载到我自己的本地数据库引擎中,在那里我得到了我所需的合并和处理的数据。
请注意,这是一个很大的工作(你必须“教”你的etl工具你需要什么,取决于你使用什么工具,它可能涉及相当多的编码),但一旦你完成了,你可以安排工作自动发生在定期,所以你总是有你的本地处理/合并数据随时可访问。
fwiw,我用了pentaho的社区版,就像啤酒一样免费

相关问题