Τι είναι το UUID v7;

Το UUID v7 είναι η νεότερη έκδοση των Universally Unique Identifiers που ορίζεται στο RFC 9562. Σε αντίθεση με παλαιότερες εκδόσεις όπως το UUID v4 (καθαρά τυχαίο) ή το UUID v1 (χρησιμοποιεί διεύθυνση MAC), το UUID v7 ενσωματώνει ένα 48-bit timestamp Unix Epoch σε milliseconds απευθείας μέσα στο αναγνωριστικό. Αυτό καθιστά τις τιμές UUID v7 φυσικά ταξινομήσιμες κατά χρόνο δημιουργίας — ένα σημαντικό πλεονέκτημα για την ευρετηρίαση βάσεων δεδομένων, τα κατανεμημένα συστήματα και την καταγραφή συμβάντων όπου η χρονολογική σειρά έχει σημασία.

Επειδή το UUID v7 δεν ενσωματώνει διευθύνσεις MAC, αποφεύγει τις ανησυχίες απορρήτου που σχετίζονται με το UUID v1. Τα υπόλοιπα bits μετά το timestamp και τα πεδία έκδοσης/παραλλαγής συμπληρώνονται με τυχαία ή μονοτονικά δεδομένα, διασφαλίζοντας μοναδικότητα ακόμα και όταν πολλαπλά UUID δημιουργούνται μέσα στο ίδιο millisecond.

Πώς κατασκευάζεται το UUID v7

Ένα UUID v7 αποτελείται από 128 bits οργανωμένα ως εξής:

  • Bits 0–47: Ένα 48-bit big-endian unsigned timestamp Unix Epoch σε milliseconds
  • Bits 48–51: Το 4-bit πεδίο έκδοσης, ορισμένο σε 0111 (7)
  • Bits 52–63: 12 bits τυχαίων ή μονοτονικών δεδομένων για ακρίβεια υπο-millisecond ή μοναδικότητα
  • Bits 64–65: Το 2-bit πεδίο παραλλαγής, ορισμένο σε 10 (RFC 9562)
  • Bits 66–127: 62 bits τυχαίων ή μονοτονικών δεδομένων για πρόσθετη μοναδικότητα

Αυτή η δομή σημαίνει ότι τα UUID που δημιουργούνται αργότερα στο χρόνο θα ταξινομούνται πάντα μετά από τα παλαιότερα σε επίπεδο millisecond, καθιστώντας τα ιδανικά ως primary keys σε βάσεις δεδομένων με B-tree ευρετήριο.

Περιγραφή εργαλείου

Αυτή η γεννήτρια UUID v7 δημιουργεί UUID έκδοσης 7 συμβατά με RFC 9562 με οπτική ανάλυση του ενσωματωμένου timestamp. Δημιουργήστε ένα ή έως 100 UUID ταυτόχρονα, εναλλάξτε μεταξύ μορφοποίησης κεφαλαίων και πεζών χαρακτήρων, και επιλέξτε αν θα συμπεριληφθούν παύλες. Το εργαλείο εξάγει και εμφανίζει επίσης το ενσωματωμένο timestamp Unix Epoch από το πρώτο UUID που δημιουργήθηκε, επιτρέποντάς σας να επαληθεύσετε τον χρόνο δημιουργίας που κωδικοποιείται σε κάθε αναγνωριστικό.

Παραδείγματα

Μορφή Παράδειγμα εξόδου
Τυπική 019544a2-3b4c-7d8e-9f01-2a3b4c5d6e7f
Κεφαλαία 019544A2-3B4C-7D8E-9F01-2A3B4C5D6E7F
Χωρίς παύλες 019544a23b4c7d8e9f012a3b4c5d6e7f

