【问题标题】:Dynamic Column family in cassandra for feedscassandra 中用于提要的动态列族
【发布时间】:2014-07-12 00:49:52
【问题描述】:

在我的用例中,我必须将静态列 (CQL3 CF) 转换为动态列(以便我可以在运行时增加或减少列)。我在 DSE 4.5 工作。

在该列族中,我必须编写提要(数据插入将是实时的)。例如:CF 将根据用户 ID 和时间戳存储用户提要,用户 1 可以有 10 列,用户 2 可以有 20 列,(每个用户列都可能不同)。

目前在 CQL3 CF 中,

CREATE TABLE USER_FEED (
userid int,
timestamp int,
col1 string,
col2 int,
col3 string,
....
PRIMARY KEY (userid,timestamp)

我必须设计数据模型。我想我必须创建动态 CF。但我的问题是我可以组合行来制作行键吗?如果是,那么我如何使用组合的 rowkey 读取数据,我可以在 Dynamic CF 中存储像数据一样的提要吗?有没有可用的示例或用例?

【问题讨论】:

    标签: cassandra datastax-enterprise


    【解决方案1】:

    您当然可以选择不填充给定行的特定列或删除现有行的一列或多列,但在创建表时需要声明所有行的所有列。

    另一方面,您可以只将所有用户变量数据声明为 blob,但您不能在查询中引用特定列。

    或者...您可以定义一个“user_data”列,它是一个地图,然后您可以填充或删除该地图列的元素。但是这样查询就比较麻烦了,所有的用户数据都必须有相同的类型,比如字符串。

    或者...您可以采用 blob 路线并使用带有字段输入转换器的 DSE/Solr 来提取 blob 字段并填充 Solr 动态列,然后可以轻松地对其进行查询。

    实际上,映射列方法导致 DSE/Solr 为每个映射元素隐式创建 Solr 动态字段,因此使用带有字段输入转换器的映射或 blob 之间的区别可能更多的是偏好、样式和便利性问题。

    您希望如何查询数据?

    【讨论】:

    • Jack 你能指导我如何使用带有字段输入转换器的 DSE/Solr 来提取 blob 字段并填充 Solr 动态列,然后可以轻松查询?
    猜你喜欢
    • 2013-09-18
    • 2020-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多