Hive上的二进制和字符串数据类型是否有任何最大限制。我们的想法是能够存储大于4 GB的数据。 Oracle支持CLOB数据类型列中的8 TB数据。我们是否通过Hive拥有类似的存储容量。
我用来在hdfs上存储数据的格式是镶木地板,用于存储字符串/二进制数据我使用bytearray数据类型和注释。我如何知道镶木地板格式的bytearray数据类型的最大限制。
在doc中,它声明字节数组可以是任意长度。这是否意味着我可以存储高达8 TB或更多的数据。
答案 0 :(得分: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 / CLOB不同的策略。也许在内容中引用HDFS文件名,并在需要时显示它get
?
希望这有用,我已经回答了正确的问题。