Amazon web services 如何从自定义REST API将数据加载到红移中

Amazon web services 如何从自定义REST API将数据加载到红移中,amazon-web-services,amazon-s3,amazon-redshift,amazon-kinesis-firehose,Amazon Web Services,Amazon S3,Amazon Redshift,Amazon Kinesis Firehose,我是AWS的新手,如果之前有人问我这个问题,请原谅 我有一个RESTAPI,它返回2个参数(名称、电子邮件)。我想将此数据加载到红移 我想制作一个Lambda函数,它每2分钟启动一次并调用restapi。API可能在这2分钟内最多返回3-4条记录 所以,在这种情况下,可以只做一个insert操作,还是仍然使用COPY(使用S3)?我只担心性能和无错误(健壮)的数据插入 此外,Lambda函数将每2分钟异步启动一次,因此插入操作可能会有重叠(但数据中不会有重叠) 在这种情况下,如果使用S3选项,我

我是AWS的新手,如果之前有人问我这个问题,请原谅

我有一个RESTAPI,它返回2个参数(名称、电子邮件)。我想将此数据加载到红移

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

所以,在这种情况下,可以只做一个insert操作,还是仍然使用COPY(使用S3)?我只担心性能和无错误(健壮)的数据插入

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

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

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

PS:我也可以使用其他AWS组件。我甚至查看了消防水带,它非常适合我,但它不能将数据加载到私有子网红移中


提前感谢大家

因为您没有太多数据;您可以使用“复制”或“插入”。复制命令对于大容量插入更为优化。。这就像给你批量插入的能力


这两种方法都同样有效

是的,插入少量数据就可以了

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


如果您的
SORTKEY
是一个时间戳,并且您正在按时间顺序加载数据,那么也不需要执行
VACUUM
,因为数据已经排序。但是,如果删除了行,最好还是定期清理表。

AWS现在支持数据API功能

如官方文档中所述,您可以使用HTTP请求轻松访问红移数据,而不再需要JDBC连接。

数据API不需要到集群的持久连接。相反,它提供了一个安全的HTTP端点并与AWS SDK集成。您可以使用端点运行SQL语句,而无需管理连接。对数据API的调用是异步的

以下是使用红移数据API所需的步骤

  • 确定您作为数据API的调用者是否被授权。有关授权的更多信息,请参阅授权访问Amazon红移数据API

  • 确定是否计划使用来自Secrets Manager的身份验证凭据或临时凭据调用数据API。有关更多信息,请参阅在调用Amazon红移数据API时选择身份验证凭据

  • 如果使用机密管理器进行身份验证凭据,请设置机密。有关更多信息,请参阅在AWS Secrets Manager中存储数据库凭据

  • 查看调用数据API时的注意事项和限制。有关更多信息,请参阅调用Amazon红移数据API时的注意事项

  • 从AWS命令行界面(AWS CLI)、您自己的代码或使用Amazon Redshift控制台中的查询编辑器调用数据API。有关从AWS CLI调用的示例,请参阅使用AWS CLI调用数据API


  • 看起来你没有太多的数据。。那为什么你需要红移呢?这是一个昂贵而理想的解决方案,当你有大量的数据时,还有其他的表是巨大的,我们使用AWS DMS来解决这些问题