TechnologySeptember 9, 2021

Scénarios NoSQL : quand utiliser une base de données non relationnelle

Rich Edwards
Rich Edwards
Scénarios NoSQL : quand utiliser une base de données non relationnelle

Pendant des décennies, nombre d’entreprises se sont appuyées sur les bases de données relationnelles pour stocker, protéger et accéder à leurs données. Les bases de données SQL, en particulier, ont longtemps bien fonctionné, et il en est toujours ainsi dans de nombreux cas d’utilisation. Mais aujourd’hui, on rencontre un vaste éventail de situations où les bases de données SQL ne peuvent plus répondre aux besoins des entreprises modernes, en particulier celles qui se sont orientées vers le cloud. Aussi ces entreprises se tournent-elles de plus en plus vers les bases de données NoSQL pour atteindre leurs objectifs.

Les bases de données NoSQL sont probablement le meilleur choix si :

  • Vous possédez un important volume et une grande variété de données
  • L’évolutivité est une priorité
  • Vous avez besoin d’une disponibilité continue
  • Vous travaillez avec des big data ou réalisez des analyses en temps réel

Si tous ces cas de figure appellent généralement une base de données NoSQL, il convient toutefois de prendre en compte un certain nombre de points avant de faire le pas. Dans ce post, nous nous pencherons sur les cas où NoSQL s’avère l’option la plus pertinente. Commençons par regarder NoQSL de plus près.

NoQSL, qu’est-ce que c’est ?

NoSQL est l’abréviation de « not only SQL » ou « non-SQL ». C’est un terme utilisé pour décrire des bases de données qui ne sont pas relationnelles. Pour mieux comprendre les bases de données NoSQL, jetons tout d’abord un œil sur leur alternative, les bases de données SQL.

Développées au début des années 1970, à une époque où le stockage de données était extrêmement cher, les bases de données SQL s’efforcent de limiter autant que possible la duplication de données dans les tables. Cela en fait des bases de données très bien organisées, mais aussi extrêmement rigides et difficiles à modifier. Depuis, le coût du stockage s’est effondré, tandis que le coût horaire des développeurs s’est envolé. Avec les bases de données NoSQL, les développeurs ne sont plus limités à l’approche tabulaire rigide des bases de données relationnelles et disposent d’une flexibilité bien plus importante pour travailler au mieux.

NoSQL présente de nombreux avantages, notamment :

  • Le choix parmi plusieurs types de bases de données —clé-valeur, document, tabulaire (ou à larges colonnes), graphe ou multi-modèle—de quoi trouver celle qui convient le mieux à vos données.
  • La flexibilité de stocker ensemble une grande variété de types de données et d’y accéder aisément, sans planification préalable. Il peut s’agir de données structurées, semi-structurées, non structurées ou polymorphes.
  • La possibilité d’ajouter de nouveaux types de données et champs à la base de données sans avoir à redéfinir le modèle de données.
  • Une évolutivité horizontale intégrée permettant de gérer une croissance rapide et beaucoup moins coûteuse que le scale-out d’une base de données SQL.
  • Une disponibilité continue et une grande résilience de par son approche de mise à l’échelle horizontale.
  • La convivialité pour les développeurs, qui convient bien aux équipes modernes, agiles.

En savoir plus sur NoSQL.

Comparaison entre NoSQL et SQL

Malgré tous les avantages des bases de données NoSQL, elles ne sont pas toujours le bon choix. Il peut parfois s’avérer plus judicieux de rester sur le modèle éprouvé d’une base de données SQL. Comparons SQL et NoSQL selon plusieurs facteurs, puis demandez-vous lequel des modèles se prête le mieux à votre profil de données et à vos cas d’utilisation.

 

Bases de données SQL

Bases de données NoSQL

Structure des données

Statique et rigide, avec un schéma prédéfini. Focus sur la normalisation et la réduction de la redondance des données.

Les bases de données NoSQL possèdent des schémas dynamiques et flexibles qui gèrent tous les types de données, qu’elles soient structurées, semi-structurées, non structurées ou polymorphes.

Évolutivité et coût

Si vos données sont essentiellement statiques et qu’elles ne sont pas amenées à augmenter beaucoup, SQL conviendra mieux. Il est possible de faire évoluer horizontalement une base de données SQL, mais cela nécessite du code supplémentaire, des efforts non négligeables et c’est cher.

