Ενσωμάτωση Git για ανάπτυξη αποθήκης Fabric

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

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

Important

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

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

Τα τυπικά σενάρια περιλαμβάνουν:

  • Ανάπτυξη αλλαγών σχήματος με ασφάλεια σε υποκαταστήματα και χώρους εργασίας
  • Διαχείριση εκδόσεων αντικειμένων αποθήκης στο Git
  • Συνεργασία σε πολλούς κλάδους και χώρους εργασίας
  • Προώθηση επικυρωμένων αλλαγών μεταξύ υποκαταστημάτων
  • Διατήρηση στοιχείων χώρου εργασίας (αποθήκη και άλλα) ευθυγραμμισμένα με την πηγή αλήθειας Git

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

Διάγραμμα του κύκλου ζωής ανάπτυξης ενοποίησης Fabric Warehouse Git.

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

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

Χρησιμοποιώντας Fabric Git Integration και Fabric αποθήκη δεδομένων, μπορείτε να κάνετε τα εξής:

Σύγκριση

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

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

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

Το XMLA.json ίδιο το αρχείο εξαιρείται κατά τη διάρκεια των ροών εργασιών ενοποίησης του Git. Fabric εξαιρεί αυτό το αρχείο από τις υποβολές και τις ενημερώσεις, ώστε τα προεπιλεγμένα σημασιολογικά model μεταδεδομένα να μην αποθηκεύονται ακούσια στο Git. Κατά τον συγχρονισμό ενός χώρου εργασίας από το Git, XMLA.json το παραβλέπεται, γεγονός που βοηθά στην αποφυγή διενέξεων, ακούσιων αντικαταστάσεων και θορύβου κατά την εναλλαγή διακλάδωσης ή τις ενημερώσεις από το Git.

Περιορισμοί στο στοιχείο ελέγχου προέλευσης

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

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

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

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

Περιορισμοί στην ενοποίηση Git

  • Όταν δύο ή περισσότερα είδη αποθήκης αναφέρονται το ένα στο άλλο, σχηματίζουν μια κυκλική εξάρτηση. Το σύστημα εντοπίζει αυτήν την κυκλική αναφορά κατά τη διάρκεια λειτουργιών διακλάδωσης ή συγχρονισμού Git-to-workspace, προκαλώντας την αποτυχία αυτών των λειτουργιών. Αποφύγετε τις κυκλικές εξαρτήσεις μεταξύ των στοιχείων.
  • Προς το παρόν, μην δημιουργήσετε μια ροή δεδομένων Gen2 με προορισμό εξόδου στην αποθήκη. Ένα νέο στοιχείο με όνομα DataflowsStagingWarehouse εμφανίζεται στο αποθετήριο και αποκλείει τη δέσμευση και την ενημέρωση από το Git.
  • Οι εξαρτήσεις μεταξύ στοιχείων, η αλληλουχία στοιχείων και τα κενά συγχρονισμού μεταξύ του τελικού σημείου ανάλυσης SQL και της αποθήκης επηρεάζουν τις ροές εργασίας "διακλάδωση σε νέο ή υπάρχοντα χώρο εργασίας" και "μετάβαση σε διαφορετικό κλάδο" κατά την ανάπτυξη και τη συνεχή ενοποίηση.
  • Εάν ένα αντικείμενο αναφέρεται σε ένα άλλο αντικείμενο στην ίδια αποθήκη χρησιμοποιώντας ονομασία τριών τμημάτων (database.schema.object), η δέσμευση ή η ενημέρωση από το Git μπορεί να αποτύχει. Για περισσότερες πληροφορίες και μια λύση, ανατρέξτε στην ενότητα Αναφορές στα αντικείμενα της αποθήκης χρησιμοποιώντας ένα όνομα τριών τμημάτων.
  • Εάν αλλάξουμε μια στήλη που έχει IDENTITY ορίσει, η δέσμευση ή η ενημέρωση από το Git μπορεί να αποτύχει μέχρι να IDENTITY_INSERT ενεργοποιηθεί για τον πίνακα.
  • Εάν το αποθετήριο περιέχει ένα .sqlproj αρχείο που καρφιτσώνει μια παλαιότερη Microsoft.Build.Sql έκδοση SDK, η δέσμευση ή η ενημέρωση από το Git μπορεί να αποτύχει επειδή το παλαιότερο SDK δεν αναγνωρίζει νεότερη σύνταξη αποθήκης, όπως IDENTITY στήλες και CLUSTER BY. Για περισσότερες πληροφορίες και μια λύση, ανατρέξτε στο θέμα Μη ενημερωμένο .sqlproj στο αποθετήριο Git.
  • Εάν ένα αντικείμενο αναφέρεται σε δύο ή περισσότερους πίνακες σε μια άλλη αποθήκη χωρίς ψευδώνυμο σε κάθε στήλη, η δέσμευση ή η ενημέρωση από το Git μπορεί να αποτύχει. Για περισσότερες πληροφορίες και μια λύση, ανατρέξτε στο θέμα Μη προσδιορισμένες στήλες σε αντικείμενα που αναφέρονται σε δύο ή περισσότερους πίνακες σε μια άλλη αποθήκη.
  • Εάν τα σενάρια μας αναφέρονται σε δύο ή περισσότερα διαφορετικά αντικείμενα στο ίδιο σχήμα μιας άλλης αποθήκης και γράφουν το όνομα του σχήματος με ασυνεπή κεφαλαία, η δέσμευση ή η ενημέρωση από το Git μπορεί να αποτύχει. Για περισσότερες πληροφορίες και μια λύση, ανατρέξτε στο θέμα Ασυνεπής χρήση κεφαλαίων ονομάτων σχημάτων.
  • Διφορούμενα σφάλματα στήλης των οποίων η λίστα υποψηφίων περιέχει ένα :: διαχωριστικό μπορεί να προκύψουν κατά τη δέσμευση ή την ενημέρωση από το Git, ακόμη και όταν δεν υπάρχει πραγματική ασάφεια. Για περισσότερες πληροφορίες και λύσεις, ανατρέξτε στο θέμα Διφορούμενα σφάλματα στηλών με διπλότυπα υποψήφια αντικείμενα.

