Запрос данных из базы данных на 2 разных сервера - PullRequest
0 голосов
/ 26 октября 2018

Я хочу запросить данные с 2 разных серверов баз данных, используя mysql.Есть ли способ сделать это без необходимости создания федеративной базы данных, поскольку Google Cloud Platform не поддерживает Federated Engine.Спасибо!

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

В дополнение к отличному ответу @ MontyPython, существует третий, хотя и немного громоздкий, способ сделать это, если по какой-либо причине вы не можете использовать Federated Engine и также не можете управлять репликацией баз данных.

Используйте инструмент ETL для выполнения работы

В свое время я столкнулся с очень похожей проблемой: мне пришлось объединять данные с двух отдельных серверов баз данных, ни один из которых яимел какой-либо административный доступ к.В итоге я настроил набор инструментов ETL в Pentaho для извлечения данных из обеих баз данных, Transform if (в основном Pentaho выполняет большую часть работы с обоими наборами данных) и загрузил его в свой собственный механизм локальной базы данных, где я получил именно объединенныйи обработанные данные, которые мне нужны.

Имейте в виду, это очень много работы (вы должны «научить» свой инструмент ETL тому, что вам нужно, и в зависимости от того, какой инструмент вы используете, это может включать довольно много кодирования), нокак только вы закончите, вы можете запланировать, что работа будет выполняться автоматически через регулярные промежутки времени, чтобы у вас всегда были легко доступны локальные обработанные / объединенные данные.

FWIW, я использовал бесплатную версию сообщества Pentaho, как в пиве

0 голосов
/ 26 октября 2018

Вы можете достичь этого двумя способами, один из которых вы уже упомянули:

1.Используйте Federated Engine

Вы можете увидеть, как это делается здесь - Объединить таблицы с двух разных серверов .Это специфический для MySQL ответ.

2.Настройте репликацию из нескольких источников на другом сервере и запросите этот сервер

Вы можете легко настроить репликацию из нескольких источников по каналам репликации

. Ознакомьтесь с их официальной документацией здесь -https://dev.mysql.com/doc/refman/8.0/en/replication-multi-source-tutorials.html

Если у вас более старая версия MySQL, где каналы репликации недоступны, вы можете использовать один из множества сторонних репликаторов, таких как Tungsten Replicator.

PS - Неттакая вещь в MySQL как FDW в PostgreSQL.Объединения между серверами легко возможны в других системах управления базами данных, но не в MySQL.

...