请提供将单个表转换为多个表的示例配置
实际场景: 我有一个公司节点和商店节点。 我在corp节点中有两个表customer和imp_customers, 我在商店节点中有一个表客户。
我必须从商店中的客户节点转变为云节点中的客户和imp_customers。请使用sym_transfrom_table和sym_transform_column在SymmetricDS 3.5中给出上述转换的示例配置。
答案 0 :(得分: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');
答案 1 :(得分: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');