Sqoop exportations en utilisant l'approche d'insertion et de mise à jour mise à jour

Avec le mode d'insertion, les dossiers exportés par Sqoop sont ajoutés à la fin de la table cible. Sqoop fournit également un mode de mise à jour que vous pouvez utiliser en fournissant le --update-clé commande argument de ligne. Cette action provoque Sqoop pour générer un SQL METTRE À JOUR instruction à exécuter sur le SGBDR ou entrepôt de données.

Supposons que vous voulez mettre à jour un tableau de trois colonnes avec des données stockées dans le fichier HDFS / user / mes-HDFS fichier. Le fichier contient les données suivantes:

100, 1000, 2000



La commande d'exportation Sqoop abrégée suivante génère le code SQL correspondant METTRE À JOUR déclaration sur votre système de base de données:

$ Sqoop exportation (Arguments génériques) - Table cible relationnelle table - update-clé column1 - export-dir /user/my-hdfs-file...Generates => cible relationnelle table UPDATE SETcolumn2 = 1000 , column3 = 2000WHERE column1 = 100-

Avec la commande d'exportation précédente, si le cible relationnelle table sur votre système SGBDR ou entrepôt de données n'a pas de casier à la valeur correspondante dans column1, rien ne change dans cible relationnelle table.

Cependant, vous pouvez également inclure un autre argument qui insère ou ajoute vos données cible table si aucun enregistrements correspondants sont trouvés. Pense-y de cette façon: Si existe UPDATE autre INSERT.

Cette technique est souvent appelée upsert dans la langue vernaculaire de base de données ou comme FUSION dans d'autres réalisations. L'argument pour le mode de upsert est --mise à jour en mode , où updateOnly est le défaut et allowinsert active le mode upsert. Consultez la documentation de votre base de données ou consultez votre vender pour déterminer si le mode de upsert est pris en charge avec Apache Sqoop.


» » » » Sqoop exportations en utilisant l'approche d'insertion et de mise à jour mise à jour