【问题标题】:Group three columns value into one colum in Cassandra?在Cassandra中将三列值分组为一列?
【发布时间】:2013-09-22 06:25:25
【问题描述】:

以下是我需要在 Cassandra 列族中表示的数据。

rowKey           e1_name                    e1_schemaname                   e1_last_modified_date
123             (ByteArray value)           abc (some string)               some_date

userId 是这里的rowKey。而e1_namee1_schemanamee1_last_modified_date 是专门针对e1 的列。所有这三列都包含专门针对 e1 列的值。以同样的方式,我将有其他列,如下所示。

 e2_name                    e2_schemaname                   e2_last_modified_date
(ByteArray value)           abc (some string)               some_date

 e3_name                    e3_schemaname                   e3_last_modified_date
(ByteArray value)           abc (some string)               some_date

现在我在想 - 有没有办法将这三件事 e1_namee1_schemanamee1_last_modified_date 组合成一个单独的列 e1 并将三者的复合值存储在一起,而不是分开存放。

如果是,任何人都可以帮助我为此设计列族吗?我将使用 Astyanax 客户端插入到上面的列族中。

【问题讨论】:

    标签: java cassandra astyanax column-family


    【解决方案1】:

    如果我理解正确,您可以按以下方式设计架构:

    列:

    user_id、record_type、name、schemaname、last_modified_date

    user_id 是你的行键(分区键)

    record_type 左右 (e1, e2) 可能是集群键,以防 e1、e2 在单个用户中是唯一的。否则,您的集群键可能是复合的,包括用于制作唯一键的字段集

    在第一种情况下 PRIMARY_KEY(user_id, record_type)

              e1                          e2
    123 : {name, schemaname, date }  | {name, schemaname, date }
    

    第二个例子可以是 PRIMARY_KEY(user_id, record_type, name)

              e1|name                    e2|name
    123 : {schemaname, date }  | {schemaname, date }
    

    听起来不错?

    最后我想说的是,有一个非常好的官方 Datastax 驱动程序用于 cassandra 本地传输:

    https://github.com/datastax/java-driver

    【讨论】:

    • 在我的示例中,我想存储列 e1 和列内 e1 我想存储它的值。该值可以分为三部分。实际列e1 值、字符串模式名和上次修改日期。但在您的示例中,我相信名称是 e1 列的值...对吗?
    • 是的,我认为它是您示例中的 ByteArray 值。
    • 好的..所以问题是 - 每次,我都会为 e1 列获得一个新值,它会为此创建一个新列......不知何故,我需要跟踪删除与e1.. 相关的旧列。
    • 你可以将时间戳作为主键的一部分。 PRIMARY_KEY(user_id, record_type, timeuuid)。您可以对 timeuuid 列应用 DESC 列排序,因此查询实际 e1 值(最新)将更有效
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多