Greenplum无疑是跟AWS Redshift最接近的。理由前面的回答已经非常详尽,不再赘述。
没有直接在相同的硬件设备和相同的数据集上比较过Redshift和Greenplum,但是做过间接的比较。也就是说Greenplum和AWS Redshift分别和第三方产品(实际上是我司的分布式时序数据库产品DolphinDB)在相同的硬件设备和相同的数据集上做过比较。从间接比较的结果来看,Greenplum无论从数据导入,简单查询,相对复杂的group查询,Greenplum的性能都比AWS Redshift要好,大概在1倍左右。
没有经过广泛的测试,这个性能差异可能只跟我们测试用的数据集和任务有关,不具有广泛意义,仅供参考。我们的测试的原始数据量在400~500G之间(没有压缩之前),数据为纽约证券交易所2007年8~9月两个月的tick level股票报价数据,每天的记录数在2~5亿条,字段10个。查询测试的主要数据维度两个时间和股票。我们当时测试完后,做了分析,结论是跟分区机制有关。
AWS Redshift支持distribution key和sort key,但不支持在节点内进一步分区。Greenplum支持distribution key, partition key和sort key。AWS Redshift可以按某一字段的hash值在node(slice)上distribution,相当于按照这个字段在节点层面做了哈希分区。但是当数据量较大时,一个slice上的数据量仍然很大,AWS Redshift不支持进一步分区,只能采用sort key。在我们的测试案例中,需要的sort key有两个,一个是日期,一个是股票代码。一个做法是使用compound sort key。compound sort k