0

在此博客中 https://blogs.aws.amazon.com/bigdata/post/Tx2ANLN1PGELDJU/Best-Practices-for-Micro-Batch-Loading-on-Amazon-Redshift

我看不出负载流方法的要点是什么。储蓄从哪里来?我了解关闭分析、排序、真空、使用固定压缩等等。但是为什么会有单独的轨道或空的临时表呢?您可以在没有多个轨道的情况下完成所有这些操作。“COPY 遵循的最佳加载路径”这句话是否有某些含义?究竟什么是最佳的?S3前缀还是其他?什么是最佳的,如果将目录加载到最终模式中,为什么不是最佳的?我们是否假设读取 s3 文件是瓶颈?

有人可以提供一些见解吗?

4

1 回答 1

1

如果您只是直接附加到决赛桌,那么它们可能是不必要的。轨道用于避免下游主动查询的表上的加载工作(插入/更新/删除)的锁争用。

例如,当另一个进程正在使用该表时,一个事务无法完成,例如,在加载表时,一个长时间运行的数据仓库转换正在运行。使用多个轨道允许进一步的负载被并行分阶段和处理。

您可能还希望使用临时表来利用ALTER APPEND最近添加的功能。这允许您对单独的表进行排序加载,并立即将这些行附加到完全排序状态的最终表中。如果您直接加载到最终行将被标记为未排序,直到表被VACUUM编辑。

于 2016-06-06T16:07:22.703 回答