2016-06-08 12 views
0

Ich versuche BLOB (Image) -Daten von Oracle in Hive zu importieren, indem ich den Sqoop-Befehl verwende.BLOB (Bild) von Oracle in Hive importieren

sqoop import --connect jdbc:oracle:thin:@host --username --password --m 3 --table tablename --hive-drop-import-delims --hive-table tablename --target-dir '' --split-by id; 

Aber nicht erfolgreich. Denken Sie daran, BLOB-Daten, die in der Oracle-Datenbank als Hexadezimal gespeichert sind, und wir müssen diese in der Hive-Tabelle als Text oder Bianary speichern.

Was ist der mögliche Weg, das zu tun?

Antwort

0

Sqoop weiß nicht, wie Blob-Datentyp in Oracle in Hive zugeordnet wird. So müssen Sie angeben --map-column-hive COLUMN_BLOB=binary

sqoop import --connect 'jdbc:oracle:thin:@host' --username $USER --password $Password --table $TABLE --hive-import --hive-table $HiveTable --map-column-hive COL_BLOB=binary --delete-target-dir --target-dir $TargetDir -m 1 -verbose 
+0

Vielen Dank für die Hilfe. Wenn wir versuchen, die hexadezimalen Daten (BLOB) zu HIVE als Binärdatei zu laden, funktioniert es gut. Aber als wir versuchten, die Daten mit Select-Abfrage anzuzeigen, fanden wir beschädigte Binärdaten (wie '?', ',' Usw.), die in der HIVE-Tabelle gespeichert waren. Ich habe auch beobachtet, dass nach dem Befehl sqoop, Hexadezimaldaten in HDFS speichern, aber wie HIVE Hexadezimaldaten nicht unterstützt, versucht es, die HEX-Daten in Binär-und alle Daten korrumpieren, wenn wir eine ausgewählte Abfrage ausführen. – Avijit

+0

Die Daten wurden nicht beschädigt, es ist jedoch die Hive-Konsole, die es nicht richtig anzeigen kann. Exportieren Sie die gleichen Daten in RDBMS und wenden Sie dann select mit $ an, wobei Sie den entsprechenden Datensatz erhalten. –

+0

Hallo, ich habe das gleiche Problem. Hast du das gelöst? Ich denke, dass der Export von Hive zu Rdbms nicht das ist, was die Leute machen wollen. Die meiste Zeit ist es von Rdbms zu Bienenstock .. – GwydionFR