Есть ли доказанная разница в производительности между соединениями в Hive на INT/BIGINT и VARCHAR?

В течение многих лет я читал / слышал о "преимуществах в производительности" объединений баз данных в столбцах bigint, которые имеют OVER объединений в столбцах (var)char.

К сожалению, при поиске реальных ответов / советов по поводу "вопросов одинакового типа":

  • Используемые примеры находятся в "традиционном" контексте СУБД, таком как Mysql или Oracle / SQL Server. Возьмите например этот вопрос или этот пример
  • Ответ довольно старый, и конечная разница во времени выполнения не так уж велика. Снова, посмотрите этот пример

Я не видел пример использования версии Hive (предпочтительно версии 1.2.1 или выше), в которой большой (BIG-DATA-ISH) набор данных (скажем, 500 миллионов + строк) соединяется с набором данных аналогичного размера для:

  1. колонна Бигинта
  2. ПРОТИВ (var)Char(32) столбец.
  3. ПРОТИВ (var)Char(255) столбец.

Я выбираю размер 32, потому что это размер хеша MD5, преобразованного в символы, и 255, потому что он "в диапазоне" самого большого натурального ключа, который я когда-либо видел.

Кроме того, я ожидал бы Улей:

  • бежать под двигателем Tez
  • использовать (сжатый) формат файла, такой как ORC + ZLip / Snappy

Кто-нибудь знает такой пример, подтвержденный доказательствами, показывающими планы Hive Explain, ресурсы ЦП, файловые и сетевые ресурсы + время выполнения запросов?

0 ответов

Другие вопросы по тегам