2017-10-06 117 views
2

我是Redhsift新手,将甲骨文迁移到Redshift。甲骨文AWS Redshift索引Sortkey

其中一个oracle表约有60个索引。 AWS建议最佳实践拥有大约6个复合排序键。

这60个oracle索引如何转换为Redhift的排序键?我知道没有自动转换或者不能将全部60个作为复合排序键。我是新来的红移,我可以知道,通常这种转换接近。

在Oracle中,我们可以不断向同一个表添加索引,并且查询/报告可以使用它们。但在Redshift中改变sortkeys是通过重新创建表。我们如何使在同一个表上使用不同过滤器列和连接列的所有查询具有最佳性能?

感谢

+0

如果您认为正确,请在下面接受我的回答。 –

回答

1

红移是柱状数据库,它不会在甲骨文有相同的含义指标作为所有。

您可以将Oracle Redshift的复合排序键(未交叉存取)视为Oracle(索引组织表),所有数据都通过此组合键进行物理排序。

如果您在x列上创建交错排序键,它将以某种方式作为每个x列的单独索引。

无论如何,作为列式数据库,Redshift由于其压缩和数据结构而在许多聚合查询中可以超越Oracle。影响Redshift性能的主要因素是分布式和键,排序键和列编码。

如果无法用一个表结构来适应所有查询,则可以使用不同的结构复制表,但使用相同的数据。此方法广泛用于大数据柱状数据库(例如Vertica中的投影),并有助于以存储为代价实现性能。

请有关红移表现一些有用的提示查看此页: https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-techniques-for-amazon-redshift/

+0

谢谢nevsv的输入。作为新的Redshift用户,这确实有助于从Redshift的角度思考,而不是解除和转移Oracle。我明白,我从这些条款中学到了很多东西。 – pChidambaram

0

首先几个关键点

红移<>甲骨文

红移没有索引,红移排序键<> Oracle索引。 希望您不希望Redshift为您的OLTP工作负载取代Oracle。这60个索引中的大部分都可能用于优化OLTP类型的工作负载。

每桌最大红移的sortkey = 1

不能超过1种方式的红移数据进行排序!排序键排序您的表数据。这不是一个索引。 您可以指定交错或复合排序键。

查询调整 希望您将使用Redshift进行分析类型查询。您应该根据您的预期查询来定义排序和分配。你应该按照最佳做法here和教程here

调整红移是部分艺术,你将需要使用试验和错误!

如果你想得到这方面的具体指导,请你可以编辑你的问题,具体说明你在做什么?