Как вы уже сказали, паркет - это хранилище, а HBase - хранилище (HDFS) + Query Engine (API / оболочка). Поэтому необходимо провести правильное сравнение между паркетом + Impala / Hive / Spark и HBase. Ниже приведены основные отличия -
1) Дисковое пространство - Parquet занимает меньше дискового пространства по сравнению с HBase. Кодирование паркета экономит больше места, чем сжатие блоков в HBase.
2) Поглощение данных - Поглощение данных в паркете более эффективно, чем HBase. Простая причина может быть в пункте 1. Как и в случае с паркетом, на диск необходимо записать меньше данных.
3) Поиск записи по ключу - HBase работает быстрее, поскольку это хранилище значений ключей, а паркет - нет. Индексирование в паркете будет поддерживаться в будущем выпуске.
4) Фильтр и другие запросы на сканирование - Поскольку паркет хранит больше информации о записях, хранящихся в группе строк, он может пропускать много записей при сканировании данных. Это причина, это быстрее, чем HBase.
5) Обновление записей - HBase предоставляет обновления записей, хотя это может быть проблематично для паркета, поскольку файлы паркета необходимо переписать. Тщательный дизайн схемы и разбиения может улучшить обновления, но это не сравнимо с HBase.
Сравнивая вышеупомянутые функции, HBase кажется более подходящим для ситуаций, когда требуются обновления, а запросы в основном включают поиск значения ключа. Запрос, включающий сканирование диапазона ключей, также будет иметь лучшую производительность в HBase.
Parquet подходит для случаев использования, когда обновлений очень мало, а запросы включают фильтры, объединения и объединения.