Έξυπνο cache στο Microsoft Fabric

Η δυνατότητα έξυπνης προσωρινής μνήμης λειτουργεί απρόσκοπτα στο παρασκήνιο και αποθηκεύει προσωρινά δεδομένα για να επιταχύνει την εκτέλεση εργασιών Apache Spark στο Microsoft Fabric καθώς διαβάζεται από τον χώρο αποθήκευσης OneLake ή Azure Data Lake Storage (ADLS) Gen2 μέσω συντομεύσεων. Επίσης, εντοπίζει αυτόματα τις αλλαγές στα υποκείμενα αρχεία και ανανεώνει αυτόματα τα αρχεία στην προσωρινή μνήμη, παρέχοντάς σας τα πιο πρόσφατα δεδομένα. Όταν το μέγεθος της κρυφής μνήμης φτάσει στο όριό του, η κρυφή μνήμη απελευθερώνει αυτόματα τα λιγότερο αναγνωσμένα δεδομένα για να δημιουργήσει χώρο για πιο πρόσφατα δεδομένα. Αυτή η δυνατότητα μειώνει το συνολικό κόστος ιδιοκτησίας βελτιώνοντας την απόδοση έως και 60% σε επόμενες αναγνώσεις των αρχείων που είναι αποθηκευμένα στη διαθέσιμη κρυφή μνήμη.

Όταν ο μηχανισμός Apache Spark στο Fabric υποβάλλει ερώτημα σε ένα αρχείο ή πίνακα από το lakehouse σας, πραγματοποιεί μια κλήση στον απομακρυσμένο χώρο αποθήκευσης για να διαβάσει τα υποκείμενα αρχεία. Με κάθε αίτημα ερωτήματος για ανάγνωση των ίδιων δεδομένων, ο μηχανισμός Spark πρέπει να πραγματοποιεί μια κλήση στον απομακρυσμένο χώρο αποθήκευσης κάθε φορά. Αυτή η περιττή διαδικασία προσθέτει καθυστέρηση στον συνολικό χρόνο επεξεργασίας σας. Το Spark έχει μια απαίτηση προσωρινής αποθήκευσης ότι πρέπει να ρυθμίσετε και να απελευθερώσετε με μη αυτόματο τρόπο το cache για να ελαχιστοποιήσετε τον λανθάνοντα χρόνο και να βελτιώσετε τη συνολική απόδοση. Ωστόσο, αυτή η απαίτηση μπορεί να οδηγήσει σε παλιά δεδομένα εάν αλλάξουν τα υποκείμενα δεδομένα.

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

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

Πώς λειτουργεί

Στο Fabric, η έξυπνη προσωρινή αποθήκευση είναι ενεργοποιημένη από προεπιλογή για όλους τους χώρους συγκέντρωσης Spark με μέγεθος cache 50%. Το πραγματικό μέγεθος του διαθέσιμου αποθηκευτικού χώρου και το μέγεθος της κρυφής μνήμης σε κάθε κόμβο εξαρτάται από την οικογένεια κόμβων και το μέγεθος του κόμβου.

Πότε να χρησιμοποιήσετε την έξυπνη κρυφή μνήμη

Αυτή η δυνατότητα σάς ωφελεί εάν:

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

  • Ο φόρτος εργασίας σας χρησιμοποιεί πίνακες Delta Lake, Parquet ή μορφές αρχείων CSV.

Δεν βλέπετε τα οφέλη της έξυπνης προσωρινής μνήμης εάν:

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

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

Διαμορφώστε την έξυπνη μνήμη cache

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

SET spark.synapse.vegas.useCache = TRUE

Το ποσοστό του χώρου στο δίσκο που μπορεί να χρησιμοποιήσει η έξυπνη κρυφή μνήμη είναι προεπιλεγμένο σε 50%:

SET spark.synapse.vegas.cacheSize = 50