Περιβάλλον χρόνου εκτέλεσης NotebookUtils για το Fabric

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

Χρησιμοποιήστε το περιβάλλον χρόνου εκτέλεσης για:

  • Δυναμική διαμόρφωση – Προσαρμόστε τη συμπεριφορά του σημειωματάριου με βάση το περιβάλλον εκτέλεσης.
  • Λογική υπό όρους – Λογική διακλάδωσης ανάλογα με το αν το σημειωματάριο εκτελείται σε διοχέτευση ή αλληλεπιδραστικά.
  • Εντοπισμός σφαλμάτων και παρακολούθηση – Συμπεριλάβετε ιδιότητες περιβάλλοντος στην έξοδο του αρχείου καταγραφής και συσχετίστε τις σχετικές εκτελέσεις.
  • Ίχνη ελέγχου – Καταγράψτε μεταδεδομένα εκτέλεσης για συμμόρφωση και παρακολούθηση γενεαλογίας.

Σημείωμα

Το περιβάλλον χρόνου εκτέλεσης είναι διαθέσιμο σε σημειωματάρια Python, PySpark, Scala και R. Το περιβάλλον είναι μόνο για ανάγνωση—δεν μπορείτε να τροποποιήσετε καμία από τις ιδιότητες που επιστρέφονται από notebookutils.runtime.contextτο . Ορισμένες ιδιότητες συμπληρώνονται μόνο σε συγκεκριμένα περιβάλλοντα, όπως εκτελέσεις αναφοράς ή εκτελέσεις διοχέτευσης, και διαφορετικά ενδέχεται να επιστρέψουν null ή να αδειάσουν τιμές.

Προβολή περιβάλλοντος συνεδρίας

Χρησιμοποιείται για notebookutils.runtime.context την προβολή πληροφοριών περιβάλλοντος για την τρέχουσα περίοδο λειτουργίας, συμπεριλαμβανομένου του ονόματος του σημειωματαρίου, της προεπιλεγμένης λίμνης, των πληροφοριών χώρου εργασίας και του εάν η περίοδος λειτουργίας εκτελείται σε διοχέτευση.

notebookutils.runtime.context

Ο παρακάτω πίνακας περιγράφει τις διαθέσιμες ιδιότητες.

