【问题标题】:Set command for updating cassandra database设置更新 cassandra 数据库的命令
【发布时间】:2014-02-11 05:15:12
【问题描述】:

我有一个 cassandra 数据库,其键空间名称为 CS_DATA,列族名称为 ScheduledData,其超级列的 cdata 和行键为“Div/12345/Plan 3”。该超列有 2 列,其中 c1 和 c2 具有一些值。每列即 c1 和 c2 都有值字段。 c1 具有空白值,而 c2 具有包含许多字段的值。

类似的东西

value=<nodeId=123#time=12:34#location=bangalore>

如何使用 cassandra 数据库中的 set 命令更改这 3 个字段的值?

我在 cassandra 的客户端尝试了以下操作

设置 CS_DATA.ScheduledData['Div/12345/Plan 3']['cdata']['c2']='nodeId=123'

这将我的 c2 值设置为 nodeId 123 但我需要单独更改子字段并保留我的其他两个字段 time 和 location 相同。我该怎么做?

【问题讨论】:

  • 您是否考虑过改用 CQL? cassandra.apache.org/doc/cql3/CQL.html
  • 你使用的是哪个 cassandra 版本?
  • 先生 apache cassandra -version 我不确定 :)
  • 运行./bin/cassandra -v查看版本。

标签: cassandra


【解决方案1】:

在您的设计中,您似乎在 C2 字段中插入了一些序列化数据,例如时间和位置。 Cassandra-Cli 可见的最外层结构是 c2。不幸的是,您必须读取存储在 C2 中的先前值,使用您的应用程序用来序列化该字段的相同算法对其进行反序列化,然后再次将其插入到 C2 中。

您的设计提倡先读后写,不幸的是这不是很好。考虑使用这样的列名,以便您可以单独更改它们:

c2_field1, c3_field_2, ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 2017-06-23
    • 2017-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多