Χαρακτηριστικά

  • Μαζική δημιουργία: Δημιουργία 1 έως 100 τιμών UUID v7 ταυτόχρονα με ρυθμιστικό ποσότητας
  • Εναλλαγή κεφαλαίων: Εναλλαγή μεταξύ εξόδου με πεζούς και κεφαλαίους χαρακτήρες
  • Εναλλαγή παυλών: Συμπερίληψη ή αφαίρεση παυλών για συμπαγείς μορφές
  • Εξαγωγή timestamp: Αυτόματη εμφάνιση του ενσωματωμένου timestamp Unix Epoch από το δημιουργημένο UUID
  • Υποστήριξη λήψης: Εξαγωγή των δημιουργημένων UUID ως αρχείο κειμένου για μαζική χρήση

Περιπτώσεις χρήσης

  • Δημιουργία χρονολογικά ταξινομήσιμων primary keys για βάσεις δεδομένων μεγάλης κλίμακας όπου η απόδοση εισαγωγής και η τοπικότητα έχουν σημασία
  • Δημιουργία μονοτονικά αυξανόμενων αναγνωριστικών για κατανεμημένα συστήματα ροής συμβάντων όπως Kafka ή Pulsar
  • Αντικατάσταση του UUID v4 σε εφαρμογές που χρειάζονται χρονολογική σειρά χωρίς ξεχωριστή στήλη timestamp

UUID v7 έναντι άλλων εκδόσεων

Έκδοση Βασισμένο στο χρόνο Ταξινομήσιμο Ασφαλές ως προς το απόρρητο Τυχαιότητα
v1 Ναι Όχι Όχι (χρησιμοποιεί MAC) Χαμηλή
v4 Όχι Όχι Ναι Υψηλή
v6 Ναι Ναι Όχι (χρησιμοποιεί MAC) Χαμηλή
v7 Ναι Ναι Ναι Μέτρια

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

Επεξήγηση επιλογών

  • Ποσότητα (1–100): Πόσες τιμές UUID v7 θα δημιουργηθούν σε μία μαζική εκτέλεση. Όλα τα UUID σε μία παρτίδα μοιράζονται το ίδιο κατά προσέγγιση timestamp αλλά διαφέρουν στα τυχαία bits τους.
  • Κεφαλαία: Όταν είναι ενεργοποιημένο, εξάγει UUID με κεφαλαίους hex χαρακτήρες (A–F αντί για a–f).
  • Παύλες: Όταν είναι ενεργοποιημένο (προεπιλογή), τα UUID περιλαμβάνουν την τυπική ομαδοποίηση παυλών 8-4-4-4-12. Απενεργοποιήστε για συμπαγές hex string 32 χαρακτήρων.

Συχνές ερωτήσεις

Μπορεί το UUID v7 να προκαλέσει σύγκρουση; Οι συγκρούσεις είναι εξαιρετικά απίθανες. Ακόμα και μέσα στο ίδιο millisecond, τα 74 bits τυχαίων/μονοτονικών δεδομένων παρέχουν πάνω από 18 quintillion πιθανούς συνδυασμούς. Η βιβλιοθήκη uuid χρησιμοποιεί επίσης μονοτονικούς μετρητές για να εγγυηθεί μοναδικότητα εντός μιας διεργασίας.

Είναι το UUID v7 συμβατό προς τα πίσω με το UUID v4; Ναι. Το UUID v7 ακολουθεί την ίδια μορφή 128-bit, 8-4-4-4-12 και είναι έγκυρο παντού όπου γίνονται αποδεκτά UUID. Οι υπάρχουσες στήλες UUID, οι αναλυτές και οι επικυρωτές λειτουργούν χωρίς τροποποίηση.

Πότε πρέπει να χρησιμοποιώ UUID v7 αντί για UUID v4; Χρησιμοποιήστε UUID v7 όταν η περίπτωση χρήσης σας ωφελείται από χρονολογικά ταξινομημένα keys — για παράδειγμα, ως primary keys βάσης δεδομένων όπου η απόδοση του B-tree ευρετηρίου βελτιώνεται με διαδοχικές εισαγωγές. Χρησιμοποιήστε UUID v4 όταν η σειρά είναι άσχετη και θέλετε μέγιστη τυχαιότητα.