amazon-web-services - AWS Redshift 添加节点并从单节点更改为多节点以增加磁盘大小
问题描述
由于我是 Redshift 的新手,我有以下问题。
添加新节点以增加磁盘空间时,我需要选择哪种“分发方式”?
由于我的目的是增加磁盘空间,我是否需要考虑“分发样式”或已编写查询的任何更改(查询在单个节点中工作而没有任何问题)?
解决方案
随着越来越多的节点存在,分布变得重要。
每个节点将至少有 2 个切片,具体取决于您的数据在这些切片中的分布方式,执行查询时您的性能可能会受到影响。
您可以通过以下方式分发:
EVEN
- 数据集在切片之间均匀分布,而如果您必须从其他切片执行此数据的连接,这将在所有节点上均匀分布存储,您可能会发现性能受到影响。它将极大地受益于没有连接的非规范化数据,因为它将在每个节点上获得 CPU 来执行计算。KEYS
- 数据集根据它们与其他数据的关系分布到切片中,这在表中使用连接时非常有用,但请注意数据可以不均匀地分布在切片中。ALL
- 每个切片获取整个数据集,对于小型数据集(小于 10GB 的表)或具有不经常更改的数据的数据集使用此选项。AUTO
- Redshift 负责分配样式并尝试为数据集选择正确的,您无法控制它所做的决策。
在做出决定之前,您应该考虑如何使用数据,因为它会影响您获得的存储和性能输出。
推荐阅读
- javascript - SweetAlert 模式窗口中的 Google reCaptcha
- mongodb - 无法在树莓派上安装 mongo 3.6
- ios - 故事板 - 对象内的对象作为 IBOutlet
- django - Python-django.db.migrations.exceptions.NodeNotFoundError
- mstest - MStest 中的 Textcontext 属性给出空引用异常
- javascript - Javascript 数学文本字段
- vba - 在 VBA 中将单元格的值写入另一个 Excel
- java - Android MediaRecorder Fragment 如何保持同一个实例
- angular - `sass` 在 css 中使用大括号时抛出错误
- javascript - 如何将模型对话框定位到中心?