Video: Backup MySQL and MariaDB databases with Iperius (SUB ITA-ENG) 2025
Con la modalità di inserimento, i record esportati da Sqoop vengono aggiunti alla fine della tabella di destinazione. Sqoop fornisce anche una modalità di aggiornamento che è possibile utilizzare fornendo l'argomento della riga di comando -update-key. Questa azione fa sì che Sqoop generi un'istruzione SQL UPDATE da eseguire su RDBMS o data warehouse.
Si supponga di voler aggiornare una tabella a tre colonne con i dati memorizzati nel file HDFS / utente / my-hdfs-file. Il file contiene questi dati:
100, 1000, 2000
Il seguente comando di esportazione Sqoop abbreviato genera l'istruzione SQL UPDATE corrispondente sul sistema di database:
$ sqoop export (Argomenti generici) --table target-relational -table --update-key column1 --export-dir / user / my-hdfs-file … Genera => UPDATE target-relazionale-tabella SET column2 = 1000, column3 = 2000 WHERE column1 = 100;
Con il precedente comando di esportazione, se la tabella relazionale di destinazione sul proprio RDBMS o sistema di data warehouse non ha record con il valore corrispondente in column1, non viene modificato nulla nella tabella relazionale di destinazione.
Tuttavia, è possibile includere anche un altro argomento che inserisce o accoda i dati alla tabella di destinazione se non vengono trovati record corrispondenti. Pensaci in questo modo: se esiste UPDATE else INSERT.
Questa tecnica viene spesso definita come upsert nel database vernacolare o come MERGE in altre implementazioni. L'argomento per la modalità upsert è -update-mode, dove updateonly è l'impostazione predefinita e allowinsert attiva la modalità upsert. Controllare la documentazione del database o consultare il proprio fornitore per determinare se la modalità upsert è supportata con Apache Sqoop.
