我在亚马逊红移表中每小时摄入一些数据。数据在.csv桶中每小时在一个S3文件中可用。
请注意:我的红移集群有4个节点片。
我在Redshift中创建的表确实有分发键和排序键。文件大小每小时不超过200 is。
现在我的问题是,在Redshift表中摄入数据的最佳实践是什么:
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 '|';
另外,如果我们使用任何其他方法来摄取数据,这会对可用的存储大小产生任何影响吗?如果它改善了还是保持不变。或者,如果我们实现其他方法,我们还能得到什么其他好处。
寻求你在这方面的专家意见。
谢谢
发布于 2020-10-21 10:42:15
无法让Redshift并行加载单个文件。原因是,没有办法可靠地拆分文件,使所有节点都能在行的开头开始读取。
如果您想要加快加载速度,您应该将数据分割成尽可能多的片。有关如何优化COPY
的更多信息,请参见https://docs.aws.amazon.com/redshift/latest/dg/t_Loading-data-from-S3.html。
也就是说,每小时加载一次200 MB的数据应该非常快,即使从一个文件中也是如此。我不认为你会在这方面有任何问题,并且你不应该花时间去优化它,除非它真的是一个问题。
https://stackoverflow.com/questions/64461427
复制相似问题