什么是 Redshift 的最佳加载路径?

what is an optimal load path for Redshift?

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

我看不出负载流方法的要点是什么。储蓄从何而来?我了解关闭分析、排序、真空、使用固定压缩等等。但是为什么要使用单独的轨道或空的临时表呢?你可以在没有多轨的情况下完成所有这些。 这句话有什么意思吗 "an optimal load path for COPY to follow" 究竟什么是最优的? S3 前缀还是其他?什么是最佳的,如果将目录加载到最终模式中,为什么它不是最佳的?我们是否假设读取 s3 文件是瓶颈?

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

如果您只是 直接附加到最后的 table,那么它们可能是不必要的。这些轨道用于避免下游主动查询的 table 上的负载工作 (insert/update/delete) 的锁争用。

例如,当另一个进程正在使用 table 时,事务无法完成,例如在加载 table 时,长 运行 数据仓库转换为 运行。使用多个轨道允许进一步加载并并行处理。

您可能还希望使用临时 table 来利用最近添加的 ALTER APPEND 功能。这允许您将 sorted 加载到单独的 table 并 instantly 将这些行附加到最终的 table 完全排序 状态。如果您直接加载到最终行将被标记为未排序,直到 table 被 VACUUMed。