3

我正在学习 HBase shell 命令,并被 drop 和 delete 表弄糊涂了。

任何人都可以评论删除表和删除表之间的区别吗?

谢谢。

4

3 回答 3

3

没有区别。我推测这两个名字的原因是因为首先创建了HBaseAdmin,并且它使用了“删除”。然后当创建外壳时,人们意识到这drop table tablename是摆脱表的标准方法。*

但是我通过查看HBase Admin 源文件 admin.rb确认(不管对其来源的推测)它们是相同的:

# Drops a table
def drop(table_name)
  tableExists(table_name)
  raise ArgumentError, "Table #{table_name} is enabled. Disable it first.'" if enabled?(table_name)
  @admin.deleteTable(table_name)
end

*但准确地说......它们不是在 HBase shell 中drop table tablename而是drop 'tablename'在 HBase shell 中。

于 2013-09-10T19:19:07.903 回答
1

有一个基本的区别:

  • delete 用于删除表中的特定单元格,因此您不能直接在表上运行 delete 并期望它被删除。

  • drop 将删除整个表格而不引用任何单元格,而不会首先禁用表格。

从图中您可以看到,hbase 建议 delete 也应该伴随单元格引用,并且 drop 只是删除了表,并且在该命令之后没有表。

HBase 删除/删除差异

于 2017-04-16T18:44:22.317 回答
0

只是为了一些补充。另一种是通过 hbase shell 或 java api 删除表。首先你必须禁用表然后删除。否则无法删除表。

于 2016-08-03T05:49:49.040 回答