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

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

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

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

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

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

Чтобы выявлять актуальные темы в режиме реального времени на платформе X, компании нужна аналитика в реальном времени об объёме твитов и тональности по ключевым темам.

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

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

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

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

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

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

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

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

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

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

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

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

    Примечание.

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

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

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

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

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

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

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

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

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

Примечание.

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

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

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

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

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

Примечание.

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

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

    Снимок экрана: портал разработчика X с кнопкой

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

    Снимок экрана: область сведений о приложении, в которой вы вводите значения для нового приложения.

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

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

Примечание.

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

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

Мы создали клиентское приложение, которое подключается к данным X с помощью 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

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

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

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

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

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

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

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

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

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

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

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

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

Чтобы сравнить количество упоминаний по разным темам, воспользуемся переворачивающимся окном. Это позволит получать количество упоминаний по теме каждые 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.
    • Параметры импорта: выберите хранилище из подписок.
    • Учетная запись хранения. Затем выберите учетную запись хранения.
    • Контейнер: Выберите Создать новую, а затем введите socialx.
  3. Выберите Сохранить.

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

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

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

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

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

Получение поддержки для Azure Stream Analytics

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

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