События
31 мар., 23 - 2 апр., 23
Самое большое событие обучения Fabric, Power BI и SQL. 31 марта – 2 апреля. Используйте код FABINSIDER, чтобы сэкономить $400.
Зарегистрироваться сегодняЭтот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
В этой статье описываются внутренние концепции контрольных точек и воспроизведения в Azure Stream Analytics, а также их влияние на восстановление задания. При каждом запуске задания Stream Analytics сведения о состоянии поддерживаются изнутри. Информация о состоянии периодически сохраняется в контрольной точке. В некоторых сценариях данные контрольных точек используются для восстановления задания в случае его сбоя или в случае выполнения обновления. В других случаях контрольную точку нельзя использовать для восстановления и необходимо выполнить воспроизведение.
Одной из уникальных возможностей задания Azure Stream Analytics является выполнение обработки с учетом состояния, например агрегаты данных на основе периодов, темпоральные соединения и темпоральные аналитические функции. Каждый из этих операторов сохраняет сведения о состоянии во время выполнения задания. Максимальный период времени для этих элементов запроса составляет семь дней.
Концепция временного окна представлена в следующих элементах запросов Stream Analytics.
Агрегаты данных на основе периодов (оператор группирования GROUP BY по "переворачивающимся", "прыгающим" и "скользящим" окнам).
Темпоральные соединения (JOIN с DATEDIFF).
Темпоральные аналитические функции (ISFIRST, LAST и LAG с LIMIT DURATION).
При каждом запуске задание Stream Analytics развертывается изнутри для выполнения обработки на нескольких рабочих узлах. Состояние каждого рабочего узла фиксируется в контрольной точке каждые несколько минут, что позволяет восстановить систему в случае сбоя.
Время от времени работа определенного рабочего узла может завершаться ошибкой, или же для этого рабочего узла может произойти обновление операционной системы. Для автоматического восстановления Stream Analytics получает новый работоспособный узел, а состояние предыдущего рабочего узла восстанавливается из последней доступной контрольной точки. Чтобы возобновить работу, для восстановления состояния с момента создания контрольной точки необходимо незначительное воспроизведение. Как правило, для восстановления необходимо использовать контрольную точку, созданную несколько минут назад. Если для задания выбрано достаточное количество единиц потоковой передачи, воспроизведение должно осуществляться быстро.
При использовании полностью параллельного запроса время для восстановления после сбоя рабочего узла пропорционально следующему:
[частота входящих событий.] x [длина временного промежутка] / [количество обрабатываемых разделов]
Если вы наблюдаете значительную задержку в обработке из-за сбоя узла и обновления ОС, попробуйте сделать запрос полностью параллельным и масштабировать задание, чтобы выделить больше единиц потоковой передачи. Дополнительные сведения см. в статье Масштабирование задания Azure Stream Analytics для повышения пропускной способности базы данных.
Сейчас Stream Analytics не показывает отчет во время выполнения такого процесса восстановления.
Корпорация Майкрософт периодически обновляет двоичные файлы, которые выполняют задания Stream Analytics в службе Azure. В таких случаях выполняющиеся задания пользователей будут обновлены до новой версии, а задание автоматически перезапустится.
Azure Stream Analytics по возможности использует контрольные точки для восстановления данных из последнего состояния контрольной точки. В сценариях, когда внутренние контрольные точки использовать нельзя, состояние потокового запроса полностью восстанавливается с помощью метода воспроизведения. Чтобы разрешить заданиям Stream Analytics воспроизводить прошлые точные входные данные, для политики хранения для исходных данных необходимо задать по крайней мере размеры периодов в запросе. Если этого не сделать, это может привести к возникновению неправильных или частичных результатов во время обновления службы, так как исходные данные могут не сохраняться достаточно долго для включения полного размера периода.
Как правило, необходимый период воспроизведения пропорционален размеру временного окна, умноженному на среднюю частоту событий. Например, для задания со скоростью входных данных 1000 событий в секунду временное окно более одного часа считается большим размером воспроизведения. Чтобы инициализировать состояние для получения точных и правильных результатов, может потребоваться повторная обработка до одного часа данных, что может привести к задержке (отсутствию) выходных данных в течение длительного периода. Запросы без окон или других темпоральных операторов, таких как JOIN
или LAG
, будут иметь нулевое воспроизведение.
Чтобы оценить длительность задержки из-за обновления службы, можно использовать следующий метод.
Загрузите входные концентраторы событий с количеством данных, достаточным для охвата максимального периода в запросе, с ожидаемой скоростью событий. Метка времени событий должна быть близка к реальному времени по часам в течение всего этого периода, как если бы это был динамический канал входных данных. Например, при наличии 3-дневного периода в запросе отправляйте события в концентраторы событий на протяжении трех дней, а затем продолжите их отправку.
Запустите задание, использовав в качестве времени начала значение Now.
Измеряйте время между временем начала и временем создания первого фрагмента выходных данных. Это примерное время возможной задержки задания при обновлении службы.
Если задержка слишком длительная, попробуйте разделить задание и увеличить количество единиц потоковой передачи, чтобы распределить нагрузку на несколько узлов. Кроме того, рассмотрите возможность уменьшения периодов в запросе и выполните дальнейшую статистическую или другую обработку с отслеживанием состояния для выходных данных, полученных с помощью задания Stream Analytics, в подчиненном приемнике (например, с помощью Базы данных SQL Azure).
Чтобы обеспечить общую стабильность службы во время обновления критически важных заданий, рассмотрите возможность выполнения дублирующихся заданий в парных регионах Azure. Дополнительные сведения см. в статье Обеспечение надежности заданий Stream Analytics во время обновления служб.
Чтобы изменить синтаксис запросов для заданий потоковой передачи или настроить входные и выходные данные, задание необходимо остановить, а затем внести в него необходимые изменения и обновить его структуру. В сценариях, когда пользователь останавливает задание потоковой передачи и запускает его снова, сценарий восстановления аналогичен обновлению службы.
Данные контрольных точек нельзя использовать для перезапуска задания, инициируемого пользователем. Чтобы оценить задержку выходных данных во время такого перезапуска, используйте процедуру, описанную в предыдущем разделе, и примените аналогичный метод устранения, если задержка слишком длительная.
Дополнительные сведения о масштабируемости и стабильности см. в следующих статьях.
События
31 мар., 23 - 2 апр., 23
Самое большое событие обучения Fabric, Power BI и SQL. 31 марта – 2 апреля. Используйте код FABINSIDER, чтобы сэкономить $400.
Зарегистрироваться сегодняОбучение
Сертификация
Администрирование инфраструктуры базы данных SQL Server для облачных, локальных и гибридных реляционных баз данных с помощью предложений реляционной базы данных Microsoft PaaS.
Документация
Проверка ввода для повышения устойчивости заданий Azure Stream Analytics - Azure Stream Analytics
В этой статье описывается, как повысить устойчивость заданий Azure Stream Analytics с помощью проверки входных данных.
В этой статье описывается устранение неполадок с заданием Azure Stream Analytics с помощью метрик и схемы заданий на портале Azure.
Обзор и настройка единиц потоковой передачи в Stream Analytics - Azure Stream Analytics
В этой статье описываются параметры единиц потоковой передачи и другие факторы, влияющие на производительность в Azure Stream Analytics.