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

简介: 阿里云AnalyticDB for PosgreSQL与 AWS Redshift 均为采用PosgreSQL内核的MPP架构数据仓库服务,语法高度兼容一致。本文介绍两者的差异比较,以及如何从AWS Redshift迁移应用和数据到阿里云 ADB for PG。

阿里云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大表聚合操作的列存表。
redshift4abdpg

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。

整体迁移路径如下:

datamigration

详细操作步骤可参见

相关实践学习
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
9月前
|
存储 人工智能 关系型数据库
阿里云AnalyticDB for PostgreSQL 入选VLDB 2025:统一架构破局HTAP,Beam+Laser引擎赋能Data+AI融合新范式
在数据驱动与人工智能深度融合的时代,企业对数据仓库的需求早已超越“查得快”这一基础能力。面对传统数仓挑战,阿里云瑶池数据库AnalyticDB for PostgreSQL(简称ADB-PG)创新性地构建了统一架构下的Shared-Nothing与Shared-Storage双模融合体系,并自主研发Beam混合存储引擎与Laser向量化执行引擎,全面解决HTAP场景下性能、弹性、成本与实时性的矛盾。 近日,相关研究成果发表于在英国伦敦召开的数据库领域顶级会议 VLDB 2025,标志着中国自研云数仓技术再次登上国际舞台。
1029 1
|
关系型数据库 Java 数据库连接
【YashanDB知识库】Kettle迁移PostgreSQL到YashanDB
本文介绍了在Windows环境下使用开源工具Kettle将PostgreSQL数据迁移到YashanDB的方法,适用于YMP不支持PostgreSQL的场景。环境配置包括Kettle 8.3、JAVA 1.8、PostgreSQL 12和YashanDB 23.2.1.100。通过设置JAVA环境变量、解压作业包、启动Kettle图形界面,配置数据库连接(PostgreSQLInput与YashanOutput)以及修改表清单文件等步骤,最终执行总任务完成数据迁移。若迁移失败,可通过日志定位问题并重试,目标表会在每次同步前被truncate以避免数据冲突。
【YashanDB知识库】Kettle迁移PostgreSQL到YashanDB
|
Cloud Native 关系型数据库 OLAP
云原生数据仓库产品使用合集之阿里云云原生数据仓库AnalyticDB PostgreSQL版的重分布时间主要取决的是什么
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
SQL 关系型数据库 PostgreSQL
【YashanDB 知识库】从 PostgreSQL 迁移到 YashanDB 如何进行数据行数比对
【YashanDB 知识库】从 PostgreSQL 迁移到 YashanDB 如何进行数据行数比对
|
SQL Oracle 关系型数据库
【YashanDB知识库】从PostgreSQL迁移到YashanDB如何进行数据行数比对
本文介绍了通过Oracle视图`v$sql`和`v$sql_plan`分析SQL性能的方法。首先,可通过`plan_hash_value`从`v$sql_plan`获取SQL执行计划,结合示例展示了具体查询方式。文章还创建了一个UDF函数`REPEAT`用于格式化输出,便于阅读复杂执行计划。最后,通过实例展示了如何根据`plan_hash_value`获取SQL文本及其内存中的执行计划,帮助优化性能问题。
|
SQL 存储 人工智能
化整为零:湖仓数据平台一站式迁移
本文介绍了湖仓平台迁移的概况、痛点及解决方案。首先概述了数据湖和数据仓库迁移的现状与背景,强调其重要性及挑战。接着分析了迁移过程中的主要痛点,如数据量大、业务变更频繁等。最后提出了一种化整为零的新范式,通过精细化设计和自动化工具提升迁移效率,并展示了一站式湖仓迁移中心的关键阶段和产品大图,旨在加速迁移过程并减少人工成本。
|
存储 运维 安全
Greenplum闭源?平滑迁移到 AnalyticDB 开启Data+AI新范式
知名开源 MPP 数据库 Greenplum 由于其丰富的企业级特性和出色的数据处理能力成为很多企业构建数仓的首选。近期 GP 公开 Github 仓库无法访问仅保留只读归档代码,业界纷纷猜测 GP 即将闭源。云原生数仓 AnalyticDB PostgreSQL 版完全掌控内核代码,完全兼容GP语法,全自研计算及存储引擎较比开源GP有五倍性能提升,全自研企业级特性在实时计算、弹性扩展、安全增强、高可用等方面实现对GP的全面超越,并在数仓能力上扩展了向量检索及一站式 RAG 服务,帮助企业快速构建 AI 应用、开启 Data+AI 新范式。
59948 3
|
运维 Cloud Native 关系型数据库
云原生数据仓库AnalyticDB产品使用合集之PostgreSQL版是否直接支持实时物化视图
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
392 3
|
关系型数据库 MySQL 测试技术
【专栏】PostgreSQL数据库向MySQL迁移的过程、挑战及策略
【4月更文挑战第29天】本文探讨了PostgreSQL数据库向MySQL迁移的过程、挑战及策略。迁移步骤包括评估规划、数据导出与转换、创建MySQL数据库、数据导入。挑战包括数据类型不匹配、函数和语法差异、数据完整性和性能问题。应对策略涉及数据类型映射、代码调整、数据校验和性能优化。迁移后需进行数据验证、性能测试和业务验证,确保顺利过渡。在数字化时代,掌握数据库迁移技能对技术人员至关重要。
1126 5
|
存储 缓存 Cloud Native
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样

相关产品

  • 云数据库 RDS PostgreSQL 版
  • 推荐镜像

    更多