Как разрешить SymmetricDS фильтровать загрузку данных по externalId целевого движка

Я использую SymmetricDS 3.7.

Я хочу сделать так, чтобы SymmetricDS отправлял данные только на клиентское ядро, если внешний идентификатор целевого узла равен столбцу в таблице (многопользовательский режим). Это означает, что на сервере я хочу иметь все строки, а на стороне клиента - только те, которые принадлежат клиенту.

Я обнаружил, что у меня есть объект engine в моем скрипте бобов. Но кажется, что это узел сервера (отправителя), а не экземпляр клиентского ядра.

Как мне этого добиться?

2 ответа

Решение

Используйте маршрутизатор сопоставления столбцов, как описано в руководстве пользователя: http://www.symmetricds.org/doc/3.7/html/user-guide.html

иметь столбец в таблице, который синхронизируется с целевыми машинами со значением, соответствующим внешнему идентификатору целевой машины

Да. сначала вам нужно иметь столбец в вашей таблице для идентификатора узла (store_id или client_id), если есть 2 таблицы (master/detail), только добавьте этот столбец в master. В таблице sym_router создайте роутер:

routerid:myatble_header
source_node_group_id:corp
target_node_group_id:store
router_type:subselect
router_expression:c.external_id in (select :store_id)   -> for mysql ( somthing like for other databases)
create_time:now
last_update_time:now

routerid:myatble_detail
source_node_group_id:corp
target_node_group_id:store
router_type:subselect
router_expression:c.external_id in (select store_id from header_table where id=:id)   -> id is primary key and :id is primary of your detail table.
create_time:now
last_update_time:now

теперь в sym_trigger_router:

trigger_id: triger_id for your table that defined in sym_trigger table.
router_id:myatble_header (defined in previous step)

trigger_id: triger_id for your detail table that defined in sym_trigger table.
router_id:myatble_detail (defined in previous step)

Другие вопросы по тегам