Βίντεο: How to Setup Multinode Hadoop 2 on CentOS/RHEL Using VirtualBox 2024
Με τη λειτουργία εισαγωγής, οι εγγραφές που εξάγονται από το Sqoop προσαρτώνται στο τέλος του πίνακα στόχων. Το Sqoop παρέχει επίσης μια λειτουργία ενημέρωσης που μπορείτε να χρησιμοποιήσετε παρέχοντας το όρισμα της γραμμής εντολών -update. Αυτή η ενέργεια αναγκάζει το Sqoop να δημιουργήσει μια δήλωση SQL UPDATE για εκτέλεση στο RDBMS ή την αποθήκη δεδομένων.
Ας υποθέσουμε ότι θέλετε να ενημερώσετε έναν πίνακα τριών στηλών με τα δεδομένα που είναι αποθηκευμένα στο αρχείο αρχείων / user / my-hdfs HDFS. Το αρχείο περιέχει αυτά τα δεδομένα:
$ sqoop export (Γενικά επιχειρήματα) --table target-relational -table -update -key column1 -export-dir / user / my-hdfs-file … Δημιουργεί => UPDATE στόχος-σχεσιακός πίνακας SET column2 = 1000, column3 = 2000 WHERE column1 = 100;Με την προηγούμενη εντολή εξαγωγής, εάν ο πίνακας σχεσιακών προορισμών στο RDBMS ή το σύστημα αποθήκης δεδομένων δεν έχει εγγραφή με την αντίστοιχη τιμή στη στήλη1, τίποτα δεν μεταβάλλεται στον πίνακα προορισμού-σχεσιακών.
Εντούτοις, μπορείτε επίσης να συμπεριλάβετε ένα άλλο επιχείρημα που εισάγει ή προσθέτει τα δεδομένα σας σε πίνακα-στόχων, αν δεν βρεθούν αντίστοιχες εγγραφές. Σκεφτείτε με αυτό τον τρόπο: Εάν υπάρχει UPDATE άλλο INSERT.
upsert στην τοπική βάση δεδομένων ή ως MERGE σε άλλες εφαρμογές. Το όρισμα για τη λειτουργία upsert είναι -update-mode, όπου updateonly είναι η προεπιλογή και allowinsert ενεργοποιεί τη λειτουργία upsert. Ελέγξτε την τεκμηρίωση της βάσης δεδομένων σας ή συμβουλευτείτε τον προμηθευτή σας για να προσδιορίσετε εάν υποστηρίζεται η λειτουργία upsert με το Apache Sqoop.