Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Introduction au NoSQL Apache Cassandra : installation, prise en main rapide et outils d'administration,
Par Mickael Baron

Le , par Mickael Baron

78PARTAGES

4  0 
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

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Traroth2
Membre chevronné https://www.developpez.com
Le 22/01/2013 à 10:23
Cette série d'articles a l'air prometteuse. Vivement la suite...
0  0 
Avatar de dtcSearch
Membre actif https://www.developpez.com
Le 30/08/2013 à 11:21
Ç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.
0  0 
Avatar de Mickael Baron
Responsable Java https://www.developpez.com
Le 30/08/2013 à 12:53
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...-cassandra-2-0)

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

Mickael
0  0 
Avatar de hugo123
Rédacteur https://www.developpez.com
Le 31/08/2013 à 8:14
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.
0  0 
Avatar de Mickael Baron
Responsable Java https://www.developpez.com
Le 31/08/2013 à 9:00
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
0  0 
Avatar de dtcSearch
Membre actif https://www.developpez.com
Le 31/08/2013 à 16:48
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
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...
0  0 
Avatar de forrestdg
Membre régulier https://www.developpez.com
Le 27/04/2014 à 18:16
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
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...
0  0 
Avatar de forrestdg
Membre régulier https://www.developpez.com
Le 27/04/2014 à 18:33
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?
0  0