【问题标题】:Cassandra 2.2.11 add new map column from text columnCassandra 2.2.11 从文本列添加新的地图列
【发布时间】:2018-09-08 10:49:42
【问题描述】:

假设我有 2 列的表 primary key: id - 类型 varcharnon-primary-key:数据-类型text

数据列仅包含 json 值,例如:

{
"name":"John",
"age":30
}

我知道我不能将此列更改为 map 类型,但也许我可以使用 data 列中的值添加新的 map 列,或者您有其他想法?

我能做些什么呢?我想在此表中获取 map 列,其值来自 data

【问题讨论】:

    标签: cassandra alter cqlsh


    【解决方案1】:

    您可能希望使用 CQL COPY 命令将所有数据导出到 CSV 文件。

    然后更改您的表并创建一个map 类型的新列。

    将导出的数据转换为另一个包含 UPDATE 语句的文件,在该文件中,您只需使用从 JSON 转换为 map 的值更新新创建的列。对于转换,请使用您选择的工具或语言(无论是 bash、python、perl 还是其他)。

    BTW 请注意,使用map 您可以指定地图的键是什么数据类型,地图的值是什么数据类型。所以你很可能只在你想要通用时才使用字符串,即map<text, text>。考虑这是否适合您的用例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-07
      • 2016-05-21
      • 2013-06-26
      • 2021-10-19
      • 2021-07-10
      • 2014-12-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多