【问题标题】:Using KCL 2.x to get DynamoDBEvents from KinesisStream使用 KCL 2.x 从 KinesisStream 获取 DynamoDBEvents
【发布时间】:2021-08-03 16:38:05
【问题描述】:

从我使用 KCL 客户端获得的 KinesisClientRecord(记录)中,我可以通过执行以下操作从流中获取表示 ddb 更新事件的 JSON 对象:

String recordData = StandardCharsets.UTF_8.decode(record.data()).toString();
JSONObject kinesisRecordObject = new JSONObject(recordData);

现在我想访问从 dynamoDB 获得的字段,但我无法将其反序列化为 DynamoDB JSON,而不是本文中解释的标准 JSON Converting DynamoDB JSON to Standard JSON with Java。 那里给出的解决方案适用于 DynamoDBStreamRecord,但不适用于 KinesisClientRecord(我正在使用)你能告诉我如何实现这一步吗? 对于 KCL 1.x,我发现可以使用 KCL Adapter,但我使用的是 KCL 2.x!

如何反序列化它以获取 DDB 更新中的字段?

【问题讨论】:

    标签: java amazon-web-services amazon-dynamodb amazon-kinesis amazon-kcl


    【解决方案1】:

    使用 KCL 2 时,您会从 Kinesis 获得 CommittableRecord 对象。从中您需要提取 UTF 8 编码的 records().data()(默认情况下)。解码后得到的 JSON 字符串就可以转换成想要的 POJO

    类似的东西

    String recordData =
            new StringBuffer(StandardCharsets.UTF_8.decode(committableRecordObject.record().data()))
            .toString();
    

    【讨论】:

      猜你喜欢
      • 2020-11-03
      • 1970-01-01
      • 2021-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-08
      • 2017-06-24
      相关资源
      最近更新 更多