powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Просто Трёп [закрыт для гостей] / Как сделать RRD в PostgreSQL?, Поиск: Искать сообщения, созданные автором: Тень на плетень  
8 сообщений из 8, страница 1 из 1
Просто Трёп / Как сделать RRD в PostgreSQL?
    #499854
Тень на плетень
Скрыть профиль Поместить в игнор-лист
Участник
Есть идеи?

Общий подход здесь, но это частный случай.

https://grisha.org/blog/2015/09/23/storing-time-series-in-postgresql-efficiently/
...
Кто в предыдущие годы набил карманы за счет всяких "процессов" в экономике 90-х годов, они точно не элита, а кусок говна.
Рейтинг: 0 / 0
Просто Трёп / Как сделать RRD в PostgreSQL?
    #499888
Тень на плетень
Скрыть профиль Поместить в игнор-лист
Участник
Green  07.08.2023, 12:54
[игнорируется]
Что такое RRD?
Round Robin Database. Циклические БД. Так чтобы они гарантированно хранили данные только за неделю например. Без необходимости дополнительно стирать старые данные. Они просто затираются новыми. Сама БД при этом фиксированного обьема и не растет.
...
Кто в предыдущие годы набил карманы за счет всяких "процессов" в экономике 90-х годов, они точно не элита, а кусок говна.
Рейтинг: 1 / 0
Нравится: Гарыныч
Просто Трёп / Как сделать RRD в PostgreSQL?
    #500086
Тень на плетень
Скрыть профиль Поместить в игнор-лист
Участник
Green  07.08.2023, 13:11
[игнорируется]
Тень на плетень  07.08.2023, 13:01
[игнорируется]
Green  07.08.2023, 12:54
[игнорируется]
Что такое RRD?
Round Robin Database. Циклические БД. Так чтобы они гарантированно хранили данные только за неделю например. Без необходимости дополнительно стирать старые данные. Они просто затираются новыми. Сама БД при этом фиксированного обьема и не растет.
В линуксе есть такое, ротация логов. Складывает данные в файлик, потом в архив и архив каждый день делается, неделю хранится.
Ну да это примерно такое же, только внутри БД.
...
Кто в предыдущие годы набил карманы за счет всяких "процессов" в экономике 90-х годов, они точно не элита, а кусок говна.
Рейтинг: 0 / 0
Просто Трёп / Как сделать RRD в PostgreSQL?
    #500088
Тень на плетень
Скрыть профиль Поместить в игнор-лист
Участник
Кусь  07.08.2023, 13:50
[игнорируется]
Тень на плетень  07.08.2023, 13:01
[игнорируется]
Green  07.08.2023, 12:54
[игнорируется]
Что такое RRD?
Round Robin Database. Циклические БД. Так чтобы они гарантированно хранили данные только за неделю например. Без необходимости дополнительно стирать старые данные. Они просто затираются новыми. Сама БД при этом фиксированного обьема и не растет.
Разбей таблицу на партиции, по дням например, и повесь на эту таблицу view c условием: WHERE <your_date> >= CURRENT_DATE - interval '7 day'.
Раз в день можешь грохать устаревшие партиции по cron-у и добавлять новые на будущее.
Во, такое наверное возможно, нужно подумать.
...
Кто в предыдущие годы набил карманы за счет всяких "процессов" в экономике 90-х годов, они точно не элита, а кусок говна.
Рейтинг: 0 / 0
Просто Трёп / Как сделать RRD в PostgreSQL?
    #500271
Тень на плетень
Скрыть профиль Поместить в игнор-лист
Участник
Кусь  07.08.2023, 13:50
[игнорируется]
Тень на плетень  07.08.2023, 13:01
[игнорируется]
Green  07.08.2023, 12:54
[игнорируется]
Что такое RRD?
Round Robin Database. Циклические БД. Так чтобы они гарантированно хранили данные только за неделю например. Без необходимости дополнительно стирать старые данные. Они просто затираются новыми. Сама БД при этом фиксированного обьема и не растет.
Разбей таблицу на партиции, по дням например, и повесь на эту таблицу view c условием: WHERE <your_date> >= CURRENT_DATE - interval '7 day'.
Раз в день можешь грохать устаревшие партиции по cron-у и добавлять новые на будущее.
По партициям то понятно, но это не совсем то. Собственно предположим вам нужно собирать какую то метрику 10 раз в день. То есть в день всего 10 строк. Но хранить ее нужно четко неделю.

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

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

В чем профит? Таблица всегда с фиксированным количеством строк. Она не растет и значит не требует обслуживания.
...
Кто в предыдущие годы набил карманы за счет всяких "процессов" в экономике 90-х годов, они точно не элита, а кусок говна.
Изменено: 07.08.2023, 19:28 - Тень на плетень
Рейтинг: 0 / 0
Просто Трёп / Как сделать RRD в PostgreSQL?
    #500272
Тень на плетень
Скрыть профиль Поместить в игнор-лист
Участник
Кусь  07.08.2023, 13:53
[игнорируется]
А сразу TimeSeries базу взять для этого не судьба? В PG по любому костылить придётся
В смысле timescale db? Есть такой плагин к посгресу.
...
Кто в предыдущие годы набил карманы за счет всяких "процессов" в экономике 90-х годов, они точно не элита, а кусок говна.
Изменено: 07.08.2023, 19:28 - Тень на плетень
Рейтинг: 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
8 сообщений из 8, страница 1 из 1
Форумы / Просто Трёп [закрыт для гостей] / Как сделать RRD в PostgreSQL?, Поиск: Искать сообщения, созданные автором: Тень на плетень  
Читали тему (3): Анонимы (3)
Игнорируют тему (5): sergey11 , erbol, Сталкер, ZаЛупина, папа акуз
Читали форум (95): Анонимы (89), Tabula Rasa, cat2, sergey11 1 мин., Гарыныч 5 мин., Буся 6 мин., Ветер 7 мин.
Пользователи онлайн (119): Анонимы (110), Tabula Rasa, cat2, Yandex Bot, sergey11 1 мин., Гарыныч 1 мин., Bing Bot 3 мин., Буся 6 мин., Ветер 7 мин., Vaska Balboa 8 мин.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
x
x
Закрыть


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