Μη υποστηριζόμενα σενάρια

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

Σε όλα αυτά τα σενάρια, εάν παρουσιαστεί ασυμφωνία συρραφής, χρησιμοποιήστε τη δέσμη ενεργειών Python scripts/dw-collation-error-update-tmsl/pbi_interactive.py στο αποθετήριο Fabric εργαλειοθήκης GitHub για να ενημερώσετε τη συρραφή συνόλου δεδομένων (TMSL) ώστε να ταιριάζει με τη συρραφή αποθήκης.

Σενάριο Περιγραφή Κίνδυνος
Διοχετεύσεις ανάπτυξης Η προώθηση περιεχομένου αποθήκης μέσω σταδίων διοχέτευσης (για παράδειγμα, Dev → Test → Prod) όπου η αποθήκη προορισμού δημιουργήθηκε με διαφορετική συρραφή από την προέλευση δεν υποστηρίζεται. Η ανάπτυξη μπορεί να είναι επιτυχής, αλλά η συρραφή συνόλου δεδομένων δεν ενημερώνεται ώστε να ταιριάζει με τη συρραφή αποθήκης προορισμού.
Επέκταση σε νέο ή υπάρχοντα χώρο εργασίας Η χρήση της ενοποίησης Git για διακλάδωση από έναν υπάρχοντα χώρο εργασίας σε έναν νέο ή υπάρχοντα χώρο εργασίας όπου η αποθήκη έχει διαφορετική συρραφή δεν υποστηρίζεται. Το περιεχόμενο της αποθήκης συγχρονίζεται, αλλά τα μετα-δεδομένα συρραφής δεν συμφωνούνται.
Εναλλαγή κλάδων σε έναν χώρο εργασίας Η μετάβαση σε μια διακλάδωση που συσχετίστηκε με μια αποθήκη διαφορετικής συρραφής σε έναν χώρο εργασίας συνδεδεμένο με το Git δεν υποστηρίζεται. Το συγχρονισμένο περιεχόμενο μπορεί να μεταφέρει υποθέσεις συρραφής που δεν ταιριάζουν με την τρέχουσα αποθήκη.
Συγχώνευση αλλαγών μεταξύ χώρων εργασίας μέσω διακλαδώσεων Η συγχώνευση κλάδων Git σε χώρους εργασίας όπου οι αποθήκες έχουν διαφορετικές συρραφές δεν υποστηρίζεται. Η συγχώνευση μπορεί να είναι επιτυχής σε επίπεδο Git, αλλά η συρραφή του συνόλου δεδομένων που προκύπτει δεν αντικατοπτρίζει τη συρραφή της αποθήκης προορισμού.

Επόμενο βήμα