Évoluent horizontalement, ce qui vous permet d’étendre la capacité simplement et à peu de frais en ajoutant des serveurs standard ou des instances cloud. Plus économiques. Le bon choix pour le cloud computing.

Disponibilité et résilience

 

Disponibilité élevée à modérée des applications. Les bases de données SQL sont souvent hébergées sur un seul serveur.

 

Disponibilité continue, sans temps d’arrêt. Pas de point de défaillance unique.

Possibilité d’interroger

Le langage SQL est facile à apprendre et les requêtes peuvent être effectuées par des membres de l’équipe moins techniques, comme les collaborateurs du marketing, les responsables de projet ou les analystes commerciaux.

Étant donné la variété des structures de données trouvées dans les bases de données NoSQL, les requêtes NoSQL, même simples, demandent généralement de l’expérience en programmation. Autrement dit une équipe technique (et coûteuse) pour effectuer les requêtes.

Vitesse

La vitesse des bases de données SQL, par rapport aux NoSQL, dépend du contexte et du cas d’utilisation. Si vous avez des données hautement structurées, qui ne changent guère, SQL peut être rapide.

L’extraction peut être rapide avec les bases de données NoSQL. Toutefois, si la base de données est constituée de structures de données très diverses, le traitement prendra plus de temps, ce qui peut ralentir les choses.

 

Rapidité pour les développeurs

SQL nécessite davantage de planification en amont, car les modifications d’une base de données SQL sont difficiles et exigent des ressources considérables.

 

La flexibilité de NoSQL permet aux développeurs de se lancer directement dans la création d’une base de données sans perdre de temps à la planification préalable.8

Intégrité des données

La nature extrêmement structurée des tables de bases de données relationnelles assure une grande intégrité des données.

La flexibilité et l’évolutivité inhérentes aux bases de données NoSQL pèse sur l’intégrité des données et les normes de sécurité.

Taille des ensembles de données

Meilleur choix pour les petits volumes de données à faible croissance. Inadaptées aux grands ensembles de données ou à l’analyse big data.

 

 

Le schéma dynamique et l’évolutivité horizontale font des bases de données NoSQL les candidates idéales pour les applications big data et pour la gestion d’importants ensembles de données destinés à croître.8

Communauté

À près de 50 ans, le langage de programmation SQL est extrêmement mature et toujours très utilisé.

Quoique moins matures que SQL, les bases de données NoSQL sont utilisées par les développeurs depuis plus de dix ans et la communauté s’agrandit rapidement.NoSQL use cases

Comme vous pouvez le voir, le choix entre une base de données SQL ou NoSQL n’est pas toujours facile à faire. Chacune a ses avantages et ses inconvénients. La décision se prendra en fonction de l’environnement de données spécifique à votre organisation, de vos besoins actuels et de vos objectifs futurs. Les équipes de développement sont nombreuses à utiliser les deux modèles dans leur architecture de données cloud, parfois même au sein de la même application, déployant chacune pour couvrir les domaines qu’elles gèrent le mieux.

Quels sont les cas d’utilisation non relationnels ? Voici plusieurs scénarios où NoSQL a prouvé son utilité :

  • Détection des fraudes et authentification de l’identité
  • Gestion des stocks et des catalogues
  • Personnalisation, recommandations et expérience client
  • Internet des objets (IoT) et données de capteurs
  • Services financiers et paiements
  • Messagerie
  • Logistique et gestion d’actifs
  • Systèmes de gestion de contenus
  • Gestion numérique et média

Regardons de plus près les trois premiers scénarios NoSQL.

Détection des fraudes et authentification de l’identité

Protéger les données personnelles sensibles et garantir que seuls les vrais clients ont accès aux applications est naturellement une priorité absolue. Bien sûr, cela est particulièrement exacerbé dans des domaines tels que les services financiers, la banque, les paiements ou l’assurance.

C’est un combat sans fin. Les fraudeurs sont créatifs et alertes. Ils recherchent inlassablement de nouveaux moyens de briser les verrous et leurs attaques ne cessent d’augmenter à un rythme alarmant. Que vous essayiez de bloquer l’accès aux utilisateurs illégitimes ou d’authentifier l’identité de vos clients, vous devez vous appuyer fortement sur vos données.

