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

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

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

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

【问题讨论】:

    标签: bigtable google-cloud-bigtable 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 个赞。效果很好。
    猜你喜欢
    • 2016-11-25
    • 2021-05-19
    • 2013-06-10
    • 1970-01-01
    • 2021-03-05
    • 2020-12-25
    • 1970-01-01
    • 2012-01-26
    • 2018-04-20
    相关资源
    最近更新 更多