如何将数据仓库从 AWS Redshift 迁移到阿里云 AnalyticDB for PostgreSQL
阿里云AnalyticDB for PostgreSQL(以下简称 ADB PG,即原HybridDB for PostgreSQL)为基于PostgreSQL内核的MPP架构的实时数据仓库服务,可以支持复杂ETL任务,也支持高性能在线查询,同阿里云生态紧密结合。AWS 的Redshift同样为基于PostgreSQL内核引擎的MPP数据仓库服务器,在AWS被广泛作为数据仓库使用。ADB PG和Redshift从架构到语法上同Redshift高度兼容。本文重点介绍两个数仓平台如何进行迁移。
产品架构比较
阿里云AnalyticDB for PostgreSQL最新版本 6.0 基于PostgreSQL 9.4构建,Redshift 基于PostgreSQL 8.2版本,相对ADB PG的功能要更加全面,且全面兼容PostgreSQL生态的工具,包括PostGIS,MADlib等扩展分析。Redshift 只支持列存表,而不支持PostgreSQL原生的行存表,而ADB PG即保留了PostgreSQL行存表支持,实现高吞吐的数据更新操作,也支持面向OLAP大表聚合操作的列存表。
AnalyticDB for PG 与 Redshift的比较
功能项目 | ADB PG | Redshift | |
---|---|---|---|
PostgreSQL版本 | PG 9.4 | PG 8.2 | |
SQL语法 | 兼容PG,部分兼容Oracle语法 | 兼容PG | |
事务 | 支持 | 支持 | |
行存储 | 支持 | 不支持 | |
列存储 | 支持 | 支持 | |
表分区 | 支持 | 支持 | |
云存储 | 支持OSS数据在线访问 | 支持S3数据在线访问 | |
多模分析 | PostGIS/MADLib/向量检索 |
关键语法比较及迁移
阿里云AnalyticDB for PostgreSQL与AWS Redshift都基于单机PostgreSQL内核引擎,故语法高度兼容,部分语法描述略有差异如下。
DDL建表语法差异
语法 | Redshift | ADB PG | |
---|---|---|---|
表Hash分布 | DISTKEY(col) | DISTRIBUTED BY(col) | |
表随机分布 | DISTSTYLE EVEN | DISTRIBUTED RANDOMLY | |
表复制分布 | DISTSTYLE ALL | DISTRIBUTED REPLICATED | |
数据编码压缩 | AZ64/BYTEDICT/DELTA/LZO/RAW/RUNLENGTH/ZSTD | (COMPRESSTYPE={ZStD/ZLIB/QUICKLZ/RLE_TYPE/NONE}) | |
列存排序键 | SORTKEY (col) | with(APPENDONLY=true,ORIENTATION=column)sortkey (volume) | |
系统函数 | PG8.2及部分自定义函数 | PG9.4及部分自定义函数 |
语法指南
ADB PG建表指南
Redshift建表指南
DDL转换示例1
Redshift 建表语句,包含分布键DISTKEY和排序列:
CREATE TABLE schema1.table1(filed1 VARCHAR(100) ENCODE lzo,filed2 INTEGER DISTKEY,filed3 INTEGER,filed4 BIGINT ENCODE lzo,filed5 INTEGER,)
INTERLEAVED SORTKEY (filed1,filed2);
ADB PG建表语句:
CREATE TABLE schema1.table1
(filed1 VARCHAR(100) ,filed3 INTEGER,filed5 INTEGER
)
WITH(APPENDONLY=true,ORIENTATION=column,COMPRESSTYPE=zlib)
DISTRIBUTED BY (filed2)
SORTKEY
(filed1,filed2
)
DDL转换示例2
Redshift 建表语句,包含ENCODE和SORTKEY选项:
CREATE TABLE schema2.table2
(filed1 VARCHAR(50) ENCODE lzo,filed2 VARCHAR(50) ENCODE lzo,filed3 VARCHAR(20) ENCODE lzo,
)
DISTSTYLE EVEN
INTERLEAVED SORTKEY
(filed1
);
ADB PG建表语句:
CREATE TABLE schema2.table2(filed1 VARCHAR(50),filed2 VARCHAR(50),filed3 VARCHAR(20))
WITH(APPENDONLY=true, ORIENTATION=column, COMPRESSTYPE=zlib)
DISTRIBUTED randomly
SORTKEY
(filed1
);
数据迁移
Redshift和ADB PG均支持从云存储的告诉并行数据导入和导出。从Redshift迁移数据到AnalyticDB for PostgreSQL包含如下步骤:
- 资源和环境准备,执行操作前需提前准备Amazon Redshift、Amazon S3(Amazon Simple Storage Service)、AnalyticDB for PostgreSQL和阿里云对象存储服务(OSS)的相关资源。
- 将Redshift的数据导入到Amazon S3中。
- 使用OSSImport将Amazon S3中CSV格式的数据文件导入到OSS。
- 在目标AnalyticDB for PostgreSQL中创建和源Redshift对应的对象,包括模式(Schema)、表(Table)、视图(View)和函数(Function)。
- 使用OSS外部表将数据导入到AnalyticDB for PostgreSQL。
整体迁移路径如下:
原文链接
本文为阿里云原创内容,未经允许不得转载。
如何将数据仓库从 AWS Redshift 迁移到阿里云 AnalyticDB for PostgreSQL相关推荐
- 轻松上云系列之二:其他云数据迁移至阿里云
2019独角兽企业重金招聘Python工程师标准>>> 本文档围绕如何将您其他云厂商上的数据迁移到阿里云,提供了多个场景的实践方案. 文档合集 AWS 数据迁移至阿里云 Amazon ...
- 自建Hive数据仓库跨版本迁移到阿里云Databricks数据洞察
简介:客户在IDC或者公有云环境自建Hadoop集群构建数据仓库和分析系统,购买阿里云Databricks数据洞察集群之后,涉及到数仓数据和元数据的迁移以及Hive版本的订正更新. 直达最佳实践:[自 ...
- 自建Hive数据仓库跨版本迁移到阿里云E-MapReduce
最佳实践概述 应用场景 客户在IDC或者公有云环境自建Hadoop集群,数据集中保存在HDFS文件系统,同时借助Hive进行常见的ETL任务.客户在决策上云之后,会将自建Hadoop集群的数据迁移到阿 ...
- 【云计算的1024种玩法】轻松将其他云的对象储存迁移至阿里云OSS
前言 当使用了像 OSS.S3 这样的开放对象储存的 PaaS 产品后,一面上体验到了网站核心同附件库分离的安全性.高性能以及免维护的便利性,一面上却又怕在一个厂家的对象储存上扎根了就无法迁移,会被厂 ...
- 数据库表迁移到阿里云的方法有哪些
数据库表迁移到阿里云的方法有哪些,数据软件整体迁移. 服务器的空间大小.稳定性.安全性以及其他因素会影响网站的优化.许多企业在网站运行过程中,这些因素的影响使得企业不得不更换一个新的服务器.如何正确更 ...
- 阿里云迁移工具推荐最佳实践:Xen虚拟化迁移到阿里云
1.迁移需求分析 Xen虚拟化是早期半虚拟化技术,现有部分本地还在使用,像Citrix公司开发的XenServer虚拟化管理平台,底层就是运用的xen虚拟化技术底座,但是目前市场使用比较多的还是开源K ...
- 服务器迁移实践,物理服务器迁移到阿里云服务器
1.迁移需求分析 在当前市场环境下,使用物理服务器来部署单体应用还存在于传统的行业,使用物理服务器会增加IT资源的管理难度,而且在资源使用上也会产生资源浪费,其实目前大家可能最常使用的方式就是在物理服 ...
- 如何把企业数据迁移到阿里云服务器中
公司数据如何迁移到阿里云服务器上 1)公司能够根据阿里云出示内嵌工具与帮助文件自身进行IT自然环境迁移工作中,即:自助服务终端: 2)公司还能够根据阿里云的合作方,根据合作方出示服务支持,协助公司进行 ...
- 全民直播CTO张云龙:已全面迁移至阿里云
全民直播CTO张云龙:已全面迁移至阿里云 "建设一家大型的直播平台充满了技术挑战,毫不夸张的说,直播平台囊括了几乎所有的主流互联网技术--Web站点.APP客户端.音视频编解码.即时聊天.充 ...
最新文章
- java统计分析_数据统计(java实现)
- ERPLAB中文教程:ERPLAB安装与添加通道
- opengl开启垂直同步_东风悦达起亚ALL NEW K5正式定名凯酷,预售同步开启
- java连接腾讯云上的redis
- 文档中根元素后面的标记格式必须正确。
- SLF4J with Logback in a Maven Project | Mograblog
- 惠普前总裁孙振耀指点职业规划(转帖)
- pytorch---模型保存预加载(1)什么是状态字典:state_dict
- PL/SQL详细的安装和配置教程(附带网盘下载链接,以及PL/SQL的基本操作与注意事项)
- 使用idea导出数据库脚本
- PDF文件不能打印的五种解决方案
- 北京2020积分落户名单
- 【给初学者,大佬见笑】100%成功UEFI安装双硬盘单系统Ubuntu最合理分区安装指南+ubuntu20.04安装
- 恭喜腾佑当选“河南省企业上云推进联盟”理事单位!
- 想当然的性能调优:加一个SSD
- 戴尔要求DEC雇员扔掉Mac
- Unity中的物体渲染顺序
- MT6738/MT6738T芯片资料,MT6738处理器功能介绍
- 给比特币“雕花” 增值还是累赘?
- percona-tool文档说明(4)- 监控类
热门文章
- python request url编码_Python 爬虫 (requests) 发送中文编码的 HTTP POST 请求
- Java开发的Spring Boot的核心模块
- 20天掌握C语言,C语言零基础到项目实战,玩转C语言
- mysql安装被打断_MySQL安装未响应解决方法
- android 手机壁纸源码,Android工程实现换壁纸功能【附源码】
- java 代码 _程序员用1.5小时写出的Java代码,让同事瞠目结舌!直呼优秀
- linux resin 查看日志命令,【转】linux:访问日志分析
- verilog换行太长代码_Verilog 之 File I/O task and function
- ppt流程图字体太小_简单三步,用WPS轻松完成一个又大气又好看的流程图!
- 不同图像锐化算子提取的图像信息有哪些不同_传统图像处理