Ανάπτυξη αποθήκης με χρήση διοχετεύσεων

Ισχύει για: ✅ Αποθήκη στο Microsoft Fabric

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

Important

Αυτή η δυνατότητα είναι σε προεπισκόπηση.

Αυτό το άρθρο εξηγεί τη διαδικασία ανάπτυξης αποθήκης με διοχετεύσεις.

Διάγραμμα του κύκλου ζωής ανάπτυξης του αγωγού για Fabric αποθήκη δεδομένων.

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

Δημιουργία μιας διοχέτευσης

Για να δημιουργήσετε μια νέα διοχέτευση, ανατρέξτε στο θέμα Γρήγορα αποτελέσματα με τις διοχετεύσεις ανάπτυξης για τη δημιουργία και τη διαχείριση μιας διοχέτευσης ανάπτυξης.

Compare

Πάντα να επαληθεύετε και να συγκρίνετε τις αλλαγές T-SQL πριν από την ανάπτυξη. Οι διοχετεύσεις ανάπτυξης προσφέρουν μια εύκολη οθόνη σύγκρισης στην πύλη Fabric για την εξέταση των επηρεαζόμενων αντικειμένων αποθήκης.

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

Το Fabric χρησιμοποιεί DacFx (Data-tier Application Framework) για να εκτελέσει αυτήν τη σύγκριση. Το DacFx δημιουργεί ένα δηλωτικό μοντέλο σχήματος και των δύο περιβαλλόντων και εντοπίζει διαφορές όπως νέους πίνακες, τροποποιημένες στήλες, περιορισμούς ή αλλαγές εξάρτησης. Επειδή αυτή η σύγκριση βασίζεται στο μοντέλο, αντικατοπτρίζει με ακρίβεια τι συμβαίνει κατά την ανάπτυξη.

Important

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

Σημείωμα

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

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

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

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

Στιγμιότυπο οθόνης της σύγκρισης μιας αποθήκης σε μια πολιτεία με μια αποθήκη σε μια άλλη πολιτεία.

Ανάπτυξη

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

Στιγμιότυπο οθόνης από την πύλη Fabric της οθόνης Ανάπτυξη σε αυτό το στάδιο στη διοχέτευση.

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

Στιγμιότυπο οθόνης από την πύλη Fabric μιας επιτυχημένης ανάπτυξης.

Διαμορφώσεις ανάπτυξης

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

  • Αποκλεισμός πιθανής απώλειας δεδομένων (BlockOnPossibleDataLoss = true) - Fabric αποθήκη δεδομένων αποτρέπει αναπτύξεις που θα μπορούσαν να περικόψουν, να απορρίψουν ή να χάσουν με άλλο τρόπο δεδομένα χρήστη. Αυτή η ρύθμιση εμποδίζει τις αλλαγές σχήματος υψηλού κινδύνου να περάσουν από το CI/CD και καθιστά τον κίνδυνο απώλειας δεδομένων μια σκόπιμη απόφαση αντί για μια σιωπηλή προεπιλογή.

  • Παράλειψη δέσμης ενεργειών επιλογής σε επίπεδο βάσης δεδομένων (ScriptDatabaseOptions = false) - Το Fabric διαχειρίζεται πολλές ρυθμίσεις σε επίπεδο βάσης δεδομένων σε επίπεδο πλατφόρμας. Οι δηλώσεις δέσμης ενεργειών, όπως ALTER DATABASE ... SET κατά την ανάπτυξη, μπορεί να οδηγήσουν σε αποτυχίες ή ακούσια μετατόπιση διαμόρφωσης. Επομένως, οι διοχετεύσεις ανάπτυξης αποφεύγουν τη διάδοση αυτών των ρυθμίσεων, διασφαλίζοντας ότι οι αναπτύξεις σχήματος εστιάζουν μόνο σε υποστηριζόμενα αντικείμενα αποθήκης.

  • Επιτρέποντας την επιβολή μηχανισμού για αντικείμενα αναπαραγωγής (DoNotAlterReplicatedObjects = false) - Οι αποθήκες συχνά χρησιμοποιούν εσωτερικούς μηχανισμούς αναπαραγωγής, για παράδειγμα σε σενάρια σύνδεσης ή συγχρονισμού. Αντί να αποκλείουν πρόωρα τις αλλαγές σχήματος, οι διοχετεύσεις ανάπτυξης επιτρέπουν στη μηχανή Fabric να προσδιορίσει εάν επιτρέπεται μια αλλαγή. Αυτή η προσέγγιση αποτρέπει περιττές αποτυχίες ανάπτυξης, διατηρώντας παράλληλα τις διασφαλίσεις της πλατφόρμας.

  • Απενεργοποίηση συναλλακτικών δεσμών ενεργειών DDL (IncludeTransactionalScripts = false) - Οι αποθήκες προς το παρόν δεν υποστηρίζουν την αναδίπλωση δεσμών ενεργειών DDL μέσα σε συναλλαγές. Επομένως, οι διοχετεύσεις ανάπτυξης δημιουργούν μη συναλλακτικά σενάρια για να διασφαλίσουν ότι οι αναπτύξεις ολοκληρώνονται με επιτυχία.

  • Χρήση έξυπνων προεπιλογών για την εξέλιξη σχήματος (GenerateSmartDefaults = true) - Όταν οι αλλαγές σχήματος εισάγουν αυστηρότερους περιορισμούς, όπως η μετατροπή στηλών με δυνατότητα null σε μη nullable ή η προσθήκη νέων στηλών με προεπιλεγμένους περιορισμούς, οι διοχετεύσεις ανάπτυξης μπορούν να συμπληρώσουν αυτόματα τιμές γραμμής βάσης. Αυτή η προσέγγιση βοηθά τις αναπτύξεις να πετύχουν χωρίς να απαιτείται χειροκίνητη προετοιμασία δεδομένων και μειώνει τις λειτουργικές τριβές κατά την εξέλιξη του σχήματος.

  • Εξαίρεση αρχών ασφαλείας από την ανάπτυξη (ExcludeObjectTypes = Logins, Users, Permissions) - Τα αντικείμενα ασφαλείας εξαιρούνται σκόπιμα από τις αναπτύξεις αποθήκης. Η προώθηση συνδέσεων, χρηστών ή δικαιωμάτων σε περιβάλλοντα μπορεί να δημιουργήσει κινδύνους ασφαλείας ή διενέξεις που σχετίζονται με το περιβάλλον. Αντίθετα, διαχειριστείτε τον έλεγχο πρόσβασης ξεχωριστά μέσω διαδικασιών διαχείρισης περιβάλλοντος ή διαχείρισης ταυτότητας.

  • Μη απόθεση αντικειμένων που δεν βρίσκονται στην προέλευση (DropObjectsNotInSource = false) - Τα αντικείμενα που υπάρχουν στον προορισμό αλλά όχι στην προέλευση δεν απορρίπτονται αυτόματα. Οι αποθήκες που διατηρούν την παραγωγή τέλεια συγχρονισμένη με τον έλεγχο πηγής μπορεί να το βρουν περιοριστικό.

