portaldacalheta.pt
  • Κύριος
  • Επιστήμη Δεδομένων Και Βάσεις Δεδομένων
  • Κερδοφορία & Αποδοτικότητα
  • Σχεδιασμός Ux
  • Κινητό
Πίσω Μέρος

Οδηγός συγχρονισμού δεδομένων στον Microsoft SQL Server



Η κοινή χρήση σχετικών πληροφοριών μεταξύ απομονωμένων συστημάτων έχει γίνει όλο και πιο σημαντική για τους οργανισμούς, καθώς τους επιτρέπει να βελτιώσουν την ποιότητα και τη διαθεσιμότητα των δεδομένων. Υπάρχουν πολλές καταστάσεις όπου είναι χρήσιμο να υπάρχει ένα σύνολο δεδομένων που είναι διαθέσιμο και συνεπές σε περισσότερους από έναν διακομιστές καταλόγου. Γι 'αυτό γνωρίζοντας τις κοινές μεθόδους εκτέλεσης Διακομιστής SQL Ο συγχρονισμός δεδομένων είναι σημαντικός.

Η διαθεσιμότητα και η συνέπεια των δεδομένων μπορούν να επιτευχθούν με την αναπαραγωγή δεδομένων και τις διαδικασίες συγχρονισμού δεδομένων. Η αναπαραγωγή δεδομένων είναι η διαδικασία δημιουργίας ενός ή περισσότερων περιττών αντιγράφων μιας βάσης δεδομένων με σκοπό την ανοχή σφαλμάτων ή τη βελτίωση της προσβασιμότητας. Ο συγχρονισμός δεδομένων είναι η διαδικασία καθορισμού της συνοχής των δεδομένων μεταξύ δύο ή περισσότερων βάσεων δεδομένων, και οι επακόλουθες συνεχείς ενημερώσεις για τη διατήρηση της εν λόγω συνέπειας.



Διάφορες πηγές δεδομένων συγκεντρώνονται σε ερωτήματα SQL



Σε πολλούς οργανισμούς, η εκτέλεση συγχρονισμού δεδομένων σε διαφορετικά συστήματα είναι τόσο επιθυμητή όσο και πρόκληση. Μπορούμε να βρούμε πολλές περιπτώσεις χρήσης όπου πρέπει να πραγματοποιήσουμε συγχρονισμό δεδομένων:



  • Μετεγκατάσταση βάσης δεδομένων
  • Τακτικός συγχρονισμός μεταξύ συστημάτων πληροφοριών
  • Εισαγωγή δεδομένων από ένα σύστημα πληροφοριών σε άλλο
  • Μετακίνηση συνόλων δεδομένων μεταξύ διαφορετικών σταδίων ή περιβαλλόντων
  • Εισαγωγή δεδομένων από πηγή που δεν είναι βάση δεδομένων

Δεν υπάρχει μοναδικός τρόπος ή ομόφωνα συμφωνημένη μέθοδος συγχρονισμού δεδομένων. Αυτή η εργασία διαφέρει από περίπτωση σε περίπτωση, και ακόμη και οι συγχρονισμοί δεδομένων που πρέπει να είναι απλοί με την πρώτη ματιά μπορεί να είναι περίπλοκοι, λόγω της πολυπλοκότητας των δομών δεδομένων. Σε πραγματικά σενάρια, ο συγχρονισμός δεδομένων αποτελείται από πολλές πολύπλοκες εργασίες, οι οποίες μπορεί να απαιτούν πολύ χρόνο για να εκτελεστούν. Όταν προκύψει μια νέα απαίτηση, οι ειδικοί της βάσης δεδομένων συνήθως πρέπει να εφαρμόσουν εκ νέου ολόκληρη τη διαδικασία συγχρονισμού. Δεδομένου ότι δεν υπάρχουν τυπικοί τρόποι για να γίνει αυτό, εκτός από την αναπαραγωγή, οι υλοποιήσεις συγχρονισμού δεδομένων είναι σπάνια βέλτιστες. Αυτό οδηγεί σε δύσκολη συντήρηση και υψηλότερα έξοδα. Η εφαρμογή και η συντήρηση του συγχρονισμού δεδομένων είναι μια τόσο χρονοβόρα διαδικασία, μπορεί να είναι μια εργασία πλήρους απασχόλησης από μόνη της.

Μπορούμε να εφαρμόσουμε την αρχιτεκτονική για εργασίες συγχρονισμού δεδομένων με μη αυτόματο τρόπο, πιθανώς χρησιμοποιώντας το Microsoft Sync Framework, ή μπορούμε να επωφεληθούμε από ήδη δημιουργημένες λύσεις μέσα σε εργαλεία για τη διαχείριση του Microsoft SQL Server. Θα προσπαθήσουμε να περιγράψουμε τις πιο κοινές μεθόδους και εργαλεία που μπορούν να χρησιμοποιηθούν για την επίλυση του συγχρονισμού δεδομένων σε βάσεις δεδομένων Microsoft SQL Server και θα προσπαθήσουμε να δώσουμε κάποιες προτάσεις.



