暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

AWS Redshift数据快速迁移到Oracle Mysql Database Service(MDS)的方法

1582

Mysql HeatWave是一种分布式、可伸缩、无共享、内存中的列式查询处理引擎,可以在不改造应用的情况下快速提高应用查询性能,许多用户都希望从MySQL HeatWave 中受益,迈出的第一步是进行数据迁移, 本文将介绍Amazon Redshift的数据如何迁移到Oracle Mysql Database Service(简称MDS)上来。

概要介绍

Redshift的数据迁移到MDS分两步:

1.  Redshift的数据导出为CSV文件,使用Redshit的UNLOAD功能

2.  导入CSV文件到MDS,使用MySQL Shell工具

 

本文我们使用Redshift的官方演示数据:Tickit

Redshift UNLOAD介绍

Redshift UNLOAD是官方推荐的导出方案,该方案需要使用S3,下面是一些准备工作

1. 首先需要创建一个S3 buckct : mys3

2. 创建一个IAM 角色:redshift_to_s3 ,配置具有mys3的读写权限

3. 绑定角色redshift_to_s3到Redshift Cluster上

现在就可以使用查询编辑器UNLOAD所有的数据了

重复该操作把全部的表导出到S3上。

表结构迁移

Redshift是PostgreSQL的变种,在导入数据到MDS之前需要创建对应的表结构,所以需要生成建表语句,如下实例中

Redshift中的建表语句为:

create tablecategory(catid smallint not nulldistkey sortkey,   catgroupvarchar(10),   catname varchar(10),   catdesc varchar(50));

修改MDS中建表语句为:

create tablecategory(catid smallint not null  auto_increment primary key,   catgroup varchar(10),   catname varchar(10),   catdesc varchar(50));

S3挂载到Linux

为了便于读取S3的数据,我们使用s3fs-fuse把S3作为一个文件系统挂载到Linux服务器上

$ sudo yuminstall -y s3fs-fuse

首先需要从AWS上获取Access Key ID和Secret Access Key然后添加到 .passwd-s3fs文件中,两个值使用冒号分割

然后对该文件进行授权

chmod 600~/.passwd-s3fs

在S3中需要为该Bucket创建一个访问端点

现在就可以把Bucket挂载到Linux上了

导入数据

数据导入我们推荐使用 MySQL Shell的importTable工具,因为针对大数据集,importTable可以多线程并行导入

注意使用UNLOAD导出的数据字段分隔符是“|”,所以需要在importTable中进行配置。

结论

使用MySQL Shell可以很容易的把Redshift的数据迁移到MDS,便于我们快速体验到MDS,享受HeatWave的强大功能。


作者简介

高胜杰,甲骨文云平台数据集成高级咨询顾问,专注于甲骨文数据集成相关产品及解决方案。具有7+年的大数据、数据处理经验,熟悉甲骨文相关集成产品,方案和项目实施经验。您可以通过joy.gao@oracle.com与他联系。




最后修改时间:2022-01-17 09:23:30
文章转载自甲骨文开发者社区,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论