m0m*_*eni 7 sql materialized-views amazon-redshift
问:Amazon Redshift的性能与数据仓库和分析的大多数传统数据库相比如何?
它说如下:
高级压缩:列式数据存储可以比基于行的数据存储压缩得多,因为类似的数据按顺序存储在磁盘上.Amazon Redshift采用多种压缩技术,相对于传统的关系数据存储,通常可以实现显着的压缩.此外,Amazon Redshift不需要索引或物化视图,因此比传统的关系数据库系统占用更少的空间.将数据加载到空表时,Amazon Redshift会自动对数据进行采样并选择最合适的压缩方案.
为什么会这样?
说实话(在我看来),这有点不诚实.虽然RedShift没有这些,但我不确定是否会说它不会从中受益.
物化观点
我不知道为什么他们提出这个主张.可能是因为他们认为引擎如此高效,以至于使用它们所带来的收益微乎其微.
我会对此提出质疑,我工作的产品会维护自己的物化视图,并且可以显示出这样做的显着性能提升.也许AWS相信我一开始就做错了什么?
索引
RedShift没有索引.
它确实具有SORT ORDER与聚簇索引非常相似的特性.它只是一个按字节排序的数据列表(如复合聚簇索引).
它甚至最近推出INTERLEAVED SORT KEYS.这是直接尝试拥有多个独立排序顺序.而不是通过订购a THEN b THEN c它有效地将他们每个人的订单在同一时间.
由于RedShift如何实现其列存储,这种可能性变得很有可能.
- 每列与其他列分开存储
- 每列存储在1MB块中
- 每个1MB块具有摘要统计信息
除了作为存储模式之外,这有效地成为一组伪索引.
- 如果数据按以下方式排序a then b then x
- 但是你想要z = 1234
- RedShift首先查看块统计信息(对于列z)
- 这些统计信息将说明该块存储的最小值和最大值
- 这允许Redshift在某些块中跳过许多块条件
- 此实习生允许RedShift识别要从其他列读取的块