首页 > 解决方案 > 删除 Cassandra 中以 Json 文件为目标的数据

问题描述

我有一个 JSON 文件,每行有 2 个属性,messageID 和 appKey,并且在 Cassandra 中有一个名为 msg_log 的表。该表的行具有对应于上述 2 个属性的列。我想解析 JSON 文件并根据它的值,从 msg_log 中删除匹配的行。我正在使用 bash 脚本来执行此操作,暂时不允许使用其他方法。有可能做到这一点吗?

标签: jsonbashcassandra

解决方案


是的,如果这些属性与分区键/集群列匹配,则有可能。在这种情况下,使用以下方法:

  • 在您的 bash 脚本中生成单独DELETE FROM table WHERE attr1 = ... AND attr2 = ...的语句,并将它们放入文件中
  • 通过执行所有语句cqlsh -f file_name

根据您的 JSON 文件的格式,您可以使用sed(如果您的文件每行有一个 JSON 记录),但最好的方法是使用jq 实用程序提取数据,该实用程序可能以不同的方式处理 JSON 格式。


推荐阅读