【问题标题】:AWS Kinesis Stream In Detail ReviewAWS Kinesis Stream 详细审查
【发布时间】:2018-06-25 00:04:19
【问题描述】:

我是 AWS 新手。我已经使用 java 在 aws 中实现了一些功能。我的要求是每次插入一个 50MB 的 csv 到 RDS PostgreSQL 实例。

我尝试使用 aws lmabda 服务。但是 5 分钟后 lambda 会停止,所以我就这样放弃了。(lambda 函数的限制)

我遵循的第二步我编写了一个 s3 事件的 java lambda 代码,它将使用 putrecord 命令将 s3 上的 csv 文件读取到 kinesis 流。据我了解,kinesis 能够逐条读取 csv 文件。此 kinesis 流将调用第二个 lambda 函数,该函数将数据保存到 postgreSQL。

一切都很好。但我的困惑是只插入了 32000 条记录。我的 csv 中有 50000 条记录。根据 kinesis 流,它会将每一行作为记录读取,所以每次它都会分别调用 lambda 对吗?那么为什么它没有完全保存呢?

我的运动流中的另一个问题配置如下。

同样在我的 lambda 中,我将 kinesis 配置为

这是满足我要求的正确配置吗?如果我将 batchsize 设为 1,我的函数会插入完整的记录吗?请让我知道你对此的了解。这将是一个很大的帮助,提前谢谢!!!!

【问题讨论】:

    标签: postgresql amazon-web-services amazon-s3 lambda amazon-kinesis


    【解决方案1】:

    您超出了单个分片的限制。

    查看以下文档: Amazon Kinesis Data Streams Limits

    确保您的代码在每次 AWS 调用中检查错误。

    【讨论】:

    • 感谢@John Hanley 的好评。我之前也检查了链接。你的意思是我需要将我的开放分片资源从 1 增加到最大数量?抱歉,如果问题无关紧要...
    • 是的,你需要增加分片的数量。从 5 或 10 开始,然后重新测试。调整号码。关键是您要注入 Kinesis 的记录数和每秒 MB。
    猜你喜欢
    • 2019-04-19
    • 1970-01-01
    • 1970-01-01
    • 2018-11-20
    • 2016-10-31
    • 2015-11-08
    • 1970-01-01
    • 2021-02-15
    • 2018-02-20
    相关资源
    最近更新 更多