在cassandra map中是否可以输入不同的数据类型,就像我有一个像
这样的表(id int, value map<text,text>)
现在我想在此表中插入值,如
(1,{'test':'test1'})
(2,{'a':1})
(3,{'c':2})
答案 0 :(得分:5)
Cassandra Map
类型不支持不同类型的值(或键)。但是,您可以创建一个User Defined Type来处理它。
aploetz@cqlsh:stackoverflow2> CREATE TYPE testac (test text, a int, c int);
aploetz@cqlsh:stackoverflow2> CREATE TABLE testactable (
key int,
values frozen<testac>,
PRIMARY KEY (key));
aploetz@cqlsh:stackoverflow2> INSERT INTO testactable (key,values)
VALUES (1,{test: 'test1', a: 1, c: 2});
aploetz@cqlsh:stackoverflow2> SELECT * FROm testactable ;
key | values
-----+-----------------------------
1 | {test: 'test1', a: 1, c: 2}
(1 rows)
答案 1 :(得分:0)
而不是在你的情况下将它作为text(String)列,它将为你节省大量空间。通过字符串化将数据保存为JSON格式。
答案 2 :(得分:0)
没有Cassandra不支持这个功能.cassandra Map就像java map,我们知道java也不支持这个。我们已经根据数据类型传递了map中的所有值。