Με βάση τη δομή της πηγής και του προορισμού (π.χ. βάσεις δεδομένων, πίνακες) μπορούμε να διαφοροποιήσουμε τις περιπτώσεις χρήσης όταν οι δομές είναι παρόμοιες ή διαφορετικές.

Η πηγή και ο προορισμός έχουν πολύ παρόμοιες δομές

Αυτό συμβαίνει πολύ συχνά όταν χρησιμοποιούμε δεδομένα σε διάφορα στάδια του κύκλου ζωής ανάπτυξης λογισμικού. Για παράδειγμα, η δομή δεδομένων στο περιβάλλον δοκιμών και παραγωγής είναι πολύ παρόμοια. Η κοινή απαίτηση είναι η σύγκριση δεδομένων μεταξύ της βάσης δεδομένων δοκιμών και παραγωγής και η εισαγωγή δεδομένων από την παραγωγή στη βάση δεδομένων δοκιμών.



Η πηγή και ο προορισμός έχουν διαφορετικές δομές

Εάν οι δομές είναι διαφορετικές, ο συγχρονισμός είναι πιο περίπλοκος. Αυτό είναι επίσης μια πιο συχνά επαναλαμβανόμενη εργασία. Μια κοινή περίπτωση είναι η εισαγωγή από μια βάση δεδομένων σε άλλη. Η πιο συνηθισμένη περίπτωση είναι όταν ένα κομμάτι λογισμικού πρέπει να εισάγει δεδομένα από άλλο λογισμικό που διατηρείται από άλλη εταιρεία. Συνήθως, οι εισαγωγές πρέπει να εκτελούνται αυτόματα σε προγραμματισμένη βάση.

Η μέθοδος που χρησιμοποιείται εξαρτάται από τις προσωπικές προτιμήσεις και την πολυπλοκότητα του προβλήματος που πρέπει να λύσετε.



Ανεξάρτητα από το πόσο παρόμοιες είναι οι δομές, μπορούμε να επιλέξουμε τέσσερις διαφορετικούς τρόπους επίλυσης του συγχρονισμού δεδομένων:

  • Συγχρονισμός χρησιμοποιώντας χειροκίνητα σενάρια SQL
  • Συγχρονισμός με τη μέθοδο σύγκρισης δεδομένων (μπορεί να χρησιμοποιηθεί μόνο όταν η πηγή και ο στόχος έχουν παρόμοια δομή)
  • Συγχρονισμός χρησιμοποιώντας αυτόματα δημιουργημένα σενάρια SQL - χρειάζεστε εμπορικό προϊόν

Η πηγή και ο προορισμός έχουν τις ίδιες ή πολύ παρόμοιες δομές

Χρήση σεναρίων SQL που δημιουργήθηκαν με μη αυτόματο τρόπο

Η πιο απλή και κουραστική λύση είναι να γράψετε χειροκίνητα σενάρια SQL για συγχρονισμό.



Πλεονεκτήματα

  • Μπορεί να εκτελεστεί με εργαλεία δωρεάν και ανοιχτού κώδικα (FOSS).
  • Εάν ο πίνακας έχει ευρετήρια, είναι πολύ γρήγορος.
  • Το σενάριο SQL μπορεί να αποθηκευτεί σε μια αποθηκευμένη διαδικασία ή να εκτελείται περιοδικά ως εργασία για τον SQL Server.
  • Μπορεί να χρησιμοποιηθεί ως αυτόματη εισαγωγή, ακόμη και σε δεδομένα που αλλάζουν συνεχώς.

Μειονεκτήματα

  • Η δημιουργία ενός τέτοιου σεναρίου SQL είναι αρκετά κουραστική, επειδή συνήθως απαιτούνται τρία σενάρια για κάθε πίνακα: INSERT, UPDATE και DELETE.
  • Μπορείτε να συγχρονίσετε μόνο δεδομένα που είναι διαθέσιμα μέσω ερωτημάτων SQL, επομένως δεν μπορείτε να κάνετε εισαγωγή από πηγές όπως αρχεία CSV και XML.
  • Είναι δύσκολο να διατηρηθεί - όταν αλλάζει η δομή της βάσης δεδομένων, είναι απαραίτητο να τροποποιήσετε δύο ή τρία σενάρια (INSERT, UPDATE και μερικές φορές επίσης DELETE).

Παράδειγμα

Θα κάνουμε συγχρονισμό μεταξύ του πίνακα Source, με στήλες ID και Value, και ο πίνακας Target, με τις ίδιες στήλες.

Εάν οι πίνακες έχουν το ίδιο πρωτεύον κλειδί και ο πίνακας προορισμού δεν διαθέτει πρωτεύον κλειδί αυτόματης αύξησης (ταυτότητας), μπορείτε να εκτελέσετε το ακόλουθο σενάριο συγχρονισμού.



