0

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

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

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 or OLD_STORE_ID=:EXTERNAL_ID为什么store_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 or OLD_STORE_ID=:EXTERNAL_IDstore_id=''$(externalId)''server如果我的节点被调用而不是corpclient而不是,我该如何改变store呢?

更新2 据此我的路由器没问题,我的sym_trigger_router配置有一些问题,即,store_id=''$(externalId)''

4

1 回答 1

2

所以,我发现了我的问题。我的表名中有错字,因此没有为它创建触发器。

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

1)什么是STORE_ID=:EXTERNAL_ID or OLD_STORE_ID=:EXTERNAL_ID

这里写的很清楚,但用两个词表示,STORE_ID是列名,OLD_表示该列的先前值,:EXTERNAL_IDSymmetricDS 内部变量之一,:NODE_ID等等。

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

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

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

于 2015-09-03T14:08:29.130 回答