2016-04-25 3 views
0

Citation de cet article:Cassandra préparé des déclarations avec des colonnes vides?

http://www.datastax.com/dev/blog/4-simple-rules-when-using-the-datastax-drivers-for-cassandra

« moteur de stockage de Cassandra est optimisée pour éviter de stocker des colonnes vides inutiles, mais lors de l'utilisation des instructions préparées ces paramètres qui ne sont pas prévus suite à des valeurs nulles étant transmis à Cassandra (et Ainsi, la seule solution de contournement pour ce scénario est d'avoir un ensemble prédéfini d'instructions préparées pour les combinaisons d'insertion les plus courantes et d'utiliser des instructions normales pour les cas les plus rares.

J'ai remarqué qu'il ya une tâche d'explorer les solutions possibles de ce problème:

https://issues.apache.org/jira/browse/CASSANDRA-7304

Mais je ne peux pas sembler trouver si cela a effectivement été résolu, dans lequel la libération (du pilote Java Cassandra par exemple) et comment?

Si elle n'est pas résolue, est-ce que les différentes instructions d'insertion restent la meilleure solution?

Répondre

1

Les variables Unset sont relativement récentes et peuvent en effet être utilisées pour éviter les pierres tombales lors de l'exécution d'instructions préparées, mais elles ne sont disponibles qu'à partir du protocole V4, c'est-à-dire à partir de Cassandra 2.2.

La prise en charge des variables non définies dans le pilote Java est disponible à partir de la version 3.0.0. Lors de l'utilisation du protocole V4, toutes les variables seront considérées comme non définies par défaut, sauf si vous les avez explicitement définies sur autre chose. Si vous devez "annuler" une variable précédemment définie, vous pouvez appeler l'une des méthodes unset() d'un BoundStatement.