正如 Ellis 先生在 dynamic-columns/wide-rows 中陈述和讨论的那样, 通过Map Collection 可以实现动态表。但是,我可以看到这仅适用于具有相同类型的数据。 链接示例:
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});
家庭和工作电话号码都是整数类型。但是我们需要一个具有各种数据类型的集合。说,
Create table storage ( mobile_id int PRIMARY KEY, date timestamp, data map );
然后数据包含这些:
{'state': String, 'protocol': Integer, 'weight': Double, 'frame': Blob ... }
所以我的问题是,我们有替代方案吗?这可以用 CQL 实现吗?
最佳答案
在这个时候,我认为这是不可能的。您最好使用嵌入了某种类型信息的字符串
即 {'home': 'int:1112223333', 'work': 'str:222-333-4444'}
或者使用 blob 并使用 blob 类型和特定于语言的序列化将特定于语言的映射保存到 Cassandra 中以保存变量映射。
关于database - Cassandra:具有多种数据类型的 map 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31799621/