String 与 Varchar Hive 查询性能

String vs Varchar Hive Query Performance

我有这个 table 有 5 条工厂记录,大约 25 列,其中大部分是字符串类型。当我进行查询时,它会持续大约 47 秒来获取结果。 每个字符串列有 2 GB space(因为我不知道如何减少该值),一列的最大记录长度约为 32k 个字符,其他的比 (7,18,50) 少得多。

为了获得更好的查询性能,我复制了那个 table,但我使用的不是 String,而是 Varchar(1000) 和 varchar(50000) 对于上面提到的那条长记录,在所有 SString 列中。我以为这会让我更快地获取,但它几乎需要两倍的时间。

据我了解,我使用 varchar 的方式更多 space,但不知何故这并没有发生。 在相同条件下,我应该使用 varchar 而不是 string 获得更好的响应吗?

stringvarchar 之间应该没有任何性能差异,但最好的选择是用作字符串,varchar 也在内部存储为字符串。

这里有一些关于两者细节比较的优秀帖子:

https://community.hortonworks.com/questions/48260/hive-string-vs-varchar-performance.html