amazon-redshift - 如何设计排序键中有许多列的表?
问题描述
我正在制作红移原型,需要一些关于排序键设计的建议。我有一个包含 5 个数值和 20 列的表,可用于过滤。我使用日期作为 dist 键,但我迷失了排序键设计。
我有基于历史使用的排序列的权重,但我如何在红移中处理这个。创建排序键 (col1, col2,.. col20) 似乎不是最好的方法。我是否使用前 5 个最常用的过滤器创建排序键?或者其他一些方法。
解决方案
你有很多选择,一点也不容易:) 基于一种感觉和你描述表格的方式,我认为你应该使用一个 INTERLEAVED SORTKEY 并添加最多 8 列。如果列没有展开,例如 2 列是同时增长的日期,例如 start 、 end 或 id 同步增长,这不是一个好的解决方案。如果数据均匀分布在 8 列上,那么这是一个非常好的 SORTKEY 选项。
你需要做很多测试,有很多选择,你只有这个表还是其他表?
另一个问题是您将使用哪种类型的 DISTSTYLE?桌子小,大?您有多种选择,取决于每个节点上的可用空间量和其他因素。如果您有足够的空间,请一一尝试。
见这里:https ://docs.aws.amazon.com/redshift/latest/dg/viewing-distribution-styles.html
更多信息可以帮助我更好地指导您。检查此链接:https ://docs.aws.amazon.com/redshift/latest/dg/tutorial-tuning-tables.html
GL!
推荐阅读
- mysql - 如何在一个查询中的多个子查询上正确使用多个 group_concats 而没有区别?
- javascript - 在 .c-class-toggler 上的 CoreUI 元素上添加 JS 点击事件
- excel - 如何编写更流畅的宏
- azure - 一次性使用 Powershell 在 azure KeyVault 中添加多个机密的方法
- c++ - 取消引用临时指针以初始化引用成员变量
- php - php 从 json 文件引导到表单并输出到 json 文件
- php - 使用 PODS 通过查询显示来自 pod 的变量
- javascript - 如何将输入到输入中的单词存储为整个单词,而不是在键入时存储单词
- c++ - 等待接受方法 30 秒后退出服务器
- regex - 正则表达式,收集 1 行或多行的抓取信息