何时使用varchar和string作为列数据类型

pzfprimi  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(624)

我正在尝试创建一个配置单元表。我不确定何时使用varchar,何时使用string。如果我们使用varchar,那么我们是否必须像在rdbms中定义varchar(10)那样定义长度?请帮助

iugsix8n

iugsix8n1#

在hive0.12.0中引入varchar是为了实现更符合sql的行为,例如sql字符串比较语义、最大长度等(参见hive-4844)。
varchar类型是使用长度说明符(介于1和65355之间)创建的,该说明符定义字符串中允许的最大字符数。如果要转换/分配给varchar值的字符串值超过长度说明符,则该字符串将自动截断。
还有一个限制:非泛型udf不能直接使用varchar类型作为输入参数或返回值。看到了吗here:wiki
字符串没有这样的限制。字符串的最大长度为2gb

相关问题