database - Cassandra:具有多种数据类型的 map 集合

标签 database cassandra datastax cql3 cqlsh

正如 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/

相关文章:

mysql - 从子类别sql查询中获取项目

amazon-web-services - 具有大量数据的 ec2 上的最佳实践 cassandra 设置

scala - 如何在 phantom-dsl 中连续更新多个字段?

cassandra - 如何在 Cassandra 中的集群键内使用静态列

java - Datastax 对象映射 API 性能

java - 告诉 cassandra 集群是否过载的 API

apache-spark - 令人困惑的 Spark 警告 (DSE 4.8.4)

c# - 我需要为 Nest Search 创建类型吗?

php - 数据库设计 : User with access to specific pages

java - SQLiteDatabase getWritableDatabase() { 抛出新的 RuntimeException ("Stub!"); }