迁移Oracle数据至MaxCompute最佳实践

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

前提条件

  • 准备DataWorks环境

    1. 开通MaxCompute

    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数据源,为您刚刚创建的测试表格,选择同名映射。其它参数保持默认配置。

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

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

验证结果

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

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

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

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

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