我们计划将OLTP关系表导入AWS Redshift。 CustomerTransaction表连接到多个查找表。我只包括3,但我们有更多。
Sort Key是什么应该在客户交易表上?在常规SQL服务器中,我们在CustomerTransaction表中的外键上有非聚簇索引。 对于AWS Redshift,我应该在CustomerTransaction中的外键列上使用复合排序键还是交叉排序?这个表设计的最佳索引策略是什么? 谢谢,
create table.dbo CustomerTransaction
{
CustomerTransactionId bigint primary key identity(1,1),
ProductTypeId bigint, -- foreign keys to Product Type Table
StatusTypeID bigint -- Foreign keys to StatusTypeTable
DateOfPurchase date,
PurchaseAmount float,
....
}
create table dbo.ProductType
{
CustomerTransactionId bigint primary key identity(1,1),
ProductName varchar(255),
ProductDescription varchar(255)
.....
}
create table dbo.StatusType
{
StatusTypeId bigint primary key identity(1,1),
StatusTypeName varchar(255),
StatusDescription varchar(255)
.....
}
答案 0 :(得分:2)
一般的经验法则是:
DISTKEY
GROUP BY
SORTKEY
语句WHERE
VACUUM
)来自Choose the Best Distribution Style - Amazon Redshift:
因此,推荐特定的DISTKEY
和SORTKEY
并不容易,因为取决于您如何使用故事。仅仅看到DDL不足以推荐优化表格的最佳方法。
其他参考资料: