私はSqoopを使用してSQL ServerからHiveにデータをインポートし、その後、そのデータを別のSQL Serverにエクスポートします。 Sqoopのインポートは正常に動作し、VCHAR/NVARCHARデータ型をStringに変換します。SqoopハイブストリングデータタイプからMS SQL Serverタイプ
私の質問は、現在、ハイブは現在Stringとしてデータ型を保持しているので、Targetテーブルで定義するのに最適なカラムタイプは何ですか?私はもともとVARCHAR(100)としてターゲット表上で最も私の列を定義し、それが働いているが、それは輸出時に失敗した今、いくつかの文字列と私は得る:
SQL状態:22001、エラーコード:8152
を"java.sql.BatchUpdateException:文字列またはバイナリデータが が切り捨てられます。"
サンプル文字列に失敗しました:
"HEALTH SITE PROVIDERS LLC"|" "|"3435673"|"UHGID0000547777"|"906225"|"\\N"|"\\N"|"\\N"
は明らかに、このデータは、各列(で区切らコラム|)のために100よりもはるかに少ない文字を持っている、だから私はハイブ/ Sqoopは、この変換された方法として混乱しています文字列か、エクスポート中に変換をまったく行いませんか?
私はターゲットテーブルの列をNVARCHAR(max)として定義することを考えていましたが、これは少し極端ですか?また、私はいくつかの列のインデックスを持つ必要がありますとNVARCHAR(最大)はSQL Serverで許可されていません。
よろしく、