Поделиться через


Подключаемый модуль sequence_detect

Обнаруживает вхождения последовательностей на основе предоставленных предикатов. Подключаемый модуль вызывается с evaluate помощью оператора .

Синтаксис

T| evaluatesequence_detect(TimelineColumn,MaxSequenceStepWindow,MaxSequenceSpan,Expr1,Expr2, ..., Dim1,Dim2, ...)

Дополнительные сведения о соглашениях о синтаксисе.

Параметры

Имя Тип Обязательно Описание
T string ✔️ Входное табличное выражение.
TimelineColumn string ✔️ Ссылка на столбец, представляющий временная шкала, должна присутствовать в исходном выражении.
MaxSequenceStepWindow timespan ✔️ Значение максимального допустимого интервала времени между 2 последовательными шагами в последовательности.
MaxSequenceSpan timespan ✔️ Максимальный интервал времени для выполнения всех шагов последовательности.
Expr1, Expr2, ... string ✔️ Логические выражения предиката, определяющие шаги последовательности.
Dim1, Dim2, ... string ✔️ Выражения измерения, используемые для корреляции последовательностей.

Возвращаемое значение

Возвращает одну таблицу, в которой каждая строка в таблице представляет одно вхождение последовательности:

  • Dim1, Dim2, ...: столбцы измерения, которые использовались для корреляции последовательностей.
  • Expr1TimelineColumn, Expr2TimelineColumn, ...: столбцы со значениями времени, представляющие временная шкала каждого шага последовательности.
  • Длительность: общее окно времени последовательности.

Примеры

Следующий запрос проверяет таблицу T для поиска соответствующих данных за указанный период времени.

T | evaluate sequence_detect(datetime_column, 10m, 1h, e1 = (Col1 == 'Val'), e2 = (Col2 == 'Val2'), Dim1, Dim2)

Изучение событий Storm

Следующий запрос просматривает таблицу StormEvents (статистика погоды за 2007 год) и показывает случаи, когда за последовательностью "Чрезмерная жара" следует "Лесной пожар" в течение 5 дней.

StormEvents
| evaluate sequence_detect(
               StartTime,
               5d,  // step max-time
               5d,  // sequence max-time
               heat=(EventType == "Excessive Heat"), 
               wildfire=(EventType == 'Wildfire'), 
               State
           )

Выходные данные

Состояние heat_StartTime wildfire_StartTime Duration
Калифорния 2007-05-08 00:00:00.0000000 2007-05-08 16:02:00.0000000 16:02:00
Калифорния 2007-05-08 00:00:00.0000000 2007-05-10 11:30:00.0000000 2.11:30:00
Калифорния 2007-07-04 09:00:00.0000000 2007-07-05 23:01:00.0000000 1.14:01:00
ЮЖНАЯ ДАКОТА 2007-07-23 12:00:00.0000000 2007-07-27 09:00:00.0000000 3.21:00:00
Техас 2007-08-10 08:00:00.0000000 2007-08-11 13:56:00.0000000 1.05:56:00
Калифорния 2007-08-31 08:00:00.0000000 2007-09-01 11:28:00.0000000 1.03:28:00
Калифорния 2007-08-31 08:00:00.0000000 2007-09-02 13:30:00.0000000 2.05:30:00
Калифорния 2007-09-02 12:00:00.0000000 2007-09-02 13:30:00.0000000 01:30:00