Cassandra 2.2.11 从文本列添加新的地图列
Cassandra 2.2.11 add new map column from text column
假设我有 table 两列
primary key
: id - 类型 varchar
和 non-primary-key
:数据 - 类型 text
数据列仅包含 json
个值,例如:
{
"name":"John",
"age":30
}
我知道我无法将此列更改为 map
类型,但也许我可以使用 data
列中的值添加新的 map
列,或者您有其他想法?
我该怎么办?我想在此 table 中获取 map
列,其中的值来自 data
您可能希望使用 CQL COPY 命令将所有数据导出到 CSV 文件。
然后更改您的 table 并创建类型为 map
的新列。
将导出的数据转换为另一个包含 UPDATE
语句的文件,您只需使用从 JSON 转换为 map
的值更新新创建的列。对于转换,请使用您选择的工具或语言(bash、python、perl 或其他)。
顺便说一句,请注意,使用 map
可以指定地图的键是什么数据类型,地图的值是什么数据类型。因此,您很可能只能在想要通用时才使用字符串,即 map<text, text>
。考虑这是否适合您的用例。
假设我有 table 两列
primary key
: id - 类型 varchar
和 non-primary-key
:数据 - 类型 text
数据列仅包含 json
个值,例如:
{
"name":"John",
"age":30
}
我知道我无法将此列更改为 map
类型,但也许我可以使用 data
列中的值添加新的 map
列,或者您有其他想法?
我该怎么办?我想在此 table 中获取 map
列,其中的值来自 data
您可能希望使用 CQL COPY 命令将所有数据导出到 CSV 文件。
然后更改您的 table 并创建类型为 map
的新列。
将导出的数据转换为另一个包含 UPDATE
语句的文件,您只需使用从 JSON 转换为 map
的值更新新创建的列。对于转换,请使用您选择的工具或语言(bash、python、perl 或其他)。
顺便说一句,请注意,使用 map
可以指定地图的键是什么数据类型,地图的值是什么数据类型。因此,您很可能只能在想要通用时才使用字符串,即 map<text, text>
。考虑这是否适合您的用例。