删除累积中的多个表

  • 本文关键字:删除 accumulo
  • 更新时间 :
  • 英文 :


我的 Accumulo 开发实例变得非常混乱,为测试创建了大量表。

我想批量删除大量表。

除了删除整个实例之外,还有没有办法做到这一点?

顺便说一句 - 如果它有任何相关性,这个实例只是一个单机"集群"。

在 Accumulo shell 中,可以使用 deletetable 命令的 -p 选项为要删除的表名指定正则表达式。

我会评论原始答案,但我缺乏声誉(这里的第一个贡献)。

提供一个合法的正则表达式示例会很有帮助。

累积壳只能转义某些字符。特别是它不会转义括号 []。 如果要删除以字符串"mytable"开头的每个表,否则合法的正则表达式命令具有以下警告/错误。

user@instance> deletetable -p mytable[.]*

2016-02-18 10:21:04,704 [壳。外壳] 警告:未找到符合您条件的表

user@instance> deletetable -p mytable[w]*

2016-02-18 10:21:49,041 [壳。Shell] 错误:org.apache.accumulo.core.util.BadArgumentException:只能转义索引 19 附近的单引号、双引号、空格字符、反斜杠和十六进制输入 删除表 -p 我的表[\w]*

一个有效的外壳命令将是:

user@instance> deletetable -p mytable.*

目前(从版本 1.7.0 开始)没有一种方法可以在单个调用中批量删除多个表。

表删除实际上是以异步方式完成的。客户端提交删除表的请求,该表将在不久的将来删除。问题是,在执行删除表的调用后,客户端会等待,直到删除表。这种阻塞完全是人为的和不必要的,但不幸的是,这就是它目前的工作方式。

由于每个单独的表删除似乎都会阻塞,因此对表名进行简单的循环以串行删除它们不会很快完成。相反,您应该使用线程池,并并行发出删除表请求。

不过,批量删除表命令将非常有用。作为一个开源项目,非常欢迎对他们的问题跟踪器进行功能请求,任何实现它的贡献,更是如此。

相关内容

  • 没有找到相关文章

最新更新