Αναφορές μεταβλητών σε μια ροή δεδομένων

Σημείωμα

Αυτό το άρθρο εστιάζει σε μια αρχιτεκτονική λύσης από αρχιτεκτονικές λύσεων CI/CD και ALM (Application Lifecycle Management) για το Dataflow Gen2 που βασίζεται στην ενοποίηση των βιβλιοθηκών μεταβλητών και ισχύει μόνο για το Dataflow Gen2 με υποστήριξη CI/CD.

Οι βιβλιοθήκες μεταβλητών Fabric στο Dataflow Gen2 επιτρέπουν την κεντρική, επαναχρησιμοποιήσιμη διαχείριση ρύθμισης παραμέτρων σε όλα τα περιβάλλοντα. Με την αναφορά μεταβλητών απευθείας στις δέσμες ενεργειών ροής δεδομένων σας, μπορείτε να προσαρμόσετε δυναμικά τη συμπεριφορά χωρίς τιμές εσωτερικής κωδικοποίησης, κάτι που είναι ιδανικό για ροές εργασιών CI/CD. Αυτή η ενοποίηση απλοποιεί την ανάπτυξη σε όλα τα στάδια, επιτρέποντας την εισαγωγή τιμών για συγκεκριμένους χώρους εργασίας (όπως Lakehouse ή αναγνωριστικά χώρου εργασίας) κατά τον χρόνο εκτέλεσης, καθιστώντας τις ροές δεδομένων σας πιο προσαρμόσιμες και διατηρήσιμες.

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

  • Ορισμός μεταβλητών: Χρήση των βιβλιοθηκών μεταβλητών Fabric και των διακριτών τύπων δεδομένων τους
  • Προέλευση βάσει μεταβλητών: Χρήση ενός Lakehouse με το δείγμα συνόλου δεδομένων WideWorldImpoters ως προέλευση
  • Λογική βάσει μεταβλητών: Χρήση των γραφικών στοιχείων εισόδου που είναι διαθέσιμα σε όλη την εμπειρία ροής δεδομένων
  • Προορισμός βάσει μεταβλητών: Χρήση αποθήκης ως προορισμού

Διάγραμμα μιας αρχιτεκτονικής λύσης που χρησιμοποιεί αναφορές μεταβλητών στο Dataflow Gen2.

Σημείωμα

Οι έννοιες που παρουσιάζονται σε αυτό το άρθρο είναι καθολικές για το Dataflow Gen2 και ισχύουν για άλλες προελεύσεις και προορισμούς πέρα από αυτούς που εμφανίζονται εδώ.

Το σενάριο

Στιγμιότυπο οθόνης του ερωτήματος με το όνομα dimension_city για το σενάριο μέσα στο Dataflow Gen2.

Η ροή δεδομένων που χρησιμοποιείται σε αυτό το σενάριο είναι απλή, αλλά οι βασικές αρχές που περιγράφονται ισχύουν για όλους τους τύπους ροών δεδομένων. Συνδέεται με τον πίνακα με το όνομα dimension_city από το δείγμα συνόλου δεδομένων Wide World Importers που είναι αποθηκευμένο σε ένα Lakehouse. Φιλτράρει τις γραμμές όπου η στήλη SalesTerritory ισούται με Νοτιοανατολικά και φορτώνει το αποτέλεσμα σε έναν νέο πίνακα που ονομάζεται Πόλη σε μια αποθήκη. Όλα τα στοιχεία—το Lakehouse, η Αποθήκη και η Ροή δεδομένων—βρίσκονται στον ίδιο χώρο εργασίας. Για να κάνετε τη ροή δεδομένων δυναμική, χρησιμοποιείτε μεταβλητές για να καθοδηγήσετε τον πίνακα προέλευσης, την τιμή φίλτρου και τον πίνακα προορισμού. Αυτές οι αλλαγές επιτρέπουν στη ροή δεδομένων να εκτελείται με τιμές αποθηκευμένες σε βιβλιοθήκες μεταβλητών Fabric αντί για ενσωματωμένες στον κώδικα.

