我是 AWS 新手,如果之前有人问过这个问题,请原谅我。
我有一个 REST API,它返回 2 个参数(姓名、电子邮件)。我想将此数据加载到 Redshift 中。
我想制作一个 Lambda 函数,每 2 分钟启动一次并调用 REST API。 API 可能会在这 2 分钟内返回最多 3-4 条记录。
那么,在这种情况下,是否可以只执行插入操作,或者我仍然必须使用 COPY(使用 S3)?我只担心性能和无错误(稳健)的数据插入。
此外,Lambda 函数将每 2 分钟异步启动一次,因此插入操作可能会重叠(但数据不会重叠)。
在这种情况下,如果我选择 S3 选项,我担心先前 Lambda 调用生成的 S3 文件将被覆盖并发生冲突。
长话短说,向 redshift 插入更少记录的最佳实践是什么?
PS:我也可以使用其他 AWS 组件。我什至研究了 Firehose,它非常适合我,但它无法将数据加载到私有(private)子网 Redshift 中。
提前感谢大家
最佳答案
是的,插入
少量数据就可以了。
对于大量数据,建议始终通过 COPY 命令加载,因为 COPY 加载是跨多个节点并行进行的。但是,对于几行,您可以使用 INSERT
而不必感到内疚。
如果您的 SORTKEY
是时间戳,并且您按时间顺序加载数据,则也不需要执行 VACUUM
,因为数据已经排序。但是,如果行被删除,最好定期对表进行 VACUUM
。
关于amazon-web-services - 如何从自定义 REST API 将数据加载到 Redshift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45397823/