Video: Masini pentru exporturile românești din Germania și Olanda 2024
Cu modul insert, înregistrările exportate de Sqoop sunt atașate la sfârșitul tabelului țintă. Sqoop oferă, de asemenea, un mod de actualizare pe care îl puteți utiliza prin furnizarea argumentului -update-cheie al liniei de comandă. Această acțiune determină Sqoop să genereze o instrucțiune SQL UPDATE pentru a rula pe RDBMS sau în depozitul de date.
Să presupunem că doriți să actualizați un tabel cu trei coloane cu date stocate în fișierul / user / my-hdfs-fișierul HDFS. Fișierul conține aceste date:
Următoarea abreviată comanda de export Sqoop generează instrucțiunea SQL UPDATE corespunzătoare din sistemul de bază de date:$ sqoop export (argumente generice) -table -update-cheie-coloană 1 -export-dir / user / my-hdfs-fișier … Generates => UPDATE target-relational-table SET column2 = 1000, column3 = 2000 WHERE column1 = 100;
Cu comanda de export precedentă, dacă tabela destinație-relațională din RDBMS sau din sistemul de depozit de date nu are înregistrări cu valoarea potrivită în coloana 1, nimic nu se modifică în tabela destinație-relațională.
Această tehnică este adesea menționată ca upsert în baza de date vernaculară sau ca MERGE în alte implementări. Argumentul pentru modul de upsert este modul -update, unde updateonly este implicit și allowinsert activează modul upsert. Verificați documentația bazei de date sau consultați-vă cu vendorul dvs. pentru a determina dacă modul de upsert este acceptat cu Apache Sqoop.