powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Поиск: Искать ответы на сообщение: #500643  
9 сообщений из 9, страница 1 из 1
Просто Трёп / Как сделать RRD в PostgreSQL?
    #500643
Tosh
Скрыть профиль Поместить в игнор-лист
Участник
Кусь  08.08.2023, 10:17
[игнорируется]
Tosh  08.08.2023, 09:13
[игнорируется]
Тень на плетень  07.08.2023, 19:25
[игнорируется]
Кусь  07.08.2023, 13:50
[игнорируется]
Тень на плетень  07.08.2023, 13:01
[игнорируется]
...
Разбей таблицу на партиции, по дням например, и повесь на эту таблицу view c условием: WHERE <your_date> >= CURRENT_DATE - interval '7 day'.
Раз в день можешь грохать устаревшие партиции по cron-у и добавлять новые на будущее.
По партициям то понятно, но это не совсем то. Собственно предположим вам нужно собирать какую то метрику 10 раз в день. То есть в день всего 10 строк. Но хранить ее нужно четко неделю.

Как это все работает в RRD?

Пошел понедельник, Вторник, и т.д. Воскресенье. Когда начался новый понедельник, первая запись предыдущего понедельника должна затереться первой записью нового понедельника. И так все в цикле.

В чем профит? Таблица всегда с фиксированным количеством строк. Она не растет и значит не требует обслуживания.
Для данного конкретного вопроса можно просто собрать первичный ключ, который будет вычисляться исходя из номера дня в неделе и номера измерения в дне, заполнить таблицу "пустыми" значениями, а во время измерений вместо вставки записей делать просто изменение данных по вычисленному значению ключа
А если "статистику" решат потом немного расширить с недели до скажем 10 дней, то привязка к дням недели сразу идёт по пизде
Если немного подумать - можно рассчитать алгоритм вычисления значения первичного ключа так, чтобы не было необходимости иметь привязку к дню недели.
В общем: кому надо - понял, кому найти готовое решение - может искать готовое монструозное решение с применением большого количества костылей
...
Рейтинг: 0 / 0
Просто Трёп / Как сделать RRD в PostgreSQL?
    #500647
Кусь
Скрыть профиль Поместить в игнор-лист
Участник
Tosh  08.08.2023, 10:30
[игнорируется]
Если немного подумать - можно рассчитать алгоритм вычисления значения первичного ключа так, чтобы не было необходимости иметь привязку к дню недели.
Если немного подумать - это такой же костыль.
Каждый выберет свой
...
Рейтинг: 0 / 0
Просто Трёп / Как сделать RRD в PostgreSQL?
    #500649
Tosh
Скрыть профиль Поместить в игнор-лист
Участник
Кусь [игнорируется] 
Если нет "родного" решения "из коробки", я предпочитаю обходиться минимумом зависимостей.
А так - каждый выбирает грабли по себе
...
Рейтинг: 0 / 0
Просто Трёп / Как сделать RRD в PostgreSQL?
    #500652
Кусь
Скрыть профиль Поместить в игнор-лист
Участник
Tosh [игнорируется] 
Если нет "родного" решения "из коробки", решение должно быть оптимальным, а не костылить ещё какой-нибудь алгоритм "без привязки и с привязкой", вместо простого удаления.
...
Рейтинг: 0 / 0
Просто Трёп / Как сделать RRD в PostgreSQL?
    #500680
Горбатый ёж
Скрыть профиль Поместить в игнор-лист
Участник
Кусь  08.08.2023, 10:57
[игнорируется]
Tosh [игнорируется] 
Если нет "родного" решения "из коробки", решение должно быть оптимальным, а не костылить ещё какой-нибудь алгоритм "без привязки и с привязкой", вместо простого удаления.
Решение с партиционированием может быть не то что не оптимальным, оно может быть неверным, если углубиться в проблематику вопроса. Не думаю, что в данном случае мы увидели исчерпывающие требования по ТЗ.
...
Рейтинг: 0 / 0
Просто Трёп / Как сделать RRD в PostgreSQL?
    #500687
