我想询问有关我可以用于我的项目的cassandra中哪种数据模型的信息。让我详细讲述一下。作为java中的面向对象模型,我有2个类,事件和位置。 Events
有几个属性,例如event_title, event_description, event_time, event_locations
等。 Locations
还有一些属性,例如address_name, longitude, latitude, city
等。Events
和Locations
之间存在关联。其实我对我的数据模型有所了解。但我不确定它是否可以实施。我以为我只能使用一个CF和复合rowkey(DoubleType:DoubleType)来获取经度,latidute和子列,用于有序分区键空间框架中事件的元数据。如果我有一个例子,如何用hector API做这些会更好。因此,我需要在cassandra中实现数据模型以处理以下要求。
答案 0 :(得分:0)
1)将所有内容保存在单独的列族中是行不通的。要获得更快的读取,您必须对数据进行非规范化并为每种类型的查询创建列族。
2)在你的情况下,它有点复杂,因为你想要返回接近给定“经度和纬度”的事件。为此你必须找到一些解决方法,(比如你可以将一些经度和纬度作为行键),但要确保你有经度和纬度作为键的一部分。
3)一旦你设法将经度和纬度作为行键的一部分,你的第二个查询要求就会自动得到满足。例如:如果你选择范围解决方案,只需要找到给出经度和纬度的键。在一个范围内,然后搜索超级列名匹配事件,你就完成了。