2016-05-04 28 views
0

堆棧:使用Sqoop 如何加載和存儲爲nvarchar

    1. 負載的SQL Server表到HDFS:使用Ambari 2.1 的步驟,我安裝以下HDP-2.3.2.0-2950在蜂巢
    2. 創建外部表

    我沒有使用任何有關在執行sqoop導入命令到charset/unicode的/ UTF-8和導入成功

    在創建Hive外部表時,我想知道應該爲原始sql服務器表中的nvarchar列選擇哪種數據類型,現在我擔心即使在導入時需要解決的Sqoop問題。

    1. 中找不到Sqoop進口相關的字符集/爲nvarchar等選項
    2. 在配置單元,可以爲varchar /串盲目來代替爲nvarchar使用
  • +1

    Hadoop和配置單元本身使用** UTF-8 **,因此他們並不需要關心有關傳統字符集的遺留問題。如果SQL Server中所有列的字符集定義都正確,並且Microsoft JDBC驅動程序完成了將源字符集轉換爲Java客戶端字符集的工作,那麼您就完成了。 –

    +0

    我已經進行了varchar Hive數據類型而不是字符串,我希望這不會導致任何問題。 Sqoop導入沒有提供任何錯誤。 –

    +0

    在Hive中,VARCHAR ==(STRING +檢查Write的實際長度是否符合最大長度),所以區別在於整體。 –

    回答

    0

    我們知道,nvarchar類型無法通過sqoop瞭解,那麼我們只需要將其轉換爲varchar 例如

    select 
    CAST(col1 AS varchar) AS col1, 
    col2, 
    col3, 
    col4 
    from table_name