java - 如何将 Kinesis Firehose 数据传递给 dynamodb 表?

标签 java amazon-web-services amazon-s3 aws-lambda amazon-dynamodb

Kinesis Firehose 流接收消息。
有一个选项可以持久化到 S3 中,但我的用例是插入到 dynamodb 表中。
Firehose 有一个选项可以启用 Lambda 功能。我应该使用 Lambda 将插入逻辑写入 dynamodb 表吗?这是正确的做法吗?
如果是这样,那么如何使用用 Java 编写的 Lambda 将记录插入 DynamoDB。

最佳答案

没有将 Firehose 流数据插入 DynamoDB(例如 S3 或 Redshift)的标准方法。推荐的方法是执行 Lambda 并将记录插入到 DynamoDB 中。

使用 dynamoDB.batchWriteItemdynamoDB.putItem,更多信息在此 articlethis one .

public String handleRequest(KinesisFirehoseEvent event, Context context)
    List<KinesisFirehoseEvent.Record> records = event.getRecords();
    for(KinesisFirehoseEvent.Record rec : records)
    {
        String recordId = rec.getRecordId();
        String data = StandardCharsets.UTF_8.decode(rec.getData()).toString();

        Item item = transformStringToItem(data);
        // Write the item to the table 
        table.putItem(item);
    }
    return "success";
}

firehoseStream 结构已记录 here , Java 示例是 here ,以及更多关于 firehose 到 lambda 的信息 here .

关于java - 如何将 Kinesis Firehose 数据传递给 dynamodb 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58351730/

相关文章:

Java-webservice : Glassfish3. 0 错误 "org.codehaus.jackson.jaxrs.JacksonJsonProvider"

amazon-web-services - 向 AWS 安全组添加 TCP 自定义规则后,端口 8080 仍然关闭

amazon-web-services - 使用 nginx 向位于云中的 docker 容器发出 http 请求

amazon-web-services - AWS ElastiCache 集群和 AWS ElastiCache 复制组有什么区别?

ruby-on-rails - Paperclip S3 下载远程图片

node.js - 如何以 json 形式返回 listObjectsV2

javascript - 使用 Node.js 迁移到 s3 存储

java - 如何在 JBoss AS 7.1.1 Final 中使用 JSF 2.1.14 Mojarra、Servlet 3.0 和 EL 2.2?

java - JPA 查询返回代理实体

java - 获取父单元格引用/传递属性