πώς να μετατρέψετε δεδομένα στο excel
-- insert INSERT INTO Target (ID, Value) SELECT ID, Value FROM Source WHERE NOT EXISTS (SELECT * FROM Target WHERE Target.ID = Source.ID); -- update UPDATE Target SET Value = Source.Value FROM Target INNER JOIN Source ON Target.ID = Source.ID -- delete DELETE FROM Target WHERE NOT EXISTS (SELECT * FROM Source WHERE Target.ID = Source.ID)

Χρήση της μεθόδου σύγκρισης δεδομένων

Σε αυτήν τη μέθοδο, μπορούμε να χρησιμοποιήσουμε ένα εργαλείο για τη σύγκριση μεταξύ δεδομένων προέλευσης και στόχου. Η διαδικασία σύγκρισης δημιουργεί σενάρια SQL που εφαρμόζουν τις διαφορές από τη βάση δεδομένων προέλευσης στη βάση δεδομένων προορισμού.

Υπάρχουν πολλά προγράμματα για σύγκριση δεδομένων και συγχρονισμό. Αυτά τα προγράμματα χρησιμοποιούν κυρίως την ίδια προσέγγιση. Ο χρήστης επιλέγει την πηγή και τη βάση δεδομένων προορισμού, αλλά άλλες εναλλακτικές λύσεις θα μπορούσαν να είναι ένα αντίγραφο ασφαλείας DB, ένας φάκελος με δέσμες ενεργειών SQL ή ακόμη και μια σύνδεση με ένα σύστημα ελέγχου προέλευσης.

Ακολουθούν τα πιο δημοφιλή εργαλεία που χρησιμοποιούν την προσέγγιση σύγκρισης δεδομένων:

  • Σύγκριση δεδομένων dbForge για τον SQL Server
  • Σύγκριση δεδομένων RedGate SQL
  • Apex SQL Data Diff

Στο πρώτο βήμα, διαβάζονται τα δεδομένα ή διαβάζονται μόνο αθροίσματα ελέγχου μεγαλύτερων δεδομένων από την πηγή και από τον στόχο. Στη συνέχεια εκτελείται η διαδικασία σύγκρισης.

Αυτά τα εργαλεία προσφέρουν επίσης πρόσθετες ρυθμίσεις για συγχρονισμό.

Πρέπει να ρυθμίσουμε τις ακόλουθες επιλογές διαμόρφωσης που είναι απαραίτητες για το συγχρονισμό δεδομένων:

Κλειδί συγχρονισμού

Από προεπιλογή, το πρωτεύον κλειδί ή a UNIQUE χρησιμοποιείται περιορισμός. Εάν δεν υπάρχει πρωτεύον κλειδί, μπορείτε να επιλέξετε έναν συνδυασμό στηλών. Το πλήκτρο συγχρονισμού χρησιμοποιείται για τη σύζευξη σειρών της πηγής με σειρές του στόχου.

Σύζευξη πίνακα

Από προεπιλογή, οι πίνακες αντιστοιχίζονται κατά όνομα. Μπορείτε να το αλλάξετε και να τα συνδυάσετε σύμφωνα με τις δικές σας ανάγκες. Στο λογισμικό dbForge Data σύγκριση, μπορείτε να επιλέξετε το ερώτημα SQL ως πηγή ή προορισμό.

Διαδικασία συγχρονισμού

Μετά την επιβεβαίωση, το εργαλείο συγκρίνει τα δεδομένα προέλευσης και στόχου. Η όλη διαδικασία συνίσταται στη λήψη όλων των δεδομένων προέλευσης και στόχου και στη σύγκριση τους βάσει καθορισμένων κριτηρίων. Από προεπιλογή, συγκρίνονται τιμές από ίδιους πίνακες και στήλες. Όλα τα εργαλεία υποστηρίζουν αντιστοίχιση στηλών και ονομάτων πινάκων. Επίσης, υπάρχει η δυνατότητα εξαίρεσης IDENTITY (αυτόματη αύξηση) στηλών ή για να κάνετε κάποιους μετασχηματισμούς πριν από τη σύγκριση τιμών (τύποι στρογγυλού πλωτήρα, αγνόηση πεζών χαρακτήρων, μεταχείριση NULL ως κενή συμβολοσειρά κ.λπ.) Η λήψη δεδομένων βελτιστοποιείται. Εάν ο όγκος των δεδομένων είναι μεγάλος, μόνο τα άθροισμα ελέγχου λαμβάνονται. Αυτή η βελτιστοποίηση είναι χρήσιμη στις περισσότερες περιπτώσεις, αλλά οι απαιτήσεις χρόνου για την εκτέλεση λειτουργιών αυξάνονται με τον όγκο των δεδομένων.

