Amazon Redshift 基于 PostgreSQL 8.0.2

Amazon Redshift 基于 PostgreSQL 8.0.2。Amazon Redshift 和 PostgreSQL 之间的差别非常大,您在设计和开发数据仓库应用程序时必须注意这一点。

Amazon Redshift 是专为联机分析处理 (OLAP) 和业务智能 (BI) 应用程序设计的,这些应用程序需要针对大型数据集的复杂查询。由于它解决了迥然不同的需求,因此 Amazon Redshift 使用的专用数据存储 schema 和查询执行引擎完全不同于 PostgreSQL 实现。例如,联机事务处理 (OLTP) 应用程序通常将数据存储在行中,而 Amazon Redshift 将数据存储在列中,并使用专业的数据压缩编码以获得最优的内存使用和磁盘 I/O。此外,为了改进性能,删除了一些适合小型 OLTP 处理的 PostgreSQL 功能(如辅助索引和高效单行数据操作运算)。

实现方式不同的功能

许多 Amazon Redshift SQL 语言元素都具有不同的性能特征和使用语法以及语义,并且等效的 PostgreSQL 实施有很大不同。

重要

请勿假设 Amazon Redshift 和 PostgreSQL 共同具有的元素的语义是相同的。确保查阅 Amazon Redshift 开发人员指南SQL 命令以了解常有的细小差异。

一个具体的示例是 VACUUM 命令,该命令用于清理和重新组织表。VACUUM 具有不同的功能,并且使用的参数组不同于 PostgreSQL 版本。有关在 Amazon Redshift 中使用 VACUUM 的更多信息,请参阅 对表执行 vacuum 操作

通常,数据库管理功能和工具也不相同。例如,Amazon Redshift 维护一组提供有关系统运行方式的信息的系统表和视图。参阅 系统表和视图 了解更多信息。

以下列表包含 Amazon Redshift 中的实现方式不同的 SQL 功能的一些示例。

  • CREATE TABLE

    Amazon Redshift 不支持表空间、表分区、继承和某些约束。CREATE TABLE 的 Amazon Redshift 实现使您能够为表定义排序和分配算法以优化并行处理。

    Amazon Redshift Spectrum 支持使用 CREATE EXTERNAL TABLE 命令的表分区。

  • ALTER TABLE

    只支持 ALTER COLUMN 操作的子集。

    ADD COLUMN 支持在每个 ALTER TABLE 语句中仅添加一列。

  • COPY

    Amazon Redshift COPY 命令专门用于支持从 Amazon S3 存储桶和 Amazon DynamoDB 表加载数据以及方便自动压缩。有关详细信息,请参阅加载数据部分和 COPY 命令参考。

  • INSERTUPDATE 和 DELETE

    不支持 WITH。

  • VACUUM

    VACUUM 的参数完全不同。例如,PostgreSQL 中的默认 VACUUM 操作只是回收空间并使空间可供重复使用;但是,Amazon Redshift 中的默认 VACUUM 操作为 VACUUM FULL,可回收磁盘空间并对所有行重新排序。

  • 在比较字符串值时,会忽略 VARCHAR 值的尾部空格。

猜你喜欢

转载自www.cnblogs.com/cloudrivers/p/11635098.html