迁移Oracle数据至MaxCompute最佳实践

本文为您介绍如何通过DataWorks的数据集成功能,迁移Oracle数据至MaxCompute。

前提条件

  • 准备DataWorks环境

    1. 开通MaxCompute和DataWorks

    2. 创建工作空间(本文以简单模式的工作空间为例)。

    3. 在DataWorks上创建业务流程。详情请参见创建业务流程

  • 准备Oracle环境

    本文中的Oracle安装在云服务器ECS上,ECS具体配置如下。为了让网络互通,您需要给ECS配置公网IP,并且配置ECS的安全组规则放通Oracle数据库的常用端口1521。关于ECS安全组配置详情请参见修改安全组规则

    如上图所示,本文中的ECS规格为ecs.c5.xlarge,使用专有网络,区域为华东1(杭州)。

背景信息

本文需要使用DataWorks Oracle Reader读取Oracle中的测试数据,详情请参见Oracle Reader

准备Oracle测试数据

  1. 进入Oracle图形化操作界面,新建表DTSTEST.GOOD_SALE,主要包括create_time、category、brand、buyer_id、trans_num、trans_amount、click_cnt这7列。

  2. 插入测试数据,本文中手动插入数据如下。

    insert into good_sale values('28-12月-19','厨具','品牌A','hanmeimei','6','80.6','4');
    insert into good_sale values('21-12月-19','生鲜','品牌B','lilei','7','440.6','5');
    insert into good_sale values('29-12月-19','衣服','品牌C','lily','12','351.9','9');
    commit;
  3. 插入数据后,执行如下语句查看表数据。

    select * from good_sale;

通过DataWorks将数据从Oracle迁移至MaxCompute

  1. 登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据开发与治理 > 数据开发,在下拉框中选择对应工作空间后单击进入数据开发

  2. 数据开发页面创建目标表,用于接收从Oracle迁移的数据。

    1. 右键单击已创建的业务流程,选择新建表 > MaxCompute >

    2. 新建表页面,配置表的基本信息。

    3. 单击表编辑页面上方的DDL模式。

    4. DDL对话框,输入建表语句,单击生成表结构

      CREATE TABLE good_sale 
      (
          create_time     string,
          category        string,
          brand           string,
          buyer_id        string,
          trans_num       bigint,
          trans_amount    double,
          click_cnt       bigint
      ) ;

      在建表过程中,需要考虑Oracle数据类型与MaxCompute数据类型的映射,Oracle Reader支持的数据类型请参见类型转换列表

    5. 单击提交到生产环境

  3. 新建Oracle数据源,详情请参见配置Oracle数据源

  4. 创建离线同步节点。

    1. 进入数据开发页面,右键单击指定业务流程,选择新建节点 > 数据集成 > 离线同步

    2. 新建节点对话框中,配置节点基本信息,并单击确认

    3. 成功创建离线数据同步节点后,在网络与资源配置数据来源中选择您刚刚添加的Oracle数据源,数据去向中选择MaxCompute数据源。在我的资源组下方选择您所使用的资源组并完成测试连通性。单击下一步,在配置数据来源与去向数据来源数据去向中配置信息为您刚刚创建的测试表,在字段映射中选择字段映射关系为同名映射。其它参数保持默认配置。

    4. 单击**图标运行代码。

    5. 您可以在运行日志查看运行结果。

验证结果

  1. 右键单击业务流程,选择新建 > MaxCompute > ODPS SQL

  2. 新建节点对话框中配置节点基本信息,并单击确认

  3. 在ODPS SQL节点编辑页面输入如下语句。

    --查看是否成功写入MaxCompute。
    select * from good_sale;
  4. 单击**图标运行代码。

  5. 您可以在运行日志查看运行结果。