SQL转换

LHM-SQL任务改造服务(Aliyun Sql Migration Tool (ASMT)):将源端各种OLAP、WareHouse等大数据产品的SQL任务向阿里云上计算引擎SQL进行转换,包含DDL/DML/DQL的处理,同时我们也会探查sql作业的表血缘来为特定的目标端计算引擎在DDL生成上进行优化推荐,让客户大数据平台上云的过程变得简单、高效。对于某些迁移场景下SQL语法严重不兼容的地方,我们也会进行高亮提示,为人工介入提供一些帮助。

1. 批量转换

1.1. 新建DDL转换任务

单击左侧导航栏的 作业迁移 > SQL转换,点击 DDL Tab

image.png

点击 新建转换任务

image.png

参数项

参数描述

任务名称

SQL转换任务名称

源数据源类型

详见SQL转化矩阵能力清单

目标数据源类型

详见SQL转化矩阵能力清单

SQL源文件

上传源端SQL文件

支持上传.ZIP、.SQL格式,文件大小不超过20MBSQL文件数建议不超过5000

转换配置-表名映射

填充转换前后表名映射关系

类型映射

支持自定义数据类型转换方案,无特殊业务需求无需配置

全局参数

enable_rewrite_select_item_alias_with_quote=true |false

强制为别名引号,主要面向目标端为Hologres时,需要保持与源端大小写一致

enableDeltaTable=true|false

当目标端为MaxCompute时,决定转换为普通表还是DeltaTable

1.2. 新建DQL/DML转换任务

单击左侧导航栏的 作业迁移 > SQL转换,点击 DQL/DML Tab

image.png

点击 新建转换任务

image.png

参数项

参数描述

任务名称

SQL转换任务名称

源数据源类型

详见SQL转化矩阵能力清单

目标数据源类型

详见SQL转化矩阵能力清单

SQL源文件

上传源端SQL文件

支持上传.ZIP、.SQL格式,文件大小不超过20MBSQL文件数建议不超过5000

关联DDL辅助DQL/DML转换

上传目标端DDL文件

转换DQL/DML时,做好DDL(表结构元数据)的关联,可以提升转换正确率,例如为更好的处理隐式转换问题。

转换配置-表名映射

填充转换前后表名映射关系

2. 语法校验

2.1. 执行校验

SQL转换任务创建后,需要先进行语法正确性校验,即通过SQL Parser验证后,方可执行转换;DDL/DML/DQL同理

1.可以通过转换任务列表上的 执行校验

image.png

2.也可以通过 源端脚本列表 中的批量校验 能力

入口:

image.png

批量校验:

image.png

支持在该界面补充待转换的SQL文件

image.png

2.2. 校验报告

语法及函数扫描结果

通过语法校验后,同时会产出转换支持的报告,产出并展示这批SQL文件扫描出来的函数数量、是否支持转换等信息。如下图所示:

image.png

左下角可以 下载导出

依赖表扫描结果

分析SQL产出 每个SQL中的输入表,如下所示:

image.png

左下角可以 下载导出

3. SQL转换

3.1. 执行转换

SQL转换任务通过 语法正确性校验后,即通过SQL Parser验证后,可批量执行SQL转换;DDL/DML/DQL同理

1.可以通过转换任务列表上的 批量转换

image.png

2.也可以通过 源端脚本列表-下一步/转换列表 中的批量校验 能力

点击转换任务列表 右侧的 源端脚本列表

image.png

源端脚本列表中确认语法校验通过,点击左下角 下一步

image.png

进入脚本转换列表,点击 批量执行转换

image.png

3.2. 转换报告

完成转换后,同时会产出转换结果的报告,产出并展示这批SQL文件中分别转换了哪些函数与SqlNode,涉及多少脚本数,以及分别涉及哪些脚本

image.png

左下角可以 下载导出

3.3. 转换完成的双端比对

进入脚本转换列表,点击 查看双端SQL

image.png

转换前后SQL比对如下图所示:

image.png

4. 即席转换

入口如下:

image.pngDDL同理

DDL即席转换界面:

image.png

DQL/DML即席转换界面:

image.png