试图在Redshift中实现并行性



我每小时都会在Amazon Redshift表中获取一些数据。S3存储桶中的数据每小时在一个.csv文件中可用。

请注意:我的红移集群有4个节点切片。

我在Redshift中创建的表确实有分发关键字和排序关键字。文件大小不超过每小时200MB。

现在我的问题是,将数据摄入Redshift表的最佳实践是什么:

  1. 运行复制命令,如下所示-

copy my_schema.my_table from 's3://mybucket/table_data.csv' CREDENTIALS 'aws_access_key_id=<MY_ID>;aws_secret_access_key=<SECRET_KEY>' delimiter '|';

  1. 或者,我是否需要其中的任何其他可选参数来使用Redshift并行性的优势。我知道它默认的并行度是EVEN

此外,如果我们使用任何其他方法来获取数据,这会对可用存储大小产生任何影响吗?如果它有所改善或保持不变。或者,如果我们实施其他方法,我们还能得到什么其他好处。

请就此寻求您的专家建议。

感谢

您无法让Redshift对单个文件进行并行加载。原因是没有办法可靠地拆分文件,使所有节点都能在一行的开头开始读取。

如果你想加快加载速度,你应该把你的数据分成尽可能多的片段。有关如何优化COPY的更多信息,请参阅https://docs.aws.amazon.com/redshift/latest/dg/t_Loading-data-from-S3.html

也就是说,每小时加载一次200 MB的数据应该非常快,即使是从一个文件中。我不认为你会有任何问题,你不应该花时间优化它,除非它真的是一个问题。

最新更新