我正在使用Sqoop將數據從SQL Server導入到Hive,然後將該數據從Hive導出到另一個SQL Server。 Sqoop導入工作正常,並將VCHAR/NVARCHAR數據類型轉換爲String。Sqoop Hive字符串數據類型到MS SQL服務器類型
我的問題是目標表上定義的最佳列類型是什麼,因爲Hive現在當前將數據類型保存爲字符串?我最初定義了我的大部分列在目標表爲VARCHAR(100),並一直在努力,但現在一些字符串,導出過程中失敗,我也得到:
SQL狀態:22001,錯誤代碼:8152
「java.sql.BatchUpdateException:將字符串或二進制數據截取爲 」。
樣品字符串失敗:
"HEALTH SITE PROVIDERS LLC"|" "|"3435673"|"UHGID0000547777"|"906225"|"\\N"|"\\N"|"\\N"
顯然這個數據比100爲每列(由分隔欄|)遠遠更少的字符,所以我很困惑,蜂巢/ Sqoop是如何將這個字符串還是在導出過程中完成任何轉換?
我正在考慮將目標表中的列定義爲NVARCHAR(max),但是這有點極端嗎?此外,我還需要有一些列索引以及SQL Server中不允許NVARCHAR(max)。
問候,