DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Uncategorized»Créer une plateforme d’analyses gérées pour une entreprise de commerce électronique sur AWS (Partie 1)
    Uncategorized

    Créer une plateforme d’analyses gérées pour une entreprise de commerce électronique sur AWS (Partie 1)

    mars 3, 2023
    Créer une plateforme d'analyses gérées pour une entreprise de commerce électronique sur AWS (Partie 1)
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Avec la popularité croissante des achats en ligne, la création d’une plate-forme d’analyse pour le commerce électronique est importante pour toute organisation, car elle fournit des informations sur l’activité, les tendances et le comportement des clients. Mais plus important encore, il peut révéler des informations cachées susceptibles de déclencher des décisions et des actions commerciales génératrices de revenus.

    Dans ce blog, nous allons apprendre à construire une plateforme d’analyse complète en mode batch et en temps réel. Le pipeline d’analyse en temps réel montre également comment détecter le déni de service distribué (DDoS) et les attaques de robots, ce qui est une exigence courante pour de tels cas d’utilisation.

    Introduction

    L’analyse du commerce électronique est le processus de collecte de données provenant de toutes les sources qui affectent une certaine activité en ligne. Les analystes de données ou les analystes commerciaux peuvent ensuite utiliser ces informations pour déduire les changements dans le comportement des clients et les habitudes d’achat en ligne. L’analyse du commerce électronique couvre l’ensemble du parcours client, de la découverte à l’acquisition, à la conversion, puis à la fidélisation et à l’assistance.

    Dans cette série de blogs en deux parties, nous allons construire une plate-forme analytique de commerce électronique qui peut aider à analyser les données en temps réel ainsi que par lots. Nous utiliserons un ensemble de données de commerce électronique de Kaggle pour simuler les journaux d’achats des utilisateurs, les vues de produits, l’historique des paniers et le parcours de l’utilisateur sur la plate-forme en ligne afin de créer deux pipelines analytiques :

    • Le traitement par lots
    • Traitement en ligne/en temps réel

    Vous pouvez vous référer à cette session présentée à AWS re:Invent 2022 pour une présentation vidéo.

    Valeur des données dans la prise de décision

    Le traitement par lots

    Le le traitement par lots impliquera l’ingestion de données, l’architecture Lakehouse, le traitement et la visualisation à l’aide d’Amazon Kinesis, AWS Glue, Amazon S3 et Amazon QuickSight pour tirer des informations sur les éléments suivants :

    • Visiteurs uniques par jour
    • Pendant un certain temps, les utilisateurs ajoutent des produits à leur panier mais ne les achètent pas
    • Principales catégories par heure ou par jour de semaine (c’est-à-dire pour promouvoir des remises en fonction des tendances)
    • Pour savoir quelles marques ont besoin de plus de marketing

    Traitement en ligne/en temps réel

    Le traitement en temps réel impliquerait de détecter les attaques DDoS et de robots à l’aide d’AWS Lambda, d’Amazon DynamoDB, d’Amazon CloudWatch et d’AWS SNS.

    Ceci est la première partie de la série de blogs, où nous nous concentrerons uniquement sur le traitement en ligne/en temps réel pipeline de données. Dans la deuxième partie de la série de blogs, nous plongerons dans le traitement par lots.

    Base de données

    Pour ce blog, nous allons utiliser les données de comportement e-commerce d’une boutique multi-catégories.

    Ce fichier contient les données de comportement pendant 7 mois (d’octobre 2019 à avril 2020) d’une grande boutique en ligne multi-catégories, où chaque ligne du fichier représente un événement. Tous les événements sont liés aux produits et aux utilisateurs. Chaque événement est comme une relation plusieurs à plusieurs entre les produits et les utilisateurs.

    Architecture

    Traitement en temps réel

    Nous allons construire un pipeline d’ingénierie de données de bout en bout où nous commencerons avec ces données de comportement de commerce électronique à partir d’un ensemble de données de magasin multi-catégories comme entrée, que nous utiliserons pour simuler une charge de travail de commerce électronique en temps réel .

    Cette entrée raw flux de données ira dans un Flux de données Amazon Kinesis (stream1), qui diffusera les données vers Analyse de données Amazon Kinesis pour l’analyse, où nous utiliserons une application Apache Flink pour détecter toute attaque DDoS, et le filtered les données seront envoyées à un autre Amazon Kinesis Data Stream (stream2).

    Nous allons utiliser SQL pour construire le Apache Flink application utilisant Analyse de données Amazon Kinesis et, par conséquent, nous aurions besoin d’un magasin de métadonnées, pour lequel nous allons utiliser Colle AWS Catalogue de données.

    Et puis ce stream2 déclenchera une AWS Lambda fonction qui enverra un Amazon SNS notification aux parties prenantes et stocke les détails de la transaction frauduleuse dans un DynamoDB tableau. L’architecture ressemblerait à ceci :

    Architecture de traitement temps réel

    Le traitement par lots

    Si nous examinons le schéma d’architecture ci-dessus, nous verrons que nous ne stockons pas le raw données entrantes n’importe où. Au fur et à mesure que les données entrent par Flux de données Kinesis (stream1) nous le transmettons à Analyse des données Kinesis analyser. Et plus tard, nous pourrions découvrir un bogue dans notre Apache Flink application, et à ce moment-là, nous corrigerons le bogue et reprendrons le traitement des données, mais nous ne pouvons pas traiter les anciennes données (qui ont été traitées par notre buggy Apache Flink application). C’est parce que nous n’avons pas stocké le raw données n’importe où, ce qui peut nous permettre de les retraiter ultérieurement.

    C’est pourquoi il est recommandé d’avoir toujours une copie du raw les données stockées dans un stockage (par exemple, sur Amazon S3) afin que nous puissions revoir les données si nécessaire pour le retraitement et/ou le traitement par lots.

    C’est exactement ce que nous allons faire. Nous utiliserons le même flux de données entrant d’Amazon Kinesis Data Stream (stream1) et transmettez-le à Tuyau d’incendie Kinesis qui peut écrire les données sur S3. Ensuite, nous utiliserons Colle pour cataloguer ces données et effectuer un travail ETL à l’aide de Glue ETL pour traiter/nettoyer ces données afin que nous puissions utiliser davantage les données pour exécuter certaines requêtes analytiques à l’aide Athéna.

    Enfin, nous tirerions parti QuickSight pour construire un tableau de bord pour la visualisation.

    Tirez parti de QuickSight pour créer un tableau de bord pour la visualisation

    Procédure pas à pas

    Construisons cette application étape par étape. Je vais utiliser une instance AWS Cloud9 pour ce projet, mais ce n’est pas obligatoire. Si vous souhaitez lancer une instance AWS Cloud9, vous pouvez suivre les étapes mentionnées ici et continuer.

    Téléchargez le jeu de données et clonez le référentiel GitHub

    Clonez le projet et placez-le dans le bon répertoire :

    # Clone the project repository 
    git clone https://github.com/debnsuma/build-a-managed-analytics-platform-for-e-commerce-business.git
    cd build-a-managed-analytics-platform-for-e-commerce-business/
    
    # Create a folder to store the dataset 
    mkdir dataset
    

    Téléchargez le jeu de données à partir d’ici et déplacez le fichier téléchargé (2019-Nov.csv.zip) sous le dataset dossier:

    Téléchargez l'ensemble de données et déplacez le fichier téléchargé (2019-Nov.csv.zip) sous le dossier de l'ensemble de données

    Maintenant, décompressez le fichier et créons un exemple de version de l’ensemble de données en prenant simplement le premier 1000 enregistrements du dossier.

    cd dataset
     
    unzip 2019-Nov.csv.zip
    
    cat 2019-Nov.csv | head -n 1000 > 202019-Nov-sample.csv

    Créer un compartiment Amazon S3

    Nous pouvons maintenant créer un bucket S3 et importer cet ensemble de données :

    • Nom du godet : e-commerce-raw-us-east-1-dev (remplacer <BUCKET_NAME> avec votre propre nom de compartiment)
    # Copy all the files in the S3 bucket
    aws s3 cp 2019-Nov.csv.zip s3://<BUCKET_NAME>/ecomm_user_activity/p_year=2019/p_month=11/
    aws s3 cp 202019-Nov-sample.csv s3://<BUCKET_NAME>/ecomm_user_activity_sample/202019-Nov-sample.csv
    aws s3 cp 2019-Nov.csv s3://<BUCKET_NAME>/ecomm_user_activity_unconcompressed/p_year=2019/p_month=11/

    Créer le flux de données Kinesis

    Maintenant, créons le premier flux de données Kinesis (stream1 dans notre diagramme d’architecture) que nous utiliserons comme flux entrant. Ouvrez le ConsoleAWS et puis:

    • Aller à Amazon Kinesis.
    • Cliquer sur Créer un flux de données.

    Créer un flux de données

    Créons un autre flux de données Kinesis que nous utiliserons plus tard (stream2 dans le schéma d’architecture). Cette fois, utilisez le nom du flux de données comme e-commerce-raw-user-activity-stream-2.

    Créer un autre flux de données Kinesis

    Démarrez le trafic de commerce électronique

    Nous pouvons maintenant démarrer le trafic e-commerce, car notre flux de données Kinesis est prêt. Ce simulateur que nous allons utiliser est un simple python script qui lira les données d’un fichier CSV (202019-Nov-sample.csvle jeu de données que nous avons téléchargé précédemment) ligne par ligne et l’envoyer au flux de données Kinesis (stream1).

    Mais avant d’exécuter le simulateur, modifiez simplement le stream-data-app-simulation.py script avec votre où vous avez l’ensemble de données.

    # S3 buckect details (UPDATE THIS)
    BUCKET_NAME = "e-commerce-raw-us-east-1-dev"

    Une fois mis à jour, nous pouvons exécuter le simulateur.

    # Go back to the project root directory 
    cd ..
    # Run simulator 
    pip install boto3
    python code/ecomm-simulation-app/stream-data-app-simulation.py 
    
    HttpStatusCode: 200 ,  electronics.smartphone
    HttpStatusCode: 200 ,  appliances.sewing_machine
    HttpStatusCode: 200 ,  
    HttpStatusCode: 200 ,  appliances.kitchen.washer
    HttpStatusCode: 200 ,  electronics.smartphone
    HttpStatusCode: 200 ,  computers.notebook
    HttpStatusCode: 200 ,  computers.notebook
    HttpStatusCode: 200 ,  
    HttpStatusCode: 200 ,  
    HttpStatusCode: 200 ,  electronics.smartphone

    Intégration avec Kinesis Data Analytics et Apache Flink

    Maintenant, nous allons créer un Analyse de données Amazon Kinesis Application de streaming qui analysera ce flux entrant pour toute attaque DDoS ou bot. Ouvrez la console AWS, puis :

    • Aller à Amazon Kinesis.
    • Sélectionner Applications d’analyse.
    • Cliquer sur Cahiers d’atelier.
    • Cliquer sur Créer un bloc-notes Studio.

    Créer un bloc-notes Studio

    • Utiliser ecomm-streaming-app-v1 comme le Nom du bloc-notes Studio.
    • Sous le Autorisations section, cliquez sur Créer pour créer une base de données AWS Glue, nommez la base de données comme my-db-ecomm.
    • Utiliser la même base de données, my-db-ecomm du menu déroulant.
    • Cliquer sur Créer un bloc-notes Studio.

    Créer un bloc-notes Studio - Général

    Maintenant, sélectionnez le ecomm-streaming-app-v1 Carnet de notes Studio et cliquez sur Ouvrir dans Apache Zeppelin :

    Ouvrir dans Apache Zeppelin

    Une fois la Tableau de bord Zeppelin apparaît, cliquez sur Remarque d’importation et importez ce notebook :Importer un bloc-notes

    Ouvrez le sql-flink-ecomm-notebook-1 carnet de notes. Les interpréteurs Flink pris en charge par le bloc-notes Apache Zeppelin sont Python, IPython, stream SQL ou batch SQL, et nous allons utiliser SQL pour écrire notre code. Il existe de nombreuses façons de créer un Application Flash mais l’un des moyens les plus simples consiste à utiliser le bloc-notes Zeppelin. Regardons ce cahier et discutons brièvement de ce que nous faisons ici :

    • Premièrement, nous créons un table pour la source de données entrante (qui est le e-commerce-raw-user-activity-stream-1 flux entrant).
    • Ensuite, nous créons un autre table pour les données filtrées (qui sont pour e-commerce-raw-user-activity-stream-2 flux sortant).
    • Et enfin, nous mettons la logique pour simuler le DDoS attaque. Nous examinons essentiellement les 10 dernières secondes des données et les regroupons par user_id. Si nous remarquons plus de 5 enregistrements dans ces 10 secondes, Flink prendra cela user_id et le non. d’enregistrements dans ces 10 secondes et poussera ces données vers le e-commerce-raw-user-activity-stream-2 sortant…
    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.