impala数据类型

m2xkgtsf  于 2021-06-26  发布在  Impala
关注(0)|答案(1)|浏览(589)

我试图理解 Impala 的以下数据类型之间的区别
一串
烧焦
瓦尔查尔
作为一个模式,读什么将是3种不同类型的需要。我想知道在我们知道列长度上限的情况下,在字符串上使用char/varchars是否有性能上的好处?

vatpfxk5

vatpfxk51#

STRING 存储可变长度的数据,并且(本质上——当然,除非有一些实际限制)是无限制的。 VARCHAR(x) 存储具有x个字符上限的可变长度数据,因此数据将被截断为定义的长度。例如,如果你有 VARCHAR(10) ,输入数据的大小可以为[0,10]。 CHAR(x) 是x字符固定大小的数据类型。如果数据短于x,则填充数据。如果数据长度超过x,则会被截断。
两者 VARCHAR 以及 CHAR 在impala 2.0.0(cdh 5.2.0)中引入,主要用于与其他数据库系统的兼容性。然而,两者 VARCHAR 以及 CHAR 除了一些特殊的用例(使用特定的遗留系统)之外,不建议使用,因为这两种系统都有一些功能限制。
而两者之间应该有相似的表现 STRING 以及 VARCHAR , CHAR 有一些不同的特点:值得注意的是它没有编码,所以通常性能会受到影响。然而,小 CHAR s(其中 x < 128 )在执行期间与元组一起存储,而不是作为可变长度数据存储在辅助内存中。
上面提供了这些类型之间的一些差异,但建议使用 STRING 只要可能。
有关更多详细信息,请参阅string、varchar和char文档。

相关问题