GaussDB for DWS 数据融合系列第一期:云端数据接入(CDM)(gaussdb数据库)

网友投稿 1251 2022-05-30

概述

云数据迁移服务(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过程进行编排调度,同时提供可视化的开发环境。

导入方式:

数据导入方式说明:

数据导入方式

数据源

说明

优势

从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上的临时存储数据。

准实时入库。

GaussDB for DWS 数据融合系列第一期:云端数据接入(CDM)(gaussdb数据库)

第三方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客户端所在机器上的本地文件。

操作简单,适用于小批量数据入库。

场景介绍

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

CDM的基本使用流程如下:

创建CDM集群

创建连接

创建并执行作业

查看作业运行结果

以完成数据迁移

创建集群

操作场景

用户首先需要创建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。

其它参数保持默认即可。

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

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

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

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

创建连接

连接说明

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

MySQL连接:CDM连接本地MySQL数据库。

DWS连接:CDM连接DWS数据库。

由于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

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

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

图2 选择连接器类型

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

图3 创建MySQL连接

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

参数名

说明

取值样例

名称

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

mysqllink

数据库服务器

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

192.168.0.1

端口

MySQL数据库的端口。

3306

数据库名称

MySQL数据库的名称。

sqoop

用户名

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

admin

密码

用户的密码。

-

使用Agent

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

Agent

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

-

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

说明:如果保存时出错,一般是由于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

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

创建并执行作业

操作场景

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

操作步骤

1. 在集群管理界面,找到步骤1:创建集群章节创建的集群“cdm-aff1”。

2. 单击该CDM集群后的“作业管理”,进入作业管理界面。

3. 选择“表/文件迁移> 新建作业”,配置作业基本信息。

图1 新建作业

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

源端作业配置

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

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

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

表名:选择导出哪张表。

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

目的端作业配置

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

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

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

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

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

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

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

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

有主键可以使用主键作为分布列。

多个数据段联合做主键的场景,建议设置所有主键作为分布列。

在没有主键的场景下,如果没有选择分布列,DWS会默认第一列作为分布列,可能会有数据倾斜风险。

如果需要转换源端字段内容,可在该步骤配置,具体操作请参见字段转换,这里选择不进行字段转换。

图2 字段映射

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

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

作业失败重试:如果作业执行失败,可选择是否自动重试,这里保持默认值“不重试”。

作业分组:选择作业所属的分组,默认分组为“DEFAULT”。在CDM“作业管理”界面,支持作业分组显示、按组批量启动作业、按分组导出作业等操作。

是否定时执行:如果需要配置作业定时自动执行,请参见配置定时任务。这里保持默认值“否”。

抽取并发数:设置同时执行的抽取任务数。这里保持默认值“1”。

是否写入脏数据:如果需要将作业执行过程中处理失败的数据、或者被清洗过滤掉的数据写入OBS中,以便后面查看,可通过该参数配置,写入脏数据前需要先配置好OBS连接。这里保持默认值“否”即可,不记录脏数据。

作业运行完是否删除:这里保持默认值“不删除”。

6. 单击“保存并运行”,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倍。

查看作业运行结果

操作场景

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

操作步骤

1. 在集群管理界面,找到步骤1:创建集群章节创建的集群“cdm-aff1”。

2. 单击该CDM集群后的“作业管理”,进入作业管理界面。

3. 找到步骤3:创建并执行作业章节创建的作业“mysql_dws”,查看该作业的执行状态。

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

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

图1 查看历史记录

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

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

图2 查看作业日志

EI企业智能 Gauss AP 数据仓库服务 GaussDB(DWS)

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用Apache Camel Multicast组件遇到的一个问题(使用apache部署web网站)
下一篇:用 Golang 实现基于 Redis 的安全高效 RPC 通信(用一生去爱你)
相关文章