2013-04-15 13 views
9

Es ist möglich, Daten von HDFS in RDBMS Tabelle mit Sqoop zu exportieren. Aber es scheint, als müssten wir eine existierende Tabelle haben.Kann Sqoop exportieren eine neue Tabelle erstellen?

Gibt es einen Parameter, um Sqoop die 'CREATE TABLE' Sache zu erklären und Daten in diese neu erstellte Tabelle zu exportieren?

Wenn ja, wird es mit Oracle funktionieren?

Antwort

8

Ich befürchte, dass Sqoop das Erstellen von Tabellen im RDBMS im Moment nicht unterstützt. Sqoop verwendet die Tabelle in RDBMS, um Metadaten zu erhalten (Anzahl der Spalten und ihre Datentypen), daher bin ich mir nicht sicher, wo Sqoop die Metadaten erhalten könnte, um die Tabelle für Sie zu erstellen.

2

Sie können beliebige SQL-Abfragen und DDL über sqoop eval ausführen, zumindest mit MySQL und MSSQL. Ich würde erwarten, dass es auch mit Oracle funktioniert. MSSQL-Beispiel:

sqoop eval --connect 'jdbc:sqlserver://<DB SERVER>:<DB PORT>; 
database=<DB NAME>' --query "CREATE TABLE..." 
--username <USERNAME> -P 
+1

Sqoop Benutzerhandbuch erwähnt, dass Eval nicht in Produktionsworkflows verwendet werden sollte - "Das Eval-Tool wird nur zu Evaluierungszwecken zur Verfügung gestellt. Sie können es verwenden, Datenbankverbindung innerhalb des Sqoop zu überprüfen oder einfache Abfragen zu testen in Produktionsworkflows eingesetzt werden. " –

0

Ich bemerkte, dass Sie auch Oracle verwenden. Bestimmte sqoop-herstellerspezifische sqoop-Connectors unterstützen das, einschließlich Oracle. Sqoop Oracle Direct Connect-Modus hat dann die Wahl zu tun, dass

https://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_create_oracle_tables

24.8.5.4. Erstellen Sie Oracle Tabellen

-Doraoop.template.table = TemplateTableName

Erzeugt OracleTableName durch die Struktur und Datentypen von TemplateTableName replizieren. TemplateTableName ist eine Tabelle, die vor dem Ausführen des Sqoop-Befehls in Oracle existiert.

ps. Sie müssen die Option --direct sqoop export verwenden, um sqoop direct mode = 'Data Connector für Oracle und Hadoop' (alias OraOOP - älterer Name) zu aktivieren.

Verwandte Themen