Dar*_*ola 6 json cassandra datastax-java-driver datastax
我(理想情况下)喜欢使用纯JSON更新Cassandra中的一行(例如,类似于" INSERT INTO <table_name> JSON '<json_object_string>';"CQL语句).但是,通过CQL UPDATE语句似乎不存在此类功能.
我考虑的一种(脑死亡)方法是删除然后重新插入相关行.然而,这种方法肯定有其缺点 - 因此,从我的考虑集中消除它.
我使用" UPDATE <table_name> SET <key1> = '<new_value1>', <key2> = '<new_value2>', ..., <keyN> = '<new_valueN>';"CQL语句实现了一个版本.但是,如果有类似" UPDATE <table_name> JSON '<new_json_object_string>';"的东西,我真的很想知道这一点.
在cassandra,INSERT并且UPDATE是相同的操作.对于Cassandra的json支持,没有任何UPDATE能力.
也没有部分JSON更新支持,即在插入行之后,您无法使用JSON更新单个列,因为从json有效内容中省略的任何列都将作为空值(逻辑删除)插入.但是,您可以使用常规INSERT/ UPDATE查询.
CASSANDRA-11424寻求解决这个问题.
该功能现在在CQL 5.1 中可用。语法是:
INSERT INTO table_name JSON '{"column1": "value1", "column2": "value2"}' DEFAULT UNSET;
Run Code Online (Sandbox Code Playgroud)
该DEFAULT UNSET选项使其仅覆盖在 JSON 字符串中找到的值。因此,例如,如果您有其他列(例如 column3、column4)在记录中包含数据,则在运行上述插入语句时,这些列将保留其原始数据。
| 归档时间: |
|
| 查看次数: |
2732 次 |
| 最近记录: |