Actualités

[22/03/2017] Smile participe au salon Cloud Computing World Expo

Smile interviendra ce mercredi 22 mars au salon Cloud Computing World Expo pour présenter notre projet collaboratif OCCIware (plateforme standard outillée de connecteurs Cloud).

[22/03/2017] Smile vainqueur des IoT Awards 2017 !

Lors de l'IoT World à Paris, Smile a remporté l'IoT Award dans la catégorie "High-tech" pour son projet de cabine connectée avec Coved.

[17/03/2017] Smile dans le Journal de l'Emploi sur Demain TV

Géraldine Moreau-Luchaire, notre Responsable Recrutement, nous parle des 350 postes à pourvoir en 2017 !

Toutes les actualités picto
       

Vous avez besoin de mettre à jour votre Lecteur Flash Flash 7

Guillemet ouvrant l'actualité des solutions
et des technologies open source Guillemet fermant
picto

Analyser l'usage de sites web à fortes volumétries en SQL avec MongoDB et Hadoop HIVE

Les logs de sites web constituent une matière première, facilement disponible et riche en informations sur l'usage des plate-formes web. Mais cette matière est régulièrement gaspillée.

L'information qu'elle fournit peut se révéler utile :

  • à l'exploitation éditoriale, en collectant tous les sollicitations (appels d'URL), y compris celles qui seraient hors du scope des outils d'analyse de fréquentation classiques (pages non taggées, URLs techniques/de redirection, web services, ...) et en complément de ces derniers
  • à l'exploitation technique, en permettant d'analyser la consommation de bande passante en fonction de différents paramètres, dans l'optique d'optimiser les performances et les coûts

Cet article de blog illustre les capacités d'analyse de la consommation en bande passante et des accès web offertes par le Big Data en croisant des données issues de logs HTTP Apache, chargés de manière efficace via l'ETL Talend for Big Data dans une collection MongoDB, avec un référentiel de codes HTTP stocké dans un fichier CSV.
Les logs peuvent également être enrichis avec l'éclatement d'urls sémantiques, un croisement avec le catalogue produits,… afin de maximiser les capacités d'analyse métier.

Le Big Data au service du web

MongoDB est une base de données NoSQL affichant une belle vélocité, au-delà de la capacité d'y stocker des données avec une structure souple, pratique pour stocker des données temps réel et des logs (de différentes sources).

Apache Hive fournit des interfaces JDBC et ODBC, exploitables depuis des portails décisionnels, tableurs,…
Hive permet également de définir des tables à stockage externe. Nous allons ici exploiter cette fonctionnalité, le moteur SQL de Hive nous permettant ensuite de réaliser des jointures entre les différentes tables.
A noter que Hive peut exploiter les performances du moteur de traitement Apache Spark.

Charger les logs dans MongoDB avec Talend for Big Data

L'ETL Talend for Big Data intègre une large palette de connecteurs aux bases NoSQL telles MongoDB, Hbase ou Cassandra.

Il est bien sûr possible de consolider les logs de plusieurs serveurs web afin de disposer d'une vision globale multi-sites et d'analyser les interactions entre ces derniers.

Définir les tables à stockage externe dans HIVE

La première étape consiste en la définition des tables de la structure de Hive, de manière analogue à une base SGBDR classique sauf dans le paramétrage de son stockage :

  • Collection MongoDB contenant les logs

CREATE EXTERNAL TABLE logs(date STRING, time STRING,diffgmt STRING, rtype STRING, file STRING, proto STRING, code INT, bytes INT,[AUTRES_CHAMPS]) STORED BY 'com.mongodb.hadoop.hive.MongoStorageHandler' TBLPROPERTIES('mongo.uri'='mongodb://[INSTANCE_MONGO]:27017/weblogs.logs');

  • Fichier référentiel des codes HTTP

CREATE EXTERNAL TABLE http_codes(code STRING, libelle STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE LOCATION 'CHEMIN_FICHIER_REF';

Exploiter les données en SQL

Les données sont ensuite exploitables en langage SQL classique, en utilisant l'outil beeline, une connexion JDBC ou ODBC.

Par exemple, nous pouvons en extraire des métriques de consommation de bande passante ventilés par code HTTP et page, avec la requête suivante :
select http_codes.code, http_codes.libelle, logs.file, SUM(bytes) from logs join http_codes on logs.code=http_codes.code group by http_codes.code, http_codes.libelle, logs.file HAVING SUM(bytes)>0;

Exploiter les données dans un cube d'analyse OLAP

Le moteur OLAP Mondrian permet de se connecter à Hive pour analyser les métriques définis suivant les dimensions et niveaux de granularité définis :

Ce type d'analyse permet de mettre en avant des opportunités d'optimisations de différentes natures :

  • techniques : identification et résolution de problèmes techniques (404/500), minifications, ré-évaluation de redirections, mise en place de Content Delivery Network, optimisation de systèmes de cache,...
  • marketing : parcours utilisateurs et de mise en avant de contenus,...

Exploiter les données dans un tableur

Le driver ODBC de Hive permet un requêtage facile des données Big Data depuis un tableur Excel :

N'hésitez pas à nous contacter pour une personnalisation de nos solutions d'analyse de données à vos besoins.

Florent BERANGER
picto

Commentaires

Soyez la premiere personne à ajouter un commentaire sur cet article.
Ecrire un nouveau commentaire