我正在测试 SymmetricDS,但我对应该使用哪种方法来同步某些特定表有一些疑问。我有两个应用程序,第一个是 ERP,第二个是 PDV。有些表可以同步到所有 PDV 数据库,但是,在某些表中,行应该同步到特定的 PDV 实例:
在此图中,红色矩形显示需要同步的表,绿色箭头显示我们可以识别哪些 SymmetricDS 实例将同步的列。我的问题是:我应该使用哪种方法(bsh、subselect、lookuptable 等)以及我是如何做到的?
我正在测试 SymmetricDS,但我对应该使用哪种方法来同步某些特定表有一些疑问。我有两个应用程序,第一个是 ERP,第二个是 PDV。有些表可以同步到所有 PDV 数据库,但是,在某些表中,行应该同步到特定的 PDV 实例:
在此图中,红色矩形显示需要同步的表,绿色箭头显示我们可以识别哪些 SymmetricDS 实例将同步的列。我的问题是:我应该使用哪种方法(bsh、subselect、lookuptable 等)以及我是如何做到的?
您需要一个子选择路由器(实际上您需要三个)。我只向您展示 的 SQL ,然后Funcionario
您将能够自己找出配置:Cadastro
Funcionario_funcao
insert into SYM_ROUTER
(router_id, source_node_group_id, target_node_group_id, router_type,
router_expression, create_time, last_update_time)
values
('erp_to_pdv__funcionario', 'erp', 'pdv', 'subselect',
'c.external_id in (
select empresa.CNPJ
from cadastro join empresa
on cadastro.id_empresa = empresa.id_empresa
where cadastro.CPFCGC=:ID_CADASTRO
)',
current_timestamp, current_timestamp);
当Funcionario
路由表中的记录时,此路由器会选择所有与给定链接的节点external_id
相等的节点(我假设是对 的引用)Empresa.CNPJ
Funcionario
Funcionario.id_cadastro
Cadastro.CPFCGC
注意我使用c.external_id
了 ,但您可能想要使用 c.node_id (取决于您放入的内容Empresa.CNPJ
)。