LHM-SQL任务改造服务(Aliyun Sql Migration Tool (ASMT)):将源端各种OLAP、WareHouse等大数据产品的SQL任务向阿里云上计算引擎SQL进行转换,包含DDL/DML/DQL的处理,同时我们也会探查sql作业的表血缘来为特定的目标端计算引擎在DDL生成上进行优化推荐,让客户大数据平台上云的过程变得简单、高效。对于某些迁移场景下SQL语法严重不兼容的地方,我们也会进行高亮提示,为人工介入提供一些帮助。
1. 批量转换
1.1. 新建DDL转换任务
单击左侧导航栏的 作业迁移 > SQL转换,点击 DDL Tab
点击 新建转换任务
参数项 | 参数描述 |
任务名称 | SQL转换任务名称 |
源数据源类型 | 详见SQL转化矩阵能力清单 |
目标数据源类型 | 详见SQL转化矩阵能力清单 |
SQL源文件 | 上传源端SQL文件 支持上传.ZIP、.SQL格式,文件大小不超过20MB且SQL文件数建议不超过5000个 |
转换配置-表名映射 | 填充转换前后表名映射关系 |
类型映射 | 支持自定义数据类型转换方案,无特殊业务需求无需配置 |
全局参数 | enable_rewrite_select_item_alias_with_quote=true |false 强制为别名引号,主要面向目标端为Hologres时,需要保持与源端大小写一致 enableDeltaTable=true|false 当目标端为MaxCompute时,决定转换为普通表还是DeltaTable |
1.2. 新建DQL/DML转换任务
单击左侧导航栏的 作业迁移 > SQL转换,点击 DQL/DML Tab
点击 新建转换任务
参数项 | 参数描述 |
任务名称 | SQL转换任务名称 |
源数据源类型 | 详见SQL转化矩阵能力清单 |
目标数据源类型 | 详见SQL转化矩阵能力清单 |
SQL源文件 | 上传源端SQL文件 支持上传.ZIP、.SQL格式,文件大小不超过20MB且SQL文件数建议不超过5000个 |
关联DDL辅助DQL/DML转换 | 上传目标端DDL文件 转换DQL/DML时,做好DDL(表结构元数据)的关联,可以提升转换正确率,例如为更好的处理隐式转换问题。 |
转换配置-表名映射 | 填充转换前后表名映射关系 |
2. 语法校验
2.1. 执行校验
SQL转换任务创建后,需要先进行语法正确性校验,即通过SQL Parser验证后,方可执行转换;DDL/DML/DQL同理
1.可以通过转换任务列表上的 执行校验
2.也可以通过 源端脚本列表 中的批量校验 能力
入口:
批量校验:
支持在该界面补充待转换的SQL文件
2.2. 校验报告
语法及函数扫描结果
通过语法校验后,同时会产出转换支持的报告,产出并展示这批SQL文件扫描出来的函数数量、是否支持转换等信息。如下图所示:
左下角可以 下载导出。
依赖表扫描结果
分析SQL产出 每个SQL中的输入表,如下所示:
左下角可以 下载导出。
3. SQL转换
3.1. 执行转换
SQL转换任务通过 语法正确性校验后,即通过SQL Parser验证后,可批量执行SQL转换;DDL/DML/DQL同理
1.可以通过转换任务列表上的 批量转换
2.也可以通过 源端脚本列表-下一步/转换列表 中的批量校验 能力
点击转换任务列表 右侧的 源端脚本列表
在源端脚本列表中确认语法校验通过,点击左下角 下一步
进入脚本转换列表,点击 批量执行转换
3.2. 转换报告
完成转换后,同时会产出转换结果的报告,产出并展示这批SQL文件中分别转换了哪些函数与SqlNode,涉及多少脚本数,以及分别涉及哪些脚本
左下角可以 下载导出。
3.3. 转换完成的双端比对
进入脚本转换列表,点击 查看双端SQL
转换前后SQL比对如下图所示:
4. 即席转换
入口如下:
DDL同理
DDL即席转换界面:
DQL/DML即席转换界面: