2013-09-10 3 views

ответ

3

Нет никакой разницы. Я предполагаю, что причина для двух имен заключается в том, что сначала был создан HBaseAdmin, и он использовал «delete». Затем, когда оболочка была создана люди поняли, что 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, а скорее drop 'tablename' в оболочке HBase.

+0

спасибо! Это очень полезно! –

0

Просто для некоторого добавления. В другом случае удалить таблицу через оболочку hbase или java api. сначала вам нужно отключить таблицу, а затем отбросить. В противном случае таблица не может быть удалена.

0

Существует принципиальная разница:

  • удаления используется для удаления конкретной ячейки в таблице и, следовательно, вы не можете запустить удалить на столе прямо и ожидать, что она будет удалена.

  • Капля упадет со всей таблицы без ссылки на ячейку, не отключая сначала таблицу.

Из изображения - вы можете увидеть, что HBase предположил, что удаление должно сопровождаться ссылкой на ячейку, а также и падение просто упал на стол, и нет ни одной таблицы после этой команды.

HBase delete/drop difference

Смежные вопросы