Хранение данных в файлах HBase vs Parquet - PullRequest
0 голосов
/ 09 сентября 2018

Я новичок в области больших данных и пытаюсь понять различные способы сохранения и извлечения данных. Я понимаю, что и Parquet, и HBase - это ориентированные на столбцы форматы хранения, но Parquet - это файлово-ориентированное хранилище, а не база данных в отличие от HBase. Мои вопросы:

  1. Какой вариант использования паркета вместо HBase
  2. Есть ли вариант использования, в котором паркет можно использовать вместе с HBase.
  3. В случае выполнения соединений паркет будет лучше, чем HBase (скажем, доступ через SQL-оболочку, такую ​​как Phoenix)?

1 Ответ

0 голосов
/ 10 сентября 2018

Как вы уже сказали, паркет - это хранилище, а 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 подходит для случаев использования, когда обновлений очень мало, а запросы включают фильтры, объединения и объединения.

...