Анализ данных социальных сетей с помощью Azure Stream Analytics
Эта статья рассказывает, как создать решение анализа тональности для социальных сетей путем переноса событий Twitter в Центры событий Azure в режиме реального времени. Надо составить запрос Azure Stream Analytics для анализа данных, а затем сохранить результаты для последующего использования или создать панель мониторинга Power BI для получения аналитической информации в режиме реального времени.
Средства аналитики для социальных сетей помогают организациям определить популярные темы, то есть темы и отношения с большим количеством записей в социальных сетях. Анализ тональности, также называемый интеллектуальным анализом мнений, использует инструменты аналитики для социальных сетей, чтобы определить отношение к продуктам или идеям.
Хороший пример средства прогнозной аналитики — анализ тенденций Twitter в режиме реального времени. Модель подписки с использованием хэштегов позволяет ожидать передачи определенных ключевых слов и выполнять анализ тональности веб-канала.
Сценарий: Анализ тональности в социальной сети в режиме реального времени
У организации есть новостной веб-сайт. Она хочет получить конкурентное преимущество, мгновенно предлагая читателям содержимое, которое будет им интересно. Организация выполняет анализ социальных сетей по темам, которые интересуют их читателей, анализируя тональность данных Twitter в режиме реального времени.
Чтобы определять наиболее популярные темы в Twitter в режиме реального времени, организации необходимо анализировать количество твитов и тональность по ключевым темам.
Предварительные требования
В этом руководстве используется клиентское приложение, которое подключается к Twitter и ищет твиты с определенными хэштегами (которые можно задать). Для запуска приложения и анализа твитов с помощью Azure Stream Analytics необходимо иметь следующее.
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure.
Приложение TwitterClientCore, которое считывает веб-канал Twitter. Чтобы получить это приложение, скачайте TwitterClientCore.
Ниже приведена архитектура решения, которую вы реализуете.
Создание концентратора событий для входных потоковых данных
Пример приложения создает события и передает их в концентратор событий Azure. Для получения данных событий в Stream Analytics рекомендуется использовать Центры событий Azure. Дополнительные сведения см. в статье Что такое Центры событий?.
Создание пространства имен концентраторов событий и концентратора событийВ этом разделе создается пространство имен концентратора событий, а затем в это пространство имен добавляется концентратор событий. Пространства имен концентратора событий используются для логической группировки связанных экземпляров шины событий.
Войдите на портал Azure и выберите Создать ресурс. Затем найдите Центры событий и выберите Создать.
На странице Создание пространства имен укажите имя пространства имен. Для пространства имен можно использовать любое уникальное в Azure имя с допустимым URL-адресом.
Выберите ценовую категорию и подписку, а затем создайте или выберите группу ресурсов. Затем выберите расположение и нажмите кнопку Создать.
После завершения развертывания пространства имен перейдите к своей группе ресурсов и найдите пространство имен концентратора событий в списке ресурсов Azure.
В новом пространстве имен выберите + Концентратор событий.
Присвойте новому концентратору событий имя socialtwitter-eh. Вы можете использовать другое имя. В таком случае запишите его, так как это имя понадобится вам позже. Другие параметры концентратора событий указывать не нужно.
Нажмите кнопку создания.
Предоставление доступа к концентратору событийДля того чтобы процесс смог отправлять данные в концентратор событий, концентратор должен иметь политику, разрешающую доступ. Политика доступа создает строку подключения, которая включает сведения об авторизации.
На панели навигации в левой части пространства имен концентраторов событий выберите пункт Центры событий, который находится в разделе Сущности. Затем выберите только что созданный концентратор событий.
На панели навигации слева выберите Политики общего доступа, расположенные в разделе Параметры.
Для пространства имен концентратора событий и концентратора событий имеется параметр политики общего доступа. Убедитесь, что вы работаете в контексте своего концентратора событий, а не общего пространства имен концентратора событий.
На странице политики доступа выберите + Добавить. Затем введите socialtwitter-access для Имени политики и установите флажок Управление.
Нажмите кнопку создания.
После развертывания политики выберите ее в списке политик общего доступа.
Найдите текстовое поле с пометкой Строка подключения — первичный ключ и нажмите кнопку копирования рядом со строкой подключения.
Вставьте строку подключения в текстовый редактор. Эта строка подключения понадобится в следующем разделе после внесения в нее небольших изменений.
Строка подключения выглядит следующим образом:
Обратите внимание, что строка подключения содержит несколько пар "ключ — значение", которые разделены точкой с запятой: Endpoint , SharedAccessKeyName , SharedAccessKey и EntityPath .
В целях безопасности в примере были удалены части строки подключения.
Настройка и запуск клиентского приложения Twitter
Клиентское приложение получает события твитов непосредственно из Twitter. Для этого ему нужно разрешение на вызов интерфейсов API потоковой передачи Twitter. Чтобы настроить это разрешение, создайте приложение в Twitter, которое формирует уникальные учетные данные (например, маркер OAuth). Затем можно настроить в клиентском приложении использование этих учетных данных при вызовах API.
Создание приложения TwitterЕсли вы еще не создали приложение Twitter для этого руководства, сделайте это. У вас уже должна быть учетная запись Twitter.
Конкретный процесс в Twitter для создания приложения и получения ключей, секретов и маркеров может измениться. Если эти инструкции не совпадают с тем, что отображается на сайте Twitter, обратитесь к документации разработчика Twitter.
В веб-браузере перейдите к Twitter для разработчиков и выберите Создать приложение. Может появиться сообщение о том, что требуется подать заявку на учетную запись разработчика Twitter. После того как ваша заявка будет одобрена, вы должны увидеть подтверждающее сообщение электронной почты. Чтобы получить утверждения учетной записи разработчика, может потребоваться несколько дней.
На странице Create an application (Создание приложения) укажите сведения для нового приложения, а затем выберите Create your Twitter application (Создать приложение Twitter).
На странице приложения перейдите на вкладку Keys and Tokens (Ключи и маркеры) и скопируйте значения ключа API потребителя и секретного ключа API потребителя. Также выберите Создать в маркере доступа и секрете маркера доступа, чтобы сгенерировать маркеры доступа. Скопируйте значения маркера доступа и секрета маркера доступа.
Сохраните значения, полученные для приложения Twitter. Эти значения потребуются позже.
Ключи и секреты для приложения Twitter предоставляют доступ к вашей учетной записи Twitter. Относитесь к этим сведениям как к конфиденциальным, так же как к паролю Twitter. Например, не внедряйте эти сведения в приложения, которые предоставляете другим пользователям.
Настройка клиентского приложенияМы создали клиентское приложение, которое подключается к данным Twitter с помощью API потоковой передачи Twitter и собирает события твитов, связанные с определенным набором тем.
Перед запуском предоставьте приложению сведения, такие как ключи Twitter и строка подключения к концентратору событий.
Убедитесь, что вы загрузили и распаковали приложение TwitterClientCore, как указано в списке необходимых компонентов.
Используйте текстовый редактор, чтобы открыть файл App.config. Внесите следующие изменения в элемент <appSettings> :
- Задайте для oauth_consumer_key значение ключа пользователя Twitter (ключ API).
- Задайте для oauth_consumer_secret значение секрета пользователя Twitter (секрет API).
- Задайте для oauth_token значение маркера доступа Twitter.
- Задайте для oauth_token_secret значение секрета маркера доступа Twitter.
- Задайте для EventHubNameConnectionString значение строки подключения.
- Укажите для EventHubName имя концентратора событий (то есть значение пути к сущности).
Откройте командную строку и перейдите в каталог, где находится приложение TwitterClientCore. Используйте команду dotnet build для сборки проекта. Затем используйте команду dotnet run , чтобы запустить приложение. Приложение отправляет твиты концентратору событий.
Создание задания Stream Analytics
Теперь, когда у нас есть поток событий-твитов из Twitter в режиме реального времени, можно настроить задание Stream Analytics, чтобы анализировать эти события в режиме реального времени.
На портале Azure перейдите к используемой группе ресурсов и выберите + Добавить. Затем найдите задание Stream Analytics и выберите Создать.
Назовите задание socialtwitter-sa-job и укажите подписку, группу ресурсов и расположение.
Мы рекомендуем поместить задание и концентратор событий в одном регионе, чтобы достичь оптимальной производительности и не оплачивать передачу данных между регионами.
Нажмите кнопку создания. Затем перейдите к своему заданию после завершения развертывания.
Указание входных данных для задания
В задании Stream Analytics выберите Входные данные из раздела Топология задания.
Выберите + Добавить потоковый вход>Концентратор событий. Заполните форму для Создания входа, указав следующую информацию:
Параметр Рекомендуемое значение Описание Псевдоним входных данных TwitterStream Введите псевдоним для входных данных. Подписка <Ваша подписка> Выберите подписку Azure, которую нужно использовать. пространство имен концентратора событий; asa-twitter-eventhub имя концентратора событий; socialtwitter-eh Выберите Использовать существующий. Затем выберите только что созданный концентратор событий. Тип сжатия событий GZip Тип сжатия данных.
Оставьте остальные значения по умолчанию и выберите Сохранить.
Указание запроса задания
Stream Analytics поддерживает простую декларативную модель запроса для описания преобразований. Дополнительные сведения о языке см. в разделе Справочник по языку запросов Azure Stream Analytics. Это руководство поможет создать и проверить несколько запросов по данным Twitter.
Чтобы сравнить количество упоминаний по разным темам, воспользуемся переворачивающимся окном. Это позволит получать количество упоминаний по теме каждые 5 секунд.
В Обзоре своего задания щелкните Изменить запрос в верхнем правом углу поля запроса. Azure перечислит входные и выходные данные, настроенные для задания, и позволит создать запрос, преобразующий входной поток, отправляемый на выход.
Измените запрос в редакторе кода, сделав следующее.
Данные о событиях из сообщений должны появиться в окне Предварительная версия ввода, расположенном под запросом. Убедитесь, что Представление имеет значение JSON. Если данные не отображаются, убедитесь, что ваш генератор данных отправляет события концентратору событий и в качестве типа сжатия для входных данных выбран GZip.
Выберите Тестовый запрос и обратите внимание на результаты в окне Результаты теста под запросом.
Замените запрос в редакторе кода приведенным ниже кодом, а затем выберите Протестировать запрос:
Этот запрос возвращает все твиты, включающие ключевое слово Azure.
Создание приемника выходных данных
Вы определили поток событий, входные данные концентратора событий для приема событий и запрос для преобразования потока. Последний этап — определить приемник выходных данных задания.
В этом руководстве мы запишем агрегированные события-твиты из запроса задания в хранилище BLOB-объектов Azure. Кроме того, в зависимости от потребностей приложения можно передать результаты в базу данных SQL Azure, хранилище таблиц Azure, Центры событий или Power BI.
Указание выходных данных для задания
В разделе Топология задания, находящемся в меню навигации слева, выберите Выходные данные.
На странице Выходные данные щелкните + Добавить и Хранилище BLOB-объектов/Data Lake Storage 2-го поколения:
- Выходной псевдоним. Используйте имя TwitterStream-Output .
- Параметры импорта. Выберите Выбрать хранилище в подписках.
- Учетная запись хранения: Затем выберите учетную запись хранения.
- Контейнер: Выберите Создать новую, а затем введите socialtwitter .
Щелкните Сохранить.
Запустите задание
Входные данные для задания, запрос и выходные данные указаны. Теперь можно запустить задание Stream Analytics
Убедитесь, что приложение TwitterWpfClient запущено.
В обзоре задания выберите Запустить.
На странице Запуск задания для параметра Время начала создания выходных данных задания выберите Сейчас и щелкните Запуск.