Στο επόμενο βήμα, υπάρχει ένα σενάριο SQL με δημιουργημένες μετεγκαταστάσεις. Αυτό το σενάριο μπορεί να αποθηκευτεί ή να εκτελεστεί απευθείας. Για να είμαστε ασφαλείς, μπορούμε ακόμη και να δημιουργήσουμε ένα αντίγραφο ασφαλείας βάσης δεδομένων πριν εκτελέσουμε αυτό το σενάριο. Το εργαλείο ApexSQL Data Diff μπορεί να δημιουργήσει ένα εκτελέσιμο πρόγραμμα που εκτελεί το σενάριο σε μια επιλεγμένη βάση δεδομένων. Αυτό το σενάριο περιέχει δεδομένα που πρέπει να αλλάξουν, όχι τη λογική πώς να το αλλάξετε. Αυτό σημαίνει ότι το σενάριο δεν μπορεί να εκτελεστεί αυτόματα για να παρέχει επαναλαμβανόμενη εισαγωγή. Αυτό είναι το μεγαλύτερο μειονέκτημα αυτής της προσέγγισης.

Πλεονεκτήματα

  • Δεν απαιτείται προηγμένη γνώση της SQL και μπορεί να γίνει μέσω GUI.
  • Έχετε τη δυνατότητα να ελέγχετε οπτικά τις διαφορές μεταξύ βάσεων δεδομένων πριν από το συγχρονισμό.

Μειονεκτήματα

  • Είναι ένα προηγμένο χαρακτηριστικό των εμπορικών προϊόντων.
  • Η απόδοση μειώνεται κατά τη μεταφορά τεράστιων όγκων δεδομένων.
  • Το σενάριο SQL που δημιουργήθηκε περιέχει μόνο διαφορές και, ως εκ τούτου, δεν μπορεί να επαναχρησιμοποιηθεί για αυτόματο συγχρονισμό μελλοντικών δεδομένων.

Παρακάτω μπορείτε να δείτε το τυπικό περιβάλλον χρήστη αυτών των εργαλείων.

ApexSQL Data Diff

ApexSQL Data Diff

Σύγκριση RedGate SQL

Σύγκριση RedGate SQL

Αλλαγή λίστας στη σύγκριση δεδομένων dbForge

Αλλαγή λίστας στη σύγκριση δεδομένων dbForge

Συγχρονισμός με αυτόματη δημιουργία SQL

Αυτή η μέθοδος είναι πολύ παρόμοια με τη μέθοδο σύγκρισης δεδομένων. Η μόνη διαφορά σε σύγκριση με την προηγούμενη μέθοδο είναι ότι δεν υπάρχει σύγκριση δεδομένων και το σενάριο SQL που δημιουργείται δεν περιέχει διαφορές δεδομένων, αλλά λογική συγχρονισμού. Το δημιουργημένο σενάριο μπορεί εύκολα να αποθηκευτεί σε μια αποθηκευμένη διαδικασία και μπορεί να εκτελείται περιοδικά (π.χ. κάθε βράδυ). Αυτή η μέθοδος είναι χρήσιμη για αυτόματες εισαγωγές μεταξύ βάσεων δεδομένων. Η απόδοση αυτής της μεθόδου είναι πολύ καλύτερη από τη μέθοδο σύγκρισης δεδομένων.

Ο συγχρονισμός με SQL που δημιουργείται αυτόματα παρέχεται μόνο από Στούντιο βάσης δεδομένων SQL .

σύνταξη λογιστικού σχεδίου

Το SQL Database Studio παρέχει παρόμοια διεπαφή με τη μέθοδο σύγκρισης δεδομένων. Πρέπει να επιλέξουμε την πηγή και τον στόχο (βάσεις δεδομένων ή πίνακες). Τότε πρέπει να ρυθμίσουμε επιλογές (πλήκτρα συγχρονισμού, σύζευξη και αντιστοίχιση). Υπάρχει μια γραφική δυνατότητα δημιουργίας ερωτημάτων για τη ρύθμιση όλων των παραμέτρων.

Πλεονεκτήματα

  • Δεν απαιτείται προηγμένη γνώση της SQL.
  • Μπορείτε να ρυθμίσετε τα πάντα σε ένα GUI πολύ γρήγορα.
  • Το σενάριο SQL που προκύπτει μπορεί να αποθηκευτεί σε μια αποθηκευμένη διαδικασία.
  • Μπορεί να χρησιμοποιηθεί ως αυτόματη εισαγωγή - ως εργασία για τον SQL Server.

Μειονεκτήματα

  • Είναι ένα προηγμένο χαρακτηριστικό των εμπορικών προϊόντων.
  • Οι διαφορές δεν μπορούν να ελεγχθούν χειροκίνητα πριν από το συγχρονισμό, επειδή η όλη διαδικασία εκτελείται σε ένα βήμα.

Σημεία αναφοράς απόδοσης

Θήκη δοκιμής

