Совсем недавно начал использовать TimescaleDB с postgrest для обработки большинства запросов данных.
Однако я столкнулся с проблемой, когда у меня ужасно неэффективный запрос временных рядов данных.
Это ряд данных, который может быть любого отрезка времени с конкретными значениями Integer.
В большинстве случаев значение будет одинаковым, если только не будет аномалии.Таким образом, вместо получения + 10000 строк данных.Я хотел бы объединить это в «блоки времени».
Допустим, в строке 97 элементов, где значение равно 100 (новый элемент каждые 5 минут) # 98 значение равно 48 для 5 элементов вrow, а затем возвращается до 100 для еще 2 900 строк.
Я не хочу получать 3002 элемента для отображения этих данных.Мне нужно только выбрать 3 элемента.
- 1 элемент, который говорит, что значение равно 100 из startDate
- 1 элемент, который говорит, что значение равно 48 из startDate после # 1
- 1 элемент, который говорит, что значение снова равно 100 из startDate после # 2
Но у меня возникли некоторые затруднения с выяснением, как я могу сделать это с timescaledb.
в основном, если значение совпадает с последним значением, агрегируйте его.Это все, что мне нужно для этого.
Кто-нибудь знает, как построить VIEW для такого рода ситуации в timescaleDB, используя непрерывное агрегирование (или, если есть более быстрый способ), чтобы извлечь это?