【发布时间】:2019-03-22 17:12:25
【问题描述】:
我是 AWS 的新手,我正在尝试找到一种方法来可靠地将数据从 Kinesis 流传输到 AWS RDS postgres 数据库表。记录将需要在进入的过程中进行小的转换,例如过滤器(并非所有记录都将被插入,取决于键),并被解析以插入到 postgres 中。目前,来自 Kinesis 流的数据正在通过 firehose 以 parquet 形式转储到 S3 存储桶中。
我对这样做的许多可能方式有点迷茫,比如:
- Kinesis 流 -> Firehose -> Lambda -> RDS
- Kinesis 流 -> Firehose -> S3 -> 数据管道 ETL 作业 -> RDS
- S3 的数据库迁移 -> RDS?
- AWS 胶水?
- 其他...?
在非无服务器世界中,我会每隔一小时运行一个 chron 作业,这将获取最近的 S3 存储桶分区(即年/月/日/小时)中的文件,所以最近的一小时,并过滤掉 RDS 中不需要的记录,并将其余记录批量插入 RDS。我不想让 EC2 实例在 95% 的时间都处于空闲状态来执行此操作。有什么建议吗?
【问题讨论】:
-
嗨,好点,但在问之前,我有一些问题。要过滤和插入的数据量是多少?您想使用哪种方法将数据插入 RDS?一个 INSERT INTO 序列,一个批量加载?您想要的数据新鲜度是多少?
-
目前不多,一次几mb。 INSERT INTO 序列或批量加载都可以。它不需要低延迟,可能需要几分钟。不过,我会对低延迟或高延迟方式感兴趣,我只是想了解这可能出现的不同方式。
标签: postgresql amazon-web-services amazon-s3 amazon-kinesis amazon-kinesis-firehose