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


Краткое руководство. Создание приложения потоковой передачи e2e для анализа clickstream

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

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

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

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

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

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

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

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

{
    "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. Группа ресурсов содержит следующие пять ресурсов:

    Тип ресурса Имя Описание
    функции Azure; Ссылкам* Создание данных о потоках переходов
    Центры событий Ссылкам* Прием данных clickstream для использования
    Задание Stream Analytics ClickStream-Filter Определение запроса для извлечения GET запросов из входных данных clickstream
    Хранилище BLOB-объектов Ссылкам* Назначение выходных данных для задания ASA
    План службы приложений Ссылкам* Необходимость в функции Azure
  6. Поздравляем! Вы развернули приложение потоковой передачи для извлечения запросов из веб-сайта clickstream.

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

    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-объектов > : job-output. Хранилище BLOB-объектов

Clickstream-RefJoin

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

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

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

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

  3. Задание ASA ClickStream-RefJoin использует следующий запрос для соединения clickstream с помощью ссылочных входных данных 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. Поздравляем! Вы развернули приложение потоковой передачи, чтобы присоединить файл пользователя к веб-сайту clickstream.

Очистка ресурсов

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

Remove-AzResourceGroup -Name $resourceGroup

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

Дальнейшие действия

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