【问题标题】:How to map nested java objects in cassandra?如何在 cassandra 中映射嵌套的 java 对象?
【发布时间】:2013-11-19 10:42:19
【问题描述】:

我正在探索用于写入密集型设备事件记录服务的 NoSQL 选项。

我发现 HBase 和 Cassandra 非常适合它,因此决定先探索 Cassandra。

由于我来自 ORM 世界,我面临着将嵌套的 Java 实体映射到 Cassandra 的困难时期。

有人可以指导我如何使用任何基于 Java 的 Cassandra 工具将以下实体映射到其他实体。DeviceInfo 和 DeviceEvent 将有自己的主键和其他相关字段

@Entity 
public class LogRequest {

@Id
private String id;

private DeviceInfo deviceInfo;

private Collection<DeviceEvent> deviceEvent;

// getters and setters

}

感谢您的时间和指导。

【问题讨论】:

  • 这看起来像是一对多的实现?您是否需要查询 deviceEvents 以获得一组不同的 deviceInfo 对象? Cassandra 不太适合(也不支持)连接。你可能会做一些由标识 deviceInfo 的东西分区的 deviceEvent 信息,但我们需要更多关于这些东西是什么的信息。
  • 是的,是一对多的关系,按照你的说法,我应该考虑重组LogRequest对象,并像Map>一样定义它。因此,任何可以以地图样式 cassandra 构造的东西都可能更可取。我之前考虑过 MongoDB,但由于我的用例是写密集型的,因此我开始寻找其他 NoSQL 选项。
  • 在我需要以文档样式存储信息并在应用程序中提供高吞吐量的情况下,还有哪些其他替代方法可以满足此类要求?
  • hector-object-mapper 是我解决这个问题的唯一方法,但是当我尝试使用它时,关联仍然没有存储在数据库中

标签: java nosql cassandra


【解决方案1】:

看看这个。叶级对象的原始值映射到 Cassandra 动态复合列。可以在多个级别处理 1 对 1 和 1 对多个子对象。主键是使用根对象的属性定义的。

https://pkghosh.wordpress.com/2013/07/14/storing-nested-objects-in-cassandra-composite_columns/

【讨论】:

    猜你喜欢
    • 2016-12-12
    • 1970-01-01
    • 2016-07-30
    • 1970-01-01
    • 2020-09-27
    • 2013-08-01
    • 2015-10-25
    • 2021-09-30
    • 2017-09-11
    相关资源
    最近更新 更多