Раздвижные окна Vs Tumbling
Я читаю длинную статью о Data Stream Management, и меня немного смущает разница между Sliding и Tumbling Windows. До сих пор я понял, что барабанные окна могут быть основаны на времени и имеют фиксированные (начальные, конечные) точки, которые "падают", когда это окно истекает. Например. Временное окно может составлять 1 минуту. Таким образом, каждую минуту окно сворачивается для обработки агрегатов для набора данных.
Это раздвижные окна, которые меня путают. Это скользящие окна, такие как count-based, так что окно падает, когда в окно вводится x-число кортежей. Или это то, что x-последние кортежи, которые вошли в окно, будут частью окна и что старые кортежи будут выселены из этого окна. То есть окно, которое постоянно обновляется по мере поступления новых кортежей?
Ответы
Ответ 1
Tumbling windows (TW)
Все кортежи в окне истекают одновременно.
Раздвижные окна (SW)
Только некоторые из кортежей заканчиваются в заданное время
Пример
Если у вас есть окно, содержащее следующие целые числа (Обозначение целое число (секунды после ввода)), и пусть говорят, что TW было создано 60 секунд назад, а для обоих окон - 60 секунд.
1 (0s), 2 (10s), 4 (24s), 8 (17s), 16 (40s)
Скажите, что прошло 20 секунд, а затем в окно вошли следующие целые числа.
7, 3, 6
Теперь предыдущий TW истек и будет содержать только указанные выше значения. В то время как SW будет содержать следующие значения
7, 3, 6, 1, 2, 4, 8
Ответ 2
- Tumbling повторяется в неперекрывающемся интервале.
- Хоппинг близок к обрушению, но прыжок обычно имеет перекрывающийся интерверсальный.
- Сдвиги времени с регулярным интервалом.
- Триггеры выселения на счетчике.
Ниже представлено графическое представление, показывающее различные типы D ata S tream M управление S ystem (DSMS) - скачкообразное перемещение, скачкообразное перемещение по временной шкале и скользящая политика выселения. Я использовал приведенный выше пример для создания изображения (создания предположений).
![Окно в DSMS]()
Ответ 3
Предположим, что функции windowing как традиционная операция GROUP BY, которая работает с временными входными данными, применяет заданную функцию агрегации и выводит результат.
Основное различие между операцией Tumbling Window (TW) и раздвижным окном (SW) состоит в наборе пересечений рассматриваемых точек данных, который пуст в первом случае и, вероятно, не пуст в последнем случае.
Очень хорошее чтение из Microsoft Azure Stream Analytics делает разницу с иллюстрациями.
- TW, учитывая галочку в 10 секунд, такие выходы оконной операции каждый гасят результат от функции агрегации за такой временной интервал;
- SW, рассматривая галочку Xs, такие операции вывода окон каждый галочка результат от функции агрегации для временного кадра Ys всякий раз, когда происходит событие, например,
X = 1
и Y = 10
затем каждую секунду функция оконного просмотра оглядывается назад на десять секунд, отбрасывая систематически старейшая точка данных.
Рассмотрим конкретный пример следующих временных рядов:
t0-> 5 7 4 3 1 1 3 t10-> 4 5 8 1 2 3 3 3 5 7 7 t20-> t30-> 3 3 4 t40->
Учитывая SUM
как функцию агрегации и банальную стратегию SW, которая является Hoping Window (HW):
- при
t0
SW = TW = 0
; - при
t10
SW = TW = 24
; - при
t11
нет TW, но SW = 23
а пересечение между последующими окнами - 7 4 3 1 1 3
; - при
t11
нет TW, но SW = 21
а пересечение между последующими окнами - 4 3 1 1 3 4
; - при
t20
TW = SW = 48
; - при
t21
нет TW, но SW = 44
а пересечение между последующими окнами - 5 8 1 2 3 3 3 5 7 7
- при
t30
TW = SW = 0
; - при
t31
нет TW, но SW = 3
а пересечение между последовательными окнами пусто, так как в [t20, t30]
не произошло никаких событий.
Еще одно хорошее чтение SoftwareMill CTO Adam Warski, которое иллюстрирует использование современных потоковых технологий, таких как Spark, Flink, Akka и Kafka.