【发布时间】:2016-03-24 03:32:19
【问题描述】:
我们有按公司 ID 分片的客户数据。也就是说,任何公司的数据都不会与其他公司的数据混合,因此选择它作为 distkey。
鉴于一个节点可能包含数千家公司,公司 ID 是否应该是排序键中的第一列?还是 distkey 在开始扫描之前已经将数据限制在给定的公司?
【问题讨论】:
-
distkey 应该是一个性能选择。用它来放置不同的碎片并没有做任何事情。它是透明的。它不像 X 公司可以只连接到分片 Y 并查看他们的数据。
-
我明白这一点,但它并不能真正回答这个问题。如果我执行查询:
SELECT COUNT(*) FROM sales WHERE company_id = 123它将知道要运行查询的节点,但是 then 它将需要扫描整个节点以查找记录(因此它应该在排序键中),还是节点上的数据被分割成单独的company_id(不需要排序键)?
标签: amazon-web-services amazon-redshift