2016-06-23 4 views
0

Ich muss eine große Datenmenge von einer Oracle-Datenbank nach Hadoop verschieben, ohne die beiden Systeme zu verbinden. Ist es möglich, Daten von Oracle über Sqoop direkt in das lokale Dateisystem zu exportieren, ohne in HDFS zu importieren? Ich möchte in ORC exportieren und dann die Dateien nur über externe Festplatten auf den Hadoop-Cluster verschieben.Exportieren von RDBMS in Hadoop-kompatibles Format

Antwort

1

Sie können SQOOP in Ihrem Fall nicht verwenden. SQOOP wird in hadoop ausgeführt und verwendet JDBC, um eine Verbindung mit der DB herzustellen. Wenn sich Hadoop-Knoten nicht mit dem DB-Server verbinden können, können Sie ihn nicht verwenden.

ORC ist ein sehr spezielles Format, das von Hive verwendet wird. Sie müssen herausfinden, wie Sie Hive-Bibliotheken verwenden, um die ORC-Dateien außerhalb von Hadoop-Clustern zu erstellen, falls dies möglich ist.

Durch Ihre Einschränkungen werde ich vorschlagen, DB mit DB-Speichermöglichkeiten in eine CSV-Datei zu exportieren, die Datei zu komprimieren und dann in HDFS zu kopieren.

Wenn Sie beabsichtigen, Hive zu verwenden, können Sie LOAD die Textdatei in eine Tabelle laden, die zum Speichern der Daten mit ORC konfiguriert ist.

+0

Ich stimme dem Vorschlag zu, ORC zu vermeiden - CSV, TSV oder ein anderes allgemeines neutrales Format, das Ihre Oracle-Datenbank für Zwischendateien erzeugen kann, vereinfacht das spätere Laden in Hadoop, wo Sie jedes geeignete Hadoop-Format verwenden können. –

+0

Das einzige Problem mit CSV-Formaten ist, dass in den Daten möglicherweise Zeilenvorschübe vorhanden sind und wir versuchen, die Daten genau so zu erhalten, wie sie existieren. Ich kann mit Xml stecken bleiben, aber ich will wirklich nicht wegen seiner Größe. – Shawn

+0

Sie können in Ihrer CSV-Datei verschiedene Zeilenvorschübe verwenden, wie "|", "@@", "^ A" oder was auch immer und dasselbe für Spaltenbegrenzer. Das Problem besteht darin, dass nicht alle Komponenten in den Tools hadoop und DB dunps die Angabe dieser Parameter ermöglichen und Sie Ihren eigenen Writer/Reader implementieren müssen. In der Struktur können Sie beide Parameter angeben, wenn Sie die Tabelle erstellen. – RojoSam

Verwandte Themen