0

请提供单表到多表转换的示例配置

实际场景:我有一个 corp 节点和一个 store 节点。我在 corp 节点中有两张表 customers 和 imp_customers,我在 store 节点中有一张表 customers。

我必须从商店中的客户节点到云节点中的客户和 imp_customers 进行转换。请在 SymmetricDS 3.5 中使用 sym_transfrom_table 和 sym_transform_column 给出上述转换的示例配置。

4

2 回答 2

1

要进行从单个表到多个表的转换,
步骤 1:- 首先为表设置触发器并将其链接到路由器(如果已经有触发器,请忽略)
步骤 2:- 在 SYM_TRANSFORM_TABLE 中创建一行,我们在其中指定数据的方向、何时执行转换以及涉及的表。

 insert into SYM_TRANSFORM_TABLE(transform_id, source_node_group_id, 
    target_node_group_id, transform_point, source_table_name, target_table_name,
    delete_action, column_policy) values 
    ('customers_to_imp_customers', 'store', 'corp',
    'EXTRACT','customers', 'imp_customers', 'NONE', 'SPECIFIED'),
    ('customers_to_customers', 'store', 'corp',
    'EXTRACT','customers', 'customers', 'NONE', 'IMPLIED');

第 3 步:- 在 SYM_TRAMSFORM_COLUMN 中创建行,我们在其中指定要转换的列和转换的类型

insert into SYM_TRANSFORM_COLUMN
(transform_id, include_on, source_column_name, target_column_name, pk, transform_type)
values
('customers_to_imp_customers', '*', 'id', 'id', 1, 'copy'),
('customers_to_imp_customers', '*', 'name', 'customer_name', 1, 'copy'),
('customers_to_customers', '*', 'id', 'id', 0, 'copy');
于 2014-03-10T12:40:15.620 回答
0

我按照上面的说明进行操作,并且仅当两列具有相同名称时才有效。我留下我的设置,我希望有任何建议。问候。

insert into sym_trigger 
(trigger_id,source_schema_name,source_table_name,channel_id,
    last_update_time,create_time)
values('tg_contacts_tbl_bksms','dbo','Contacts','ch_contacts_tblbksms',
    current_timestamp,current_timestamp);

insert into sym_router 
(router_id,target_schema_name,target_table_name,source_node_group_id,
    target_node_group_id,router_type,create_time,last_update_time)
values('rt_contacts_tbl_bksms','SIREN','TBL_BKSMS','SQLServer',
    'Oracle','default',current_timestamp,current_timestamp);

insert into sym_trigger_router 
(trigger_id,router_id,initial_load_order,initial_load_batch_count,
    last_update_time,create_time)
values('tg_contacts_tbl_bksms','rt_contacts_tbl_bksms',1,0,
    current_timestamp,current_timestamp);

insert into sym_transform_table
(transform_id,source_node_group_id,target_node_group_id,transform_point,
    source_schema_name,source_table_name,target_schema_name,target_table_name,
    delete_action,column_policy) 
values('transf_contacts_tbl_bksms','SQLServer','Oracle','EXTRACT',
    'dbo','Contacts','SIREN','TBL_BKSMS',
    'NONE','SPECIFIED');

insert into sym_transform_column
(transform_id,include_on,source_column_name,target_column_name,pk,transform_type)
values('transf_contacts_tbl_bksms','*','ContactID','BKSM_ID',1,'copy');
于 2014-03-17T04:04:58.370 回答