Βοηθητικά προγράμματα βιβλιοθήκης μεταβλητών NotebookUtils για το Fabric

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

Ο παρακάτω πίνακας παραθέτει τις διαθέσιμες μεθόδους βιβλιοθήκης μεταβλητών:

Μέθοδος Υπογραφή Περιγραφή
getLibrary getLibrary(variableLibraryName: String): VariableLibrary Ανακτά ένα αντικείμενο μεταβλητής βιβλιοθήκης. Πρόσβαση σε μεταβλητές ως ιδιότητες στο αντικείμενο που επιστρέφεται, όπως library.variableName. Μπορείτε να χρησιμοποιήσετε getVariable('name') σύνταξη ή σύνταξη library['name'] αγκύλης για δυναμική πρόσβαση.
get get(variableReference: String): Any Ανακτά μια τιμή μεμονωμένης μεταβλητής από τη διαδρομή αναφοράς της στη μορφή $(/**/libraryName/variableName). Το /**/ πρόθεμα είναι υποχρεωτικό. Η τιμή πληκτρολογείται αυτόματα με βάση τον ορισμό της μεταβλητής.

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

Ορίστε τις μεταβλητές στη βιβλιοθήκη μεταβλητών σας πριν χρησιμοποιήσετε το notebookutils.variableLibrary. Μπορείτε να δημιουργήσετε και να διαχειριστείτε βιβλιοθήκες μεταβλητών μέσω του περιβάλλοντος εργασίας χρήστη Fabric.

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

Ανάκτηση βιβλιοθήκης μεταβλητών

Χρησιμοποιείται για getLibrary() την ανάκτηση ολόκληρης της βιβλιοθήκης ως αντικείμενο και, στη συνέχεια, για την πρόσβαση σε μεταβλητές ως ιδιότητες. Χρησιμοποιήστε getVariable('name') σύνταξη library['name'] ή σύνταξη παρένθεσης όταν χρειάζεστε δυναμική πρόσβαση.

samplevl = notebookutils.variableLibrary.getLibrary("sampleVL")

# Property access
samplevl.test_int
samplevl.test_str

# Method access (useful for dynamic variable names)
samplevl.getVariable("test_int")

# Bracket access
samplevl["test_int"]

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

samplevl = notebookutils.variableLibrary.getLibrary("sampleVL")

file_path = f"abfss://{samplevl.Workspace_name}@onelake.dfs.fabric.microsoft.com/{samplevl.Lakehouse_name}.Lakehouse/Files/<FileName>.csv"
df = spark.read.format("csv").option("header","true").load(file_path)

display(df)

Πρόσβαση σε μία μόνο μεταβλητή με αναφορά

Χρησιμοποιήστε τη get() μέθοδο με το μοτίβο $(/**/libraryName/variableName) αναφοράς για να ανακτήσετε μία τιμή μεταβλητής. Η τιμή πληκτρολογείται αυτόματα με βάση τον ορισμό της μεταβλητής.

Σημαντικό

Το /**/ πρόθεμα απαιτείται στο μοτίβο αναφοράς. Το πλήρες μοτίβο πρέπει να είναι $(/**/libraryName/variableName), όπου libraryName είναι το ακριβές όνομα στοιχείου βιβλιοθήκης μεταβλητής και variableName είναι η καθορισμένη μεταβλητή σε αυτήν τη βιβλιοθήκη. Τα ονόματα κάνουν διάκριση πεζών-κεφαλαίων.

notebookutils.variableLibrary.get("$(/**/samplevl/test_int)")
notebookutils.variableLibrary.get("$(/**/samplevl/test_str)")
notebookutils.variableLibrary.get("$(/**/samplevl/test_bool)")

Υποστηριζόμενοι τύποι μεταβλητών

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

Τύπος Περιγραφή Παράδειγμα
Σειρά Τιμές κειμένου. "my_connection_string"
Ακέραιος Ακέραιοι αριθμοί. 42
Boolean Δυαδικό αληθές/λάθος. true
Number Δεκαδικοί αριθμοί. 3.14
DateTime Τιμές ημερομηνίας και ώρας σε μορφότυπο ISO 8601. "2025-01-15T08:30:00Z"
Guid Καθολικά μοναδικά αναγνωριστικά. "123e4567-e89b-12d3-a456-426614174000"
Αναφορά στοιχείου Αναφορές σε υποστηριζόμενα είδη Fabric. "workspace/item"

Διαμόρφωση για συγκεκριμένο περιβάλλον

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

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

# These values change based on the active value set (dev/test/prod)
app_config = notebookutils.variableLibrary.getLibrary("app_config")

api_endpoint = app_config.api_endpoint
batch_size = app_config.batch_size
debug_mode = app_config.debug_enabled

print(f"API Endpoint: {api_endpoint}")
print(f"Batch Size: {batch_size}")
print(f"Debug Mode: {debug_mode}")

if debug_mode:
    print("Running in debug mode")

Εκτιμήσεις

Λάβετε υπόψη αυτές τις σκέψεις:

  • Το notebookutils.variableLibrary API υποστηρίζει πρόσβαση μόνο σε βιβλιοθήκες μεταβλητών εντός του ίδιου χώρου εργασίας. Η πρόσβαση μεταξύ χώρων εργασίας δεν υποστηρίζεται.
  • Δεν μπορείτε να ανακτήσετε βιβλιοθήκες μεταβλητών σε χώρους εργασίας σε θυγατρικά σημειωματάρια κατά τη διάρκεια μιας εκτέλεσης αναφοράς.
  • Ο κώδικας σημειωματάριου αναφέρεται στις μεταβλητές που ορίζονται στο ενεργό σύνολο τιμών της βιβλιοθήκης μεταβλητών. Για να χρησιμοποιήσετε διαφορετικές τιμές, ενεργοποιήστε ένα διαφορετικό σύνολο τιμών στον χώρο εργασίας ή χρησιμοποιήστε διοχετεύσεις ανάπτυξης για να διαχειριστείτε σύνολα τιμών για κάθε περιβάλλον.
  • Η Κύρια υπηρεσία (SPN) δεν υποστηρίζεται προς το παρόν για μεταβλητά βοηθητικά προγράμματα βιβλιοθήκης.
  • Οι βιβλιοθήκες μεταβλητών είναι μόνο για ανάγνωση από σημειωματάρια. Κάντε αλλαγές μέσω του περιβάλλοντος εργασίας χρήστη ή των API του Fabric.
  • Κάθε βιβλιοθήκη υποστηρίζει έως και 1.000 μεταβλητές και 1.000 σύνολα τιμών, με μέγιστο αριθμό 10.000 κελιών και όριο μεγέθους 1 MB.
  • Τα ονόματα μεταβλητών και βιβλιοθηκών κάνουν διάκριση πεζών-κεφαλαίων. Χρησιμοποιήστε την ακριβή αντιστοίχιση ονόματος όταν αναφέρετε μεταβλητές.

Συμβουλή

Χρησιμοποιήστε διοχετεύσεις ανάπτυξης για να ενεργοποιήσετε αυτόματα το κατάλληλο σύνολο τιμών για κάθε στάδιο (dev, test, prod). Αυτό εξαλείφει την ανάγκη μη αυτόματης εναλλαγής συνόλων τιμών ή τροποποίησης κώδικα κατά την προώθηση σημειωματαρίων σε περιβάλλοντα.