2016-09-12 1 views
0

Я новый пчела в HBASE. Так кто-то может прояснить мой запрос о удалении уровня строки в HBase. Скажем, у нас есть 10 записей в таблице. Таким образом, каждая запись будет храниться в отдельном формате HFile. Поэтому, если мы попытаемся удалить любую запись, она удалит фактический HFile . Я понял, это то, как удаляются значения уровня строки в HBASE.Как удалить строки уровня в HBASE?

Но во время уплотнения меньшие HFiles будут преобразованы в большие HFile.

Таким образом, все данные будут храниться вместе в больших HFiles. Теперь, как удаляются строки уровня, будут обрабатываться, если все данные будут сохранены вместе?

ответ

0

В основном это просто помечено для удаления, и фактическое удаление происходит во время следующего уплотнения. Подробности см. В статье Deletion in HBase.

0
  1. HFile не создается, как только вы вставляете данные. Сначала данные хранятся в memstore. Когда memstore достаточно велик, он очищается до HFile. Новый HFile не создается для каждой записи или строки. Также помните, поскольку записи хранятся в памяти, они сортируются, а затем очищаются до HFile. Таким образом, записи в HFiles всегда сортируются.
  2. HFiles являются неизменными [ожидается, что любые файлы в HDFS будут неизменными]. Удаление записей не происходит сразу. Они помечены для удаления. И когда система запускает сжатие (Малая или Большая), записи, помеченные для удаления, фактически удаляются, а новый HFile не содержит. Если уплотнение не начато, запись все еще существует. Тем не менее, он маскируется от отображения всякий раз, когда запрашивается.