Ορισμός μεταβλητών

Σημείωμα

Βεβαιωθείτε ότι έχετε ενεργοποιήσει τις βιβλιοθήκες μεταβλητών Fabric για τον οργανισμό ή την ομάδα ασφαλείας σας. Μάθετε περισσότερα σχετικά με το πώς μπορείτε να ξεκινήσετε με τις βιβλιοθήκες μεταβλητών.

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

Όνομα μεταβλητής Δακτυλογραφώ Σκοπός
WorkspaceId Guid Χρησιμοποιείται για τις δέσμες ενεργειών προέλευσης δεδομένων και προορισμού στη ροή δεδομένων
LakehouseId Guid Καθορίζει το αναγνωριστικό του Lakehouse που χρησιμοποιείται ως προέλευση
Αναγνωριστικό αποθήκης Guid Καθορίζει το αναγνωριστικό της Αποθήκης που χρησιμοποιείται ως προορισμός
Έδαφος Συμβλοσειρά Ορίζει την τιμή που θα πρέπει να χρησιμοποιηθεί για την καθοδήγηση της λογικής φίλτρου στη ροή δεδομένων

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

Στιγμιότυπο οθόνης των βιβλιοθηκών μεταβλητών Fabric που μόλις δημιουργήσατε με μεταβλητές WorkspaceId, LakehouseId, WarehouseId και Territory.

Πηγή βάσει μεταβλητών

Όταν χρησιμοποιείτε οποιαδήποτε από τις συνδέσεις Fabric, όπως Lakehouse, Warehouse ή Fabric SQL, όλες ακολουθούν την ίδια δομή περιήγησης και χρησιμοποιούν την ίδια μορφή εισόδου. Σε αυτό το σενάριο, καμία από τις υποδοχές δεν απαιτεί μη αυτόματη εισαγωγή για τη δημιουργία σύνδεσης. Ωστόσο, κάθε μία εμφανίζει τον χώρο εργασίας και το στοιχείο με τα οποία συνδέεται μέσω των βημάτων περιήγησης στο ερώτημά σας. Για παράδειγμα, το πρώτο βήμα περιήγησης περιλαμβάνει το workspaceId με το οποίο συνδέεται το ερώτημα.

Στιγμιότυπο οθόνης του βήματος Περιήγηση 1 με την τιμή workspaceId στη γραμμή τύπων για το ερώτημα dimension_city.

Ο στόχος είναι να αντικαταστήσετε τις ενσωματωμένες τιμές στη γραμμή τύπων με μεταβλητές. Συγκεκριμένα, θέλετε να χρησιμοποιήσετε τις μεταβλητές WorkspaceId και LakehouseId για να οδηγήσετε αυτήν τη λογική. Πρώτα, πρέπει να φέρετε αυτές τις μεταβλητές στη ροή δεδομένων Gen2. Μια προτεινόμενη προσέγγιση είναι να δημιουργήσετε ερωτήματα για κάθε ξεχωριστή μεταβλητή για να συγκεντρώσετε και να διαχειριστείτε εύκολα τυχόν μεταβλητές που σκοπεύετε να χρησιμοποιήσετε. Για να το κάνετε αυτό, δημιουργήστε ένα κενό ερώτημα μεταβαίνοντας στην καταχώρηση Λήψη δεδομένων στην κορδέλα και επιλέγοντας την επιλογή Κενό ερώτημα από το αναπτυσσόμενο μενού.

Στιγμιότυπο οθόνης της καταχώρησης στη Λήψη δεδομένων στην Κεντρική καρτέλα για να δημιουργήσετε ένα κενό ερώτημα.

Αυτή η επιλογή φέρνει ένα νέο παράθυρο διαλόγου όπου μπορείτε να δείτε το κενό ερώτημα που δημιουργείται. Μπορείτε να επιλέξετε OK για να φέρετε αυτό το νέο κενό ερώτημα.

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

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

Variable.ValueOrDefault("$(/**/My Library/WorkspaceId)", "Your Workspace ID")

