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

时间:2018-10-25 21:43:48

标签: mysql mysql-workbench

我想使用mysql从2个不同的数据库服务器查询数据。有没有一种方法而不必创建联合数据库,因为Google Cloud Platform不支持​​联合引擎。 谢谢!

2 个答案:

答案 0 :(得分:1)

除了@MontyPython的出色响应之外,还有第三种方法(尽管有点麻烦),如果您无法使用Federated Engine并且也无法管理数据库复制,则可以这样做。

  
      
  1. 使用ETL工具进行工作
  2.   

过去,我面临着一个非常类似的问题:我不得不从两个单独的数据库服务器中合并数据,而这两个服务器都没有我的管理权限。我最终建立了Pentaho的ETL工具套件,以从两个数据库中提取数据,然后进行Transform if(基本上是让Pentaho对两个数据集进行了大量工作),然后将其加载到我自己的本地数据库引擎中,最终得到了准确的合并结果并处理了我需要的数据。

请注意,这是一项繁重的工作(您必须“教”您的ETL工具您需要什么,并且取决于所使用的工具,它可能涉及很多编码),但是一旦完成,您就可以计划该工作会定期自动执行,因此您始终可以随时访问本地处理/合并的数据。

FWIW,我免费使用啤酒中的Pentaho社区版

答案 1 :(得分:0)

您可以通过两种方式实现这一目标,您已经提到过:

  

1。使用联合引擎

您可以在此处查看如何完成-Join tables from two different server。这是MySQL的特定答案。

  

2。在另一台服务器上设置多源复制并查询该服务器

您可以使用复制渠道轻松设置多源复制

在此处查看其官方文档-https://dev.mysql.com/doc/refman/8.0/en/replication-multi-source-tutorials.html

如果您的MySQL版本较旧,而复制通道不可用,则可以使用许多第三方复制器之一,例如Tungsten Replicator。

P.S。 -MySQL中没有PostgreSQL中的FDW。在其他数据库管理系统中很容易实现跨服务器的联接,而在MySQL中则很容易。