2017-02-06 3 views
2

Oracle 11g R2(import-all-tables)からすべてのテーブルをインポートしようとしていますが、CLOBタイプに問題があります。 (CDH 5.9、Sqoop 1.4.6-cdh5.9.1を使用)Sqoop:BLOBタイプを変換するすべてのテーブルをインポートします

まず試してみてください。

sqoop import-all-tables --connect ... --hive-import --hive-overwrite --as-parquet-file --autoreset-to-one-mapper -m XX --direct 

テーブルが正しくCLOB列を持つ1台が見つかるまで、インポートして、次のエラーがスローされます:に変換できません。 SQLタイプ2005

2回目の試行:

sqoop import-all-tables -D oraoop.disabled=true --connect ... --hive-import --hive-overwrite --as-parquet-file --autoreset-to-one-mapper -m XX 

私は同じエラーを取得します。

sqoop import-all-tables --connect ... --hive-import --hive-overwrite --as-parquet-file --autoreset-to-one-mapper -m XX --map-column-java CLOBCOL=String 

一つだけ私のテーブルのはCLOBCOL列を持っているので、これは失敗します。

第三には、これは動作しますので、私はすべてのテーブルと同じを取得しよう

sqoop import --connect ... --hive-import --hive-overwrite --as-parquet-file --autoreset-to-one-mapper -m XX --table MyClobTable --map-column-java CLOBCOL=String 

を試してみてください。

2005年のSQL型エラーを修正するか、Sqoopに「即座に」解決する方法を伝える方法はありますか?

ありがとうございます!

+0

あなたが見ている問題は何ですか? clobを文字列に強制するのではなく、sqoopにサイズの必要に応じてファイルを格納させることを考慮する必要があります(相対的に小さい場合、インラインにすることも、_lobsサブディレクトリに入れることもできます)。 – tbone

+0

投稿をより明示的に編集しました。 「Sqoopに必要なファイルをそのサイズで保存させる」方法は? – Cheloute

答えて

0

sqoopのドキュメントで「Sqoopの直接モードではBLOB、CLOB、LONGVARBINARYカラムのインポートがサポートされていません」と表示されるので、--directコマンドを使用しないでください。インポートツールの引数。 "

関連する問題