Il est possible d’identifier des schémas et des anomalies pour localiser une fraude en temps réel ou, dans certains cas, avant même qu’elle ait lieu. Cela nécessite l’analyse en temps réel d’un important volume de données à la fois historiques et actives, de tous types, notamment (mais pas uniquement) le profil d’utilisateur, l’environnement, les données géographiques et peut-être même les données biométriques. Le contexte joue également un rôle important. Par exemple, un retrait de 500 dollars peut ne pas être une grande affaire pour un client particulier, mais alerter si la tentative se produit à trois heures du matin dans un pays étranger.

Les enjeux pour la réputation de votre entreprise n’ont jamais été aussi importants. Une fuite ou une erreur peut rapidement être amplifiée via le mégaphone des réseaux sociaux. C’est un peu comme marcher sur un fil. En effet, si l’on définit des restrictions trop strictes, cela peut entraîner un taux de fausses alertes tel qu’il peut nuire à l’expérience client. Vous voulez que vos clients puissent utiliser votre application ou votre site de la manière la plus simple possible, tout en garantissant qu’ils sont bien ceux qu’ils prétendent être. Ce n’est pas facile à gérer.

Cette configuration de besoins d’une part – analyse en temps réel, ensembles de données toujours plus vastes, nombreux types de données – et la possibilité, d’autre part, d’analyser en continu tout en intégrant machine learning et intelligence artificielle, font du choix d’une base de données NoSQL une évidence en matière de détection des fraudes et d’authentification de l’identité.

Prenons le cas d’ ACI Worldwide, une entreprise qui fournit des fonctionnalités de paiement en temps réel à 19 des 20 premières banques du monde. Son volume de transactions est astronomique, des billions de dollars de paiements traités chaque jour, et ses besoins en matière d’analyse de données sont complexes.

Si les systèmes de renseignement pour les paiements utilisaient autrefois des bases de données relationnelles, cette approche peine à gérer des scénarios à grande échelle en augmentation, qui requièrent l’analyse de données complexes. À un moment donné, il devient impossible et financièrement prohibitif de créer une base de données relationnelle assez grande pour faire le travail. Le seul moyen de gérer ces besoins avec une base de données SQL, ce serait de la partitionner. Mais en plus d’être extrêmement gourmand en ressources et coûteux, un partitionnement aurait un autre inconvénient. En cas de fraude, toutes les informations dans toutes les dimensions sont nécessaires pour prendre chaque décision de transaction. Pour gérer le volume sans cesse croissant, inévitablement, une base de données relationnelle devrait réduire la fenêtre de temps des transactions passées évaluées. Or cette fenêtre de temps, en diminuant, amenuise aussi la possibilité de détecter une fraude.

Pour que la détection des fraudes et l’authentification de l’identité soient efficaces, les types de données analysées dépassent largement le cadre des informations transactionnelles. Ils peuvent comprendre beaucoup plus, des données démographiques à l’historique des achats, en passant par les informations d’assistance du système CRM, les interactions sur le site Web, et bien plus encore. Il serait impossible de développer un schéma en amont, capable de définir tout ce que les clients seraient susceptibles de vouloir faire un jour. Cet environnement requiert la flexibilité d’une base de données NoSQL, où l’on peut ajouter rapidement n’importe quel type d’élément de donnée à l’ensemble.

DataStax Enterprise (DSE), a permis à ACI d’améliorer son taux de détection des fraudes et de fausses alertes, tout en faisant économiser à ses clients des millions de dollars. La baisse du nombre de cas de fausses alertes permet également au centre d’appels d’ACI d’économiser de l’argent.

Lisez comment ACI lutte contre la fraude avec une solution NoSQL.

Gestion des stocks et des catalogues

Les bases de données NoSQL sont connues pour leur haute disponibilité et leur évolutivité horizontale, prévisible et économique. Cela en fait une excellente solution pour les entreprises d’e-commerce qui possèdent des catalogues en ligne toujours plus importants et beaucoup de stocks à gérer.

Ces organisations ont besoin de la flexibilité de mettre à jour rapidement leur mix de produits, sans limite de volume. Le pire pour elles, ce serait que leur site ou leur application tombe en panne pour le Black Friday ou pendant la période des fêtes de Noël.

