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

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

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

В чем профит? Таблица всегда с фиксированным количеством строк. Она не растет и значит не требует обслуживания.
Для данного конкретного вопроса можно просто собрать первичный ключ, который будет вычисляться исходя из номера дня в неделе и номера измерения в дне, заполнить таблицу "пустыми" значениями, а во время измерений вместо вставки записей делать просто изменение данных по вычисленному значению ключа
Самое здравое предложение, ибо вполне возможно, что если какая-то строка сегодня не обновлялась, то она должна иметь старые данные.
Предположение сделано на том основании, что скорее всего кедруле это надо для его awr отчота, зачастую в таких отчётах важна динамика, а так же возможны пропуски сбора статы по различным причинам.
...
Рейтинг: 0 / 0
Просто Трёп / Как сделать RRD в PostgreSQL?
    #500637
Кусь
Скрыть профиль Поместить в игнор-лист
Участник
Горбатый ёж  08.08.2023, 10:05
[игнорируется]
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?

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

В чем профит? Таблица всегда с фиксированным количеством строк. Она не растет и значит не требует обслуживания.
Для данного конкретного вопроса можно просто собрать первичный ключ, который будет вычисляться исходя из номера дня в неделе и номера измерения в дне, заполнить таблицу "пустыми" значениями, а во время измерений вместо вставки записей делать просто изменение данных по вычисленному значению ключа
Самое здравое предложение, ибо вполне возможно, что если какая-то строка сегодня не обновлялась, то она должна иметь старые данные.
Предположение сделано на том основании, что скорее всего кедруле это надо для его awr отчота, зачастую в таких отчётах важна динамика, а так же возможны пропуски сбора статы по различным причинам.
Если говорить про AWR, он основан на dba_hist_active_sess_history views, где снапшоты хранятся определённый период времени, потом удаляются и похую что там не менялось.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Поиск: Искать ответы на сообщение: #500624  
Пользователи онлайн (115): Анонимы (110), Yandex Bot, zzdima 2 мин., Bing Bot 5 мин., Google Bot 8 мин., Tosh 8 мин.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
x
x
Закрыть


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