Δύο βάσεις δεδομένων (Α και Β), η καθεμία περιέχει έναν πίνακα με 2.000.000 σειρές. Οι πίνακες βρίσκονται σε δύο διαφορετικές βάσεις δεδομένων στον ίδιο SQL Server. Αυτή η δοκιμή καλύπτει δύο ακραίες περιπτώσεις: 1) Ο πίνακας προέλευσης περιέχει και τις 2.000.000 σειρές και ο πίνακας προορισμού είναι κενός. Ο συγχρονισμός πρέπει να παρέχει πολλά INSERTS. 2) Οι πίνακες προέλευσης και προορισμού περιέχουν 2.000.000 σειρές. Η διαφορά είναι μόνο σε μία σειρά. Ο συγχρονισμός πρέπει να παρέχει μόνο ένα UPDATE.

Η σύγκριση δεδομένων RedGate χρειάζεται 3 βήματα:

  • Συγκρίνω
  • Δημιουργία σεναρίου
  • Εκτελέστε το σενάριο στη βάση δεδομένων προορισμού

Το ApexSQL Data Diff χρειάζεται 2 βήματα:

  • Συγκρίνω
  • Δημιουργία σεναρίου και εκτέλεση σεναρίου σε ένα βήμα

Το SQL Database Studio εκτελεί ολόκληρο τον συγχρονισμό σε ένα βήμα. Ακολουθούν οι χρόνοι συγχρονισμού, σε δευτερόλεπτα. Στη στήλη με την ένδειξη 'μεμονωμένα βήματα' είναι οι διάρκεια των βημάτων συγχρονισμού που αναφέρονται παραπάνω.

Περίπτωση Α. Πολλά ΕΝΣΩΜΑΤΑ Περίπτωση A. πολλά ΕΝΕΡΓΕΙΑ (μεμονωμένα βήματα) Περίπτωση Β. ΕΝΗΜΕΡΩΣΗ μίας σειράς Περίπτωση Β. ΕΝΗΜΕΡΩΣΗ μίας σειράς (μεμονωμένα βήματα)
Στούντιο βάσης δεδομένων SQL 47 5
Σύγκριση δεδομένων RedGate 317 13 + 92 + 212 2. 3 22 + 0 + 1
ApexSQL Data Diff 188 18 + 170 26 25+

Το χαμηλότερο είναι καλύτερο.

Το ίδιο τεστ, αλλά οι βάσεις δεδομένων βρίσκονται σε διαφορετικούς διακομιστές SQL, οι οποίοι δεν είναι συνδεδεμένοι μέσω συνδεδεμένου διακομιστή.

όταν τα δεδομένα σε έναν πίνακα γίνονται περιττά:
Περίπτωση Α. Πολλά ΕΝΣΩΜΑΤΑ Περίπτωση A. πολλά ΕΝΕΡΓΕΙΑ (μεμονωμένα βήματα) Περίπτωση Β. ΕΝΗΜΕΡΩΣΗ μίας σειράς Περίπτωση Β. ΕΝΗΜΕΡΩΣΗ μίας σειράς (μεμονωμένα βήματα)
Στούντιο βάσης δεδομένων SQL 78 44
Σύγκριση δεδομένων RedGate 288 17 + 82 + 179 25 24 + 0 + 1
ApexSQL Data Diff 203 18 + 185 25 24 + 1
Σύγκριση δεδομένων dbForge 326 11 + 315 16 16 + 0

Το χαμηλότερο είναι καλύτερο.

Περίληψη

Από τα αποτελέσματα, είναι προφανές ότι το RedGate και το Apex δεν ενδιαφέρονται εάν οι βάσεις δεδομένων βρίσκονται στον ίδιο διακομιστή SQL, επειδή ο αλγόριθμος συγχρονισμού δεν εξαρτάται από τον SQL Server. Το SQL Database Studio χρησιμοποιεί εγγενείς λειτουργίες του SQL Server. Επομένως, το αποτέλεσμα είναι καλύτερο όταν οι βάσεις δεδομένων βρίσκονται στον ίδιο διακομιστή.

Η πηγή και ο προορισμός έχουν διαφορετική δομή

Υπάρχουν επίσης καταστάσεις όταν ένας ευρύς πίνακας πρέπει να συγχρονιστεί σε πολλούς μικρούς σχετικούς πίνακες.

Αυτό το παράδειγμα αποτελείται από έναν ευρύ πίνακα SourceData που πρέπει να συγχρονιστεί σε μικρούς πίνακες Continent, Country, και City. Το σχήμα δίνεται παρακάτω.

Σχέδιο για παράδειγμα βάση δεδομένων

Τα δεδομένα στο SourceData θα μπορούσαν να είναι όπως αυτά στην παρακάτω εικόνα.

Σημεία δεδομένων για το παράδειγμα

Χρήση χειροκίνητων σεναρίων SQL

Πίνακας Συγχρονισμού σεναρίων

INSERT INTO Continent (Name) SELECT SourceData.Continent FROM SourceData WHERE (SourceData.Continent IS NOT NULL AND NOT EXISTS (SELECT * FROM Continent tested WHERE tested.Name =SourceData.Continent )) GROUP BY SourceData.Continent;

Πίνακας πόλης συγχρονισμού σεναρίων

