Qu’est-ce que le Big Data (données massives) ?
Le Big Data, aussi appelé données volumineuses, méga données ou données massives, réfère à des données qui nécessitent des outils de traitement et des technologies analytiques adaptés à leur taille, leur volume, leur variété et leur vélocité élevés.
Le réseau Internet, le faible coût des ordinateurs, la popularisation des appareils mobiles et les réseaux sociaux ont contribué à la croissance phénoménale du volume de données générées quotidiennement. La taille des données nécessitant un stockage et un traitement croît à un rythme plus exponentiel que linéaire. Au volume croissant, s’ajoute la variété des données mises en ligne chaque jour : vidéos, images, sons, etc. Le contenu généré prend des formes diverses nécessitant des outils de gestion de données et des approches analytiques capables de traiter des données non structurées.
Selon le forum économique mondial, en 2019, les internautes échangent chaque jour plus de 294 milliards de courriels, 4 pétaoctets (4 millions de milliards d’octets) de données sont créées dans le réseau social Facebook et 5 milliards de recherches sont effectuées sur les moteurs de recherche.
La croissance fulgurante de l’activité numérique et la complexité grandissante de la nature des données ont exigé une nouvelle génération d’outils de gestion de données appelés outils de traitement de données volumineuses.
Étude de cas
Pour assimiler les notions de données volumineuses et les outils nécessaires à leur traitement, supposons que nous ayons à construire une infrastructure de données permettant la gestion des données d’une nouvelle plateforme de messagerie (WhatsApp, Signal ou Messenger).
Partons du principe que l’application de messagerie est nouvelle et gagne en popularité de jour en jour. Comme cette traction engendre une augmentation quasi exponentielle des données numériques à gérer, il est nécessaire de mettre en place une infrastructure élaborée pour la croissance rapide.
Stocker des données volumineuses
La croissance des données sur le réseau Internet est plus exponentielle que linéaire. Imaginons que chaque nouvel utilisateur est, par nature, capable d’inviter d’autres utilisateurs et d’échanger avec eux. Si un utilisateur invite une vingtaine d’autres utilisateurs, et que chacun d’eux fait de même, nous nous retrouverons avec 420 nouveaux utilisateurs. Si le même processus se maintient, après seulement deux itérations supplémentaires, le nombre d’utilisateurs de cette application atteindra rapidement près de 3,5 millions.
Au-delà de la gestion des données des profils où il est possible d’ajouter des images et des vidéos sur son profil personnel, la gestion devient encore plus complexe si chacun des utilisateurs peut échanger naturellement des données avec tout autre utilisateur. Le nombre de conversations distinctes possibles se chiffrera facilement en milliards, et la somme de données qui transigeront chaque jour sera évidemment imposante. Il est donc nécessaire de mettre en place des outils de stockage de données et des systèmes de gestion de base de données (SGBD) – (ou DBMS Database Management System) qui pourront stocker à la volée un volume de données aussi important.
En plus des défis computationnels liés à la gestion de la quantité ou de la vélocité (vitesse) de ces données, un autre défi s’impose : la variété des données. Les internautes d’aujourd’hui s’attendent à pouvoir systématiquement échanger une variété de données composées de textes, d’images, d’animations, d’émoticônes, de messages sonores, de vidéos, etc. La gestion des données doit tenir compte de cette variété qui requiert souvent un travail de formatage et de distribution des données au fur et à mesure de leur transmission.
Traiter des données volumineuses
Les données massives générées et collectées dans notre nouvelle application devront subir un ensemble d’opérations de traitement et de transformation tout au long de leurs cycles de vie. Le traitement et la manipulation de ces données couvrent un large éventail de cas d’usage dont l’ensemble constitue l’expérience que l’utilisateur voudrait vivre. Leur manipulation demande des technologies de traitement de données à la volée permettant de considérer divers aspects (la vélocité des données, la variabilité de leur structure, leur taille, etc.). Voici quelques exemples de cas d’usage nécessitant le traitement des données volumineuses :
- Afficher une conversation depuis l’historique : l’application permet aux utilisateurs de revoir par défaut les conversations auxquelles ils ont participé. Cette fonctionnalité, actuellement considérée comme acquise d’office, peut représenter un défi computationnel. Chaque fois que quelqu’un, parmi les trois millions d’utilisateurs, consulte son historique de conversation, le système devra charger les données en question (textes, vidéos, images, etc.) à partir des bases de données pour les afficher au bon format. Quelques techniques peuvent réduire la charge imposée au système, par exemple celle d’enregistrer une partie des données localement, c’est-à-dire dans l’appareil de l’utilisateur pour qu’il les ait à sa disposition sans devoir les charger à partir des bases de données ;
- La recherche par mot-clé : en tant qu’utilisateur, on s’attend à ce que l’application de messagerie permette de rechercher une conversation ou un fichier à partir d’un mot-clé. Chacune de ces recherches exigera que le système consulte toutes les données en lien avec ce mot pour suggérer les résultats. Cette opération, coûteuse en termes de ressources de calcul, nécessite souvent des données indexées au fur et à mesure de leur création ;
- La diffusion en direct : la capacité de diffuser du contenu en direct s’est largement popularisée ces derniers temps grâce aux réseaux sociaux. Supposons qu’on offre aux utilisateurs la capacité de diffuser une vidéo en haute résolution en direct. Tous leurs contacts pourraient en consommer le contenu sur le vif au moment de la diffusion. Cette fonctionnalité représente en soi un défi computationnel de taille. Diffuser une vidéo en direct consiste, en temps réel, à capturer un contenu, le compresser à la volée (par économie de bande passante), le transmettre aux serveurs de l’application, le stocker et le redistribuer aux utilisateurs voulant le visionner. La rapidité d’exécution de cette séquence d’opérations est cruciale pour offrir une expérience utilisateur adéquate afin qu’à la réception de la vidéo, il n’y ait ni ralentissements ni coupures, etc.
Analyser des données volumineuses
Des bases de données analytiques sont souvent utilisées au-delà de l’usage opérationnel des données qui offrent des fonctionnalités de base à l’utilisateur. Elles permettent de répondre spécifiquement aux différentes requêtes analytiques servant à fournir un large éventail de métriques liées à l’utilisation de l’application, aux tendances, aux interactions des utilisateurs, etc. L’analyse des données est une capacité cruciale pour la monétisation des applications de messagerie gratuites. À défaut d’utilisateurs payeurs, ces applications se basent sur leur capacité à générer du revenu grâce à de la publicité hyperpersonnalisée et ciblée.