Бөлісу құралы:


Запись в таблицу базы данных Azure SQL из заданий Azure Stream Analytics

Azure Stream Analytics поддерживает Базу данных SQL Azure в качестве приемника для выходных данных потокового запроса. В этой статье объясняется, как назначить Базу данных SQL для приема выходных данных задания Stream Analytics, используя портал Azure.

Предварительные требования

  1. создание задания Stream Analytics;

  2. Создайте Базу данных SQL Azure, в которую будет записывать выходные данные ваше задание Stream Analytics.

Запись в новую таблицу Базы данных SQL

В этом разделе описывается, как настроить запись результатов задания в таблицу Базы данных Azure SQL, которая еще не создана.

  1. В задании Stream Analytics в разделе Топология задания выберите Выходные данные. Нажмите кнопку Добавить и выберите База данных SQL.

    Снимок экрана: вывод в Базу данных SQL из Stream Analytics.

  2. Выберите псевдоним приемника, который будет использоваться в запросе задания. Укажите имя базы данных и режим проверки подлинности. Изучите доступные варианты конфигурации SQL для выходных данных.

  3. Введите имя таблицы, которую нужно создать в Базе данных SQL Azure. Нажмите Сохранить. Примечание. Сохранение данных о приемнике не приводит к созданию таблицы в Базе данных SQL. Дополнительные сведения о создании таблицы приводятся в описании следующих шагов.

    Снимок экрана: конфигурация вывода в Базу данных SQL из Stream Analytics.

  4. Выберите Запрос в разделе Топология задания и используйте укажите в запросе псевдоним, чтобы записать выходные данные в таблицу с именем, которое вы предоставили на предыдущем шаге. Нажмите кнопку Тестировать запрос, чтобы проверить логику запроса и изучить Результаты теста, где представлена схема выходных данных, которые будут созданы этим заданием. Примечание. Чтобы протестировать запрос, входные данные потоковой передачи должны присутствовать в источнике входных данных, или должны быть отправлены отдельно, в виде примера для тестирования запроса. Дополнительные сведения о тестировании запроса Stream Analytics см. в разделе Тестирование запроса.

    Снимок экрана: тестирование запроса в Stream Analytics.

    Снимок экрана: результаты тестирования запроса в Stream Analytics.

  5. Щелкните схему таблицы SQL, чтобы выяснить имя и тип столбца. Щелкните Создать таблицу, и таблица будет создана в Базе данных SQL.

    Снимок экрана: создание таблицы в Базе данных SQL из Stream Analytics.

    Если вы измените запрос Stream Analytics так, что он будет возвращать другую схему, вам придется соответствующим образом изменить определение таблицы в Базе данных SQL. Это избавит вас от ошибок в задании Stream Analytics, вызванных неверным преобразованием данных при попытке записи в приемник.

  6. Когда запрос будет готов, щелкните Обзор и Запуск для задания. Затем перейдите к таблице в Базе данных SQL и проверьте выходные данные потокового запроса.

Выбор существующей таблицы из Базы данных SQL

В этом разделе описывается, как настроить запись результатов задания в таблицу, которая уже существует в Базе данных Azure SQL.

  1. В задании Stream Analytics в разделе Топология задания выберите Выходные данные. Нажмите кнопку Добавить и выберите База данных SQL.

    Снимок экрана: вывод в Базу данных SQL из Stream Analytics.

  2. Выберите псевдоним приемника, который будет использоваться в запросе задания. Укажите имя базы данных и режим проверки подлинности. Изучите доступные варианты конфигурации SQL для выходных данных.

  3. Вы можете выбрать существующую таблицу из выбранной Базы данных SQL, введя сведения о проверке подлинности SQL. Это действие приведет к загрузке списка имен таблиц из базы данных. Выберите нужно имя из списка или введите вручную, затем щелкните Сохранить.

    Снимок экрана: существующая таблица в Базе данных SQL.

  4. Выберите Запрос в разделе Топология задания и укажите имя псевдонима в запросе, чтобы записать выходные данные в выбранную таблицу. Щелкните Тестовый запрос, чтобы проверить логику запроса и просмотреть Результаты теста. Примечание. Чтобы протестировать запрос, входные данные потоковой передачи должны присутствовать в концентраторе событий или в Центре Интернета вещей, или должны быть отправлены отдельно, в виде примера для тестирования запроса. Дополнительные сведения о тестировании запроса Stream Analytics см. в разделе Тестирование запроса.

    Снимок экрана: тестирование запроса в Stream Analytics.

    Снимок экрана: результаты тестирования запроса в Stream Analytics.

  5. На вкладке Схема таблицы SQL вы увидите имя и тип столбца, используемые во входящих данных и в выбранной таблице. Также здесь указано, совпадают ли типы данных во входящих данных и в выбранной таблице SQL. Если они не совпадают, вам будет предложено изменить запрос, чтобы он соответствовал схеме таблицы.

    Снимок экрана: сравнение схем данных в Stream Analytics.

  6. Когда запрос будет готов, щелкните Обзор и Запуск для задания. Затем перейдите к таблице в Базе данных SQL и проверьте выходные данные потокового запроса.

Типичные причины несоответствия типов данных

Важно следить за тем, чтобы формат выходных данных задания Stream Analytics соответствовал именам столбцов и типам данных, которые ожидаются для таблицы в Базе данных SQL. Несоответствие приведет к ошибкам преобразования данных в задании и многократным повторным попыткам, пока вы не исправите определение таблицы SQL. Вы можете изменить поведение задания, чтобы просто отбрасывать выходные данные, которые приводят к ошибкам преобразования данных, и продолжать запись без ошибок. Ниже описаны наиболее распространенные причины, приводящие к несоответствию схем данных.

  • Несоответствие типов: типы в запросе и в приемнике несовместимы. Ни одна строка не будет добавлена в приемник. Используйте функцию преобразования, например TRY_CAST(), для выравнивания типов в запросе. Также можно изменить определение целевой таблицы в Базе данных SQL.
  • Диапазон: диапазон целевого типа значительно меньше, чем используемый в запросе. В целевую таблицу могут не добавляться строки, в которых значения выходят за пределы целевого диапазона. Постарайтесь изменить целевой столбец, указав тип с более широким диапазоном значений.
  • Неявное преобразование: типы в запросе и в приемнике отличаются, но являются совместимыми. Данные будут неявно преобразованы, что может привести к потере данных или сбою задания. Используйте функцию преобразования, например TRY_CAST(), чтобы согласовать типы в запросе, или измените целевую таблицу.
  • Запись: используемый тип пока не поддерживается для этих выходных данных. Такое значение будет заменено строкой "record". Попробуйте настроить предварительный анализ данных или преобразуйте значение в строку с помощью определяемой пользователем функции.
  • Массив: этот тип пока не поддерживается в Базе данных SQL Azure. Такое значение будет заменено строкой "record". Попробуйте настроить предварительный анализ данных или преобразуйте значение в строку с помощью определяемой пользователем функции.
  • Столбец отсутствует в целевой таблице: предоставленный столбец отсутствует в целевой таблице. Такие данные не будут добавлены. Если этот столбец вам нужен, добавьте его в целевую таблицу.

Дальнейшие действия