Je suis nouveau sur cassandra
et je l’utilise pour des tâches d’analyse (bonne indexation nécessaire).
J'ai lu dans cet article (et d'autres): cassandra, sélectionnez via une clé non primaire que je ne peux pas interroger ma base de données avec une colonne de clé non primaire avec WHERE clause
.
Pour ce faire, il semble y avoir 3 possibilités (toutes avec des inconvénients majeurs):
IN
ou =
.Existe-t-il un autre moyen de faire ce que j'essaie de faire (WHERE clause
avec une colonne de clé non primaire) sans avoir les 3 contraintes ci-dessus?
Depuis Cassandra même, vous êtes limité aux options que vous avez spécifiées ci-dessus. Si vous voulez savoir pourquoi jeter un oeil ici:
Un regard approfondi sur le CQL où Clause
Toutefois, si vous essayez d'exécuter des analyses sur des informations stockées dans Cassandra, avez-vous déjà envisagé d'utiliser Spark. Spark est conçu pour le traitement de données à grande échelle sur des systèmes distribués. En fait, si vous envisagez d’utiliser Datastax (voir ici ), qui possède quelques fonctionnalités d’intégration de Nice entre Spark et Cassandra, spécifiquement pour le chargement et la sauvegarde de données. Il a à la fois une édition gratuite (Communauté) et une édition payante (Entreprise).
J'ai eu un problème similaire lors de l'utilisation de la version 2.x de Cassandra, mettez à niveau votre version vers Cassandra 3.0 et versions ultérieures. C'était la seule solution pour moi.
Je suppose que la table est conçue dans un but différent, étant donné que les champs que vous souhaitez interroger ne font pas partie de la clé de partitionnement. Ma suggestion serait de dupliquer la table et de la saisir par les champs par lesquels vous voulez l'interroger. Je recommanderais de concevoir une nouvelle table dans le but exact pour lequel vous l'utiliserez conformément à Concepts de modélisation de données .
Cassandra offre plusieurs avantages, tels que la mise à l'échelle linéaire, etc. en imposant certaines restrictions quant à ce que vous pouvez faire avec CQL.