IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NoSQL Discussion :

Introduction à Cassandra : installation, prise en main rapide et outils d'administration


Sujet :

NoSQL

  1. #1
    Rédacteur

    Avatar de Mickael Baron
    Homme Profil pro
    Ingénieur de Recherche en Informatique
    Inscrit en
    Juillet 2005
    Messages
    14 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche en Informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 14 974
    Points : 73 024
    Points
    73 024
    Par défaut Introduction à Cassandra : installation, prise en main rapide et outils d'administration
    Bonjour,

    Je vous propose un premier article d'une série de cinq sur la base de données NoSQL Apache Cassandra. Cet article présente brièvement les fonctionnalités, l'installation, une première prise en main et quelques outils d'administration.

    Le lien de l'article est ici : http://mbaron.developpez.com/nosql/c...dministration/

    Profitez de cette discussion pour donner vos commentaires

    Mickael
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Ingénieur de Recherche en informatique au LIAS / ISAE-ENSMA
    Page de Developpez.com : mbaron.developpez.com
    Twitter : www.twitter.com/mickaelbaron
    Blog : mickael-baron.fr
    LinkedIn : www.linkedin.com/in/mickaelbaron
    DBLP : dblp.uni-trier.de/pers/hd/b/Baron:Micka=euml=l

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Points : 2 528
    Points
    2 528
    Par défaut
    Cette série d'articles a l'air prometteuse. Vivement la suite...

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut
    Ça fait longtemps que j'ai pas vu une techno qui me passionne autant que Cassandra.

    J'ai un projet à monté et les problèmes que je rencontre à l'heure actuelles sont:
    - l'order by (cette notion en CQL de pouvoir faire qu'un order by sur une seul colonne défini à la création de la table est très contraignante mais logique au vu de comment est construit Cassandra et des performances obtenu)
    - peur de la panne!! (c'est pas MySQL qui tourne depuis 10 ans... sans broncher)

    J'ai hâte aussi de lire les articles suivants, y'a tellement à apprendre sur Cassandra Y'a tellement peu de chose à son sujet (les seuls articles valables hormis ceux sur developez.net proviennent de quelques blog et de http://planetcassandra.org/Learn/SlideShare )

    En tout cas, merci beaucoup.

  4. #4
    Rédacteur

    Avatar de Mickael Baron
    Homme Profil pro
    Ingénieur de Recherche en Informatique
    Inscrit en
    Juillet 2005
    Messages
    14 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche en Informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 14 974
    Points : 73 024
    Points
    73 024
    Par défaut
    Bonjour,

    Merci pour tes commentaires.

    J'ai vu qu'il allait y avoir pas mal de nouveautés sur CQL 2 (http://www.datastax.com/dev/blog/cql-in-cassandra-2-0)

    Pour les autres articles, il faut que je trouve le temps de continuer.

    Mickael
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Ingénieur de Recherche en informatique au LIAS / ISAE-ENSMA
    Page de Developpez.com : mbaron.developpez.com
    Twitter : www.twitter.com/mickaelbaron
    Blog : mickael-baron.fr
    LinkedIn : www.linkedin.com/in/mickaelbaron
    DBLP : dblp.uni-trier.de/pers/hd/b/Baron:Micka=euml=l

  5. #5
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Points : 2 373
    Points
    2 373
    Par défaut
    J'ai fait il y a pas longtemps un bench sur un cluster de 3 noeuds sur elasticsearch, mongodb, cassandra et mysql pour une utilisation en tant qu'entrepot de log et j'ai été plutôt déçu par l'utilisation de Cassandra (prise en main et perfs).
    Je suis donc impatient de lire tes articles pour voir si j'avais raté quelque chose.

  6. #6
    Rédacteur

    Avatar de Mickael Baron
    Homme Profil pro
    Ingénieur de Recherche en Informatique
    Inscrit en
    Juillet 2005
    Messages
    14 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche en Informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 14 974
    Points : 73 024
    Points
    73 024
    Par défaut
    Bonjour Hugo,

    Pour l'instant tu as fait plus que moi.

    De mon côté, nous avons expérimenté un cluster de 5 machines sur une structure de données assez simple (une seule column familly dont le nombre de colonnes était dynamique). L'insertion par parquet de million s'est faite sans problème. Nous avons vu clairement la linéarité de Cassandra au fur et à mesure que nous insertions et que nous ajoutions des serveurs.

    Par contre, le gros soucis venait du select. Nous sommes clairement en apprentissage sur ce NoSQL. Trop d'habitude du relationnel. En plus avec CQL c'est assez trompeur, on a envie de faire du SQL

    Mickael
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Ingénieur de Recherche en informatique au LIAS / ISAE-ENSMA
    Page de Developpez.com : mbaron.developpez.com
    Twitter : www.twitter.com/mickaelbaron
    Blog : mickael-baron.fr
    LinkedIn : www.linkedin.com/in/mickaelbaron
    DBLP : dblp.uni-trier.de/pers/hd/b/Baron:Micka=euml=l

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut
    le ORDER BY me manque...

    franchement, j'y arrive pas, j'ai passé 2 jours à trouver un moyen de pouvoir filtrer et impossible de faire un ORDER BY sur ce que je souhaite.

    c'est pas simple... Si quelqu'un à une idée?
    Je souhaite resté en random, mais je souhaite aussi pouvoir faire un trie.
    Normalement c'est possible, mais c'est l'organisation qu'il doit être fait...

    Cas concret, j'ai une "table" avec des images (id, nom, taille, date d'insertion, date de mise à jours, si_visible...)
    et j'aimerai pouvoir faire un select de mes images en fonction de si_visible et de les trier par date de mise à jours

    jusqu'à présent, j'y arrive pas sans passer en orderedbytemachin.

    Alors je me sus dit, tiens, on crée une autre "table" avec pour info:
    id_image, date de mise à jours, si_visible) et on fait une clé qui est si_visible puis id_image. Et quand je fais un select dessus, j'utilise les ID renvoyé pour récupéré mes images dans ma "table" images.
    mais quand je fais mon select dessus il me dit toujours pareil:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Bad Request: ORDER BY is only supported when the partition key is restricted by an EQ or an IN.
    Sniff, c'est tout ce qui me manque...

    Il est pourtant possible de le faire en CQL3 mais dans des cas particuliers, si quelqu'un voit comment faire dans mon cas.

    J'ai peur que Cassandra ne soit pas utilisable dans mon cas (et pourtant, hormis ça c'est le seul point qui manque)

    ps: le pire c'est que ça doit être tout bête; mais personne en parle vraiment...

  8. #8
    Membre régulier
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Août 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 44
    Points : 91
    Points
    91
    Par défaut
    Citation Envoyé par dtcSearch Voir le message
    le ORDER BY me manque...

    franchement, j'y arrive pas, j'ai passé 2 jours à trouver un moyen de pouvoir filtrer et impossible de faire un ORDER BY sur ce que je souhaite.

    c'est pas simple... Si quelqu'un à une idée?
    Je souhaite resté en random, mais je souhaite aussi pouvoir faire un trie.
    Normalement c'est possible, mais c'est l'organisation qu'il doit être fait...

    Cas concret, j'ai une "table" avec des images (id, nom, taille, date d'insertion, date de mise à jours, si_visible...)
    et j'aimerai pouvoir faire un select de mes images en fonction de si_visible et de les trier par date de mise à jours

    jusqu'à présent, j'y arrive pas sans passer en orderedbytemachin.

    Alors je me sus dit, tiens, on crée une autre "table" avec pour info:
    id_image, date de mise à jours, si_visible) et on fait une clé qui est si_visible puis id_image. Et quand je fais un select dessus, j'utilise les ID renvoyé pour récupéré mes images dans ma "table" images.
    mais quand je fais mon select dessus il me dit toujours pareil:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Bad Request: ORDER BY is only supported when the partition key is restricted by an EQ or an IN.
    Sniff, c'est tout ce qui me manque...

    Il est pourtant possible de le faire en CQL3 mais dans des cas particuliers, si quelqu'un voit comment faire dans mon cas.

    J'ai peur que Cassandra ne soit pas utilisable dans mon cas (et pourtant, hormis ça c'est le seul point qui manque)

    ps: le pire c'est que ça doit être tout bête; mais personne en parle vraiment...
    'order by' marche seulement pour les 'clustering keys' , avec des bon filtres et qu'apres que tes rows soit trouvees avec la partition key. Comme indique ton message d'erreur il faut que t'ajoute la contrainte sur ta partition key. Attention, ce genre d'operations ne guarantit pas des perfs canon d'habituelle de Cassandra.

    Sur la partition key, comme son nom indique, elle sert a distribuer (partition) tes rows parmi les noeuds de Cassandra. Comme tu utilise un RandomPartioner les rows sont distribues de maniere "aleatoire" via un hash -> order by un partition key n'est pas possible par conception.

    Comme expliquer plus haut dans cette discussion, il ne faut pas prendre Cassandra comme du RDBMS (si non Oracle ou MySQL ferait bien l'affaire). Je te conseille de regarder les videos de DataStax/PlanetCassandra sur "data modeling" sur Youtube...

  9. #9
    Membre régulier
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Août 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 44
    Points : 91
    Points
    91
    Par défaut
    Citation Envoyé par hugo123 Voir le message
    J'ai fait il y a pas longtemps un bench sur un cluster de 3 noeuds sur elasticsearch, mongodb, cassandra et mysql pour une utilisation en tant qu'entrepot de log et j'ai été plutôt déçu par l'utilisation de Cassandra (prise en main et perfs).
    Je suis donc impatient de lire tes articles pour voir si j'avais raté quelque chose.
    De manière générale, Cassandra ne bat pas mongoDB tant que tes donnes tiennent encore dans la RAM. As-tu fais des tests avec des données plus consequentes?

Discussions similaires

  1. Prise en mains rapide Inkscape
    Par zoom61 dans le forum Logiciels Libres & Open Source
    Réponses: 0
    Dernier message: 04/08/2014, 20h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo