本文将为您介绍如何通过DataWorks数据同步功能,迁移Oracle上的数据至MaxCompute。

前提条件

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

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

  2. 开通MaxCompute并创建项目

    本文以在华东1(杭州)区域创建的项目为例,同时启动DataWorks相关服务。详情请参见开通MaxCompute

背景信息

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

本文使用DataWorks简单模式工作空间。

操作步骤

  1. 数据准备
    1. 准备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;语句,检查Oracle表中是否已存在数据可以用于迁移。
    2. 新建DataWorks目标表
      1. 登录DataWorks控制台,单击相应工作空间操作栏下的进入数据开发
      2. 进入DataStudio(数据开发)页面,右键单击您的业务流程,选择新建 > MaxCompute >
      3. 新建表对话框中,填写表名good_sale,并单击提交
      4. 进入新建表页面,选择DDL模式
      5. 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支持的数据类型请参见类型转换列表

        上述步骤同样可通过odpscmd命令行工具完成,odpscmd命令行工具安装和配置请参见安装并配置客户端

        说明 考虑到部分MaxCompute数据类型的兼容问题,建议在odpscmd客户端上执行以下命令。
        set odps.sql.type.system.odps2=true;
        set odps.sql.hive.compatible=true;
      6. 完成建表后,单击提交到生产环境,保证表生效。
  2. 数据同步
    1. 新建数据源

      新建DataWorks工作空间后,默认设置自己为数据源odps_first。因此只需要添加Oracle数据源。

      1. 进入数据集成页面,选择 数据源管理,单击新增数据源
      2. 新增数据源弹出框中,选择数据源类型为Oracle
      3. 填写Oracle数据源的各配置项,详情请参见配置Oracle Reader,请务必保证JDBC URL中的IP地址和端口号可达。
      4. 完成配置后,单击测试连通性
      5. 测试连通性通过后,单击完成
    2. 配置数据同步任务
      1. 进入数据开发页面,选择新建 > 数据集成 > 离线同步
      2. 新建节点对话框中,输入节点名称,单击提交
      3. 成功创建数据同步节点后,选择数据源为您刚刚添加的Oracle数据源,为您刚刚创建的测试表格,选择同名映射
      4. 其他配置保持默认配置即可,完成后,单击运行。如果提示任务运行成功,则说明同步任务已完成。如果运行失败,可以通过日志进行排查。

执行结果

  1. 单击左侧导航栏中的临时查询
  2. 选择新建 > ODPS SQL
  3. 编写并执行SQL语句,查看导入good_sale的数据。SQL语句如下所示。
    --查看是否成功写入MaxCompute
    select * from good_sale;
    运行结果如下。

    您也可以在odpscmd命令行工具中输入select * FROM good_sale;,查询表结果。