apache cassandra

    Apache Cassandra: Avantages et Inconvénients

    Apache Cassandra est une base de données NoSQL très dépendante des cas d’utilisation. Dans la majorité des cas, une simple instance MySQL ou PostgreSQL sera suffisante. Quand vous vous trouvez dans le besoin d’attributs spécifiques que Cassandra a à offrir, alors, il peut être judicieux de l’utiliser.
    Il existe de nombreux pours et contres quant à l’utilisation de Apache Cassandra, dont beaucoup dépendent de ce que vous souhaitez en faire. Nous allons ici vous donnez les avantages et inconvénients de cette technologie NoSQL de plus en plus populaire.

    AvantagesRésultat de recherche d'images pour "le symbol plus"

    La Vitesse d’écriture D’Apache Cassandra:

    L’un de plus grands atouts d’Apache Cassandra est la quantité incroyable de volume d’écriture qu’elle peut gérer. Il est capable de gérer un aussi grand volume d’écritures. En effet, en écrivant d’abord dans une structure de données en mémoire, puis dans un journal avec ajout uniquement. Ces structures de données sont ensuite “vidées” vers un fichier plus permanent et optimisé en lecture à une date ultérieure. Les logs sont simplement utilisés pour la récupération des données en mémoire en cas de panne.

    Cohérence ajustable:

    En ce qui concerne les données répliquées, il faut que vous soyez en mesure de décider de ce qui se passe lorsqu’une panne survient dans un ou plusieurs de vos nœuds. Apache Cassandra rend possible, requête par requête, de choisir comment gérer les potentiels problèmes. Si vous êtes en possession d’un ensemble de données qui, à n’importe quel instant, doit disposer les données les plus récentes, vous pouvez choisir de lire et d’écrire à un niveau de quorum. Dans le cas ou vous avez un ensemble de données qui doit être écrit à tout prix, même s’il n’y a qu’un seul nœud actif et que disposer des informations les plus récentes n’est pas une exigence absolue, vous pouvez écrire au niveau “ANY” . Il existe de nombreuses façons de lire / écrire vos informations. Cassandra vous permet de choisir celui qui correspond le mieux à votre cas d’utilisation et à vos valeurs.

    Réplication multi-DC:

    Apache Cassandra est livré avec une réplication multi-centres de données. Cette réplication clonera les informations dans un nombre illimité d’instances du processus Cassandra. De plus, vous pouvez créer plusieurs centres de données “actifs” qui reçoivent également une copie des données. Ces derniers peuvent être utilisés pour des soucis géographiques ou pour une reprise après sinistre ou les deux. Une configuration de plusieurs centres de données est aussi simple que de modifier une seule ligne dans un fichier de configuration et de mettre à jour votre schéma. La réplication multi-DC est l’une des principales raisons pour lesquelles les gens choisissent d’utiliser Cassandra.

    Apache Cassandra est Basée sur la Machine Virtuelle Java (JVM):

    Apache Cassandra est basé en Java. Cela veut dire que Cassandra peut s’intégrer facilement à d’autres applications basées sur JVM. Notamment de nombreux outils basés sur des données tels que Apache SOLR, Spark, Hadoop, Hive, PIG, Mahout et bien d’autres. En outre, la machine virtuelle Java dispose d’une quantité massive d’assistance et d’outils pour résoudre différents problèmes pouvant survenir.

    CQL:

    CQL (Cassandra Query Language) est un moyen familier d’interroger Cassandra. Il s’agit d’un sous-ensemble de SQL et de nombreuses fonctionnalités identiques, rendant la transition d’un “Relational database management system” (RDBMS) basé sur SQL à Cassandra moins choquante.

     

    InconvénientsRésultat de recherche d'images pour "le symbol moins"

    Absence de requête ad hoc:

    La couche de stockage de données Apache Cassandra est un système de stockage de clés / valeurs. Ce qui signifie qu’il vous faut “modéliser” vos informations autour des requêtes que vous souhaitez faire apparaître, plutôt que de la structure des données elles-mêmes. Cela peut avoir comme conséquence de stocker les données plusieurs fois de différentes manières pour pouvoir satisfaire aux exigences de votre application.

    Performances imprévisibles:

    Dans la mesure où Apache Cassandra dispose de plusieurs jobs asynchrones et tâches en arrière-plan non planifiés par l’utilisateur, les performances peuvent être imprévisibles. Ce qui peut vouloir dire que vous pouvez constater des répercussions sur les performances qui peuvent ne pas être liées à une requête ou à un volume de requêtes. Cela peut provoquer des problèmes de performances de dépannage plutôt difficiles â résoudre.

    Absence de fonctions d’agrégation:

    Les plus récentes versions de Apache Cassandra disposeront d’un support limité pour les agrégats avec une seule partition. Ceci est d’une utilisation très restreinte. Apache Cassandra étant un système de clés / valeurs, les agrégations SUM, MIN, MAX, etc. nécessitent énormément de ressources, voire de ressources. Si votre analyse nécessite une analyse ad hoc, Apache Cassandra peut ne pas vous convenir.

    Apache Cassandra est Basée sur la JVM:

    Alors Oui, effectivement ce point est déjà considéré en tant qu’avantage au dessus.Mais il comporte des points négatifs. La JVM, aussi rapide soit elle, reste un langage peu efficace. En effet, la gestion de la mémoire est effectuée par le langage lui-même et non par l’application. Pour une grande partie partie des utilisateurs, ce n’est pas et cela ne sera jamais un problème. Mais si vous obtenez des volumes de données massives en quantité industrielle, qu’il s’agisse du volume de la demande ou de la taille des données, vous serez dans l’obligation d’adapter la machine virtuelle Java aux besoins spécifiques de votre implémentation. Cela signifie une expertise et une connaissance requises de la langue dans laquelle la base de données a été écrite.

    CQL:

    Cet avantage peut aussi être vu par certains utilisateurs comme étant un point faible, tout comme pour la machine virtuelle Java. Cette option était également répertoriée en tant que “Pro”. En raison du fait que CQL soit très semblable à SQL, il est facile pour une personne venant de SQL de se mélanger les pinceaux sur ce qui est ou non pris en charge. Cela signifie une frustration supplémentaire (coûts de lecture) pour les programmeurs qui ne connaissent pas les limites de Cassandra.

     

    Il y en a pas mal d’autres avantages et inconvénients bien évidement. Nous avons voulu ici proposer les plus Ce ne sont que quelques-uns qui ont tendance à être les plus fréquents et ceux qui devraient décider de l’utilisation de Cassandra devraient, à mon avis, en être informés.


    Cassandra vaut-elle la peine d’être adoptée?

    Oui. Avec un Grand O.
    Les modèles de base de données NoSQL ne remplaceront pas et ne remplaceront pas complètement la technologie des RDBMS, mais leur importance croîtra du fait de l’échelle, de la flexibilité et de la facilité d’utilisation. Nous traitons de plus en plus de données; nous voulons des applications durables et tolérantes aux pannes; nous voulons des applications évolutives et des applications rapides. Parce que tout cela, NoSQL sera de plus en plus autour de nous, et c’est certainement une technologie qui mérite d’être explorée.

    >