我一直在尝试查看是否可以在 cassandra 列族中拥有超级或普通的嵌套列。我已经看遍了,还没有完全看到我在寻找什么。
我想做这样的事情。
`[{ firstname: "Me",
lastname: "Smith",
HomeAddress: { Street: "1234 Any Place Dr"
,State: "IL"
,zip: "62024"
}
}]`
从以下帖子为具有元数据的超级列创建 Cassandra 架构
我发现了类似的东西,但它没有按照我想要的方式工作。
create column family users
with comparator = UTF8Type
and compression_options = { sstable_compression:SnappyCompressor, chunk_length_kb:64}
and column_metadata = [
{ column_name: FirstName, validation_class : UTF8Type}
{ column_name: LastName, validation_class : UTF8Type},
{ column_name: FavStore, validation_class : IntegerType}
, { column_type: super, column_name: HomeAddress }
];
这是我的代码,显示了我如何创建列族。
它会创建它,但是如果我像上面的 JSON 示例那样输入地址,它似乎不起作用。
这是我从 cli 执行列表时的输出。
RowKey: 646f68616c6c
=> (column=FavStore, value=59580595188280, timestamp=1330696438)
=> (column=Favorites, value=HASH(0x3618bc0), timestamp=1330696438)
=> (column=FirstName, value=Me, timestamp=1330696438)
=> (column=HomeAddress, value=HASH(0x3618b30), timestamp=1330696438)
=> (column=LastName, value=Smith, timestamp=1330696438)
当我尝试从家庭地址中提取值时,我什么也得不到。它似乎是空的。我从一些 perl 代码中提取它,哈希告诉我它是空白的。
我想知道这是否可能,如果这不是将子列添加到列族的最佳方法。或者我只是在叫错树。
任何信息,将不胜感激。