Αυτό το σενάριο είναι βασικά αυτό που μπορεί να καθορίσει ποια βιβλιοθήκη και μεταβλητή θα ανακτήσει. Το δεύτερο όρισμα της Variable.ValueOrDefault συνάρτησης καθορίζει ποια τιμή θα δοθεί όταν δεν είναι δυνατή η λήψη μιας μεταβλητής.

Σημείωμα

Βεβαιωθείτε ότι έχετε αντικαταστήσει τη συμβολοσειρά "Your Workspace ID", το δεύτερο όρισμα της συνάρτησης, με τη δική σας αντίστοιχη τιμή στο περιβάλλον σας και αποθηκεύστε το ερώτημα.

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

Variable.ValueOrDefault("$(/**/My Library/LakehouseId)", "Your Lakehouse ID")

Σημείωμα

Βεβαιωθείτε ότι έχετε αντικαταστήσει τη συμβολοσειρά "Your Lakehouse ID", το δεύτερο όρισμα της συνάρτησης, με τη δική σας αντίστοιχη τιμή στο περιβάλλον σας και αποθηκεύστε το ερώτημα.

Στιγμιότυπο οθόνης που εμφανίζει ένα ερώτημα που δημιουργήθηκε πρόσφατα με το όνομα LakehouseId και WorkspaceId.

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

let
  Source = Lakehouse.Contents([]),
  #"Navigation 1" = Source{[workspaceId = "8b325b2b-ad69-4103-93ae-d6880d9f87c6"]}[Data],
  #"Navigation 2" = #"Navigation 1"{[lakehouseId = "2455f240-7345-4c8b-8524-c1abbf107d07"]}[Data],
  #"Navigation 3" = #"Navigation 2"{[Id = "dimension_city", ItemKind = "Table"]}[Data],
  #"Filtered rows" = Table.SelectRows(#"Navigation 3", each ([SalesTerritory] = "Southeast")),
  #"Removed columns" = Table.RemoveColumns(#"Filtered rows", {"ValidFrom", "ValidTo", "LineageKey"})
in
  #"Removed columns"

Αφού ενημερώσετε τις αναφορές στα βήματα περιήγησης, το νέο ενημερωμένο σενάριο μπορεί να μοιάζει με αυτό:

let
  Source = Lakehouse.Contents([]),
  #"Navigation 1" = Source{[workspaceId = WorkspaceId]}[Data],
  #"Navigation 2" = #"Navigation 1"{[lakehouseId = LakehouseId]}[Data],
  #"Navigation 3" = #"Navigation 2"{[Id = "dimension_city", ItemKind = "Table"]}[Data],
  #"Filtered rows" = Table.SelectRows(#"Navigation 3", each ([SalesTerritory] = "Southeast")),
  #"Removed columns" = Table.RemoveColumns(#"Filtered rows", {"ValidFrom", "ValidTo", "LineageKey"})
in
  #"Removed columns"

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

Στιγμιότυπο οθόνης με ερωτήματα WorkspaceId και LakehouseId που αναφέρονται στο ερώτημα dimension_city.

Λογική που βασίζεται σε μεταβλητές

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

Variable.ValueOrDefault("$(/**/My Library/Territory)", "Mideast")

Στιγμιότυπο οθόνης του ερωτήματος Territory που δημιουργήθηκε στη ροή δεδομένων.

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

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

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

Στιγμιότυπο οθόνης του ερωτήματος Territory που έχει επιλεγεί μέσα στο widget εισόδου από το παράθυρο διαλόγου filter rows.

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

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

Προορισμός βάσει μεταβλητών

Σημείωμα

Συνιστάται να εξοικειωθείτε με την έννοια των προορισμών δεδομένων στο Dataflow Gen2 και τον τρόπο δημιουργίας της δέσμης ενεργειών συνδυασμού δεδομένων από το άρθρο σχετικά με τους προορισμούς δεδομένων και τις διαχειριζόμενες ρυθμίσεις

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

