的 急板 强> 在这里也很有用。
您可以在云计算机上部署presto,使用mysql连接器连接到不同的地理数据库,创建不同的目录模式。
编写查询以组合来自两个数据库的结果。就像是:
select * from dublin.A union all select * from london.A
关于此的一些随机链接
您可以在云服务器中设置MariaDB,并将LONDON和DUBLIN服务器作为主服务器。 MariaDB中提供了多主复制。我假设主人有不同的数据库名称。
https://mariadb.com/kb/en/mariadb/multi-source-replication/
计划A:包含3台服务器的Galera集群(在MariaDB中找到)。
计划B:“多源复制”,其中您的两个物理服务器是主服务器,云服务器是从服务器。再次,需要MariaDB。 (见DBHash的答案。)
为每个数据库位置提供两个Web服务。 Web服务以定期间隔查询各个数据库并将数据插入云数据库。
你可以定义 FEDERATED “云”数据库中的表:这些表上的任何查询都将通过MySQL客户端协议从“云”服务器传输到相关的伦敦/都柏林服务器(请注意,数据是 不 复制到“云”服务器,因此它不提供任何形式的备份服务):
FEDERATED
CREATE SERVER london FOREIGN DATA WRAPPER mysql OPTIONS ( HOST 'london.mysql.example.com', PORT 9306, USER 'cloud_db_user', PASSWORD '...', DATABASE 'my_database' ); CREATE SERVER dublin FOREIGN DATA WRAPPER mysql OPTIONS ( HOST 'dublin.mysql.example.com', PORT 9306, USER 'cloud_db_user', PASSWORD '...', DATABASE 'my_database' ); CREATE TABLE london_table ( -- table definition as normal ) ENGINE=FEDERATED CONNECTION='london/original_table'; CREATE TABLE dublin_table ( -- table definition as normal ) ENGINE=FEDERATED CONNECTION='dublin/original_table';
然后你可以定义一个 VIEW 包括 UNION 那些联合表。不幸的是, UNION 视图既不可插入也不可更新 - 因此,如果您需要对基础(联合)表上必须操作的数据进行任何更改:
VIEW
UNION
CREATE VIEW combined AS SELECT * FROM london_table UNION ALL SELECT * FROM dublin_table;