Генератор UUID Версії 7 (Unix Epoch Time)

Генеруйте UUID з Unix-тимчасовими мітками з точністю до мілісекунди для сортування за часом

Спробуйте ці приклади:

Що таке UUID v7?

UUID версії 7 це впорядкований за часом 128-бітний ідентифікатор, визначений у RFC 9562, опублікованому в травні 2024 року. Він складається з:

  • Unix-таймштамп: 48 бітів Unix-часу з точністю до мілісекунди
  • Випадкові дані: 74 біта криптографічно стійких випадкових даних
  • Біти версії та варіанта: 6 бітів для ідентифікації формату

Приклад формату: 017f22e2-79b0-7cc3-98c4-dc0c0c07398f

Як працює UUID v7

  1. Отримати поточний Unix-таймштамп у мілісекундах (48 біт)
  2. Згенерувати 74 біта криптографічно стійких випадкових даних
  3. Встановити біти версії в 0111 (версія 7)
  4. Встановити біти варіанта в 10 (стандарт RFC 4122)
  5. Зібрати як 32 шістнадцяткові цифри з дефісами: формат 8-4-4-4-12

Переваги та зауваження

AdvantagesConsiderations
  • Лексикографічно сортується
  • Не містить вбудованої MAC-адреси
  • Вбудований Unix-таймштамп
  • Спрощено для баз даних
  • Системи повинні підтримувати UUID v7
  • Обмежена роздільна здатність таймштампа (мс)
  • Обмежена підтримка в застарілих системах
  • Неможливо перейти до часу до 1970 року

Структура UUID v7

BitsContent
0-47Unix-таймштамп (мілісекунди)
48-51Версія (0111 для v7)
52-63Випадкові дані
64-65Варіант (10 для RFC4122)
66-127Випадкові дані

UUID v7 порівняно з іншими версіями

VersionНа основіСценарій використанняPrivacy
UUID v1Час + MACІдентифікатори, впорядковані за часом⚠️ Розкриває MAC
UUID v3Простір імен + MD5Детерміновані ідентифікатори✅ Приватні
UUID v4RandomБезпечні випадкові ідентифікатори✅ Приватні
UUID v5Простір імен + SHA-1Детерміновані ідентифікатори✅ Приватні
UUID v6Час (перепорядкований)Ідентифікатори, що сортуються⚠️ Розкриває MAC
UUID v7Час + випадкові даніІдентифікатори, що сортуютьсяВбудовує час генерації; без MAC-адреси

Поширені випадки використання

  • Первинні ключі в базі даних: Ефективні індекси
  • Розподілені системи: Впорядковані за часом без координації
  • Сучасні застосунки: Ідентифікатори з орієнтацією на конфіденційність
  • Microservices: Сортувані ідентифікатори між сервісами
  • Event sourcing: Хронологічні ідентифікатори подій
  • Сховище даних (Data warehousing): Аналітичні ідентифікатори, впорядковані за часом

Поширені запитання

Яка перевага UUID v7 порівняно з v1 або v6?

UUID v7 використовує Unix-таймштамп у мілісекундах і випадкові дані замість MAC-адрес, забезпечуючи захист конфіденційності та зберігаючи можливість сортування за часом генерації.

Чи є UUID v7 офіційним стандартом?

Так. UUID v7 визначено в RFC 9562, опублікованому в травні 2024 року.

Чи можу я витягти час створення з UUID v7?

Так. Unix-таймштамп у мілісекундах можна витягти з перших 48 бітів і конвертувати у стандартний datetime.

Чи відсортовані UUID v7 за часом створення?

Так. UUID v7 спроектовано так, щоб він був лексикографічно сортуваним: Unix-таймштамп займає найбільш значущі біти, що дозволяє порівняння рядків відповідати хронологічному порядку.

Чи розкриває UUID v7 якусь системну інформацію?

UUID v7 не містить вбудованої MAC-адреси, але його перші 48 біт показують таймштамп генерації в мілісекундах. Слід вважати, що ці часові метадані видимі будь-кому, хто отримує ідентифікатор.

Resources