INSERT INTO City (Name, CountryId) SELECT SourceData.City, Country.Id FROM SourceData LEFT JOIN Continent ON SourceData.Continent = Continent.Name LEFT JOIN Country ON SourceData.Country = Country.Name AND Continent.Id = Country.ContinentId WHERE SourceData.City IS NOT NULL AND Country.Id IS NOT NULL AND NOT EXISTS (SELECT * FROM City tested WHERE tested.Name = SourceData.City AND tested.CountryId = Country.Id) GROUP BY SourceData.City, Country.Id;

Αυτό το σενάριο είναι πιο περίπλοκο. Είναι επειδή οι εγγραφές στους πίνακες Country και Continent πρέπει να βρεθούν. Αυτό το σενάριο εισάγει αρχεία που λείπουν στο City και συμπληρώνει ContryId σωστά.

Το UPDATE και DELETE Τα σενάρια θα μπορούσαν επίσης να γραφτούν με τον ίδιο τρόπο, αν χρειαστεί.

Πλεονεκτήματα

  • Δεν χρειάζεστε εμπορικά προϊόντα.
  • Το σενάριο SQL μπορεί να αποθηκευτεί σε αποθηκευμένη διαδικασία ή να εκτελείται περιοδικά ως εργασία για τον SQL Server.

Μειονεκτήματα

  • Η δημιουργία ενός τέτοιου σεναρίου SQL είναι δύσκολη και περίπλοκη (για κάθε πίνακα, τρία σενάρια— INSERT, UPDATE, και DELETE - είναι συνήθως απαραίτητα).
  • Είναι πολύ δύσκολο να διατηρηθεί.

Χρήση εξωτερικών εργαλείων

Αυτό το είδος συγχρονισμού (ευρύς πίνακας σε πολλούς σχετικούς πίνακες) δεν μπορεί να γίνει με τη μέθοδο σύγκρισης δεδομένων, επειδή επικεντρώνεται σε διαφορετικές περιπτώσεις χρήσης. Δεδομένου ότι η μέθοδος σύγκρισης δεδομένων παράγει ένα σενάριο SQL με δεδομένα που πρέπει να εισαχθούν, δεν έχει άμεση δυνατότητα αναζήτησης αναφορών σε σχετικούς πίνακες. Για αυτόν τον λόγο, δεν είναι δυνατή η χρήση εφαρμογών που χρησιμοποιούν αυτήν τη μέθοδο (dbForge Data σύγκριση για SQL Server, RedGate SQL Data σύγκριση, Apex SQL Data Diff).

Ωστόσο, το SQL Database Studio μπορεί να σας βοηθήσει να δημιουργήσετε αυτόματα σενάρια συγχρονισμού. Στην παρακάτω εικόνα, υπάρχει ένα στοιχείο που ονομάζεται Editor for Data Synchronization στο SQL Database Studio.

Πρόγραμμα επεξεργασίας για συγχρονισμό δεδομένων στο SQL Database Studio

Το πρόγραμμα επεξεργασίας μοιάζει με το γνωστό εργαλείο δημιουργίας ερωτημάτων και λειτουργεί με παρόμοιο τρόπο. Κάθε πίνακας πρέπει να έχει καθορισμένο κλειδί συγχρονισμού, αλλά υπάρχουν επίσης καθορισμένες σχέσεις μεταξύ πινάκων. Στην παραπάνω εικόνα υπάρχει χαρτογράφηση για συγχρονισμό. Στη λίστα στηλών (κάτω μέρος της εικόνας) υπάρχουν οι στήλες του πίνακα City (για άλλους πίνακες είναι παρόμοιο).

Στήλες

  • Ταυτότητα - Αυτή η στήλη δεν έχει αντιστοιχιστεί επειδή είναι το κύριο κλειδί (δημιουργείται αυτόματα).
  • CountryId - Αυτή η στήλη ορίζεται ως αναφορά για τον πίνακα.
  • Ονομα - Αυτή η στήλη συμπληρώνεται από τη στήλη Πόλη στον πίνακα προέλευσης (ευρύς πίνακας).

Στήλες CountryId και Name επιλέγονται ως κλειδιά συγχρονισμού. Το κλειδί συγχρονισμού είναι ένα σύνολο στηλών που προσδιορίζουν μοναδικά μια σειρά στον πίνακα προέλευσης και στόχου. Δεν μπορείτε να χρησιμοποιήσετε το πρωτεύον κλειδί Id ως κλειδί συγχρονισμού, επειδή αυτό δεν βρίσκεται στον πίνακα προέλευσης.

Μετά τον συγχρονισμό, έτσι μοιάζουν οι πίνακες:

Περιεχόμενο πινάκων μετά το συγχρονισμό

