DataWorks离线同步如何处理表列名是关键字导致同步任务失败的情况?
问题场景: 进行同步任务时,需要同步的表的列名是关键字,导致同步任务失败。解决方案:关键字需要添加转移符,向导模式配置任务请通过脚本模式配置任务,在column配置中手动添加转移符。MySQL的转义符为关键字
。 Oracle和PostgreSQl的转义符为"关键字"。 SQlServer的转义符为[关键字]。以MySQL数据源为例:执行下述语句,新建一张表aliyun。create table aliyun (table
int ,msg varchar(10)); 执行下述语句,创建视图,为table列取别名。create view v_aliyun as select table
as col1,msg as col2 from aliyun;说明table是MySQL的关键字,在数据同步时,拼接出来的代码会报错。因此需要通过创建视图,为table列起别名。不建议使用关键字作为表的列名。通过执行上述语句,为有关键字的列取列名。在配置同步任务时,选择v_aliyun视图代替aliyun表即可。——该回答整理自钉群“DataWorks交流群(答疑@机器人)”
在DataWorks离线同步任务中,如果表列名是关键字,会导致同步任务失败。可以通过以下步骤解决:
1、在源端表中,将关键字列名改为非关键字,如将“select”改为“sel_ect”;
2、在DataWorks离线同步任务中,将源端表中的列名映射到目标端表中的列名,如将“sel_ect”映射为“select”;
3、重新执行DataWorks离线同步任务,即可完成同步。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。