Wie stelle ich in cassandra nach! = null Spalten ab.
%Vor%Dann wollte ich diese Werte speichern und diese in verschiedene Tabellen einfügen.
Ich glaube nicht, dass dies mit Cassandra möglich ist. Zuallererst unterstützt Cassandra CQL nicht die Verwendung von NOT oder nicht gleich Operatoren in der WHERE-Klausel. Zweitens kann Ihre WHERE-Klausel nur Primärschlüsselspalten enthalten, und in Primärschlüsselspalten können keine Nullwerte eingefügt werden. Ich war mir über sekundäre Indizes allerdings nicht sicher, also habe ich diesen schnellen Test durchgeführt:
%Vor%Ich habe jetzt eine Tabelle und zwei Zeilen (eine mit Null-Daten):
%Vor%Ich versuche dann, einen sekundären Index für den Namen zu erstellen, von dem ich weiß, dass er Nullwerte enthält.
%Vor%Es lässt mich es tun. Jetzt führe ich eine Abfrage für diesen Index durch.
%Vor%Dies geschieht wiederum unter der Prämisse, dass Sie nicht nach null suchen können, wenn Sie nicht einmal nach Spaltenwerten suchen können, die tatsächlich null sein können.
Also, ich denke, das kann nicht gemacht werden. Wenn Nullwerte in Ihrem Primärschlüssel möglich sind, sollten Sie Ihr Datenmodell möglicherweise erneut bewerten. Auch hier weiß ich, dass die Frage des OPs die Frage betrifft, wo Daten nicht null sind. Aber wie ich bereits erwähnt habe, hat Cassandra CQL keinen NOT- oder! = Operator, also wird das ein Problem sein.
Eine weitere Option ist das Einfügen einer leeren Zeichenfolge anstelle von null. Sie könnten dann eine leere Zeichenfolge abfragen. Aber das bringt Sie immer noch nicht über den grundlegenden Konstruktionsfehler hinaus, eine Null in einem Primärschlüsselfeld zu haben. Vielleicht, wenn Sie einen zusammengesetzten Primärschlüssel hätten und nur ein Teil davon (die Clusterspalten) die Möglichkeit hätten, leer zu sein (sicherlich nicht Teil des Partitionierungsschlüssels). Aber Sie würden immer noch mit dem Problem nicht in der Lage sein, nach Zeilen zu suchen, die "nicht leer" sind (statt nicht null).
HINWEIS: Das Einfügen von Nullwerten wurde hier nur zu Demonstrationszwecken durchgeführt. Es ist etwas, das Sie am besten vermeiden sollten, da das Einfügen eines Nullspaltenwerts einen Tombstone erzeugt. Ebenso werden durch das Einfügen vieler Nullwerte viele Tombstones erstellt.
1) Wählen Sie * aus dem Test;
%Vor%2) cassandra unterstützt keine Null-Werte-Auswahl. Es zeigt null für unser Verständnis.
3) Um NULL-Werte zu behandeln, verwenden Sie andere Zeichenfolgen wie "nicht verfügbar", "null" und dann können Sie Daten
auswählen