Στο παραπάνω παράδειγμα, υπήρχε ένας μεγάλος πίνακας ως πηγή. Υπάρχει επίσης ένα κοινό σενάριο όταν τα δεδομένα προέλευσης αποθηκεύονται σε διάφορους σχετικούς πίνακες. Οι σχέσεις στο SQL Database Studio δεν ορίζονται χρησιμοποιώντας ξένα κλειδιά, αλλά ονόματα στηλών. Με αυτόν τον τρόπο είναι επίσης δυνατή η εισαγωγή από αρχεία CSV ή Excel (το αρχείο φορτώνεται σε έναν προσωρινό πίνακα και ο συγχρονισμός εκτελείται από αυτόν τον πίνακα). Είναι καλή πρακτική να έχετε μοναδικά ονόματα στηλών. Εάν αυτό δεν είναι δυνατό, μπορείτε να ορίσετε ψευδώνυμα σε αυτές τις στήλες.

Πλεονεκτήματα

  • Εύκολη και γρήγορη δημιουργία
  • Εύκολη συντήρηση
  • Μπορεί να αποθηκευτεί σε μια αποθηκευμένη διαδικασία (η αποθηκευμένη διαδικασία αποθηκεύεται με τα απαραίτητα δεδομένα για να ανοίξει ο συγχρονισμός σε έναν επεξεργαστή αργότερα)

Μειονεκτήματα

  • Εμπορική λύση

Συγκρίνοντας τις Λύσεις

Ο συγχρονισμός δεδομένων αποτελείται από μια ακολουθία INSERT, UPDATE ή DELETE εντολές. Υπάρχουν πολλοί τρόποι δημιουργίας ακολουθιών αυτών των εντολών. Σε αυτό το άρθρο, εξετάσαμε τρεις επιλογές για τη δημιουργία σεναρίων συγχρονισμού SQL. Η πρώτη επιλογή είναι να δημιουργήσετε τα πάντα με μη αυτόματο τρόπο. Είναι εφικτό (αλλά χρειάζεται πολύς χρόνος), απαιτεί πολύπλοκη κατανόηση της SQL και είναι δύσκολο να δημιουργηθεί και να διατηρηθεί. Η δεύτερη επιλογή είναι η χρήση εμπορικών εργαλείων. Εξετάσαμε τα ακόλουθα εργαλεία:

  • Σύγκριση δεδομένων dbForge για τον SQL Server
  • Σύγκριση δεδομένων RedGate SQL
  • Apex SQL Data Diff
  • Στούντιο βάσης δεδομένων SQL

Τα τρία πρώτα εργαλεία λειτουργούν πολύ παρόμοια. Συγκρίνουν δεδομένα, επιτρέπουν στον χρήστη να αναλύσει τις διαφορές και μπορεί να συγχρονίσει επιλεγμένες διαφορές (ακόμη και αυτόματα ή από τη γραμμή εντολών). Είναι επωφελείς για αυτά τα σενάρια χρήσης:

πώς να χακάρετε αριθμούς πιστωτικών καρτών
  • Οι βάσεις δεδομένων δεν είναι συγχρονισμένες λόγω διαφόρων σφαλμάτων.
  • Πρέπει να αποφύγετε την αναπαραγωγή κατά τη μεταφορά δεδομένων μεταξύ των περιβαλλόντων.
  • Απαιτούνται αναφορές σύγκρισης δεδομένων σε Excel ή HTML.

Κάθε εργαλείο λατρεύεται για τον έναν ή τον άλλο λόγο: το dbForge έχει εξαιρετική διεπαφή χρήστη και πολλές επιλογές, η ApexSQL αποδίδει καλύτερα από τα υπόλοιπα και το RedGate είναι το πιο δημοφιλές.

Το τέταρτο εργαλείο, το SQL Database Studio, λειτουργεί λίγο διαφορετικά. Δημιουργεί σενάρια SQL που περιέχουν λογική συγχρονισμού και όχι αλλαγές. Η απόδοση είναι επίσης μεγάλη, επειδή όλη η εργασία γίνεται απευθείας στον διακομιστή βάσης δεδομένων, επομένως δεν απαιτείται μεταφορά δεδομένων μεταξύ του διακομιστή βάσης δεδομένων και του εργαλείου συγχρονισμού. Αυτό το εργαλείο είναι χρήσιμο για τις ακόλουθες περιπτώσεις χρήσης:

  • Αυτόματες μετεγκαταστάσεις βάσεων δεδομένων όπου οι βάσεις δεδομένων έχουν διαφορετική δομή
  • Εισαγωγή σε πολλούς σχετικούς πίνακες
  • Εισαγωγή από εξωτερικές πηγές XML, CSV, MS Excel

Σχετίζεται με: Oracle to SQL Server και SQL Server to Oracle Migration Guide

Κατανόηση των βασικών

Ποια εργαλεία είναι διαθέσιμα για συγχρονισμό βάσης δεδομένων;

Μπορείτε να χρησιμοποιήσετε εργαλεία όπως το RedGate Data membandingkan, το ApexSQL Data Diff και το dbForge Data σύγκριση, τα οποία χρησιμοποιούν τη μέθοδο σύγκρισης δεδομένων. Μπορείτε να χρησιμοποιήσετε το SQL Database Studio, το οποίο δημιουργεί αυτόματα επαναχρησιμοποιήσιμα σενάρια SQL.

