Как искать шаблоны с помощью Spark Structured Streaming? - PullRequest
0 голосов
/ 10 июля 2020

Я новичок ie в Spark.

У меня есть непрерывный поток событий в следующем формате: (Идентификатор элемента, Событие, временная метка).

(element=1, event=a, 10:01), (element=2, event=b, 10:02)...

I необходимо определить, происходят ли события определенное c количество раз в заданном временном интервале для определенного элемента.

pattern-1: count(a)=3 and count(b)=2 within 5 min
pattern-2: count(b)=4 and count(c)=3 within 10 min

где a, b, c - события. У меня есть n таких шаблонов.

Я рассмотрел следующие конструкции:

  1. с использованием алгоритма скользящего окна и redis для хранения промежуточных данных. Это никоим образом не использует архитектуру Spark, но является оптимальным по времени, поскольку будет использовать указатель скользящего окна и не будет повторно вычислять прошлые события.
  2. с использованием сложного запроса. При этом используется промежуточное хранилище данных Spark, но это, вероятно, не самый оптимальный вариант, поскольку запросы будут выполняться повторно для каждого события.
  3. с использованием одного задания Spark для каждого шаблона. Я не уверен, насколько это масштабируемо, поскольку я ожидаю значительного количества шаблонов.
  4. Что-нибудь еще.

Я хочу знать, что может быть хорошим дизайном с учетом архитектуры Spark.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...