如何使用 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 中删除特定的列族数据