Хранение данных с датчиков. Как формировать UUID?

История появления вопроса. База PostgreSQL. Полетел сервер на малинке где хранилась информация с датчиков температуры, влажности и других. Кое как вытащил дамп с флешки, но там не оказалось данных за пол месяца. Восстановил, залил, запустил. Потом оказалось, что данные я всё-таки бекапил через Adminer и сохранился большой объём данных (13 дней из 14+). Пришлось играться с Autoincrement, раздвинуть диапазон, чтобы нужный участок влез, залить дамп. И тут возникла идея, поскольку формат базы я могу менять - сменить ID типа autoincrement на uuid на базе timestamp и id устройства. Кто-нибудь решал подобную задачу? Есть уже готовое обоснованное решение?
P.S. Больше не код интересует, а теория по хранению такого типа данных и использованию UUID. Всё в контексте СУБД, конкретно PostgreSQL.
  • Вопрос задан
  • 165 просмотров
Пригласить эксперта
Ответы на вопрос 3
Melkij
@Melkij
PostgreSQL DBA
Зачем? Если вы хотите генерировать uuid на базе - возьмите сразу sequence. Нет причин использовать uuid в этом случае, а неприятные побочные эффекты будут.

Пришлось играться с Autoincrement, раздвинуть диапазон, чтобы нужный участок влез

Зачем?
Взяли данные и вставили данные сгенерировав новые sequence. sequence даёт гарантированно уникальные значения.
Ответ написан
Комментировать
@Seedor
Ну есть же штатные средства для этого
https://postgrespro.ru/docs/postgresql/9.6/datatyp...

Брать и использовать.)
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
Совершенно нет никакой мотивации к использованию uuid.

Uuid используется в распределенных мессенжинговых системах где принципиально невозможно обоспечить единый счётчик.

В случае автора - лучше просто работая арифметикой загрузить нужные данные без конфликтов ключей. И сэкономить ценное место.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы