Анализ данных социальных сетей с помощью Azure Stream Analytics

В этой статье описано, как создать решение для анализа тональности социальных сетей, введя события Twitter в режим реального времени в Центры событий Azure, а затем проанализировать их с помощью Stream Analytics. Вы создаете запрос Azure Stream Analytics для анализа данных и хранения результатов для последующего использования или создания панели мониторинга Power BI для предоставления аналитических сведений в режиме реального времени.

Средства аналитики для социальных сетей помогают организациям определить популярные темы, то есть темы и отношения с большим количеством записей в социальных сетях. Анализ тональности, также называемый интеллектуальным анализом мнений, использует инструменты аналитики для социальных сетей, чтобы определить отношение к продуктам или идеям.

Хороший пример средства прогнозной аналитики — анализ тенденций Twitter в режиме реального времени. Модель подписки с использованием хэштегов позволяет ожидать передачи определенных ключевых слов и выполнять анализ тональности веб-канала.

Сценарий: анализ тональности в социальной сети в режиме реального времени

Компания, которая имеет веб-сайт новостей, заинтересована в получении преимущества над своими конкурентами, показывая контент сайта, который сразу же относится к своим читателям. Организация выполняет анализ социальных сетей по темам, которые интересуют их читателей, анализируя тональность данных Twitter в режиме реального времени.

Чтобы определять наиболее популярные темы в Twitter в режиме реального времени, организации необходимо анализировать количество твитов и тональность по ключевым темам.

Необходимые компоненты

В этом руководстве используется клиентское приложение, которое подключается к Twitter и ищет твиты с определенными хэштегами (которые можно задать). В следующем списке приведены предварительные требования для запуска приложения и анализа твитов с помощью Аналитики потоковой передачи Azure.

Вот архитектура решения, которую вы собираетесь реализовать.

A diagram showing different pieces of services and applications used to build the solution.

Создание концентратора событий для входных потоковых данных

Пример приложения создает события и отправляет их в концентратор событий. Центры событий Azure — это предпочтительный метод приема событий для Stream Analytics. Дополнительные сведения см. в статье Что такое Центры событий?.

Создание пространства имен Центров событий и концентратора событий

Следуйте инструкциям из краткого руководства. Создание концентратора событий с помощью портал Azure для создания пространства имен Центров событий и концентратора событий с именем socialtwitter-eh. Вы можете использовать другое имя. В таком случае запишите его, так как это имя понадобится вам позже. Другие параметры концентратора событий указывать не нужно.

Предоставление доступа к концентратору событий

Для того чтобы процесс смог отправлять данные в концентратор событий, концентратор должен иметь политику, разрешающую доступ. Политика доступа создает строку подключения, которая включает сведения об авторизации.

  1. В панели навигации слева от пространства имен Центров событий выберите центры событий, расположенные в разделе "Сущности ". Затем выберите только что созданный концентратор событий.

  2. На панели навигации слева выберите Политики общего доступа, расположенные в разделе Параметры.

    Примечание.

    Существует параметр "Политики общего доступа" для пространства имен и концентратора событий. Убедитесь, что вы работаете в контексте концентратора событий, а не пространства имен.

  3. На странице политик общего доступа нажмите кнопку +Добавить на панели команд. Затем введите socialtwitter-access для Имени политики и установите флажок Управление.

  4. Нажмите кнопку создания.

  5. После развертывания политики выберите ее в списке политик общего доступа.

  6. Найдите текстовое поле с пометкой Строка подключения — первичный ключ и нажмите кнопку копирования рядом со строкой подключения.

  7. Вставьте строку подключения в текстовый редактор. Эта строка подключения понадобится в следующем разделе после внесения в нее небольших изменений.

Строка подключения выглядит следующим образом:

Endpoint=sb://EVENTHUBS-NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=socialtwitter-access;SharedAccessKey=XXXXXXXXXXXXXXX;EntityPath=socialtwitter-eh