Στιγμιότυπο οθόνης του αναδυόμενου στοιχείου που περιέχει τις ρυθμίσεις προορισμού δεδομένων για το ερώτημα dimension_city.

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

Variable.ValueOrDefault("$(/**/My Library/WarehouseId)", "Your Warehouse ID")

Σημείωμα

Βεβαιωθείτε ότι έχετε αντικαταστήσει τη συμβολοσειρά "Your Warehouse ID", το δεύτερο όρισμα της συνάρτησης, με τη δική σας αντίστοιχη τιμή στο περιβάλλον σας και αποθηκεύστε το ερώτημα.

Στιγμιότυπο οθόνης όλων των ερωτημάτων στη ροή δεδομένων, συμπεριλαμβανομένου του ερωτήματος WarehouseId που μόλις δημιουργήσατε.

Σημαντικό

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

Ενεργοποίηση επεξεργασίας για προχωρημένους για ερωτήματα προορισμού δεδομένων

Για να τροποποιήσετε το ερώτημα προορισμού απευθείας στο πρόγραμμα επεξεργασίας ροής δεδομένων, πρέπει πρώτα να ενεργοποιήσετε τη δυνατότητα επεξεργασίας για προχωρημένους:

  1. Επιλέξτε Επιλογές από την Κεντρική καρτέλα στην κορδέλα.

  2. Στο παράθυρο διαλόγου Επιλογές , κάντε κύλιση προς τα κάτω στην ενότητα Προορισμοί δεδομένων .

  3. Επιλέξτε το πλαίσιο ελέγχου για Ενεργοποίηση επεξεργασίας για προχωρημένους για ερωτήματα προορισμού δεδομένων.

  4. Εμφανίζεται ένα παράθυρο διαλόγου προειδοποίησης που εξηγεί ότι η τροποποίηση ερωτημάτων προορισμού μπορεί να προκαλέσει απροσδόκητη συμπεριφορά ή να διακόψει τη ροή δεδομένων. Διαβάστε προσεκτικά την προειδοποίηση και επιλέξτε OK για επιβεβαίωση.

  5. Επιλέξτε OK για να κλείσετε το παράθυρο διαλόγου Επιλογές.

Τροποποίηση του ερωτήματος προορισμού

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

  1. Στο τμήμα παραθύρου Ερωτήματα , εντοπίστε την ενότητα προορισμού δεδομένων που εμφανίζει τους ρυθμισμένους προορισμούς σας.

  2. Κάντε δεξί κλικ στο ερώτημα προορισμού με το όνομα dimension_city.

  3. Από το μενού περιβάλλοντος, επιλέξτε Προηγμένο πρόγραμμα επεξεργασίας.

Το ερώτημα προορισμού έχει την εξής μορφή:

let
  Pattern = Fabric.Warehouse([HierarchicalNavigation = null, CreateNavigationProperties = false]),
  Navigation_1 = Pattern{[workspaceId = "8b325b2b-ad69-4103-93ae-d6880d9f87c6"]}[Data],
  Navigation_2 = Navigation_1{[warehouseId = "527ba9c1-4077-433f-a491-9ef370e9230a"]}[Data],
  TableNavigation = Navigation_2{[Item = "City", Schema = "dbo"]}?[Data]?
in
  TableNavigation

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

let
  Pattern = Fabric.Warehouse([HierarchicalNavigation = null, CreateNavigationProperties = false]),
  Navigation_1 = Pattern{[workspaceId = WorkspaceId]}[Data],
  Navigation_2 = Navigation_1{[warehouseId = WarehouseId]}[Data],
  TableNavigation = Navigation_2{[Item = "City", Schema = "dbo"]}?[Data]?
in
  TableNavigation

Επιλέξτε OK για να αποθηκεύσετε τις αλλαγές σας στο προηγμένο πρόγραμμα επεξεργασίας.

Σημαντικό

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

Τώρα μπορείτε να εκτελέσετε τη ροή δεδομένων σας, η οποία χρησιμοποιεί τιμές από βιβλιοθήκες μεταβλητών.