如何在 Cassandra 中存储自定义对象?
Posted
技术标签:
【中文标题】如何在 Cassandra 中存储自定义对象?【英文标题】:How to store a custom object in Cassandra? 【发布时间】:2019-05-21 06:29:05 【问题描述】:我有以下需要存储在 Cassandra 中的对象。我需要使用 UDT 还是有其他方法来存储对象。我最终需要使用存储库方法从 spring-boot 应用程序中存储它。
"name": "Krishna",
"age" : 24,
"address" : [
"attributes" : [
"name": "",
"value" : ""
],
"contactnumbers" : [ "123123234", "123456"]
],
"devices" : [
"android_pixel",
"ios_6s"
]
【问题讨论】:
【参考方案1】:我认为,您需要在这里使用 UDT。我可以想出这个。
CREATE TYPE attribute_info (
name text,
value text
);
CREATE TYPE address_info (
attributes list<frozen<attribute_info>>,
contactnumbers list<text>
);
CREATE TYPE user_info (
name text,
age int,
address list<frozen<address_info>>,
devices list<text>
);
在key space
下获得user_info
后,在创建或更改表时将其用作列的类型。
【讨论】:
是的。这是我发现的一种方法,我正在实施它。有什么方法可以像我们在 MongoDB 中插入文档一样将文档(JSON)插入 Cassandra,因为 cassandra 也是一个 NoSQL 数据库? 将 JSON 作为文本存储在 Cassandra 列中是另一种方式,但我不建议这样做。即使我们将其存储为文本,我们也需要对其进行压缩。你可以多罚款here。 Cassandra 更类似于基于键值的 NoSQL 数据库。第三种选择是使用JSON to write to Cassandra tables,但这取决于您的应用程序希望如何访问这些数据。参考 link 了解 Cassandra 架构。以上是关于如何在 Cassandra 中存储自定义对象?的主要内容,如果未能解决你的问题,请参考以下文章