Ιδιοκτησία Τύπος Περιγραφή Διαθεσιμότητα
currentNotebookName Συμβλοσειρά Το όνομα του τρέχοντος σημειωματαρίου. Όλα τα περιβάλλοντα
currentNotebookId Συμβλοσειρά Το μοναδικό αναγνωριστικό του τρέχοντος σημειωματαρίου. Όλα τα περιβάλλοντα
currentWorkspaceName Συμβλοσειρά Το όνομα του τρέχοντος χώρου εργασίας. Όλα τα περιβάλλοντα
currentWorkspaceId Συμβλοσειρά Το αναγνωριστικό του τρέχοντος χώρου εργασίας. Όλα τα περιβάλλοντα
defaultLakehouseName Συμβλοσειρά Το εμφανιζόμενο όνομα του προεπιλεγμένου lakehouse, εάν έχει οριστεί. Όταν είναι συνδεδεμένο το προεπιλεγμένο lakehouse
defaultLakehouseId Συμβλοσειρά Το αναγνωριστικό του προεπιλεγμένου lakehouse, εάν έχει οριστεί. Όταν είναι συνδεδεμένο το προεπιλεγμένο lakehouse
defaultLakehouseWorkspaceName Συμβλοσειρά Το όνομα του χώρου εργασίας του προεπιλεγμένου lakehouse, εάν έχει οριστεί. Όταν είναι συνδεδεμένο το προεπιλεγμένο lakehouse
defaultLakehouseWorkspaceId Συμβλοσειρά Το αναγνωριστικό χώρου εργασίας του προεπιλεγμένου lakehouse, εάν έχει οριστεί. Όταν είναι συνδεδεμένο το προεπιλεγμένο lakehouse
currentRunId Συμβλοσειρά Σε μια εκτέλεση αναφοράς, το τρέχον αναγνωριστικό εκτέλεσης. Μόνο οι εκτελέσεις αναφοράς
parentRunId Συμβλοσειρά Σε μια εκτέλεση αναφοράς με ένθετες εκτελέσεις, αυτό το αναγνωριστικό είναι το γονικό αναγνωριστικό εκτέλεσης. Η ένθετη αναφορά εκτελείται μόνο
rootRunId Συμβλοσειρά Σε μια εκτέλεση αναφοράς με ένθετες εκτελέσεις, αυτό το αναγνωριστικό είναι το αναγνωριστικό εκτέλεσης ρίζας. Η ένθετη αναφορά εκτελείται μόνο
isForPipeline Boolean Είτε η εκτέλεση είναι για αγωγό. Όλα τα περιβάλλοντα
isForInteractive Boolean Αν το τρέξιμο είναι μια διαδραστική συνεδρία. Όλα τα περιβάλλοντα
isReferenceRun Boolean Εάν η τρέχουσα εκτέλεση είναι εκτέλεση αναφοράς. Όλα τα περιβάλλοντα
referenceTreePath Συμβλοσειρά Η δομή δέντρου των ένθετων αναφορών εκτελείται, που χρησιμοποιείται μόνο για την ιεραρχία στιγμιότυπων στη σελίδα παρακολούθησης L2. Η ένθετη αναφορά εκτελείται μόνο
rootNotebookId Συμβλοσειρά Το αναγνωριστικό του ριζικού σημειωματαρίου σε μια εκτέλεση αναφοράς. Μόνο οι εκτελέσεις αναφοράς
rootNotebookName Συμβλοσειρά Το όνομα του ριζικού σημειωματαρίου σε μια εκτέλεση αναφοράς. Μόνο οι εκτελέσεις αναφοράς
rootWorkspaceId Συμβλοσειρά Το αναγνωριστικό χώρου εργασίας του ριζικού σημειωματαρίου σε μια εκτέλεση αναφοράς. Μόνο οι εκτελέσεις αναφοράς
rootWorkspaceName Συμβλοσειρά Το όνομα του χώρου εργασίας του ριζικού σημειωματαρίου σε μια εκτέλεση αναφοράς. Μόνο οι εκτελέσεις αναφοράς
activityId Συμβλοσειρά Το αναγνωριστικό εργασίας Livy για την τρέχουσα δραστηριότητα. Όλα τα περιβάλλοντα
hcReplId Συμβλοσειρά Το αναγνωριστικό REPL σε λειτουργία υψηλής ταυτόχρονης εκτέλεσης. Μόνο λειτουργία υψηλής ταυτόχρονης λειτουργίας
clusterId Συμβλοσειρά Η ταυτότητα του συμπλέγματος Synapse Spark. Όλα τα περιβάλλοντα
poolName Συμβλοσειρά Το όνομα του χώρου συγκέντρωσης Spark που χρησιμοποιείται. Όλα τα περιβάλλοντα
environmentId Συμβλοσειρά Το αναγνωριστικό περιβάλλοντος όπου εκτελείται η εργασία. Όλα τα περιβάλλοντα
environmentWorkspaceId Συμβλοσειρά Το αναγνωριστικό χώρου εργασίας του περιβάλλοντος. Όλα τα περιβάλλοντα
userId Συμβλοσειρά Το αναγνωριστικό χρήστη του τρέχοντος χρήστη. Όλα τα περιβάλλοντα
userName Συμβλοσειρά Το όνομα χρήστη του τρέχοντος χρήστη. Όλα τα περιβάλλοντα
currentKernel Συμβλοσειρά Το όνομα του τρέχοντος πυρήνα του σημειωματάριου. Μόνο σημειωματάριο Python
productType Συμβλοσειρά Το αναγνωριστικό τύπου προϊόντος (για παράδειγμα, Fabric). Όλα τα περιβάλλοντα

Παραδείγματα χρήσης

Πρόσβαση σε βασικές πληροφορίες περιβάλλοντος

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

context = notebookutils.runtime.context

print(f"Notebook: {context['currentNotebookName']}")
print(f"Workspace: {context['currentWorkspaceName']}")
print(f"Lakehouse: {context['defaultLakehouseName'] or 'None'}")

Ελέγξτε τη διοχέτευση έναντι της διαδραστικής εκτέλεσης

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

context = notebookutils.runtime.context

if context['isForPipeline']:
    print("Pipeline mode: Strict error handling")
    error_handling = "strict"
    max_retries = 3
elif context['isReferenceRun']:
    print("Running as a referenced notebook")
    error_handling = "strict"
    max_retries = 2
else:
    print("Interactive mode: Lenient error handling")
    error_handling = "lenient"
    max_retries = 1

Συμβουλή

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

Επιθεώρηση της ιεραρχίας εκτέλεσης αναφοράς

Όταν ένα σημειωματάριο εκτελείται ως μέρος μιας ένθετης εκτέλεσης αναφοράς, μπορείτε να εντοπίσετε την πλήρη ιεραρχία από την τρέχουσα εκτέλεση πίσω στη ρίζα:

context = notebookutils.runtime.context

if context['isReferenceRun']:
    print("Reference Run Context:")
    print(f"  Current Run ID: {context['currentRunId']}")
    print(f"  Parent Run ID: {context['parentRunId']}")
    print(f"  Root Run ID: {context['rootRunId']}")
    print(f"  Root Notebook: {context['rootNotebookName']}")
else:
    print("Not a reference run")

Συμπερίληψη περιβάλλοντος στην καταγραφή

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

context = notebookutils.runtime.context

run_id = context.get("currentRunId") or "interactive"
log_prefix = (
    f"[{context['currentWorkspaceName']}/{context['currentNotebookName']}]"
    f" run={run_id}"
)

print(f"{log_prefix} Processing started")