在INT/BIGINT和VARCHAR上的Hive连接之间是否存在可靠的性能差异?

Rog*_*ull 7 int varchar hive join query-performance

多年来,我一直在阅读/听到关于bigint列上的数据库连接的"性能优势" OVER加入(var)char列.

不幸的是,在寻找关于'simlilar type questions'的真实答案/建议时:

  • 使用的示例位于"传统" RDBMS上下文中,如Mysql或Oracle/SQL Server.就拿这个问题,或者这个例子
  • 答案很古老,运行时的结束差异并不大.再次,请参阅此示例

没有看到使用Hive版本(最好是版本1.2.1或更高版本)的示例,其中大型(BIG-DATA-ISH)数据集(假设5亿个+行)连接到类似大小的数据集:

  1. 一个Bigint专栏
  2. VERSUS(var)Char(32)列.
  3. VERSUS(var)Char(255)列.

我选择32的大小,因为它是MD5哈希的大小,转换为字符和255,因为它是我所见过的最大自然键的"范围".

此外,我希望Hive:

  • Tez引擎下运行
  • 使用(压缩)文件格式,如ORC + ZLip/Snappy

有没有人知道这样的例子,通过展示Hive Explain计划,CPU,文件和网络资源+查询运行时证明了证据?