gpt4 book ai didi

java - 与 SymmetricDS 有条件同步

转载 作者:行者123 更新时间:2023-12-01 11:11:11 26 4
gpt4 key购买 nike

我一直在尝试与 SymmetricDS 进行条件同步。问题是,无论我做什么,它都会忽略应该有条件同步的表,而只会无条件同步表。

所以我想,我错误地使用了这些条件。我在当前版本的用户指南中找不到此 Material ,因此我有以下内容:

insert into sym_router 
(router_id,source_node_group_id,target_node_group_id,router_type,router_expression,create_time,last_update_time)
values('corp_2_one_store', 'corp', 'store', 'column','STORE_ID=:EXTERNAL_ID or OLD_STORE_ID=:EXTERNAL_ID',current_timestamp, current_timestamp);

insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,initial_load_select,last_update_time,create_time)
values('item_selling_price','corp_2_one_store',100,'store_id=''$(externalId)''',current_timestamp,current_timestamp);

来自使用 SymmetricDS 打包的示例,但我在自己的配置中将“store”更改为“client”,将“corp”更改为“server”,但它不再起作用。坦率地说,我不知道 STORE_ID=:EXTERNAL_ID 或 OLD_STORE_ID=:EXTERNAL_IDstore_id=''$(externalId)'' 发生了什么以及为什么会出现这种情况是其中两个。

从我从早期版本获得的网站中,此示例:

insert into SYM_TRIGGER 
(source_table_name, source_node_group_id, target_node_group_id, channel_id,
sync_on_insert, sync_on_update, sync_on_delete,
node_select,
initial_load_order, last_updated_by, last_updated_time, create_time)
values
('sale_transaction', 'corp', 'store', 'sale_transaction',
1, 1, 1,
'and external_id = $(curTriggerValue).store',
105, 'demo', current_timestamp, current_timestamp);

但这显然不起作用,因为一半的信息现在存储在不同的地方,但甚至删除不再存在的列(谁知道,也许这些新表只存储相同的信息以提高可读性?)我可以无法让它工作。

有什么建议吗?

更新当我只运行训练示例时,一切正常。所以真正的问题是:这些是什么意思:STORE_ID=:EXTERNAL_ID 或 OLD_STORE_ID=:EXTERNAL_IDstore_id=''$(externalId)''?如果我的节点被称为 server 而不是 corpclient 而不是 store,我该如何更改?

更新2根据this ,我的路由器没问题,但我的 sym_trigger_router 配置存在一些问题,即 store_id=''$(externalId)''

最佳答案

所以,我发现了我的问题。我的表名有一个拼写错误,因此没有为其创建触发器。

对于那些偶然发现这个问题的人:

1) STORE_ID=:EXTERNAL_ID 或 OLD_STORE_ID=:EXTERNAL_ID 是什么?

写得很清楚here ,但用两个词来说,STORE_ID 是列名称,OLD_ 表示列的先前值:EXTERNAL_ID是 SymmetricDS 内部变量之一,还有 :NODE_ID 等。

该字符串用于确定是否获取当前行,它是路由器的一个参数。 (如果你决定使用其他类型的路由器,请注意,它还有其他参数,要勤奋!)

2) 什么是store_id=''$(externalId)''

这在某种程度上有描述here ,但同样,用两个词来说:在默认情况下的初始加载期间,对称从表中收集所有数据(select * from ...)。此参数是附加到 where 子句的内容,t 可用于引用正在同步的表。 $(externalId) 是 SymmetricDS 在启动期间初始化的变量之一,用户指南中的某处有此类变量的列表。

关于java - 与 SymmetricDS 有条件同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32350871/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com