在 Cassandra 列中存储 JSON 字符串的有效方法?

2024-01-26

卡桑德拉新手问题。我正在使用 REST 调用从社交网站收集一些数据。所以我最终得到了 JSON 格式的数据。

JSON 只是我表中的列之一。我试图找出存储 JSON 字符串的“最佳实践”。

首先我想到使用map类型,但 JSON 包含字符串、数字类型等的混合。我似乎无法为映射键/值声明通配符类型。 JSON 字符串可能非常大,大小可能超过 10KB。我可以将它存储为字符串,但看起来效率很低。我认为这是一项常见任务,因此我确信有一些关于如何执行此操作的一般准则。

我知道 Cassandra 对 JSON 具有本机支持,但据我了解,这主要在整个 JSON 映射与数据库模式 1-1 匹配时使用。我的情况并非如此。该架构有一堆列,JSON 字符串只是一种“有效负载”。将 JSON 字符串存储为blob or as text?顺便说一句,Cassandra 版本是 2.1.5。

任何提示表示赞赏。提前致谢。


在 Cassandra 存储引擎中,blob 和文本之间实际上没有太大区别,因为 Cassandra 本质上将文本存储为 blob。是的,您所说的“本机”JSON 支持仅适用于您的数据模型与 JSON 模型匹配的情况,并且仅在 Cassandra 2.2+ 中提供。

我会将其存储为文本类型,并且您不必在发送数据(或处理解压缩)时实现任何压缩 JSON 数据的操作。由于 Cassandra 的二进制协议支持执行以下操作传输压缩 http://www.datastax.com/dev/blog/binary-protocol。还要确保您的表存储了数据压缩 http://docs.datastax.com/en/cassandra/2.1/cassandra/operations/ops_config_compress_t.html使用相同的压缩算法(我建议使用 LZ4,因为它是实现最快的算法),以节省对每个读取请求进行压缩的时间。因此,如果您配置存储压缩数据并使用传输压缩,您甚至不必自己实现。

您没有说明您正在使用哪个客户端驱动程序,但这里是有关如何设置传输压缩的文档Datastax Java 客户端驱动程序 https://datastax.github.io/java-driver/2.1.7/features/compression/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Cassandra 列中存储 JSON 字符串的有效方法? 的相关文章

