如何将数据仓库从 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 | ADB 全面兼容PG生态 | |
SQL语法 | 兼容PG,部分兼容Oracle语法 | 兼容PG | ADB 兼容性更强 | |
事务 | 支持 | 支持 | ||
行存储 | 支持 | 不支持 | ADB PG基于行存支持HTAP混合负载 | |
列存储 | 支持 | 支持 | ||
存储过程 | 支持 | 不支持 | ADB支持PL/SQL, PL/Java等过程语言 | |
表分区 | 支持 | 支持 | ||
云存储 | 支持OSS数据在线访问 | 支持S3数据在线访问 | ||
多模分析 | PostGIS/MADLib/向量检索 | ADB PG支持非结构化分析及机器学习 |
关键语法比较及迁移
阿里云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及部分自定义函数 |
语法指南
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。
整体迁移路径如下:
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
谷歌被曝2500亿美元收购Salesforce!拆分云业务,反击亚马逊微软
本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。 2500亿美元,约合人民币1.7万亿,相当于中国互联网上市公司3-9名市值总和。 现在,谷歌被曝开出如此天价,一举收购企业服务之王Salesforce,并进一步并转旗下谷歌云业务,用“云+AI”的思路,重新获得微软Azure和AWS挤压下的竞争优势。 目前谷歌市值近万亿美元市值,手握千亿美元现金流,而Salesforce市值1598亿美元左右,于是消息传出后,双方股价都微微上涨。 一旦真收购实现,必将成为全球科技史上最大并购案Top事件。 被云计算大战逼急了 消息最先由加拿大皇家银行资本(RBC Capital Markets)曝出: 谷歌可能会收购Salesforce(客户关系管理软件服务提供商),将使谷歌“立即跃居”云市场第二位,仅次于亚马逊,取代微软。 收购价格预计将高达2500亿美元,较撰写本文时的市值溢价近70%。 另一份RBC的报告中还表示: 谷歌可能剥离其云业务,成为一家独立的公司,市值最高可达2260亿美元。 这也被与谷歌云高管的“OKR”联系起来。2019年底,谷歌云平台的高管发起了一项相对...
- 下一篇
生产中的 Serverless 机器学习流水线
TL; DR 本文将讨论机器/深度学习基础设施运维(MLOps)中的机器学习流水线。文章将覆盖以下内容和技术点: 定义了生产环境中对 ML pipeline 的要求(requirements)。 提供了基于阿里云函数工作流 (FnF),函数计算 (FC) Serverless ML Pipeline 解决方案 Github。 解决方案提供 FC 与阿里云容器服务 K8s (ACK) 结合教程,讲解触发任务,部署预测推理服务和暴露服务步骤。 对解决方案和类似方案进行分析比较结论:Serverless ML pipeline 可以提高研发效率,优化运维和经济成本,帮助 ML 更快产生价值。 讨论 ML 基础设施的选型:函数计算可以很好地和 K8s 集群形成优势互补。 前言 随着机器/深度学习的商业价值体现的越来越明显,围绕 ML 的软件技术也日新月异,训练 (training),模型 (model),算法 (algorithm),预测 (predictions),推理 (inference) 这些概念以及 Spark MLlib, Tensorflow 这些软件框架也变成了超高频词。在本地...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Redis,开启缓存,提高访问速度
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作