云端数据接入(CDM)

举报
睡觉是大事 发表于 2024/02/07 17:09:23 2024/02/07
【摘要】 GaussDB(DWS)云端数据接入 GaussDB(DWS)云端数据接入 1. 前言 2. 概述 3. 场景介绍 4. 创建集群 操作场景 前提条件 操作步骤 5. 创建连接 连接说明 前提条件 创建MySQL连接 创建DWS连接 6. 创建并执行作业 操作场景 操作步骤 7. 查看作业运行结果 操作场景 操作步骤 8. 总结 9. 参考文档 1. 前言适用版本:【Gauss 200以上...

GaussDB(DWS)云端数据接入

1. 前言

  • 适用版本:【Gauss 200以上】

    GaussDB(DWS)提供了灵活的数据入库方式,可以将多种数据源的数据导入到GaussDB(DWS)中,如图1所示。各导入方式具有不同的特点,如表1所示,用户可以根据其特点自行选择。建议用户配合云数据迁移(Cloud Data Migration,简称CDM)、数据接入服务(Data Ingestion Service,简称DIS)和数据湖工厂(Data Lake Factory,简称DLF)一起使用,CDM用于批量数据迁移,DIS用于流数据接入,DLF可以对整个ETL过程进行编排调度,同时提供可视化的开发环境。

2. 概述

​ 云数据迁移服务(Cloud Data Migration,简称CDM),可以将其他数据源(例如MySQL)的数据迁移到GaussDB(DWS) 集群的数据库中。

​ GaussDB(DWS)提供了灵活的数据入库方式,可以将多种数据源的数据导入到GaussDB(DWS)中,如图1所示。各导入方式具有不同的特点,如表1所示,用户可以根据其特点自行选择。建议用户配合云数据迁移(Cloud Data Migration,简称CDM)、数据接入服务(Data Ingestion Service,简称DIS)和数据湖工厂(Data Lake Factory,简称DLF)一起使用,CDM用于批量数据迁移,DIS用于流数据接入,DLF可以对整个ETL过程进行编排调度,同时提供可视化的开发环境。

导入方式:

img

数据导入方式说明:

数据导入方式 数据源 说明 优势
从OBS并行导入数据 OBS 支持将存储在OBS上的TXT、CSV、ORC及CARBONDATA格式的数据并行导入到GaussDB(DWS),支持导入后查询数据,也支持远程读OBS上的数据。GaussDB(DWS)优先推荐的导入方式。 并行拉取方式,性能好,横向扩展。
使用GDS从远端服务器导入数据 Servers(即远端服务器) 使用GaussDB(DWS)提供的GDS工具,利用多DN并行的方式,将数据从远端服务器导入到GaussDB(DWS)。这种方式导入效率高,适用于大批量数据入库。
从MRS导入数据到集群 MRS(HDFS) 配置一个GaussDB(DWS)集群连接到一个MRS集群,然后将数据从MRS的HDFS中读取到GaussDB(DWS)。 并行拉取方式,性能好,横向扩展。
使用CDM迁移数据到GaussDB(DWS) 数据库、NoSQL、文件系统、大数据平台 CDM提供同构/异构数据源之间批量数据迁移的功能,帮助您实现从多种类型的数据源迁移数据到GaussDB(DWS)。CDM在迁移数据到GaussDB(DWS)时,采用的是Copy方式和GDS并行导入方式。 数据源丰富,操作简单。
从DIS导入流式数据到GaussDB(DWS) 流数据 可以将流式数据从DIS通道周期性导入到GaussDB(DWS)集群的数据库中。导入GaussDB(DWS)前数据临时存储在OBS,待转储GaussDB(DWS)完成后删除OBS上的临时存储数据。 准实时入库。
第三方ETL工具 数据库、NoSQL、文件系统、大数据平台 请参考第三方ETL工具的相关文档。GaussDB(DWS)提供了DSC工具,可以将Teradata/Oracle脚本迁移到GaussDB(DWS)。· 使用DSC工具迁移SQL脚本· 使用Schema Convertor Tool将MySQL迁移到DWS 通过OBS中转,数据源丰富,数据转换能力强。
通过INSERT语句直接写入数据 - 使用SQL客户端工具或JDBC/ODBC驱动连接GaussDB(DWS)数据库时,执行INSERT语句插入一行或多行数据,以及从指定表插入数据。 INSERT是最简单的一种数据写入方式,适合数据写入量不大,并发度不高的场景。
使用COPY FROM STDIN导入数据 其他文件或数据库 使用Java语言开发应用程序时,通过调用JDBC驱动的CopyManager接口,从文件或其他数据库向GaussDB(DWS)写入数据。 从其他数据库直接写入GaussDB(DWS)的方式,具有业务数据无需落地成文件的优势。
使用gsql元命令\copy导入数据 本地文件 与直接使用SQL语句COPY不同,该命令读取/写入的文件只能是gsql客户端所在机器上的本地文件。 操作简单,适用于小批量数据入库。