Кусь
Скрыть профиль Поместить в игнор-лист
Участник
Горбатый ёж  08.08.2023, 11:42
[игнорируется]
Кусь  08.08.2023, 10:57
[игнорируется]
Tosh [игнорируется] 
Если нет "родного" решения "из коробки", решение должно быть оптимальным, а не костылить ещё какой-нибудь алгоритм "без привязки и с привязкой", вместо простого удаления.
Решение с партиционированием может быть не то что не оптимальным, оно может быть неверным, если углубиться в проблематику вопроса.
Как и любое другое, если нет нормальной постановки задачи.

По тому что было озвучено, объёмы там небольшие и можно обойтись без партишнов вообще.
...
Рейтинг: 0 / 0
Просто Трёп / Как сделать RRD в PostgreSQL?
    #500804
Тень на плетень
Скрыть профиль Поместить в игнор-лист
Участник
Tosh  08.08.2023, 10:30
[игнорируется]
Кусь  08.08.2023, 10:17
[игнорируется]
Tosh  08.08.2023, 09:13
[игнорируется]
Тень на плетень  07.08.2023, 19:25
[игнорируется]
Кусь  07.08.2023, 13:50
[игнорируется]
...
По партициям то понятно, но это не совсем то. Собственно предположим вам нужно собирать какую то метрику 10 раз в день. То есть в день всего 10 строк. Но хранить ее нужно четко неделю.

Как это все работает в RRD?

Пошел понедельник, Вторник, и т.д. Воскресенье. Когда начался новый понедельник, первая запись предыдущего понедельника должна затереться первой записью нового понедельника. И так все в цикле.

В чем профит? Таблица всегда с фиксированным количеством строк. Она не растет и значит не требует обслуживания.
Для данного конкретного вопроса можно просто собрать первичный ключ, который будет вычисляться исходя из номера дня в неделе и номера измерения в дне, заполнить таблицу "пустыми" значениями, а во время измерений вместо вставки записей делать просто изменение данных по вычисленному значению ключа
А если "статистику" решат потом немного расширить с недели до скажем 10 дней, то привязка к дням недели сразу идёт по пизде
Если немного подумать - можно рассчитать алгоритм вычисления значения первичного ключа так, чтобы не было необходимости иметь привязку к дню недели.
В общем: кому надо - понял, кому найти готовое решение - может искать готовое монструозное решение с применением большого количества костылей
Вот это правильно. Глубина хранения - это именно формат первичного ключа.
...
Кто в предыдущие годы набил карманы за счет всяких "процессов" в экономике 90-х годов, они точно не элита, а кусок говна.
Рейтинг: 0 / 0
Просто Трёп / Как сделать RRD в PostgreSQL?
    #500807
Тень на плетень
Скрыть профиль Поместить в игнор-лист
Участник
Кусь  08.08.2023, 11:49
[игнорируется]
Горбатый ёж [игнорируется] 

Как и любое другое, если нет нормальной постановки задачи.

По тому что было озвучено, объёмы там небольшие и можно обойтись без партишнов вообще.
Секционирование не нужно. Тут объем данных несколько гб.

Правда в Постгресе есть специфика.

Если по ключу ты нашёл нужную строку чтобы ее апдейтить, он ее все равно сначала удалит, а потом создаст новую. То есть вакуум нужен.
...
Кто в предыдущие годы набил карманы за счет всяких "процессов" в экономике 90-х годов, они точно не элита, а кусок говна.
Рейтинг: 0 / 0
Просто Трёп / Как сделать RRD в PostgreSQL?
    #500927
Горбатый ёж
Скрыть профиль Поместить в игнор-лист
Участник
Тень на плетень  08.08.2023, 15:54
[игнорируется]
Если по ключу ты нашёл нужную строку чтобы ее апдейтить, он ее все равно сначала удалит, а потом создаст новую.
Специализд!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Поиск: Искать ответы на сообщение: #500643  
Пользователи онлайн (123): Анонимы (106), IT-Клоп, Умник-практикующий, anonymous, Sparrow, паразит, Буся, Bing Bot, Yandex Bot 1 мин., sergey11 1 мин., Гарыныч 1 мин., Ветер 3 мин., Королева Жезлов 4 мин., битый 7 мин., Google Bot 7 мин., megabyte 7 мин., unique 8 мин., MaksRoman0w 8 мин.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]