Gibt es einen Unterschied zwischen der Verwendung von --append und --incremental für das Einfügen neuer Zeilen aus RDBMS in ein vorhandenes Dataset in HDFS? Ich verwende --append zusammen mit --where und --incremental append zusammen mit --last-value.Unterschied zwischen --append und --incremental in sqoop anhängen
Antwort
--append
anhängen Daten an eine vorhandene Datenmenge in HDFS
--append
--where "dpt_id >10"
ist die gleiche wie: (nur die Daten zu bestehenden Datensätzen anhängt, auch Duplikate anhängen - Hinweis: Diese überschreiben NICHT wird die Daten aber anfügen):
--incremental append
--check-column dpt_id
--last-value 10
aber NICHT folgenden Optionen (Hängt die neuen Daten und aktualisiert die vorhandenen Daten - keine Duplikate - Hinweis: das wird die Daten nicht überschrieben sondern aktualisieren oder anhängen)
--incremental lastmodified
--check-column lastupdated
--last-value 20160802000000
Sqoop unterstützt zwei Arten von incremental
Importe: append
und lastmodified
.
Mit dem Argument --incremental
können Sie den Typ des auszuführenden inkrementellen Imports angeben.
append:
- Sie sollten
append
Modus festlegen, wann eine Tabelle zu importieren, wo neue Zeilen ständig mit zunehmender Reihe ID-Werte hinzugefügt werden. - Sie geben die Spalte mit der ID der Zeile mit
--check-column
an. - Sqoop importiert Zeilen, bei denen die Prüffelder einen Wert größer als den mit
--last-value
angegebenen Wert aufweist.
LastModified:
- Eine alternative Tabellenaktualisierungsstrategie von Sqoop unterstützt wird
lastmodified
Modus bezeichnet. Sie sollten dies verwenden, wenn die Zeilen der Quelltabelle aktualisiert werden können, und jede solche Aktualisierung wird den Wert einer zuletzt geänderten Spalte auf den aktuellen Zeitstempel setzen. - Zeilen, in denen die Prüffelder einen Zeitstempel enthält, der jünger ist als der mit
--last-value
angegebene Zeitstempel, werden importiert. Wenn Sie einen nachfolgenden Import ausführen, sollten Sie auf diese Weise--last-value
angeben, um sicherzustellen, dass Sie nur die neuen oder aktualisierten Daten importieren. - Dies wird automatisch erledigt, indem ein inkrementeller Import als gespeicherter Job erstellt wird. Dies ist der bevorzugte Mechanismus zum Ausführen eines wiederkehrenden inkrementellen Imports.
Angeben
--incremental lastmodified
Wird also die Update-Anweisungen generieren wird die Zeile aktualisieren, wenn es in Abhängigkeit von der in
--checkcolumn
erwähnt Spalte existiert Während
Erwähnens--incremental append
fügt doppelte Datensätze ein, da nur
angefügt wird