问题描述
我想从多个服务器上的多个mysql数据库中获取数据。 我正在使用phpmyadmin(mysql)。所有数据库将是多台服务器上的mysql数据库(相同的供应商)。首先,我想连接到那些服务器数据库,然后再从它们中获取数据,然后将结果放入中央数据库。
例如:服务器1上的remote_db_1,服务器2上的remote_db_2,服务器3上的remote_db_3。我有中央数据库,我想在其中存储来自不同数据库的数据。
查询:从配置文件!= 2的用户中选择count(user);所有数据库都将运行相同的查询。
central_db
school_distrct_info_table
id school_district_id total_user
1. 2 50
2. 55 100
3. 100 200
我已经尝试过联邦引擎,但是它不符合我们的要求。在这种情况下,可以使用任何工具,任何替代方法或任何方法来完成
。将来没有。不同服务器上数据库的数量将增加。从源服务器导出表然后加载到中央数据库可能要50、100甚至更多。因此,我也在寻找某种etl工具,该工具可以直接从多个源数据库中获取数据,然后将数据发送到目标数据库。在中央数据库表,结构,数据类型,列中,所有内容都会有所不同。有时我们可能需要添加额外的列来存储一些数据,我知道过去可以通过etl工具来实现,我曾经使用过可与SQL Server一起使用的ssdt,但这是mysql。
解决方法
处理此问题的最简单方法是使用federated servers。但是,您说那对您不起作用。
因此,处理该问题的下一个最佳方法是从源服务器导出表,然后将它们加载到中央服务器中。但这要困难得多。这种操作有时称为提取/转换/加载或ETL。
您将使用您选择的编程语言(Python,php,Java,PERL,nodejs ??)编写一个程序,以分别连接到每个数据库,然后对其进行查询,然后将信息放入中央数据库中。 / p>
使用此工作正常时,痛心地说,不兼容的真急。的这是棘手的工作和试验。
我是否可以建议您再写一个问题,解释为什么服务器联合会无法满足您的需求并寻求帮助?也许有人可以帮助您配置它。然后,您将有机会迅速完成该项目。