本文为您介绍如何通过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. 进入数据开发页面。
    1. 登录DataWorks控制台
    2. 在左侧导航栏,单击工作空间列表
    3. 选择工作空间所在地域后,单击相应工作空间后的进入数据开发
  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. 您可以在运行日志查看运行结果。