Πώς να συγκρίνετε δεδομένα βάσης δεδομένων;

Η σύγκριση βάσει δεδομένων μπορεί να γίνει αυτόματα χρησιμοποιώντας εργαλεία τρίτων, τα οποία διατίθενται σε τιμή. Εναλλακτικά, μπορείτε να γράψετε συγκριτικά σενάρια SQL που σας δείχνουν διαφορές, αλλά αυτό είναι πολύ πιο χρονοβόρο και λιγότερο επαναχρησιμοποιήσιμο.

Πώς να συγχρονίσετε βάσεις δεδομένων στον SQL Server;

Μπορείτε να συγχρονίσετε χειροκίνητα τις βάσεις δεδομένων SQL γράφοντας σενάρια SQL (ΕΙΣΑΓΩΓΗ, ΔΙΑΓΡΑΦΗ, ΕΝΗΜΕΡΩΣΗ) ή μπορείτε να χρησιμοποιήσετε εργαλεία τρίτων που διατίθενται σε τιμή. Τα εργαλεία τρίτων λειτουργούν συγκρίνοντας δεδομένα και δημιουργώντας συγχρονισμένα σενάρια SQL ή μπορείτε να ρυθμίσετε τη λογική συγχρονισμού και να δημιουργήσετε σενάρια SQL βάσει αυτών.

Πώς το Agile Talent μπορεί να μεταμορφώσει τη νοοτροπία ανάπτυξης

Ευκίνητο Ταλέντο

Πώς το Agile Talent μπορεί να μεταμορφώσει τη νοοτροπία ανάπτυξης
Πώς να αξιοποιήσετε το BLoC για κοινή χρήση κώδικα στο Flutter και το AngularDart

Πώς να αξιοποιήσετε το BLoC για κοινή χρήση κώδικα στο Flutter και το AngularDart

Κινητό

Δημοφιλείς Αναρτήσεις
Senior Full-stack Engineer, Talent Post-hire Team
Senior Full-stack Engineer, Talent Post-hire Team
Εισαγωγή στην επεξεργασία εικόνων Python στην Υπολογιστική Φωτογραφία
Εισαγωγή στην επεξεργασία εικόνων Python στην Υπολογιστική Φωτογραφία
Λειτουργίες παραθύρου εισαγωγής στο SQL
Λειτουργίες παραθύρου εισαγωγής στο SQL
Εγκατάσταση του Django στο IIS: Ένα βήμα προς βήμα εκπαιδευτικό πρόγραμμα
Εγκατάσταση του Django στο IIS: Ένα βήμα προς βήμα εκπαιδευτικό πρόγραμμα
Φαίνεται ενθουσιασμό - Μέσα στην αναπτυσσόμενη βιομηχανία ομορφιάς
Φαίνεται ενθουσιασμό - Μέσα στην αναπτυσσόμενη βιομηχανία ομορφιάς
 
Αρχιτεκτονική προσανατολισμένη στην υπηρεσία με AWS Lambda: Ένα βήμα προς βήμα εκπαιδευτικό πρόγραμμα
Αρχιτεκτονική προσανατολισμένη στην υπηρεσία με AWS Lambda: Ένα βήμα προς βήμα εκπαιδευτικό πρόγραμμα
Σχεδιασμός παρουσίασης και τέχνη της οπτικής αφήγησης
Σχεδιασμός παρουσίασης και τέχνη της οπτικής αφήγησης
Μια βαθιά ματιά στο JSON εναντίον XML, Μέρος 3: XML και το μέλλον του JSON
Μια βαθιά ματιά στο JSON εναντίον XML, Μέρος 3: XML και το μέλλον του JSON
5 Ερωτήσεις που πρέπει να υποβάλει ένα Master Scrum πριν εγγραφείτε σε μια εκκίνηση
5 Ερωτήσεις που πρέπει να υποβάλει ένα Master Scrum πριν εγγραφείτε σε μια εκκίνηση
Τρεις αρχές ανάπτυξης δεδομένων αποθήκης
Τρεις αρχές ανάπτυξης δεδομένων αποθήκης
Δημοφιλείς Αναρτήσεις
  • αναβάθμιση από python 2.7 σε 3.6
  • corp c vs corp s
  • http //api.streamin.to/pair
  • το api "undefined" δεν υπάρχει ή δεν έχετε άδεια πρόσβασης σε αυτό
  • τι είναι η διαχείριση διαθεσίμων στον τραπεζικό τομέα
  • εκτίμηση κόστους στη μηχανική λογισμικού
Κατηγορίες
  • Επιστήμη Δεδομένων Και Βάσεις Δεδομένων
  • Κερδοφορία & Αποδοτικότητα
  • Σχεδιασμός Ux
  • Κινητό
  • © 2022 | Ολα Τα Δικαιώματα Διατηρούνται

    portaldacalheta.pt