Περιορισμοί

  • Από προεπιλογή, το σύστημα μπλοκάρει τις πτώσεις πίνακα. Η διαδικασία ανάπτυξης δεν απορρίπτει αυτόματα αντικείμενα που υπάρχουν στον προορισμό αλλά όχι στην προέλευση. Αυτός ο σχεδιασμός μειώνει την τυχαία απώλεια δεδομένων και αποτρέπει τις απροσδόκητες αφαιρέσεις στην παραγωγή.
  • Μια επιτυχημένη ανάπτυξη δεν σημαίνει πάντα ότι εφαρμόστηκε κάθε αλλαγή που ζητήθηκε. Μια ανάπτυξη μπορεί να αναφέρει επιτυχία ακόμα και όταν παραλείπει μια ενέργεια απόθεσης πίνακα που ζητήθηκε, επειδή οι αποθέσεις πίνακα αποκλείονται από προεπιλογή. Σε αυτήν την περίπτωση, η λειτουργία ανάπτυξης ολοκληρώνεται, αλλά ο στόχος μπορεί ακόμα να μετακινηθεί από τον έλεγχο προέλευσης μέχρι να επιλύσετε ρητά την αλλαγή που λείπει.
  • Επί του παρόντος, η διαδικασία ανάπτυξης δίνει προτεραιότητα στην ασφάλεια έναντι της αυστηρής ισοτιμίας προέλευσης, χωρίς να απορρίπτει αντικείμενα που υπάρχουν μόνο στον στόχο.
  • Οι διοχετεύσεις ανάπτυξης Fabric δεν υποστηρίζουν το στοιχείο τελικού σημείου ανάλυσης SQL.
  • Οι εξαρτήσεις μεταξύ στοιχείων, η αλληλουχία στοιχείων και τα κενά συγχρονισμού μεταξύ του τελικού σημείου ανάλυσης SQL και των ροών εργασιών Fabric Deployment Pipelines επηρεάζουν την αποθήκη.
  • Η επιλογή σχετικών στοιχείων σε διοχετεύσεις ανάπτυξης για Fabric αποθήκη δεδομένων δεν υποστηρίζεται.

Αντιμετώπιση προβλημάτων ενσωμάτωσης Git

Για περιορισμούς ειδικά για την ενσωμάτωση Git, ανατρέξτε στο θέμα Περιορισμοί στην ενσωμάτωση Git στο άρθρο Ενοποίηση Git.

Για την αντιμετώπιση προβλημάτων, τις λύσεις και τις επιδιορθώσεις σε συνηθισμένα προβλήματα ενοποίησης του Git στην ανάπτυξη Fabric αποθήκη δεδομένων, ανατρέξτε στο θέμα Αντιμετώπιση προβλημάτων ενοποίησης του Git για Fabric αποθήκη δεδομένων ανάπτυξη.