Обратите внимание, что строка подключения содержит несколько пар "ключ — значение", которые разделены точкой с запятой: Endpoint, SharedAccessKeyName, SharedAccessKey и EntityPath.

Примечание.

В целях безопасности в примере были удалены части строки подключения.

Настройка и запуск клиентского приложения Twitter

Клиентское приложение получает события твитов непосредственно из Twitter. Для этого ему нужно разрешение на вызов интерфейсов API потоковой передачи Twitter. Чтобы настроить это разрешение, создайте приложение в Twitter, которое формирует уникальные учетные данные (например, маркер OAuth). Затем можно настроить в клиентском приложении использование этих учетных данных при вызовах API.

Создание приложения Twitter

Если у вас еще нет приложения Twitter, которое можно использовать для этого руководства, можно создать его. У вас уже должна быть учетная запись Twitter.

Примечание.

Конкретный процесс в Twitter для создания приложения и получения ключей, секретов и маркеров может измениться. Если эти инструкции не совпадают с тем, что отображается на сайте Twitter, обратитесь к документации разработчика Twitter.

  1. В веб-браузере перейдите к Twitter для разработчиков и выберите Создать приложение. Может появиться сообщение о том, что требуется подать заявку на учетную запись разработчика Twitter. После того как ваша заявка будет одобрена, вы должны увидеть подтверждающее сообщение электронной почты. Чтобы получить утверждения учетной записи разработчика, может потребоваться несколько дней.

    Screenshot shows the Create an app button.

  2. На странице Create an application (Создание приложения) укажите сведения для нового приложения, а затем выберите Create your Twitter application (Создать приложение Twitter).

    Screenshot shows the App details pane where you can enter values for your app.

  3. На странице приложения перейдите на вкладку Keys and Tokens (Ключи и маркеры) и скопируйте значения ключа API потребителя и секретного ключа API потребителя. Также выберите Создать в маркере доступа и секрете маркера доступа, чтобы сгенерировать маркеры доступа. Скопируйте значения маркера доступа и секрета маркера доступа.

    Сохраните значения, полученные для приложения Twitter. Эти значения потребуются позже.

Примечание.

Ключи и секреты для приложения Twitter предоставляют доступ к вашей учетной записи Twitter. Относитесь к этим сведениям как к конфиденциальным, так же как к паролю Twitter. Например, не внедряйте эти сведения в приложения, которые предоставляете другим пользователям.

Настройка клиентского приложения

Мы создали клиентское приложение, которое подключается к данным Twitter с помощью API потоковой передачи Twitter и собирает события твитов, связанные с определенным набором тем.

Перед запуском предоставьте приложению сведения, такие как ключи Twitter и строка подключения к концентратору событий.

  1. Убедитесь, что вы загрузили и распаковали приложение TwitterClientCore, как указано в списке необходимых компонентов.

  2. Используйте текстовый редактор, чтобы открыть файл App.config. Внесите следующие изменения в элемент <appSettings>:

    • Задайте для oauth_consumer_key значение ключа пользователя Twitter (ключ API).
    • Задайте для oauth_consumer_secret значение секрета пользователя Twitter (секрет API).
    • Задайте для oauth_token значение маркера доступа Twitter.
    • Задайте для oauth_token_secret значение секрета маркера доступа Twitter.
    • Задайте для EventHubNameConnectionString значение строки подключения.
    • Укажите для EventHubName имя концентратора событий (то есть значение пути к сущности).
  3. Откройте командную строку и перейдите в каталог, где находится приложение TwitterClientCore. Используйте команду dotnet build для сборки проекта. Затем используйте команду dotnet run, чтобы запустить приложение. Приложение отправляет твиты в центры событий.

Создание задания Stream Analytics

Теперь, когда у нас есть поток событий-твитов из Twitter в режиме реального времени, можно настроить задание Stream Analytics, чтобы анализировать эти события в режиме реального времени.

  1. На портале Azure перейдите к используемой группе ресурсов и выберите + Добавить. Затем найдите задание Stream Analytics и выберите Создать.

  2. Назовите задание socialtwitter-sa-job и укажите подписку, группу ресурсов и расположение.

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

  3. Нажмите кнопку создания. Затем перейдите к своему заданию после завершения развертывания.