C’est pour ces raisons que Macy’s a décidé de passer des bases de données relationnelles au NoSQL. Macy’s, l’un des grands magasins les plus connus du monde, possède également l’un des plus grands sites d’e-commerce, avec des ventes annuelles de plusieurs milliards. Comme ACI, Macy’s gère un volume colossal de données, à fois diverses et en constante augmentation. Avant de passer au NoSQL, l’entreprise possédait une base de données extrêmement normalisée qui limitait sa capacité à faire évoluer son catalogue et son inventaire en ligne. Maintenant que DSE et une base de données NoSQL sont installés, ce n’est plus un problème pour l’équipe de Macy’s.

Telle qu’elle est configurée, la base de données NoSQL de Macy’s lui permet désormais de :

  • Gérer la croissance de trafic et d’immenses volumes de données
  • Évoluer facilement et à peu de frais
  • Rafraîchir plus rapidement son catalogue
  • Accroître son catalogue en ligne et son nombre de produits
  • Analyser son catalogue et son inventaire en temps réel

En savoir plus sur le passage de Macy’s au NoSQL.

Personnalisation, recommandations et expérience client

Offrir une expérience rapide et personnalisée n’est plus un différenciateur. C’est un minimum. Les clients attendent une expérience cohérence, de haute qualité et sur mesure de votre marque, 24h/24, 7j/7, quel que soit le périphérique utilisé.

Pour eux, cela va de soi. Ils exigent des interactions en temps réel et des recommandations pertinentes. Il est encore possible de procurer une expérience unique et mémorable, mais la première priorité est de garantir ces fondamentaux. Si ce n’est pas le cas, c’est ce que les clients retiendront. Et vous risquez de voir vos défaillances amplifiées sur Twitter ou Facebook. Les bases de données NoSQL permettent d’offrir des expériences personnalisées qui feront le bonheur de vos clients.

Parce que les bases de données NoSQL :

  • Assurent des délais de réponse rapides avec une latence extrêmement faible, même si la clientèle augmente
  • Peuvent traiter tous les types de données, structurées et non structurées, de sources très diverses
  • Sont conçues pour évoluer à peu de frais, avec la capacité de stocker, gérer, interroger et modifier d’immenses volumes de données, tout en offrant une expérience personnalisée à des millions de clients
  • Sont extrêmement flexibles, ce qui vous permet d’innover et d’améliorer l’expérience client en continu
  • Peuvent capturer, intégrer et analyser de manière transparente de nouvelles données affluant en permanence
  • Sont excellentes comme épine dorsale du machine learning et de l’intelligence artificielle, qui fournissent des recommandations et favorisent la personnalisation

En s’attachant à offrir dès le départ une expérience en ligne intuitive de qualité supérieure à sa clientèle, Macquarie Bank, entreprise de services financiers australienne, est passée en moins de deux ans d’une absence totale dans le monde de la banque de détail à l’un des plus grands concurrents dans l’espace de la banque numérique. Cette réussite est particulièrement due à l’accent qu’elle a mis à comprendre réellement le comportement des clients et à accorder la priorité à la personnalisation. Rien de surprenant à ce qu’elle utilise une base de données NoSQL (Apache Cassandra avec DataStax Enterprise) pour offrir à ses clients des recommandations, interactions et renseignements en temps quasi réel.

Lisez comment MacQuarie utilise NoSQL pour fournir une expérience personnalisée à ses clients

Avez-vous un cas d’utilisation NoSQL ?

Nous espérons que ce post et les exemples de bases de données non relationnelles ci-dessus vous aideront à savoir si le passage à une base de données NoSQL serait judicieux. Si vous déterminez effectivement que votre entreprise est une candidate NoSQL, quelle est la prochaine étape ?

Une bonne manière de commencer est de planifier une démonstration pour DataStax Astra DB, une base de données NoSQL évolutive reposant sur Apache CassandraTM.

Ou, si vous voulez vous lancer directement, vous pouvez démarrer gratuitement avec Astra DB.

Share

One-stop Data API for Production GenAI

Astra DB gives JavaScript developers a complete data API and out-of-the-box integrations that make it easier to build production RAG apps with high relevancy and low latency.