[WEBINAR💻] Modernisez votre IT, migrez vers le cloud Oracle avec la préparation de votre Landing Zone. Inscrivez-vous dès maintenant à notre prochain webianr🎙!

✖︎
iot-big-data-quelle-base-de-donnees_0.png

IoT, Big Data : quelle base de données pour vos applications ?

04/05/2020
Big Data
IoT

Bases de données relationnelles, bases de données NoSQL, bases de données temporelles (Time Series) : la question du choix de la base de données est récurrente pour les nouvelles applications liées aux objets connectées et au Big Data.

Il faut dire que les typologies de données sont nombreuses (valeurs de capteurs, gestion des équipements...), leurs sources multiples et leur utilité souvent croisée entre plusieurs applications. Sans compter une grande disparité entre données froides et données chaudes pour des calculs souvent complexes, à diverses échelles de temps (temps réel, quasi-temps réel ou encore analyses a posteriori).

Inutile de faire languir plus longtemps : aucun type de système de gestion de bases de données n’apporte une réponse universelle aux applications IoT et Big Data. Il s’agit avant toute chose d’identifier les besoins et les contraintes futurs de l’application pour opérer les meilleurs choix. Dans ce contexte, les bases de données relationnelles sont loin d’avoir dit leur dernier mot…

SGBDR : l’incontournable

Souples, faciles d’utilisation et très largement matures aujourd’hui, les bases de données relationnelles sont aussi d’une grande fiabilité, les rendant parfaitement adaptées au traitement d’énormes quantités de données générées par les objets connectés. En évitant la création de silos de data, elles répondent en outre à la complexité de ces données, mais également à leur accessibilité par de multiples utilisateurs ou applications.

S’il est important de bien modéliser les données dès le départ pour garantir de bonnes performances à la base, gérer des données semi-structurées et permettre la conception de requêtes complexes, les compétences SQL disponibles sur le marché limitent ces contraintes. En particulier sur les environnements SQL Server ou PostgreSQL, qui comptent parmi les plus populaires de l’écosystème relationnel.

Quant aux fonctions spécifiques des bases de données Time Series, particulièrement adaptées aux données des objets connectés (qui sont des séries chronologiques par nature), il est tout à fait possible d’associer une base de données temporelles à une base de données relationnelle. Certaines le proposent même en natif via une extension : c’est le cas par exemple de PostgreSQL avec l’extension TimeScaleDB.

NoSQL : l’approche alternative

Tout d’abord, revenons sur quelques légendes urbaines : NoSQL ne remplacera pas le relationnel ; aucune des deux technologies ne peut se prévaloir sur l’autre et elles ne sont pas si différentes l’une de l’autre

Parmi les principales entre les deux approches, on retiendra notamment le modèle strict des tables relationnelles, qui limite le risque d’erreur. Plus flexible avec son approche, le choix d’une base NoSQL doit se faire en fonction du cas d’usage. De la même façon, la logique NoSQL, face au schéma relationnel, s’adapte bien aux projets où le modèle de données est difficile à déterminer au départ.

Parmi les autres différences notables, on retiendra, aux côtés des questions de jointures, d’intégrité, de transactions ou encore de scalabilité, les notions de normalisation SQL vs dénormalisation NoSQL, et bien sûr de performances. Avec sa dénormalisation, qui admet la duplication de données (vs l’utilisation de clés étrangères en SQL), les requêtes sont plus rapides, mais la mise à jour des informations particulièrement lente. Ce qui tord aussi le cou au mythe du NoSQL plus performant que SQL !

Bases de données Time Series : l’embarras du choix ?

Pour rappel, une base de données temporelles est une base de données optimisée pour les données horodatées ou les séries chronologiques : mesures ou événements monitorés, suivis, et agrégés dans le temps, tels que des indicateurs de serveur, des données de performance des applications, des données réseau, de données de capteurs, d'événements, de clics, de transactions ou tout autre type de données analytiques.

Par rapport aux autres formats de SGBD, les BDD Time Series sont spécifiquement conçues pour une gestion efficace du cycle de vie des données, de la compression et des analyses à grande échelle de nombreux enregistrements.

Sur le marché, plus d’une trentaine de systèmes, Open Source ou propriétaires, se disputent les faveurs des développeurs. Parmi lesquels InfluxDB est de loin l’un des plus populaires. Capable de tourner sur tous les principaux systèmes d’exploitation, InfluxDB supporte de nombreux langages de programmation et des charges importantes. Avec des schémas de bases de données rapides à mettre en œuvre et à modifier, la documentation très fournie d’InfluxDB permet de se lancer en quelques minutes.

Pour en savoir plus sur les éléments constitutifs d’une infrastructure BigData dans le cadre de projets IoT, lire aussi : IoT : sans Big Data, point de salut.

Ebook "IoT : Quelles technologies Big Data utiliser ?"

Illustration : Designed by rawpixel.com / Freepik