Поделиться через


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

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

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

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

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

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

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

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

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

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

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

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

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

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

Следуйте инструкциям из краткого руководства. Создание концентратора событий с помощью портал 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. После того как ваша заявка будет одобрена, вы должны увидеть подтверждающее сообщение электронной почты. Чтобы получить утверждения учетной записи разработчика, может потребоваться несколько дней.

    Снимок экрана: кнопка Create an app (Создать приложение).

  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. Убедитесь, что приложение TwitterWpfClient запущено.

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

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

Поддержка

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

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