json - 删除 Cassandra 中以 Json 文件为目标的数据
问题描述
我有一个 JSON 文件,每行有 2 个属性,messageID 和 appKey,并且在 Cassandra 中有一个名为 msg_log 的表。该表的行具有对应于上述 2 个属性的列。我想解析 JSON 文件并根据它的值,从 msg_log 中删除匹配的行。我正在使用 bash 脚本来执行此操作,暂时不允许使用其他方法。有可能做到这一点吗?
解决方案
是的,如果这些属性与分区键/集群列匹配,则有可能。在这种情况下,使用以下方法:
- 在您的 bash 脚本中生成单独
DELETE FROM table WHERE attr1 = ... AND attr2 = ...
的语句,并将它们放入文件中 - 通过执行所有语句
cqlsh -f file_name
根据您的 JSON 文件的格式,您可以使用sed
(如果您的文件每行有一个 JSON 记录),但最好的方法是使用jq 实用程序提取数据,该实用程序可能以不同的方式处理 JSON 格式。
推荐阅读
- c# - 如何在 OWIN WebAPI C# 中获取 formData
- javascript - 未捕获的类型错误:topics.forEach 不是函数
- shell - 将具有变量名称的多个平面文件(.txt 文件)连接到单个平面(.txt)文件
- android-studio - 在构建阶段找不到房间编译器错误
- c# - 服务未在 servicecollection 中注册
- java - 骆驼会尊重带有@Transaction注释的bean方法调用吗?
- excel - VBA Excel恢复重复计数而不在重新启动计数后更改先前的重复计数
- c# - 为 POCO 属性生成属性选择器表达式
- wcf - WCF - 从另一个服务调用 WebGet 请求
- php - ldap_add(): Add: 添加新用户的推荐