2017-10-18 14 views
0

Microsoft Azure HDInsights Hadoop ClusterのOracleデータベースからHiveスキーマにデータを直接ロードするSQOOPジョブがあります。しかし、のフィールド(varchar変数など)をインポートすると、これらが文字列としてインポートされることがわかりました。これは何も間違っていないし、それは私のために完全に動作します。ただし、Hive Databaseの文字列フィールドには、そのフィールドの最大長を使用するという小さな不便さがあります。これは、そのフィールドで条件を実行するたびにTRIM関数を使用することを意味します。 TRIMを使用しないSQOOPパラメータまたは回避策はありますか?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

ありがとう、とにかく;) –

関連する問題