Указание входных данных для задания

  1. В задании Stream Analytics выберите Входные данные из раздела Топология задания.

  2. Выберите + Добавить потоковый вход>Концентратор событий. Заполните форму для Создания входа, указав следующую информацию:

    Параметр Рекомендуемое значение Description
    Псевдоним входных данных TwitterStream Введите псевдоним для входных данных.
    Отток подписок <Ваша подписка> Выберите подписку Azure, которую нужно использовать.
    Пространство имен Центров событий asa-twitter-eventhub
    Имя концентратора событий socialtwitter-eh Выберите Использовать существующий. Затем выберите созданный концентратор событий.
    Тип сжатия событий Gzip Тип сжатия данных.

    Оставьте остальные значения по умолчанию и выберите Сохранить.

Указание запроса задания

Stream Analytics поддерживает простую декларативную модель запроса для описания преобразований. Дополнительные сведения о языке см. в разделе Справочник по языку запросов Azure Stream Analytics. Это руководство поможет создать и проверить несколько запросов по данным Twitter.

Чтобы сравнить количество упоминаний по разным темам, воспользуемся переворачивающимся окном. Это позволит получать количество упоминаний по теме каждые 5 секунд.

  1. В Обзоре своего задания щелкните Изменить запрос в верхнем правом углу поля запроса. Azure перечислит входные и выходные данные, настроенные для задания, и позволит создать запрос, преобразующий входной поток, отправляемый на выход.

  2. Измените запрос в редакторе кода, сделав следующее.

    SELECT *
    FROM TwitterStream
    
  3. Данные о событиях из сообщений должны появиться в окне Предварительная версия ввода, расположенном под запросом. Убедитесь, что Представление имеет значение JSON. Если вы не видите никаких данных, убедитесь, что генератор данных отправляет события в концентратор событий и что вы выбрали Gzip в качестве типа сжатия для входных данных.

  4. Выберите Тестовый запрос и обратите внимание на результаты в окне Результаты теста под запросом.

  5. Замените запрос в редакторе кода приведенным ниже кодом, а затем выберите Протестировать запрос:

    SELECT System.Timestamp as Time, text
    FROM TwitterStream
    WHERE text LIKE '%Azure%'
    
  6. Этот запрос возвращает все твиты, включающие ключевое слово Azure.

Создание приемника выходных данных

Теперь вы определили поток событий, входные данные концентратора событий для приема событий и запрос для выполнения преобразования по потоку. Последний этап — определить приемник выходных данных задания.

В этом руководстве мы запишем агрегированные события-твиты из запроса задания в хранилище BLOB-объектов Azure. Кроме того, в зависимости от потребностей приложения можно передать результаты в базу данных SQL Azure, хранилище таблиц Azure, Центры событий или Power BI.

Указание выходных данных для задания

  1. В разделе Топология задания, находящемся в меню навигации слева, выберите Выходные данные.

  2. На странице "Выходные данные" выберите +Добавить и хранилище BLOB-объектов/Data Lake Storage 2-го поколения:

    • Выходной псевдоним: используйте имя TwitterStream-Output.
    • Параметры импорта: выберите хранилище из подписок.
    • Учетная запись хранения. Затем выберите учетную запись хранения.
    • Контейнер: Выберите Создать новую, а затем введите socialtwitter.
  3. Выберите Сохранить.

Запуск задания

Входные данные для задания, запрос и выходные данные указаны. Вы готовы запустить задание Stream Analytics.

  1. Убедитесь, что приложение TwitterWpfClient запущено.

  2. В обзоре задания выберите Запустить.

  3. На странице Запуск задания для параметра Время начала создания выходных данных задания выберите Сейчас и щелкните Запуск.

Поддержка

За дополнительной информацией перейдите на страницу вопросов и ответов об Azure Stream Analytics.

Следующие шаги