读取 Amazon Kinesis Firehose 流写入 s3 的数据

2024-01-12

我正在将记录写入 Kinesis Firehose 流,该流最终由 Amazon Kinesis Firehose 写入 S3 文件。

我的记录对象看起来像

ItemPurchase {
    String personId,
    String itemId
}

写入 S3 的数据如下所示:

{"personId":"p-111","itemId":"i-111"}{"personId":"p-222","itemId":"i-222"}{"personId":"p-333","itemId":"i-333"}

没有逗号分隔。

Json 数组中没有起始括号

[

Json 数组中没有结束括号

]

我想读取此数据并获取 ItemPurchase 对象的列表。

List<ItemPurchase> purchases = getPurchasesFromS3(IOUtils.toString(s3ObjectContent))

读取这些数据的正确方法是什么?


令我难以置信的是,Amazon Firehose 以这种方式将 JSON 消息转储到 S3,并且不允许您设置分隔符或任何内容。

最终,我发现解决该问题的技巧是使用 JSON raw_decode 方法处理文本文件

这将允许您读取一堆串联的 JSON 记录,它们之间没有任何分隔符。

Python代码:

import json

decoder = json.JSONDecoder()

with open('giant_kinesis_s3_text_file_with_concatenated_json_blobs.txt', 'r') as content_file:

    content = content_file.read()

    content_length = len(content)
    decode_index = 0

    while decode_index < content_length:
        try:
            obj, decode_index = decoder.raw_decode(content, decode_index)
            print("File index:", decode_index)
            print(obj)
        except JSONDecodeError as e:
            print("JSONDecodeError:", e)
            # Scan forward and keep trying to decode
            decode_index += 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

读取 Amazon Kinesis Firehose 流写入 s3 的数据 的相关文章

  • 有人知道如何将 GMap Static JSON 转换为 HTML url?

    我已经从以下位置下载了示例样式的地图snazzymaps com http snazzymaps com 我尝试转换为类似的网址但我做得不好 我正在尝试改变下一个例子 Google 地图样式静态示例 http snazzymaps com
  • 将 zip 从 Blazor WASM 应用程序上传到 AWS-S3 - 遵循教程,没有观察到错误,但存储桶中也没有文件

    我有一个 Blazor WASM 应用程序 即客户端 用户可以向其中上传一些数据 对数据进行一些完整性和安全性检查后 我想将这些数据上传到 AWS S3 中的 zip 文件中 目前我已经构建了 zip 文件 如下所示 using var o
  • 将 BufferedImage 对象作为文件保存到 Amazon S3

    我目前使用以下方法将文件上传到 S3 File file new File my file path AmazonS3 s3 new AmazonS3Client new PropertiesCredentials cred s3 putO
  • PostgreSQL:比较 json [重复]

    这个问题在这里已经有答案了 众所周知 目前 PostgreSQL 还没有方法来比较两个 json 值 比较就像json json不起作用 但是选角呢json to text before Then select x a y b json t
  • 在android中从JSON生成listview

    我对 Android 完全陌生 目前正在尝试从从我的服务器中提取的 JSON 数组生成列表视图 我已经阅读了很多教程 但没有运气 有一种独特的方法可以做到这一点 请您指出一些适合开始的资源 我读过了this http www josecgo
  • 如何使用 Retrofit 解析嵌套 json....?

    我不知道该怎么办使用 Retrofit 解析 json 熟悉使用 Retrofit 解析简单的 json 但不熟悉解析嵌套Json using Retrofit 这是我的 Json 数据 current observation image
  • json 解析器和编码器应如何处理转义的 unicode?

    json 规范允许在 json 字符串 格式为 uXXXX 中转义 unicode 它特别提到受限代码点 非字符 作为有效的转义代码点 这是否意味着解析器应该从包含非字符和受限代码点的字符串生成非法的 unicode 一个例子 key uF
  • DbGeography 多边形到 JSON

    我将 DbGeography 多边形存储在数据库中 我的控制器从数据库获取多边形 我需要将它们转换为 JSON var polygons db Areas Where x gt x Type type Select x gt new Vie
  • 使用 Express.js 和 NodeJS,您可以通过响应正文中的重定向发送 JSON

    我正在尝试通过 302 重定向发送 JSON 在 ExpressJS 中这可能吗 API 声明可以添加主体res json 例如 res json 302 name larry 在接收端 重定向的目的地 主体是空的 这是一些示例代码 发送应
  • IE9 JSON 数据“您要打开还是保存此文件”

    开始使用 IE9 测试我的 jQuery 应用程序 看来我在这里可能遇到麻烦了 我注意到 当我将 JSON 数据返回到 Javascript 方法时 我总是收到此提示 您想打开或保存此文件吗 并为我提供了 3 个按钮 打开 保存和取消 当然
  • AWS S3 上传的图像已损坏

    我正在 AWS ec2 ubuntu 机器上工作 我的代码在 cakephp 中 当我尝试将任何图像上传到 AWS S3 时 它都会损坏 虽然它在核心 php 代码中运行良好 这是我的控制器代码 if this gt User gt sav
  • 如何将异常序列化为Json

    C 异常是 ISerialisable 因此它们不能也是 DataContract 因此我无法使用 JsonDataContractSerializer 将异常序列化为 JSON 的替代方案是什么 由于这个问题还没有真正得到解答 只需创建一
  • Azure 应用服务在配置中添加字符串数组

    Net core 应用程序并在 Azure 应用服务中部署该应用程序 在我的应用程序中 我有一个包含以下内容的应用程序 settings json 文件 Roles Roles Admins Users 我的 ARM 模板中有以下配置 参数
  • JSON-LD 缺少“}”或对象成员名称。错误

    我喜欢将 json ld 添加到我的网站 然后我想将它添加到我的开发网站来测试它 我收到错误消息 指出缺少 或对象成员名称 这是什么错误 我已正确关闭括号 如何修复它
  • kafka 连接 s3 源无法与 Minio 一起使用

    我已经验证了与 minio 的连接 确保凭据工作正常并且可以访问 minio 另外 如果我尝试任何其他值store url http minio 9000我无法保存配置 所以我猜想在可见性方面不存在问题卡夫卡连接容器和minio容器 我不确
  • Postgres JSONB:数组数组的 where 子句

    postgres 中有 v 9 5 如果有的话 create table json test id varchar NOT NULL data jsonb NOT NULL PRIMARY KEY id 其中 data 是 json 并且包
  • 根据 .NET Core 2.1 中的更改重新加载 Serilog JSON 配置

    我目前正在开发 ASP NET Core 2 1 应用程序 并使用 Serilog 进行日志记录 我想在运行时为我的 Serilog 实现重新加载应用程序设置文件 我的目标是在运行时更改日志级别 例如我写入minimumLevelDebug
  • 使用 NewtonSoft 在一行中生成 JSON 对象

    我正在使用 JSON 库牛顿软件 http nuget org packages newtonsoft json生成 JSON 字符串 JObject out JObject FromObject new typ photos return
  • 包含 contains 的 json 格式查询

    我在 ansible 中有以下 json 输出 active transaction null cores 4 hostname alpha auth wb01 active transaction null cores 4 hostnam
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken

随机推荐