2017-02-06 3 views
2

Ich versuche, alle Tabellen von meinem Oracle 11g R2 (Import-all-Tabellen) zu importieren, und ich habe ein Problem mit einem CLOB-Typ. (Mit CDH 5.9, Sqoop 1.4.6-cdh5.9.1)Sqoop: Importieren Sie alle Tabellen, die Blob-Typen konvertieren

Erster Versuch:

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

Tabellen werden korrekt importiert, bis eine Tabelle mit einer CLOB-Spalte gefunden wird, und wirft die folgenden Fehler: Kann nicht konvertieren SQL-Typ 2005.

Zweiter Versuch:

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

ich bekomme den gleichen Fehler.

Dritte versuchen

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

Dies funktioniert, so dass ich versuchen, das gleiche mit allen Tabellen zu erhalten:

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

Dies schlägt fehl, da nur einer meiner Tabellen eine CLOBCOL Spalte bekam.

Gibt es eine Möglichkeit, Import-All-Tabellen zu verwenden, den 2005 SQL-Typ-Fehler zu beheben oder Sqoop mitzuteilen, wie es "on the fly" gelöst werden kann?

Danke!

+0

Was ist das Problem, das Sie genau sehen? Anstatt zu versuchen, cobobs zu Strings zu zwingen, sollten Sie in Betracht ziehen, sqoop die Dateien für ihre Größe speichern zu lassen (wenn sie relativ klein sind, können sie inline sein, sonst im _lobs-Unterverzeichnis). – tbone

+0

Ich habe meine Post bearbeitet, um expliziter zu sein. Wie kann ich "Sqoop die Dateien nach Bedarf für ihre Größe speichern lassen"? – Cheloute

Antwort

0

Sie sollten den Befehl --direct nicht verwenden, da das sqoop-Dokument besagt: "Sqoops direkter Modus unterstützt keine Importe von BLOB-, CLOB- oder LONGVARBINARY-Spalten. Verwenden Sie JDBC-basierte Importe für diese Spalten; liefern Sie nicht den -Direct Argument zum Import-Tool. "

Verwandte Themen