本文介绍了如何使用ADAM 软件版(For TD)对准备迁移到云原生数据仓库AnalyticDB PostgreSQL的Teradata数据库进行数据库采集、兼容性评估、结构迁移以及TD ETL Perl/DSQL脚本里面SQL自动转换。

背景信息

目前支持Teradata 13~16版本。

ADAM 软件版(For TD)使用流程及核心功能介绍

  1. 数据库采集:采集Teradata数据库的DDL、SQL、系统信息。
  2. 兼容性评估:数据库从Teradata迁移到云原生数据仓库AnalyticDB PostgreSQL兼容性分析。
  3. 结构迁移:自动对Teradata进行结构迁移,并支持人工订正
  4. Perl脚本转换:TD ETL Perl/DSQL脚本里面SQL自动转换。

数据库采集

  1. 打开部署好的ADAM软件版界面,单击在线数据库采集
    在线数据库采集
  2. 在数据库采集页面,单击创建采集任务
  3. 确认采集账号具有dbc权限,单击下一步。如果采集账号没有dbc权限,您可登录Teradata数据库,参考如下命令授权采集账号dbc权限。
    grant select,show on dbc to $username
  4. 填写Teradata数据库相关信息,并确保ADAM软件版部署环境与需要进行采集的Teradata数据库连通。
    创建采集任务
    • 采集任务名:自定义采集任务的名称。
    • TERADATA主机IP:Teradata数据库主机地址。
    • 端口:Teradata数据库连接端口。
    • 用户名:具有dbc权限的采集账号用户名。
    • 口令:上述用户名对应的密码。
    • 指定采集Database:需要进行采集的数据库名称。多个数据库请用单引号和逗号分隔,如:'db1','db2','db3'
  5. 填写完毕后,单击测试连接测试ADAM能否与Teradata数据库连通,或直接单击启动采集即可。

兼容性评估

  1. 数据库采集完成后,选择采集任务,单击采集任务列表下方的下一步新建评估项目。系统将自动开始目标库评估,并跳转至目标库兼容评估页面。
  2. 在目标库兼容评估结果列表中找到项目,单击右侧操作列中的详情
    查看数据库评估详情
  3. 您可以在目标库兼容性评估详情页查看对象兼容性、SQL兼容性、应用改造点等信息。
    目标库兼容性评估详情页展示

结构迁移

  1. 在ADAM软件版界面,单击左侧导航栏中的数据库改造迁移
  2. 数据库改造迁移页面,单击新建迁移项目
  3. 在弹出的新建迁云项目页面中,依次填写项目名、选择数据库评估、勾选方案详情。
    新建迁云项目
  4. 填写目标库信息。
    说明 目标ADB for PG数据库的白名单中需要添加ADAM软件版的IP地址,以确保网络能够连通。
    • 实例区域:目标数据库实例所在区域。
    • 数据库实例:目标数据库实例ID。
    • 主机IP:目标数据库地址。
    • 数据库名:目标数据库名称。
    • 端口:目标数据库外网端口。
    • 用户名:登录目标数据库的高权限账号或管理员账号。
    • 口令:上述账号对应的密码。
  5. 单击测试链接测试ADAM能否与目标库连通,或直接单击创建,生成迁移计划。
  6. 目前还不支持源库为TD的源库检验,点击跳过校验进行结构迁移即可。
    跳过校验进行结构迁移
  7. 在校验结果页面,单击下一步结构迁移
    下一步结构迁移
  8. ADAM目前分为表结构迁移和其他对象迁移,需要依次进行。单击表结构迁移启动,表结构迁移完成后单击非表结构迁移启动
    表结构迁移和非表结构迁移
  9. 迁移完成后,单击结构订正页签,查看迁移失败详情。您可以单击迁移失败对象后的订正,对迁移失败对象进行人工订正。
    人工订正

Perl脚本转换

  1. 在ADAM软件版界面,单击左侧导航栏中的TD ETL Perl转换
  2. TD ETL Perl转换页面单击上传Perl/DSQL脚本
  3. 在弹出的Perl/DSQL脚本上传页面单击上传,选择上传待分析的Perl/DSQL脚本,批量转换打包成zip压缩包上传。
    上传脚本
  4. 上传完成后,请单击创建,ADAM将自动开始分析转换。
  5. 分析转换完毕后,您可以在TD ETL Perl转换列表中查看到新增记录。单击Perl访问对象列的查看对象列表,查看Perl/DSQL脚本访问的对象(zip包批量的方式此项不展示)。
    查看转换后的脚本
  6. 单击下载脚本下载转换后的Perl/DSQL脚本。
    说明 对于无法转换的SQL,转换后的脚本在上方注释了问题,请人工进行SQL订正。