SymmetricDS: объединение таблиц из нескольких узлов в одну таблицу другого узла - PullRequest
0 голосов
/ 02 апреля 2020

Я использую локальную установку MySQL для хранения данных в нескольких схемах (client_db_one и client_db_two). Обе схемы содержат таблицу shared_table. Однако в зависимости от схемы столбцы этой таблицы различаются.

shared_table выглядит в client_db_one следующим образом:

    | id | name       | column_one |
    |----|------------|------------|
    | 1  | from_tab_1 | some       | 

shared_table выглядит в client_db_two следующим образом:

    | id | name       | column_two |
    |----|------------|------------|
    | 2  | from_tab_2 | other      | 

Моя цель - использовать SymmetricDS для синхронизации этих таблиц в соответствующую таблицу shared_table в схеме central_db объединение столбцов обеих таблиц, т.е.

  1. Столбцы должны создаваться динамически в shared_table из central_db, если они не существуют.
  2. Если набор данных, переданный из client_db, не содержит столбец, указанный в shared_table в central_db соответствующее значение в этом столбце должно быть установлено в NULL.

Для данного примера shared_table in central_db должно выглядеть так:

    | id | name       | column_one | column_two |
    |----|------------|------------|------------|
    | 1  | from_tab_1 | some       | NULL       |
    | 2  | from_tab_2 | NULL       | other      |

Пока мне удалось настроить главный узел, связанный с central_db (также схема в базе данных MySQL) и два клиентских узла, связанных с client_db_one и client_db_two, с использованием файла .properties в каталоге механизма для каждого из этих узлов. Я успешно передал данные с каждого из клиентских узлов на главный узел.

Однако в зависимости от клиентского узла, с которого были переданы первые данные, shared_table в central_db содержит только столбцы соответствующей таблицы клиентского узла. Дальнейшие столбцы других узлов будут опущены.

Я впервые перенес данные из client_db_one, следовательно, shared_table в central_db выглядит следующим образом:

    | id | name       | column_one |
    |----|------------|------------|
    | 1  | from_tab_1 | some       | 
    | 2  | from_tab_2 | NULL       | 

Документация содержит раздел, касающийся синхронизации изменений схемы. Однако это не то, что я ищу.

Есть ли способ настроить желаемую синхронизацию без внесения каких-либо изменений в таблицы клиентских схем?

...