如何使用 cbt 从 BigTable 中删除带有前缀键的行范围

Posted

技术标签:

【中文标题】如何使用 cbt 从 BigTable 中删除带有前缀键的行范围【英文标题】:How to use cbt to delete range of rows with a prefix key from BigTable 【发布时间】:2019-08-20 09:43:02 【问题描述】:

看起来我可以用 cbt like 读取带有前缀键的行

cbt -project someproject -instance someinstance read sometable prefix=abc

但是我怎样才能使用 cbt 来删除上面命令选择的那些行呢?

【问题讨论】:

【参考方案1】:

为了能够仅使用cbt 来执行此操作,您需要解析读取命令的输出并遍历每个结果,对特定行执行 deleterow 命令。

或者,您可以使用更快的Bigtable’s Client Libraries 之一。

与 Java 客户端一样,您也会在其他客户端中找到相同的功能,例如 C# 客户端库的 DropRowRangeRequest class。

编辑:要删除仅使用 cbt 的几行,您可以使用以下内容:

for x in `cbt -project my-project -instance my-instace read my-table prefix=abc | grep "abc"`; do 
  cbt -project my-project -instance my-instace deleterow my-table $x;
done

【讨论】:

如果有人可以编写一个使用读取输出删除行的单行终端命令,那就太棒了……我只有不到一百行要删除。所以现在我真的不需要非常有效地完成它。 @FuyangLiu 这是我一直在使用的xargs 变体cbt -instance my-instance read my-table prefix=abc | grep '^abc' | xargs -I '' cbt -instance my-instance deleterow my-table 你应该得到大约 1000 个赞。效果很好。

以上是关于如何使用 cbt 从 BigTable 中删除带有前缀键的行范围的主要内容,如果未能解决你的问题,请参考以下文章

如何从 google bigtable 中删除特定的列族数据

从 BigTable 中删除与 BigTable 中的正则表达式匹配的行

将 BigTable 与 Apache Hue 连接起来

从google bigtable中删除空行的有效方法

BigTable:有没有更好的方法从部分行键中获取唯一值?

如何从 bigtable 获取最近的数据?