什么是 Redshift 的最佳加载路径?
what is an optimal load path for 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 被 VACUUM
ed。
我看不出负载流方法的要点是什么。储蓄从何而来?我了解关闭分析、排序、真空、使用固定压缩等等。但是为什么要使用单独的轨道或空的临时表呢?你可以在没有多轨的情况下完成所有这些。 这句话有什么意思吗 "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 被 VACUUM
ed。