如何从定制REST API将数据加载到Redshift中

问题描述:

我是AWS的新手,如果以前提出过这个问题,请原谅我。如何从定制REST API将数据加载到Redshift中

我有一个REST API,它返回2个参数(名称,电子邮件)。我想将这些数据加载到Redshift中。

我想制作一个每2分钟启动一次Lambda函数并调用REST API。该API可能会在此2分钟内返回最多3-4条记录。

因此,在这种情况下可以只做一个插入操作,或者我仍然需要使用COPY(使用S3)?我只关心性能和无差错(健壮)的数据插入。

此外,Lambda函数将每2分钟异步启动一次,因此插入操作可能会重叠(但数据不会重叠)。

在这种情况下,如果我使用S3选项,我担心之前Lambda调用生成的S3文件将被覆盖并发生冲突。

长话短说,在红移中插入较少记录的最佳做法是什么?

PS:我也可以使用其他AWS组件。我甚至考虑过对我来说很完美的Firehose,但它无法将数据加载到Private Subnet Redshift中。

感谢所有提前

+0

看起来你没有太多的数据..那么为什么你需要Redshift这是昂贵的和理想的解决方案,当你有大量的数据 – Deepak

+0

还有其他表是巨大的,我们使用AWS DMS – Selva

是的,这将是罚款INSERT少量数据。

总是通过COPY命令加载的建议适用于大量数据,因为COPY加载在多个节点之间并行化。但是,只需几行,您就可以使用INSERT而不会感到内疚。

如果您的SORTKEY是一个时间戳,并且您按时间顺序加载数据,那么执行VACUUM的次数也会减少,因为数据已经排序。但是,如果行被删除,定期修改表格仍是一种好的做法。

由于您没有太多的数据,您可以使用复制或插入。复制命令是为批量插入更优化..它就像给批量插入u的能力..

既会工作得精细