Система управления реляционными потоками данных (RDSMS) - это распределенная система управления потоками данных в памяти (DSMS), которая предназначена для использования совместимых со стандартами запросов SQL для обработки неструктурированных и структурированных потоков данных в режиме реального времени. В отличие от SQL-запросов, выполняемых в традиционной СУБД , которые возвращают результат и завершаются, SQL-запросы, выполняемые в RDSMS, не завершаются, постоянно генерируя результаты по мере появления новых данных. Непрерывные запросы SQL в RDSMS используют функцию окна SQL для анализа, объединения и агрегирования потоков данных в фиксированных или скользящих окнах. Окна можно указать как по времени, так и по строкам.
Примеры SQL-запросов RDSMS [ править ]
Непрерывные SQL-запросы в RDSMS соответствуют стандартам ANSI SQL. Наиболее распространенный SQL-запрос RDSMS выполняется с помощью декларативного SELECT
оператора. Непрерывный SQL SELECT
работает с данными в одном или нескольких потоках данных с необязательными ключевыми словами и предложениями, которые включают FROM
необязательный JOIN
подпункт для определения правил объединения нескольких потоков данных, WHERE
предложение и предикат сравнения для ограничения записей, возвращаемых запросом, GROUP BY
для проецирования потоки с общими значениями в меньший набор, HAVING
чтобы фильтровать записи, полученные из a GROUP BY
, и ORDER BY
сортировать результаты.
Ниже приведен пример агрегирования непрерывного потока данных с использованием SELECT
запроса, который объединяет поток датчиков от станции мониторинга погоды. SELECT
Запрос агрегирует минимальные, максимальные и средние значения температуры в течение одной секунды периода времени, возвращая непрерывный поток агрегированных результатов интервалом в одну секунду.
ВЫБОР ПОТОК ПОЛ ( WEATHERSTREAM . ROWTIME к ВТОРОГО ) КАК FLOOR_SECOND , MIN ( ТЕМП ) AS MIN_TEMP , MAX ( ТЕМП ) AS MAX_TEMP , AVG ( TEMP ) КАК AVG_TEMP ОТ WEATHERSTREAM ГРУППА ПО ПОЛ ( WEATHERSTREAM . ROWTIME НА ВТОРОЙ );
SQL-запросы RDSMS также работают с потоками данных во времени или окнами на основе строк. В следующем примере показан второй непрерывный SQL-запрос с использованием WINDOW
предложения с продолжительностью в одну секунду. Предложение WINDOW
изменяет поведение запроса, чтобы выводить результат для каждой новой записи по мере ее поступления. Следовательно, на выходе получается поток постепенно обновляемых результатов с нулевой задержкой результата.
ВЫБОР ПОТОК ROWTIME , MIN ( ТЕМП ) НАД W1 AS WMIN_TEMP , MAX ( ТЕМП ) НАД W1 AS WMAX_TEMP , AVG ( TEMP ) НАД W1 КАК WAVG_TEMP ОТ WEATHERSTREAM WINDOW W1 AS ( ДИАПАЗОН INTERVAL '1' ВТОРОЙ ПРЕДЫДУЩИЙ );
См. Также [ править ]
Внешние ссылки [ править ]
- Потоковая обработка с помощью SQL
- IBM System S
- 1995 Воссоединение SQL: Люди, проекты и политика , Пол МакДжонс (ред.) : Стенограмма встречи, посвященной личной истории реляционных баз данных, SQL System R.