Как сделать вывод другим входом?

Случай: у нас есть окно агрегации за 1 день, в котором суммируется общее значение, полученное от концентратора событий (1, 2, 3… каждую минуту отправляется значение), мы устанавливаем вывод в большой двоичный объект с именем 1dayresult. Теперь мы хотим получить данные большого двоичного объекта в качестве еще одного входа агрегации за 1 неделю, каждую неделю мы хотим получать данные из большого двоичного объекта и выполнять вычисления, поэтому можем ли мы установить большой двоичный объект результата за 1 день в качестве входных данных для агрегации за 1 неделю? Мы знаем, что можем установить оконную единицу на 7 дней, но мы думаем, что это снизит производительность, потому что если мы сделаем блок результата за 1 день в качестве входных данных, нам нужно только 7 значений, но если мы используем 7-дневное окно, мы получим более 7 * 24 * 60 значений, а затем выполните расчет. Мы также хотим иметь месячную агрегацию, но максимальный размер окна составляет 7 дней. Итак, как этого достичь?


person Jordan Pan    schedule 23.05.2016    source источник


Ответы (1)


Вы можете использовать оператор WITH для «связывания» нескольких подзапросов вместе, где следующий подзапрос может использовать вывод предыдущего в качестве ввода. Взгляните на этот документ.

Однако, как вы заметили, иногда более эффективно сохранять промежуточные результаты вывода в хранилище BLOB-объектов или другом концентраторе событий. Вы можете определить одно и то же место хранения как для ввода, так и для вывода, и один подзапрос может быть выведен, пока другой читает.

Максимальный размер окон в Azure Stream Analytics действительно составляет 7 дней. Для вычислений окна большего размера, включающих большие объемы исторических данных, может быть лучше использовать такой продукт, как Фабрика данных Azure.

person Konstantin Zoryn    schedule 23.05.2016