Redshift 的最佳加载路径是啥?

Posted

技术标签:

【中文标题】Redshift 的最佳加载路径是啥?【英文标题】:what is an optimal load path for Redshift?Redshift 的最佳加载路径是什么? 【发布时间】:2016-06-05 21:40:54 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

例如,当另一个进程正在使用该表时,一个事务无法完成,例如加载表时正在运行长时间运行的数据仓库转换。使用多条轨道可以并行处理更多负载。

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

【讨论】:

很好的答案。这些点在引用的博客中丢失了。

以上是关于Redshift 的最佳加载路径是啥?的主要内容,如果未能解决你的问题,请参考以下文章

由于 Databricks 不公开支持 spark-redshift lib,使用 Scala spark 从 Redshift 读取/写入 Redshift 的最佳方法是啥

为 SQL Redshift 连接两个整数的最佳方法是啥?

在没有 AWS Pipeline 的情况下,将数据(csv 文件)从 s3 自动传输到 Redshift 的最佳方式是啥?

从 Amazon Redshift UNLOAD 创建对 RFC-4180 友好的 CSV 文件的最佳方法是啥?

AWS中ETL流程的最佳方式是啥

DatagGrip 无法识别 Redshift 特定命令