随机推荐

  • 如何以编程方式绑定 NSCollectionView 的视图子类?

    我已经成功创建了一个 NSCollectionView 并向 IB 中的视图原型添加了一个标签 绑定到我所表示的对象的属性 我现在想以编程方式创建一个 NSButton 和 NSTextField 并将 NSTextField 绑定到我所表
  • 如何忽略 functools 中的参数。 lru_缓存?

    这是我想要通过缓存增强的功能的框架 因为进行 RPC 远程过程调用 涉及到其他主机的 TCP 连接 def rpc rpc server rpc func arg return rpc server do rpc rpc func arg
  • iOS 8.3 - 元视口初始比例低于 1.0 会导致方向变化时出现奇怪的内容缩放

    将我的 iOS 设备升级到 iOS 8 3 后 我注意到元视口初始缩放属性出现了一些奇怪的行为 如果我将初始比例设置为 1 0 以下 并在浏览网页时旋转设备 则整个内容将逐渐变小 最终浏览器将崩溃 我注意到 每次方向变化时内容变小的程度与您
  • Firebase 实时数据库:如何在键值对上正确建立索引

    Question 我有这个 Firebase 实时数据库 groupUsers group1key user1key admin group2key user1key admin user2key readonly user3key rea
  • #1005 - 无法创建表“table_name”(错误号:150)

    这是我的表格 DROP TABLE IF EXISTS tbl comments CREATE TABLE IF NOT EXISTS tbl comments id int 11 NOT NULL auto increment topic
  • 在 python 端动态调整 kivy 标签(和按钮)的大小

    如何在运行时根据文本量动态调整标签或按钮的大小 特别是文本大小和高度 我知道这个问题已经通过以下方式得到了回答 动态调整滚动视图中标签的大小 https stackoverflow com questions 19932614 dynami
  • 如何在Excel VBA中添加到当前单元格选择

    因此 我有一个循环检查列中的每个单元格并找到特定日期 当前是前一周的星期一 我的代码现在确实正确选择了它们 但我希望它保留之前的选择 以便最终选择该规范的所有单元格 Public Function LastMonday pdat As Da
  • 在 setup.py 中添加自定义轮文件作为依赖项?

    我正在开发一个项目 其中一个依赖项实际上是 whl这不在 pypi 上 即我必须直接从作者那里下载轮子并且pip直接安装 在我的setup py文件 有没有办法做类似的事情 install requires library whl matp
  • 如果检测到越界,则禁用平移手势

    我有一个 UIView 我试图在屏幕上上下移动 但是我只想让它平移 这样当视图处于正常位置 0 0 时 您就无法向下拖动视图 我尝试检测识别器的中心何时不是视图高度的一半 但是视图是不可移动的 并且中心始终是高度的一半 在本例中为 230
  • SQL 代理命令行未保存

    我有一个 SSIS 包 我正在尝试安排时间 我在 SQL Server 代理下创建了一个新作业 在作业步骤的 命令行 选项卡上 我选择 手动编辑命令行 当我在作业步骤中从一个选项卡切换到另一个选项卡时 更改会被保留 但每当我退出并保存作业时
  • 在 Ruby 中编写一个在不同行获取参数的方法

    在使用 Rails 时 我发现可以调用这样的方法 lot Lot new do u u grade id grade id u company id company id u type id type id u sale id sale i
  • 如何从 AsyncTask 返回布尔值?

    我有一些 EditText 用户输入 ftp 地址 用户名 密码 端口和 testConnection 按钮 如果连接成功建立 它将返回布尔值 true boolean status ftpConnect address username
  • 在eclipse中创建android项目时出错

    我是 Android 开发人员的新手 我正在学习 但是当我创建一个新项目时 显示了这个错误 在错误日志中我有很多错误 我不知道如何在这里导出所有错误 在项目资源管理器中 我的项目显示如下 我不知道如何解决所有这些错误 感谢您的帮助 并对我的
  • rspec测试协会

    我想在我的 rspec 控制器测试中测试员工是否与公司关联 我想在我的create工作人员财务主任的行动 staff companies lt lt current company Where current company从会话变量中收集
  • Flutter - 仅当内容高度大于屏幕高度时才启用滚动

    默认情况下 我在主体小部件中采用 ListView 或 SingleChildScrollView 因此 如果内容较少 则会滚动内容 我只想在内容大于屏幕高度时启用滚动 如果内容高度小于屏幕高度 需要禁用滚动 double physical
  • 镜头和类型系列

    我遇到了使用问题Control Lens和 一起使用时的数据类型 XTypeFamiliesGHC 杂注 LANGUAGE TemplateHaskell LANGUAGE TypeFamilies import Control Lens
  • 当 Android 中的软键盘出现在视图前面时,布局应该向上

    我有一个问题 我有一个登录屏幕 当我们单击编辑文本时 软输入键盘会覆盖两个小部件 一个是 TextView 另一个是登录按钮 它们位于相对布局中 但我希望当我们选择任何编辑文本时整个相对布局应该向上 并且所有小部件都在 Android 默认
  • 向 TextView 添加底线边框 - iOS

    添加底线边框的最佳方法是什么TextView具有动态高度 我试过这个 func addBottomBorderWithColor color UIColor width CGFloat let border CALayer border b
  • 如何获取 $date + 5 来排除周末?

    我有一些页面需要设置将来的日期 由变量设置的 2 天或 5 天 该日期只需计算周一至周五 不包括周末 到目前为止我所拥有的 tts 是 2 或 5 的变量 具体取决于页面 Today date N m y NewDate date l t
  • 在 Cassandra 列中存储 JSON 字符串的有效方法?

    卡桑德拉新手问题 我正在使用 REST 调用从社交网站收集一些数据 所以我最终得到了 JSON 格式的数据 JSON 只是我表中的列之一 我试图找出存储 JSON 字符串的 最佳实践 首先我想到使用map类型 但 JSON 包含字符串 数字