2016-04-17 127 views
0

Hive上的二進制和String數據類型是否有任何最大限​​制。這個想法是能夠存儲大於4 GB的數據。 Oracle支持CLOB數據類型列中的8 TB數據。我們是否通過Hive擁有類似的存儲容量?Hive二進制和字符串數據類型

我用來在hdfs上存儲數據的格式是parquet,並存儲字符串/二進制數據,它使用bytearray數據類型和註釋。我如何知道parquet格式的bytearray數據類型的最大限制。

在doc中它聲明字節數組可以是任意長度的。這意味着我可以存儲高達8 TB或更多的數據。

回答

0

不,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文件系統命令將大對象移動到Hadoop(例如getput)。

在任何情況下,任何可能需要訪問大對象(可能是圖像)內容的邏輯需要使用與SQL/CLOB不同的策略,而不像Oracle。在需要顯示時可能引用內容中的HDFS文件名和get

希望這是有益的,我已經回答了正確的問題。