3. 场景介绍

  • 本节介绍云数据迁移(Cloud Data Migration,以下简称CDM)的基础使用方法,通过使用CDM迁移本地MySQL数据库中的表,写入到数据仓库服务DWS的具体操作,帮助您了解、熟悉CDM服务,具体场景如图。

img

  • CDM的基本使用流程如下:
    1. 创建CDM集群
    2. 创建连接
    3. 创建并执行作业
    4. 查看作业运行结果
    5. 以完成数据迁移

4. 创建集群

操作场景

用户首先需要创建CDM集群,来执行MySQL数据同步到DWS的任务。

前提条件

已获取DWS所在的区域、VPC、子网、安全组。

操作步骤

  1. 登录CDM管理控制台
  2. 单击“购买云数据迁移服务”,进入创建CDM集群的界面,集群配置样例如下:
  • 当前区域:选择CDM集群的区域,不同区域的资源之间内网不互通,这里必须选择与DWS所在区域一致。

  • 可用区:指在同一区域下,电力、网络隔离的物理区域,可用区之内内网互通,不同可用区之间物理隔离。这里选择“可用区2”。

  • 集群名称:集群名称在4位到64位之间,必须以字母开头,可以包含字母、数字、中划线或者下划线,不能包含其他的特殊字符,例如:“cdm-aff1”。

  • 版本:默认即可。

实例类型:用户按实际业务数据量选择实例规格,这里选择

“cdm.medium”

即可,适用大部分迁移场景。

  • large:8核CPU、16G内存的虚拟机,最大带宽/基准带宽为3/0.8Gbps,能够并发执行的作业个数为20,适合单张表规模≥1000万条的场景。

  • xlarge:16核CPU、32G内存的虚拟机,最大带宽/基准带宽为10/4Gbps,能够并发执行的作业个数为100,适合使用10GE高速带宽进行TB以上的数据量迁移。

  • 4xlarge:64核CPU、128G内存的虚拟机,最大带宽/基准带宽为30/30Gbps,能够并发执行的作业个数为300。

  • 虚拟私有云:即VPC(Virtual Private Cloud),这里必须选择与DWS相同的VPC。

  • 子网:推荐与DWS的子网一致。

  • 安全组:推荐与DWS的安全组一致。

  • 这里所配置的子网、安全组也可以与DWS不一致,但是需要配置安全组规则,允许CDM集群能正常访问DWS。

  • 其它参数保持默认即可。

  • 查看当前配置,确认无误后单击“立即购买”进入规格确认界面。

说明:集群创建好以后不支持修改规格,如果需要使用更高规格,需要重新创建。

  1. 单击“提交申请”,系统开始自动创建CDM集群,在“集群管理”界面可查看创建进度。

说明:创建集群需要10~20分钟时间,如果您是首次创建CDM集群,只需要一分钟即可。

5. 创建连接

连接说明

