Hive 二进制和字符串数据类型
Posted
技术标签:
【中文标题】Hive 二进制和字符串数据类型【英文标题】:Hive Binary and String Datatype 【发布时间】:2016-04-17 11:16:06 【问题描述】:Hive 上的二进制和字符串数据类型是否有最大限制。这个想法是能够存储大于 4 GB 的数据。 Oracle 在 CLOB 数据类型列中支持最多 8 TB 的数据。我们是否通过 Hive 有类似的存储容量。
我用来在 hdfs 上存储数据的格式是 parquet 并存储字符串/二进制数据,它使用 bytearray 数据类型和注释。我如何知道镶木地板格式的 bytearray 数据类型的最大限制。
在文档中声明字节数组可以是任意长度。这是否意味着我可以存储高达 8 TB 或更多的数据。
【问题讨论】:
【参考方案1】:不,Hive 不支持 BLOB/CLOB 数据类型。 STRING
数据类型支持最大 2GB 的数据,但这不足以满足您的要求。
但是,Hive 主要是一个查询工具,使用 SQL 来检索存储在底层 HDFS 文件系统中的数据,而 HDFS 绝对可以处理任意大的文件。 (更多:Hadoop HDFS maximum file size)
我猜您的目标是将存储在 Oracle 中的值转移到 Hadoop。如果您的目标是在随后的 Hive 查询中实际返回该值,我会感到惊讶——在这种情况下,您就不走运了。
如果您使用 Sqoop 从 Oracle 导入数据,那会很好,但有一些特殊的注意事项。见documentation on Large Objects in section 7.2.9。
或者,只要源系统安装了 Hadoop 命令行工具,您就可以使用 Hadoop 文件系统命令(例如 get
或 put
)将大型对象移动到 Hadoop。
在任何情况下,任何可能需要访问大对象(例如,可能是图像)内容的逻辑都需要使用与 Oracle 不同的 SQL/CLOB 策略。也许在需要显示时引用内容中的 HDFS 文件名和get
?
希望这会有所帮助,并且我已经回答了正确的问题。
【讨论】:
以上是关于Hive 二进制和字符串数据类型的主要内容,如果未能解决你的问题,请参考以下文章