Как использовать скользящее окно на столе Oracle? - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть таблица (записи) в реальном времени в Oracle. Мне нужно извлекать данные из этой таблицы и подсчитывать количество записей, добавляемых в базу данных за каждую минуту. Эта статистика затем сбрасывается в новую таблицу «статистика». Как эффективно извлечь данные в режиме скользящего окна?

Структура таблицы:

RecordId       NUMBER(10)    ---- Unique random value for every row        
RecordTime     VARCHAR2(64)  ---- Timestamp in YYYY-MM-DD HH24:MI:SS

Запрос должен быть похож на:

select substr(RecordTime, 1, 16), count(*) 
from Records 
group by substr(RecordTime, 1, 16);

Каждую минуту в таблице ожидается около 500000 новых строк, поэтому мне нужно выполнить операцию скользящего окна в этой таблице базы данных. Если операция с очередями лучше, пожалуйста, дайте мне знать об этом.

1 Ответ

0 голосов
/ 05 ноября 2018

Во-первых, было бы лучше иметь RecordTime в качестве поля даты, чтобы вы могли создать для него индекс и запросить его. Используя substr(), вы бы упустили это.

Во-вторых, база данных временных рядов, такая как Influx, больше подходит для этого варианта использования. Вы можете рассмотреть возможность его использования.

...