生产群集详细信息:
测试群集详细信息:
当相同的表具有完全相同的DDL&编码被卸载并从生产集群复制到测试集群,其磁盘占用空间呈指数级减少。已经使用具有不同分布样式和排序键模式的多个表测试了这一点。
实施例:
Table A (No sort key, DISTSYLE EVEN) - Size in production: 60GB; Size in test: 0.6 GB
Table B (Sort key, DISTSTYLE KEY) - Size in production: 96GB 100% sorted; Size in test: 1.4 GB 100% sorted
任何可能导致这种差异的想法?我已经阅读了大多数redshift论坛,但无法找到解决此问题的原因。我使用admin视图v_space_used_per_tbl(由AWS提供)来计算表的大小。
答案 0 :(得分:2)
如果表行数很小,则表大小由群集的最小表大小定义。
Redshift在群集中每个切片的每列最少分配1MB。 dc1.8xlarge
节点有32个切片,因此在25个节点的群集上,每列约800MB。
一个60GB的最小大小表有~72个用户列加上3个内部[如果某些列很大,则为VARCHAR()
]。 ds2.xlarge
节点有2个切片,因此在6节点集群上,72列表的最小大小为~900MB。
特别是对于大型集群,如果表是“维度”表(小型查找表),则应考虑使用DISTSTYLE ALL
。这会将每个节点的最小大小减少到每列1MB。
有关详细说明,请参阅AWS知识库文章Why does a table in my Amazon Redshift cluster consume more disk storage space than expected?