阿里云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包含如下步骤:

  1. 资源和环境准备,执行操作前需提前准备Amazon Redshift、Amazon S3(Amazon Simple Storage Service)、AnalyticDB for PostgreSQL和阿里云对象存储服务(OSS)的相关资源。
  2. 将Redshift的数据导入到Amazon S3中。
  3. 使用OSSImport将Amazon S3中CSV格式的数据文件导入到OSS。
  4. 在目标AnalyticDB for PostgreSQL中创建和源Redshift对应的对象,包括模式(Schema)、表(Table)、视图(View)和函数(Function)。
  5. 使用OSS外部表将数据导入到AnalyticDB for PostgreSQL。

整体迁移路径如下:

原文链接
本文为阿里云原创内容,未经允许不得转载。

如何将数据仓库从 AWS Redshift 迁移到阿里云 AnalyticDB for PostgreSQL相关推荐

  1. 轻松上云系列之二:其他云数据迁移至阿里云

    2019独角兽企业重金招聘Python工程师标准>>> 本文档围绕如何将您其他云厂商上的数据迁移到阿里云,提供了多个场景的实践方案. 文档合集 AWS 数据迁移至阿里云 Amazon ...

  2. 自建Hive数据仓库跨版本迁移到阿里云Databricks数据洞察

    简介:客户在IDC或者公有云环境自建Hadoop集群构建数据仓库和分析系统,购买阿里云Databricks数据洞察集群之后,涉及到数仓数据和元数据的迁移以及Hive版本的订正更新. 直达最佳实践:[自 ...

  3. 自建Hive数据仓库跨版本迁移到阿里云E-MapReduce

    最佳实践概述 应用场景 客户在IDC或者公有云环境自建Hadoop集群,数据集中保存在HDFS文件系统,同时借助Hive进行常见的ETL任务.客户在决策上云之后,会将自建Hadoop集群的数据迁移到阿 ...

  4. 【云计算的1024种玩法】轻松将其他云的对象储存迁移至阿里云OSS

    前言 当使用了像 OSS.S3 这样的开放对象储存的 PaaS 产品后,一面上体验到了网站核心同附件库分离的安全性.高性能以及免维护的便利性,一面上却又怕在一个厂家的对象储存上扎根了就无法迁移,会被厂 ...

  5. 数据库表迁移到阿里云的方法有哪些

    数据库表迁移到阿里云的方法有哪些,数据软件整体迁移. 服务器的空间大小.稳定性.安全性以及其他因素会影响网站的优化.许多企业在网站运行过程中,这些因素的影响使得企业不得不更换一个新的服务器.如何正确更 ...

  6. 阿里云迁移工具推荐最佳实践:Xen虚拟化迁移到阿里云

    1.迁移需求分析 Xen虚拟化是早期半虚拟化技术,现有部分本地还在使用,像Citrix公司开发的XenServer虚拟化管理平台,底层就是运用的xen虚拟化技术底座,但是目前市场使用比较多的还是开源K ...

  7. 服务器迁移实践,物理服务器迁移到阿里云服务器

    1.迁移需求分析 在当前市场环境下,使用物理服务器来部署单体应用还存在于传统的行业,使用物理服务器会增加IT资源的管理难度,而且在资源使用上也会产生资源浪费,其实目前大家可能最常使用的方式就是在物理服 ...

  8. 如何把企业数据迁移到阿里云服务器中

    公司数据如何迁移到阿里云服务器上 1)公司能够根据阿里云出示内嵌工具与帮助文件自身进行IT自然环境迁移工作中,即:自助服务终端: 2)公司还能够根据阿里云的合作方,根据合作方出示服务支持,协助公司进行 ...

  9. 全民直播CTO张云龙:已全面迁移至阿里云

    全民直播CTO张云龙:已全面迁移至阿里云 "建设一家大型的直播平台充满了技术挑战,毫不夸张的说,直播平台囊括了几乎所有的主流互联网技术--Web站点.APP客户端.音视频编解码.即时聊天.充 ...

最新文章

  1. java统计分析_数据统计(java实现)
  2. ERPLAB中文教程:ERPLAB安装与添加通道
  3. opengl开启垂直同步_东风悦达起亚ALL NEW K5正式定名凯酷,预售同步开启
  4. java连接腾讯云上的redis
  5. 文档中根元素后面的标记格式必须正确。
  6. SLF4J with Logback in a Maven Project | Mograblog
  7. 惠普前总裁孙振耀指点职业规划(转帖)
  8. pytorch---模型保存预加载(1)什么是状态字典:state_dict
  9. PL/SQL详细的安装和配置教程(附带网盘下载链接,以及PL/SQL的基本操作与注意事项)
  10. 使用idea导出数据库脚本
  11. PDF文件不能打印的五种解决方案
  12. 北京2020积分落户名单
  13. 【给初学者,大佬见笑】100%成功UEFI安装双硬盘单系统Ubuntu最合理分区安装指南+ubuntu20.04安装
  14. 恭喜腾佑当选“河南省企业上云推进联盟”理事单位!
  15. 想当然的性能调优:加一个SSD
  16. 戴尔要求DEC雇员扔掉Mac
  17. Unity中的物体渲染顺序
  18. MT6738/MT6738T芯片资料,MT6738处理器功能介绍
  19. 给比特币“雕花” 增值还是累赘?
  20. percona-tool文档说明(4)- 监控类

热门文章

  1. python request url编码_Python 爬虫 (requests) 发送中文编码的 HTTP POST 请求
  2. Java开发的Spring Boot的核心模块
  3. 20天掌握C语言,C语言零基础到项目实战,玩转C语言
  4. mysql安装被打断_MySQL安装未响应解决方法
  5. android 手机壁纸源码,Android工程实现换壁纸功能【附源码】
  6. java 代码 _程序员用1.5小时写出的Java代码,让同事瞠目结舌!直呼优秀
  7. linux resin 查看日志命令,【转】linux:访问日志分析
  8. verilog换行太长代码_Verilog 之 File I/O task and function
  9. ppt流程图字体太小_简单三步,用WPS轻松完成一个又大气又好看的流程图!
  10. 不同图像锐化算子提取的图像信息有哪些不同_传统图像处理