Краткое руководство: Создание сквозного приложения потоковой передачи для анализа кликстрима

Анализ данных clickstream — это эффективный способ оптимизации трафика веб-сайта и получения аналитических сведений о поведении пользователей. В этом кратком руководстве описано, как создать потоковое приложение для анализа данных о кликах пользователей на веб-сайте.

Метод, описанный в этом руководстве, использует скрипт PowerShell для развертывания ресурсов Azure с автоматически созданными примерами потоков данных. Автоматически созданные данные позволяют изучать различные сценарии потоковой аналитики и легко развертывать ресурсы Azure.

Ниже приведены типичные сценарии обработки и анализа щелчков.

  • Фильтрация запросов потока кликов
  • Присоединение кликстрима к файлу

Предпосылки

Фильтрация запросов потока кликов

В этом примере вы узнаете, как извлекать запросы GET и POST из потока кликов веб-сайта и сохранять результаты в хранилище Azure Blob Storage. Ниже приведена архитектура для этого примера: clickstream one input

Пример потока кликов на веб-сайте:

{
    "EventTime": "2022-09-09 08:58:59 UTC",
    "UserID": 465,
    "IP": "145.140.61.170",
    "Request": {
    "Method": "GET",
    "URI": "/index.html",
    "Protocol": "HTTP/1.1"
    },
    "Response": {
    "Code": 200,
    "Bytes": 42682
    },
    "Browser": "Chrome"
}

Мы будем использовать скрипты, доступные в репозитории GitHub для развертывания необходимых ресурсов:

  1. Откройте PowerShell из меню "Пуск", клонируйте этот репозиторий GitHub в рабочий каталог.

    git clone https://github.com/Azure/azure-stream-analytics.git
    
  2. Перейдите в папку BuildApplications .

    cd .\azure-stream-analytics\BuildApplications\
    
  3. Войдите в Azure и введите учетные данные Azure в всплывающем браузере.

    Connect-AzAccount
    
  4. Замените $subscriptionId идентификатор подписки Azure и выполните следующую команду для развертывания ресурсов Azure. Выполнение этого процесса может занять несколько минут.

    .\CreateJob.ps1 -job ClickStream-Filter -eventsPerMinute 11 -subscriptionid $subscriptionId
    
    • eventsPerMinute — это скорость ввода для созданных данных. В этом случае источник ввода создает 11 событий в минуту.
    • Идентификатор подписки можно найти в подписках на портале > Azure.
  5. После завершения развертывания откроется браузер автоматически, и вы можете увидеть группу ресурсов с именем ClickStream-Filter-rg-* на портале Azure. Группа ресурсов содержит следующие пять ресурсов:

    Тип ресурса Имя Description
    Функция Azure кликстрим (поток кликов) Генерация данных кликстрим
    Event Hubs кликстрим (поток кликов) Прием данных clickstream для использования
    Задание Stream Analytics ClickStream-Фильтр Определение запроса для извлечения GET запросов из входных данных clickstream
    Хранилище блобов кликстрим (поток кликов) Место назначения для выходных данных задания ASA
    План службы приложений кликстрим (поток кликов) Необходимость в функции Azure
  6. Поздравление! Вы развернули приложение потоковой передачи для извлечения запросов из потока щелчков веб-сайта.

  7. Задание ASA ClickStream-Filter использует следующий запрос для извлечения HTTP-запросов из потока щелчков. Выберите тестовый запрос в редакторе запросов, чтобы просмотреть выходные результаты.

    SELECT System.Timestamp Systime, UserId, Request.Method, Response.Code, Browser
    INTO BlobOutput
    FROM ClickStream TIMESTAMP BY Timestamp
    WHERE Request.Method = 'GET' or Request.Method = 'POST'
    

    Тестовый запрос

  8. В комментариях запроса есть примеры кодов, которые можно использовать для других сценариев stream analytics с одним входным потоком.

    • Подсчет щелчков по каждому часу

      select System.Timestamp as Systime, count( * )
      FROM clickstream
      TIMESTAMP BY EventTime
      GROUP BY TumblingWindow(hour, 1)
      
    • Выбор отдельного пользователя

      SELECT *
      FROM clickstream
      TIMESTAMP BY Time
      WHERE ISFIRST(hour, 1) OVER(PARTITION BY userId) = 1
      
  9. Все выходные результаты хранятся в хранилище блогов в виде JSON файла. Его можно найти через: хранилище BLOB-объектов > контейнеры > выходные данные заданий. Хранилище BLOB-объектов

Clickstream-RefJoin

Если вы хотите узнать имя пользователя для анализа кликов, используя файл пользователя в хранилище, вы можете присоединить анализ кликов к ссылочному входу по следующей архитектуре: Анализ кликов два входных данных

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

  1. Замените $subscriptionId идентификатор подписки Azure и выполните следующую команду для развертывания ресурсов Azure. Выполнение этого процесса может занять несколько минут.

    .\CreateJob.ps1 -job ClickStream-RefJoin -eventsPerMinute 11 -subscriptionid $subscriptionId
    
  2. После завершения развертывания браузер откроется автоматически, и вы можете увидеть группу ресурсов с именем ClickStream-RefJoin-rg-* на портале Azure. Группа ресурсов содержит пять ресурсов.

  3. Задание ASA ClickStream-RefJoin использует следующий запрос для объединения потока щелчков с эталонным SQL-вводом.

    CREATE TABLE UserInfo(
      UserId bigint,
      UserName nvarchar(max),
      Gender nvarchar(max)
    );
    SELECT System.Timestamp Systime, ClickStream.UserId, ClickStream.Response.Code, UserInfo.UserName, UserInfo.Gender
    INTO BlobOutput
    FROM ClickStream TIMESTAMP BY EventTime
    LEFT JOIN UserInfo ON ClickStream.UserId = UserInfo.UserId
    
  4. Поздравление! Вы развернули потоковое приложение, чтобы соединить файл пользователя с потоком кликов веб-сайта.

Очистите ресурсы

Если вы пробовали этот проект и больше не нуждались в группе ресурсов, выполните эту команду в PowerShell, чтобы удалить группу ресурсов.

Remove-AzResourceGroup -Name $resourceGroup

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

Дальнейшие шаги

Чтобы узнать о Azure Stream Analytics, перейдите к следующим статьям: