正如Ellis先生在dynamic-columns/wide-rows中所述和讨论的那样,动态表可以通过地图集合实现。但是,我可以看到这仅适用于具有相同类型的数据。 链接示例:
CREATE TABLE users (
user_id text PRIMARY KEY,
name text,
birth_year int,
phone_numbers map
);
INSERT INTO users (user_id, name, birth_year, phone_numbers)
VALUES ('jbellis', 'Jonathan Ellis', 1976, {'home': 1112223333, 'work': 2223334444});
主页和工作 phone_numbers都是整数类型。但是我们需要一个具有各种数据类型的集合。说,
创建表存储(mobile_id int PRIMARY KEY,日期时间戳,数据映射);
然后数据包含以下内容:
{'state':String,'protocol':整数,'weight':Double,'frame':Blob ......}
所以我的问题是,我们有替代方案吗?这可能与CQL有关吗?
答案 0 :(得分:1)
此时,我相信这是不可能的。你最好使用一个嵌入了某种类型信息的String
ie {'home':'int:1112223333','work':'str:222-333-4444'}
或者使用blob并使用blob类型和特定于语言的序列化将特定于语言的地图保存到Cassandra中以保存变量映射。
答案 1 :(得分:0)
键入地图。你仍然可以为每种类型创建一个地图字段吗? map_int,map_text,map_etc
这有一个额外的好处,它会更快一些,因为集合在读取时作为一个整体加载,因此按类型拆分将为每个查询加载更少的数据。你应该能够预先找出你正在寻找的类型。