2017-10-18 153 views
0

我有一個SQOOP作業,可以將數據直接從Oracle數據庫加載到Microsoft Azure HDInsights Hadoop集羣上的Hive模式。雖然,當導入char基於字段(如varchar變量)時,我發現它們被導入爲字符串。這沒有錯,它對我來說非常完美。但是,有一個小麻煩,這就是Hive數據庫中的字符串字段佔用該字段的最大長度。這意味着每次我在該領域執行條件時都會使用TRIM功能。是否有任何SQOOP參數或解決方法允許我不使用TRIM?是否可以使用沒有TRIM功能的SQOOP導入表?

問候

回答

0

您可以導入varchar數據類型的數據,以及避免把它轉換爲字符串。您可以使用--map-column-hive參數來實現此目的。此參數覆蓋從SQL類型到配置列的Hive類型的默認映射。

用法:

sqoop import <generic args> --map-column-hive column_name=varchar(200) 
+0

我已經研究這個,但我需要更多不可知的一點點在指定表的名稱,因爲我導入數據庫+ - 200個表。因此,我不希望特別指定任何列。從這個意義上說,你認爲這可以做到嗎? –

+0

除此之外,Sqoop沒有這種功能,但通過一些自定義開發,您可以將數據源從源映射到Hive,可以解決此問題。 –

+0

好的,無論如何,謝謝;) –

相關問題