【发布时间】:2019-11-10 16:59:26
【问题描述】:
我正在开发一个应用程序,我将在其中将数据加载到 Redshift。
我想将文件上传到 S3 并使用 COPY 命令将数据加载到多个表中。
对于每次这样的迭代,我需要将数据加载到大约 20 个表中。
我现在正在创建 20 个 CSV 文件,用于将数据加载到 20 个表,其中每次迭代都会加载 20 个创建的文件20 张桌子。对于下一次迭代,将创建新的 20 个 CSV 文件并将其转储到 Redshift。
在我现有的系统中,每个 CSV 文件最多可以包含 1000 行,这些行应该转储到表格中。 20 个表的每次迭代最多 20000 行。
我想进一步提高性能。我已经通过https://docs.aws.amazon.com/redshift/latest/dg/t_Loading-data-from-S3.html
此时,我不确定将 1 个文件加载到 1 个 Redshift 表中需要多长时间。将每个文件拆分为多个文件并并行加载它们真的值得吗?
是否有任何来源或计算器可以根据列数和行数给出将数据加载到 Redshift 表中的近似性能指标,以便我可以在移动之前决定是否继续拆分文件红移。
【问题讨论】:
-
您真正关心的是什么?您是否需要在特定时间范围内加载文件?你多久做一次这个负载? (每天一次,每小时一次,每分钟一次?)你说你想提高性能,但是你目前加载一个简单表的性能是多少?如果您想“提高”性能,那么您应该从测量当前性能开始。 1000 行的文件对于 Redshift 来说非常小。
-
我将以每分钟 10 次迭代的速度加载文件。我什至没有测试当前的性能。我只是在想是否值得将文件分成多个文件进行处理,或者只继续处理单个文件,因为@Nathan 澄清的每个文件最多只有 1000 行。
-
“以每分钟 10 次迭代的速度加载文件”是什么意思?您想以每分钟 10 次的速度加载所有 20 个表吗?如果是这样,这听起来不像是使用 Redshift 的可行方法。
-
是的。我将在每次迭代中创建 20 个新文件并将它们插入到 Redshift 表中。
-
在哪里可以找到高效的解决方案?
标签: amazon-s3 amazon-redshift amazon-redshift-spectrum