Table des matières:
- Pas besoin d'écrire SQL
- Ne pas avoir à passer des mois à créer un schéma
- Moins de code de transformation de données (ETL)
- Plus facile à maintenir le code
- Exécuter du code à proximité des données pour obtenir les meilleures performances
- Beaucoup d'options open-source
- Facile à mettre à l'échelle
- Modèle de données de cohérence final
- Support du langage ésotérique
- JavaScript de bout en bout
Vidéo: Entrevue - Emmanuel Viau - Ere Informatique 2024
La popularité des bases de données NoSQL vient du nombre de développeurs enthousiastes à l'idée de les utiliser. Les développeurs considèrent NoSQL comme une technologie habilitante et libératrice. Contrairement à l'approche relationnelle traditionnelle, NoSQL vous permet de travailler avec des données plus proches de l'application que le modèle de données relationnel.
Les développeurs adoptent les technologies NoSQL pour de nombreuses raisons, dont certaines sont mises en évidence ici:
Pas besoin d'écrire SQL
L'écriture de SQL (Structured Query Language) - et le fait bien - est le fléau de l'existence de nombreux développeurs d'entreprise. Cette difficulté est due au fait que l'écriture de requêtes très complexes avec plusieurs jointures entre des tables connexes n'est pas facile à faire. De plus, à la lumière des changements réguliers dans la base de données au fil du temps, le maintien d'un code de requête complexe est un travail en soi.
Les développeurs d'entreprise ont inventé un certain nombre de façons d'éviter d'écrire du SQL. L'un des moyens les plus populaires est l'utilisation de la bibliothèque ORM (Object-Relational Mapping), Hibernate. Hibernate prend un fichier de configuration et un ou plusieurs objets et abstracts éloignés du SQL méchant afin que les développeurs n'aient pas à l'utiliser. Cela a un coût en termes de performance, bien sûr, et ne résout pas tous les cas d'utilisation de requêtes. Parfois, vous devez revenir à SQL.
Les bases de données NoSQL fournissent leurs propres langages de requête, qui sont adaptés à la façon dont les données sont gérées par la base de données et aux opérations que les développeurs effectuent le plus souvent. Cette approche fournit un mécanisme de requête plus simple que les instructions SQL imbriquées.
Certaines bases de données NoSQL fournissent également une interface SQL pour interroger les bases de données NoSQL, au cas où les développeurs ne pourraient pas casser l'habitude SQL!
Ne pas avoir à passer des mois à créer un schéma
L'agnosticisme des schémas dans les bases de données NoSQL vous permet de charger des données rapidement sans avoir à créer un schéma relationnel sur plusieurs mois. Vous n'avez pas besoin d'analyser au préalable tous les éléments de données que vous avez besoin de stocker dans NoSQL, comme vous le faites avec un SGBDR.
Moins de code de transformation de données (ETL)
Un problème courant lié aux bases de données relationnelles lié à la conception d'un schéma initial est que vous devez forcer des données non relationnelles en lignes et en colonnes. Ce mécanisme de déchiquetage, ainsi que d'autres méthodes de code qui pré-traitent les informations pour le stockage et le post-traitent pour la récupération est appelé extraire, transformer et charger (ETL) .
Ce code force les développeurs à prendre leurs beaux modèles d'objets et de documents et à écrire du code pour stocker chaque dernier élément. Le faire est méchant et conduit également à des développeurs hautement qualifiés qui écrivent un code de plomberie peu performant et inintéressant.
Les bases de données NoSQL vous permettent de conserver les structures de données stockées beaucoup plus près de leur forme d'origine. Les données circulant entre les systèmes sont généralement au format XML, tandis que dans le cas des applications Web, les données sont formatées dans un document JSON. Le fait de pouvoir stocker, gérer et rechercher des fichiers JSON en mode natif est un avantage considérable pour les développeurs d'applications.
Plus facile à maintenir le code
Tout le code que vous écrivez doit être maintenu. En conservant les structures de base de données à proximité des formats de données du code de l'application, vous minimisez la quantité de code, ce qui minimise la maintenance des tests de code et de régression que vous devez effectuer au fil du temps.
Lorsque les structures de données changent sur un SGBDR, vous devez passer en revue tout le code SQL pouvant utiliser les tables modifiées. Dans NoSQL, vous ajoutez simplement le support pour les nouveaux éléments, ou simplement les ignorer! Beaucoup plus facile à maintenir, grâce à la nature agnostique du schéma des bases de données NoSQL.
Exécuter du code à proximité des données pour obtenir les meilleures performances
Un SGBDR fournit des procédures stockées pour l'exécution de code sur un serveur de base de données. Ce code est exécuté en un seul endroit. Cette approche utile est la base de nombreuses applications analytiques et complexes de gestion de données.
De nombreuses bases de données NoSQL permettent de distribuer ce type de code sur tous les serveurs qui stockent des données pertinentes, ce qui permet une plus grande parallélisation de la charge de travail. Cette approche est particulièrement importante pour les grandes ingestions de données nécessitant un traitement et pour les analyses d'agrégation complexes au moment de la requête.
Les fonctions définies par l'utilisateur (UDF) et les scripts côté serveur dans une variété de bases de données NoSQL fournissent cette capacité distribuée. Les fonctions UDF sont similaires à la fonction MapReduce de Hadoop, à l'exception des fonctions UDF qui peuvent être exécutées en temps réel plutôt qu'en mode de traitement par lots et qui ne requièrent pas les mêmes ressources que Hadoop plus une base de données.
Beaucoup d'options open-source
Dans de nombreux domaines logiciels d'entreprise, le choix d'une solution open source solide fait défaut. Seulement une ou deux options répandues peuvent exister. La disponibilité des compétences et le soutien local dans le pays sont des problèmes encore plus importants.
Cependant, il existe une myriade de bases de données NoSQL open-source. Beaucoup d'entre eux ont des sociétés commerciales à part entière qui offrent un soutien et ont des bureaux dans le monde entier. Donc, si vous avez besoin de support ou plus de fonctionnalités, vous pouvez éventuellement passer à ces versions.
Cela réduit le coût d'adoption de la technologie NoSQL et vous permet d'essayer avant d'acheter. "Cette disponibilité d'alternatives open-source a conduit les entreprises commerciales dans l'espace NoSQL à proposer des versions gratuites mais bien documentées de leurs logiciels ou à proposer des licences de démarrage spéciales aux petites organisations.
Facile à mettre à l'échelle
Vous n'avez pas besoin d'un DBA coûteux pour passer des journées à refactoriser SQL et à créer des vues matérialisées afin de tirer le meilleur parti des performances des systèmes NoSQL.
Les magasins de valeurs-clés peuvent gérer des centaines de milliers d'opérations par serveur. Tous les types de NoSQL peuvent évoluer horizontalement sur des serveurs de marchandises relativement bon marché.Il est donc beaucoup plus facile de faire évoluer votre cluster de base de données avec NoSQL qu'avec les bases de données relationnelles traditionnelles.
De plus, en raison de leur capacité à évoluer, les bases de données NoSQL s'intègrent bien dans les nuages publics et privés. Les bases de données NoSQL sont conçues pour être flexibles, se développer et se contracter à mesure que les utilisations de votre application changent. Cette capacité est souvent appelée élasticité .
Modèle de données de cohérence final
Bien que les cas critiques nécessitent une conformité ACID, toutes les applications ne doivent pas nécessairement le faire. Etre capable de détendre la cohérence à travers de très grandes grappes peut être utile pour certaines applications.
Les bases de données NoSQL vous permettent d'assouplir ces contraintes ou de mélanger et faire correspondre une cohérence forte et une cohérence faible dans la même base de données, pour différents types d'enregistrements.
Support du langage ésotérique
Pratiquement toutes les bases de données supportent les principaux langages de programmation tels que Java et C #. NET. De nombreuses bases de données prennent en charge PHP, Python et Ruby on Rails.
NoSQL dispose d'un ensemble de pilotes de langage évolutif pour une gamme encore plus large de langages de programmation. Si votre organisation dispose d'un langage spécifique à un domaine, vous pouvez trouver un support dans une base de données NoSQL.
JavaScript de bout en bout
L'utilisation de JavaScript a explosé ces dernières années. C'est un langage de script pratique à la fois sur le web et, grâce à Node. js, côté serveur.
De nombreuses bases de données NoSQL prennent désormais en charge le développement JavaScript complet de bout en bout. Cela signifie que votre organisation peut désormais utiliser le même pool de compétences en langage de programmation pour créer des applications Web et des API de données de niveau intermédiaire et la logique métier, ainsi que gérer les déclencheurs de base de données backend et le traitement analytique MapReduce.
Par conséquent, en comparaison avec d'autres technologies de base de données, le coût total de possession (TCO) de NoSQL est inférieur.