迁移本地MySQL数据库到数据仓库服务DWS前,需要创建2个连接:

  1. MySQL连接:CDM连接本地MySQL数据库。
  2. DWS连接:CDM连接DWS数据库。
  3. 由于CDM需要访问本地数据源,所以创建连接前,需先为CDM集群绑定弹性IP,CDM通过弹性IP访问MySQL数据库。

前提条件

  • 用户本地的MySQL数据库已允许通过公网IP访问。
  • 用户已拥有EIP配额。
  • 已获取连接MySQL数据库的IP地址、端口、数据库名称、用户名、密码,且该用户拥有MySQL数据库的读、写和删除权限。
  • 用户已经拥有了DWS实例,已获取连接DWS数据库的IP地址、端口、数据库名称、用户名、密码,且该用户拥有DWS数据库的读、写和删除权限。

创建MySQL连接

  1. 登录CDM管理控制台
  2. 单击左侧导航上的“集群管理”,找到步骤1:创建集群章节创建的集群“cdm-aff1”。
  3. 单击该集群后的“绑定弹性IP”,选择并绑定弹性公网IP。

图1 绑定EIP

img

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

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

图2 选择连接器类型

img

  1. 选择“MySQL”后单击“下一步”,配置MySQL连接的参数。

图3 创建MySQL连接

img

单击“显示高级属性”可查看更多可选参数,具体请参见配置关系数据库连接。这里保持默认,必填参数如表1所示。

参数名 说明 取值样例
名称 输入便于记忆和区分的连接名称。 mysqllink
数据库服务器 MySQL数据库的IP地址或域名。 192.168.0.1
端口 MySQL数据库的端口。 3306
数据库名称 MySQL数据库的名称。 sqoop
用户名 拥有MySQL数据库的读、写和删除权限的用户。 admin
密码 用户的密码。 -
使用Agent 是否选择通过Agent从源端提取数据。
Agent 单击“选择”,选择连接Agent中已创建的Agent。 -
  1. 单击“保存”回到连接管理界面。

说明:如果保存时出错,一般是由于MySQL数据库的安全设置问题,需要设置允许CDM集群的EIP访问MySQL数据库。

创建DWS连接

  1. 在“连接管理”界面单击“新建连接”,连接器类型选择“数据仓库服务(DWS)”。
  2. 单击“下一步”配置DWS连接参数,必填参数如表2所示,可选参数保持默认即可。
参数名 说明 取值样例
名称 输入便于记忆和区分的连接名称。 dwslink
数据库服务器 DWS数据库的IP地址或域名。 192.168.0.3
端口 DWS数据库的端口。 8000
数据库名称 DWS数据库的名称。 db_demo
用户名 拥有DWS数据库的读、写和删除权限的用户。 dbadmin
密码 用户的密码。 -
使用Agent 是否选择通过Agent从源端提取数据。
Agent 单击“选择”,选择连接Agent中已创建的Agent。 -
导入模式 COPY模式:将源数据经过DWS管理节点后拷贝到数据节点。如果需要通过Internet访问DWS,只能使用COPY模式。 COPY
  1. 单击“保存”完成创建连接。

6. 创建并执行作业

操作场景

创建CDM迁移数据表的作业,执行从本地MySQL数据库复制表到DWS的任务。

操作步骤

  1. 在集群管理界面,找到步骤1:创建集群章节创建的集群“cdm-aff1”。
  2. 单击该CDM集群后的“作业管理”,进入作业管理界面。
  3. 选择“表/文件迁移> 新建作业”,配置作业基本信息。

图1 新建作业

img

  • 作业名称:输入便于记忆、区分的作业名称,例如:“mysql2dws”。

源端作业配置

  • 源连接名称:选择步骤2:创建连接章节中创建的MySQL连接“mysqllink”。

  • 使用SQL语句:选择“否”。

  • 模式或表空间:选择从MySQL的哪个数据库导出表。

  • 表名:选择导出哪张表。

  • 其它可选参数保持默认即可,详细说明可参见配置关系数据库源端参数

