步骤2:数据集成
OBS数据迁移到DWS
- 登录CDM管理控制台。单击左侧导航上的“集群管理”,进入集群管理界面。
或参考访问DataArts Studio实例控制台,登录DataArts Studio管理控制台。在DataArts Studio控制台首页,选择对应工作空间的“数据集成”模块,进入CDM首页。
图1 集群列表
“创建来源”列仅通过DataArts Studio服务进入数据集成界面可以看到。
- 进入DataArts Studio数据集成主页面,单击操作列的“作业管理”。
图2 作业管理
- 在作业管理界面,选择“连接管理 - 新建连接”,进入创建连接页面。
- 在创建连接页面,选择“对象存储服务(OBS)”,新建CDM到OBS的连接,数据连接名称为“obs_link”。
表1 OBS连接的参数 参数名
说明
取值样例
名称
连接的名称,根据连接的数据源类型,用户可自定义便于记忆、区分的连接名。
obs_link
OBS终端节点
终端节点(Endpoint)即调用API的请求地址,不同服务不同区域的终端节点不同。您可以通过以下方式获取OBS桶的Endpoint信息:
OBS桶的Endpoint,可以进入OBS控制台概览页,单击桶名称后查看桶的基本信息获取。
说明:- CDM集群和OBS桶不在同一个Region时,不支持跨Region访问OBS桶。
- 作业运行中禁止修改密码或者更换用户。在作业运行过程中修改密码或者更换用户,密码不会立即生效且作业会运行失败。
-
端口
数据传输协议端口,https是443,http是80。
443
OBS桶类型
用户下拉选择即可,一般选择为“对象存储”。
对象存储
访问标识(AK)
AK和SK分别为登录OBS服务器的访问标识与密钥。
您需要先创建当前账号的访问密钥,并获得对应的AK和SK。
您可以通过如下方式获取访问密钥。- 登录控制台,在用户名下拉列表中选择“我的凭证”。
- 进入“我的凭证”页面,选择,如图3所示。
- 单击“确定”,根据浏览器提示,保存密钥文件。密钥文件会直接保存到浏览器默认的下载文件夹中。打开名称为“credentials.csv”的文件,即可查看访问密钥(Access Key Id和Secret Access Key)。
说明:
- 每个用户仅允许新增两个访问密钥。
- 为保证访问密钥的安全,访问密钥仅在初次生成时自动下载,后续不可再次通过管理控制台界面获取。请在生成后妥善保管。
-
密钥(SK)
-
图4 创建OBS连接
- 在创建连接页面,选择“数据仓库服务(DWS)”,新建CDM到DWS的连接,数据连接名称为“dws_link”。
表2 DWS连接参数 参数名
说明
取值样例
名称
连接的名称,根据连接的数据源类型,用户可自定义便于记忆、区分的连接名。
dws_link
数据库服务器
单击输入框后的“选择”,可获取用户的DWS实例列表。
-
端口
配置为要连接的数据库的端口。DWS数据库端口默认为8000。
8000
数据库名称
配置为要连接的数据库名称。
demo
用户名
待连接数据库的用户。该数据库用户需要有数据表的读写权限,以及对元数据的读取权限。
dbadmin
密码
用户密码。
-
使用Agent
是否选择通过Agent从源端提取数据。
否
图5 创建DWS连接
- CDM到OBS和DWS的连接创建成功后,单击“表/文件迁移”,再单击“新建作业”。
图6 新建作业
- 按照如下步骤完成作业参数的配置。
- 如图7所示,配置作业名为movies_obs2dws,配置源端作业参数,然后配置目的端作业参数。
在本示例中,目的端作业参数“导入开始前”配置为“清除全部数据”,表示每次作业运行都会先清空数据再导入。在实际业务中,请视情况而定,需谨慎设置,以免造成数据丢失。
- 在源端、目的作业配置区域,单击“显示高级属性”,在“高级属性”中,系统提供了默认值,请根据实际业务数据的格式设置各项参数。
- 单击“下一步”后,请参考以下说明配置字段映射,如图9所示,配置完成后,单击“下一步”。
字段映射:在本示例中,由于数据迁移的目标表字段顺序和原始数据的字段顺序是一样的,因此这里不需要调整字段映射的顺序。
如果目标表字段顺序和原始数据不一致,请一一将源字段指向含义相同的目的字段。请将鼠标移至某一个字段的箭头起点,当光标显示为“+”的形状时,按住鼠标,将箭头指向相同含义的目的字段,然后松开鼠标。
- 根据需要配置任务的重试和定时执行、高级属性等。在本示例中仅需将“是否写入脏数据”设置为“是”,其他配置项保持默认即可。
单击“显示高级属性”,可配置“抽取并发数”以及“是否写入脏数据”,如图10所示。
- 抽取并发数:设置同时执行的抽取任务数。并发抽取数取值范围为1-1000,若配置过大,则以队列的形式进行排队。
CDM迁移作业的抽取并发量,与集群规格和表大小有关。
- 按集群规格建议每1CUs(1CUs=1核4G)配置为4。
- 表每行数据大小为1MB以下的可以多并发抽取,超过1MB的建议单线程抽取数据。
- 是否写入脏数据:建议配置为“是”,然后参考图10配置相关参数。脏数据是指与目的端字段不匹的数据,该数据可以被记录到指定的OBS桶中。用户配置脏数据归档后,正常数据可以写入目的端,迁移作业不会因脏数据中断。
在本示例中,“OBS桶”配置为在数据源准备中创建的桶“fast-demo”,您需要前往OBS控制台,在桶中创建一个目录,例如err_data,然后再将“脏数据目录”配置为该目录。
- 抽取并发数:设置同时执行的抽取任务数。并发抽取数取值范围为1-1000,若配置过大,则以队列的形式进行排队。
- 如图7所示,配置作业名为movies_obs2dws,配置源端作业参数,然后配置目的端作业参数。
- 单击“保存并运行”完成作业的创建。
返回“表/文件迁移”页面后,可在作业列表中查看到新建的作业。
图11 迁移作业运行结果
- 参考步骤6~步骤8,再新建名为ratings_obs2dws的迁移作业,将ratings.csv数据迁移到DWS的ratings_item表中。待作业运行成功后,数据迁移结束。
图12 数据迁移结果
- 数据迁移结束后,您也可以跳转到数据开发页面,新建一个DWS SQL脚本,并分别执行以下SQL语句检查DWS中的movies_item和ratings_item表数据是否符合预期。
- 查看movies_item表数据:
SET SEARCH_PATH TO dgc; SELECT * FROM movies_item;
- 查看ratings_item表数据:
SET SEARCH_PATH TO dgc; SELECT * FROM ratings_item;
图13 查看DWS表数据
- 查看movies_item表数据: