自从去年我将对象从 SQL Server 迁移到 Redshift 以来,我在 Redshift(主要是 SQL 开发)方面拥有丰富的经验。简而言之,我必须采用 t-sql(以裸 sql、SP、视图和函数的形式)并重写它,以便它在 redshift 中运行。除了一些例外,我为 redshift (olap) 编写的 SQL 与 t-sql (rdbms) 非常相似。
亚马逊还有RDS,这是一个 RDBMS。
我的问题:从我只写 SQL 的角度来看,RDS 和 redshift 之间是否有任何显着差异(例如没有索引)?我不处理可扩展性、定价、维护、存储或任何其他管理问题。我只需打开 SQL Workbench/J,连接并编写 sql。
虽然它们都使用 SQL,但 Amazon RDS 和 Redshift 是两个截然不同的东西。
Amazon RDS 是托管在 AWS 上的传统 SQL 数据库。它支持 IBM Db2、MariaDB、Microsoft SQL Server、MySQL、Oracle 数据库和 PostgreSQL。您可以获得高可用性、备份等等。
Amazon Redshift 是它自己的东西。它是一个用于大数据、数据仓库、商业智能和在线分析处理的面向列的数据库。它是从 PostgreSQL 8 分叉出来的,从那时起它们就出现了显着的分歧。
由于它满足非常不同的需求,Amazon Redshift 使用的专用数据存储架构和查询执行引擎与 PostgreSQL 实现完全不同。
面向列的数据库的结构和优化与您习惯的基于行的数据库非常不同。没有二级索引,没有表分区,更少的约束,没有触发器,没有序列。查询会自动分发到计算笔记。
请参阅 Amazon Redshift SQL 参考 和 Amazon Redshift 和 PostgreSQL 了解详细信息。