Sqoop Exporte Mit dem Update und Update-Insert-Ansatz

Mit Insert-Modus, durch Sqoop exportierten Datensätze werden am Ende der Zieltabelle angehängt. Sqoop bietet auch ein Update-Modus, der Sie durch die Bereitstellung der verwenden können --update-Taste Befehlszeilenargument. Diese Aktion verursacht Sqoop eine SQL zu generieren AKTUALISIEREN Aussage auf dem RDBMS oder Data-Warehouse zu laufen.

Angenommen, Sie haben in der HDFS-Datei gespeichert mit Daten, die eine Tabelle mit drei Spalten aktualisieren möchten / User / my-hdfs-Datei. Die Datei enthält diese Daten:

100, 1000, 2000

Die folgenden abgekürzt Sqoop Exportbefehl generiert den entsprechenden SQL AKTUALISIEREN Erklärung auf Ihrem Datenbanksystem:

Sqoop $ export (Generic) Argumente - Tabelle ziel relationale Tabelle - update-key column1 - Export-dir /user/my-hdfs-file...Generates => UPDATE ziel relationale Tabelle SETcolumn2 = 1000 , column3 = 2000WHERE column1 = 100-

Mit dem vorangehenden Exportbefehl, wenn die Ziel relationale-Tabelle auf Ihrem RDBMS oder Data-Warehouse-System hat keinen Datensatz mit dem entsprechenden Wert in column1, nichts geändert in Ziel relationale-Tabelle.

Sie können jedoch auch ein anderes Argument enthalten, die Ein- oder Hinzufügen Ihre Daten Zieltabelle wenn keine passenden Datensätze gefunden. Betrachten Sie es auf diese Weise: Wenn anderes existiert INSERT UPDATE.

Diese Technik wird oft bezeichnet als Upsert in der Datenbank Mundart oder als VERSCHMELZEN in anderen Implementierungen. Das Argument für Upsert Modus ist --Update-Modus , woher update der Standard ist und allowinsert aktiviert Upsert Modus. Überprüfen Sie Ihre Datenbank-Dokumentation oder wenden Sie sich an Ihren vender, um zu bestimmen, ob Upsert Modus mit Apache Sqoop unterstützt wird.

Menü