更新时间:2024-04-03 GMT+08:00

Oracle数据迁移到DWS

操作场景

CDM支持表到表的迁移,本章节介绍如何通过CDM将数据从Oracle迁移到数据仓库服务(Data Warehouse Service,简称DWS)中,流程如下:

  1. 创建CDM集群并绑定EIP
  2. 创建Oracle连接
  3. 创建DWS连接
  4. 创建迁移作业

前提条件

  • 已购买DWS集群,并且已获取DWS数据库的IP地址、端口、数据库名称、用户名、密码,且该用户拥有DWS数据库的读、写和删除权限。
  • 已获取Oracle数据库的IP、数据库名、用户名和密码。
  • 如果Oracle数据库是在本地数据中心或第三方云上,需要确保Oracle可通过公网IP访问,或者已经建立好了企业内部数据中心到华为云的VPN通道或专线。
  • 已在CDM集群的作业管理 > 连接管理 > 驱动管理页面,上传了Oracle数据库驱动。

创建CDM集群并绑定EIP

  1. 如果是独立CDM服务,参考创建集群创建CDM集群;如果是作为DataArts Studio服务CDM组件使用,参考创建集群创建CDM集群。

    关键配置如下:

    • CDM集群的规格,按待迁移的数据量选择,一般选择cdm.medium即可,满足大部分迁移场景。
    • CDM集群所在VPC、子网、安全组,选择与DWS集群所在的网络一致。
    • 如果安全控制原因不能使用相同子网和安全组,那么需要确保安全组规则能允许CDM访问云搜索服务集群。

  2. CDM集群创建完成后,在集群管理界面选择“绑定弹性IP”,CDM通过EIP访问Oracle数据源。

    如果用户对本地数据源的访问通道做了SSL加密,则CDM无法通过弹性IP连接数据源。

创建Oracle连接

  1. 单击CDM集群后的“作业管理”,进入作业管理界面,再选择连接管理 > 新建连接,进入选择连接器类型的界面,如图1所示。

    图1 选择连接器类型

  2. 连接器类型选择“Oracle”后单击“下一步”,配置Oracle连接参数,参数说明如表1所示。

    图2 创建Oracle连接
    表1 Oracle连接参数

    参数名

    说明

    取值样例

    名称

    输入便于记忆和区分的连接名称。

    oracle_link

    数据库服务器

    数据库服务器域名或IP地址。

    192.168.0.1

    端口

    Oracle数据库的端口。

    3306

    数据库连接类型

    Oracle数据库连接类型。

    Service Name

    数据库名称

    要连接的数据库。

    db_user

    用户名

    拥有Oracle数据库的读取权限的用户。

    admin

    密码

    Oracle数据库的登录密码。

    -

    使用Agent

    是否选择通过Agent从源端提取数据。

    Agent

    单击“选择”,选择已创建的Agent。

    -

    ORACLE版本

    默认使用最新版本驱动,若不兼容请尝试其他版本。

    高于12.1

    驱动版本

    需要适配的驱动。

    -

    一次请求行数

    指定每次请求获取的行数。

    1000

    连接属性

    自定义连接属性。

    useCompression=true

    引用符号

    连接引用表名或列名时的分隔符号。默认为空。

    '

  3. 单击“保存”回到连接管理界面。

创建DWS连接

  1. 单击CDM集群后的“作业管理”,进入作业管理界面,再选择连接管理 > 新建连接,进入选择连接器类型的界面,如图3所示。

    图3 选择连接器类型

  2. 连接器类型选择“数据仓库服务(DWS)”后单击“下一步”配置DWS连接参数,必填参数如表2所示,可选参数保持默认即可。

    表2 DWS连接参数

    参数名

    说明

    取值样例

    名称

    输入便于记忆和区分的连接名称。

    dwslink

    数据库服务器

    DWS数据库的IP地址或域名。

    192.168.0.3

    端口

    DWS数据库的端口。

    8000

    数据库名称

    DWS数据库的名称。

    db_demo

    用户名

    拥有DWS数据库的读、写和删除权限的用户。

    dbadmin

    密码

    用户的密码。

    -

    使用Agent

    是否选择通过Agent从源端提取数据。

    Agent

    单击“选择”,选择已创建的Agent。

    -

    导入模式

    COPY模式:将源数据经过DWS管理节点后复制到数据节点。如果需要通过Internet访问DWS,只能使用COPY模式。

    COPY

  3. 单击“保存”完成创建连接。

创建迁移作业

  1. 选择表/文件迁移 > 新建作业,开始创建从Oracle导出数据到DWS的任务。

    图4 创建Oracle到DWS的迁移任务
    • 作业名称:用户自定义便于记忆、区分的任务名称。
    • 源端作业配置
      • 源连接名称:选择创建Oracle连接中的“oracle_link”
      • 模式或表空间:待迁移数据的数据库名称。
      • 表名:待迁移数据的表名。
      • 高级属性里的可选参数一般情况下保持默认即可。
    • 目的端作业配置
      • 目的连接名称:选择创建DWS连接中的连接“dwslink”
      • 模式或表空间:选择待写入数据的DWS数据库。
      • 自动创表:只有当源端和目的端都为关系数据库时,才有该参数。
      • 表名:待写入数据的表名,可以手动输入一个不存在表名,CDM会在DWS中自动创建该表。
      • 存储模式:可以根据具体应用场景,建表的时候选择行存储还是列存储表。一般情况下,如果表的字段比较多(大宽表),查询中涉及到的列不多的情况下,适合列存储。如果表的字段个数比较少,查询大部分字段,那么选择行存储比较好。
      • 扩大字符字段长度:当目的端和源端数据编码格式不一样时,自动建表的字符字段长度可能不够用,配置此选项后CDM自动建表时会将字符字段扩大3倍。
      • 导入前清空数据:任务启动前,是否清除目的表中数据,用户可根据实际需要选择。

  2. 单击“下一步”进入字段映射界面,CDM会自动匹配源和目的字段,如图5所示。

    • 如果字段映射顺序不匹配,可通过拖拽字段调整。
    • CDM的表达式已经预置常用字符串、日期、数值等类型的字段内容转换,详细请参见字段转换
    图5 表到表的字段映射

  3. 单击“下一步”配置任务参数,一般情况下全部保持默认即可。

    该步骤用户可以配置如下可选功能:
    • 作业失败重试:如果作业执行失败,可选择是否自动重试,这里保持默认值“不重试”
    • 作业分组:选择作业所属的分组,默认分组为“DEFAULT”。在CDM“作业管理”界面,支持作业分组显示、按组批量启动作业、按分组导出作业等操作。
    • 是否定时执行:如果需要配置作业定时自动执行,可打开此配置。这里保持默认值“否”
    • 抽取并发数:设置同时执行的抽取任务数。可适当调大参数,提升迁移效率。
    • 是否写入脏数据:表到表的迁移容易出现脏数据,建议配置脏数据归档。
    • 作业运行完是否删除:这里保持默认值“不删除”

  4. 单击“保存并运行”,回到作业管理界面,在作业管理界面可查看作业执行进度和结果。
  5. 作业执行成功后,单击作业操作列的“历史记录”,可查看该作业的历史执行记录、读取和写入的统计数据。

    在历史记录界面单击“日志”,可查看作业的日志信息。

如遇目的端写太久导致迁移超时,请减少Oracle连接器中“一次请求行数”参数值的设置。