HBase - drop table和delete table之间的区别?

时间:2013-09-10 16:17:26

标签: hbase

我正在学习HBase shell命令,并对drop和delete表感到困惑。

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

感谢。

3 个答案:

答案 0 :(得分:3)

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

但我通过查看HBase Admin source file 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

*但确切地说......他们没有使用drop table tablename,而是使用HBase shell中的drop 'tablename'

答案 1 :(得分:0)

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

答案 2 :(得分:0)

有一个基本的区别:

  • delete用于删除表中的特定单元格,因此您无法直接在表上运行删除并希望将其删除。

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

从图像中 - 你可以看到hbase建议删除也应该附带单元格引用,并且只需删除表格,并且在该命令之后没有表格。

HBase delete/drop difference