如何在调度迁移中转换SQL语法

本文介绍了如何在调度迁移过程中对SQL节点中的代码进行语法转换。

大数据迁移项目中,由于数据源的迁移,节点SQL内容需要进行语法转换。如Hive数据源迁移至MaxCompute数据源后,在将Hive节点转换为MaxCompute节点的同时,节点中的脚本需要由HiveSQL语法转换为MaxComputeSQL语法。调度转换仅对调度信息进行了处理,接下来我们将引导如何转换其中的SQL脚本。

阿里云在线SQL转换服务:https://apds.console.aliyun.com/lhm/conversion-sql
在线SQL转换服务帮助文档:SQL转换

1 打开调度迁移转换输出包,获取需要转换的SQL脚本

打开Converter输出包,在<projectName>/<projectName>/data/project/script目录下,节点脚本分类型被集中存储。

Hive->MaxCompute场景为例,在调度异构转换中,HiveSQL节点被转换为ODPS_SQL节点,然而其中的SQL脚本依旧是HiveSQL语法。从Conveter输出包中,可以对这些待转换的HiveSQL节点进行批量获取。

image.png

注意,部分linux系统zip工具解压缩会导致中文乱码,需要在解压缩时指定gb2312编码:

ReaderOunzip -O gb2312 <FileName>.zip

2 打开SQL转换在线服务,完成SQL转换(含表名映射)

打开在线SQL转换服务页面,建立SQL转换任务

https://apds.console.aliyun.com/lhm/conversion-sql

image.png

3 将转换完成的SQL脚本替换包中的原始脚本文件,zip打包还原

将转换完成的SQL脚本放回原位置,替换原有脚本。

删掉原先的压缩包,将替换好的文件压缩回去。

压缩命令:

zip -q -r -m -o <PackageName>.zip PackageName