目的端作业配置

  • 目的连接名称:选择步骤2:创建连接章节中创建的DWS连接“dwslink”。

  • 模式或表空间:选择导入到DWS的哪个数据库。

  • 自动创表:这里选择“不存在时创建”,当下面“表名”参数中配置的表不存在时,CDM会自动在DWS数据库中创建该表。

  • 表名:选择导入到DWS数据库的哪张表。

  • 其他可选参数保持默认即可,详细说明可参见配置关系数据库目的端参数

  • 单击“下一步”进入字段映射界面,CDM会自动匹配源端和目的端的数据表字段,需用户检查字段映射关系是否正确。

  • 如果字段映射关系不正确,用户单击字段所在行选中后,按住鼠标左键可拖拽字段来调整映射关系。

  • 导入到DWS时需要手动选择DWS的分布列,建议按如下顺序选取:

  1. 有主键可以使用主键作为分布列。
  2. 多个数据段联合做主键的场景,建议设置所有主键作为分布列。
  3. 在没有主键的场景下,如果没有选择分布列,DWS会默认第一列作为分布列,可能会有数据倾斜风险。
  • 如果需要转换源端字段内容,可在该步骤配置,具体操作请参见字段转换,这里选择不进行字段转换。

图2 字段映射

img

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

该步骤用户可以配置如下可选功能:

  • 作业失败重试:如果作业执行失败,可选择是否自动重试,这里保持默认值“不重试”。
  • 作业分组:选择作业所属的分组,默认分组为“DEFAULT”。在CDM“作业管理”界面,支持作业分组显示、按组批量启动作业、按分组导出作业等操作。
  • 是否定时执行:如果需要配置作业定时自动执行,请参见配置定时任务。这里保持默认值“否”。
  • 抽取并发数:设置同时执行的抽取任务数。这里保持默认值“1”。
  • 是否写入脏数据:如果需要将作业执行过程中处理失败的数据、或者被清洗过滤掉的数据写入OBS中,以便后面查看,可通过该参数配置,写入脏数据前需要先配置好OBS连接。这里保持默认值“否”即可,不记录脏数据。
  • 作业运行完是否删除:这里保持默认值“不删除”。
  • 单击“保存并运行”,CDM立即开始执行作业。

说明:如果运行作业失败,日志提示如下错误:SQL语句无法执行。ERROR: value too long for type character varying(7) Where: COPY dws_city, line 1, column name: “广州市”。原因:DWS表的字符字段长度不够。这是因为MySQL和华为云DWS存储中文时编码不一样,所需的长度也不一样,一个中文字符在UTF-8编码下可能要占3个字节。解决方法:在3新建作业时选择自动创表,高级属性参数“扩大字符字段长度”选择“是”,再重新执行作业。这样CDM在DWS中自动创表时,会将字符类型的字段长度设置为原表的3倍。

7. 查看作业运行结果

操作场景

作业完成后,可以查看作业执行结果及最近90天内的历史信息,包括写入行数、读取行数、写入字节、写入文件数和日志等信息。

操作步骤

  1. 在集群管理界面,找到步骤1:创建集群章节创建的集群“cdm-aff1”。
  2. 单击该CDM集群后的“作业管理”,进入作业管理界面。
  3. 找到步骤3:创建并执行作业章节创建的作业“mysql_dws”,查看该作业的执行状态。

说明:作业状态有New,Pending,Booting,Running,Failed,Succeeded。其中“Pending”表示正在等待系统调度该作业,“Booting”表示正在分析待迁移的数据。

  1. 单击作业后面的“历史记录”,可查看作业的写入行数、读取行数、写入字节或写入文件数。

图1 查看历史记录

img

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

也可以在作业列表界面,选择“更多 > 日志”来查看该作业最近的一次日志。

图2 查看作业日志

img

8. 总结

以上就是云数据迁移(CDM)的基础使用方法。用户可以结合自己的用户场景选择使用CDM迁移本地数据,或者使用其他更多方式完成数据的迁移。

9. 参考文档

GaussDB for DWS 数据融合系列第一期:云端数据接入(CDM): https://bbs.huaweicloud.com/blogs/237368

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。