Bitte helfen Sie mir zu verstehen, warum Cassandra Nullwerte in Spalten einfügt, die übersprungen wurden? Soll die Spalte nicht übersprungen werden? Es sollte keinen Wert (nicht einmal null) einfügen, wenn ich die Spalte beim Einfügen von Daten komplett überspringe? Ich bin ein wenig verwirrt, weil nach dem folgenden Tutorial Daten nach Zeilenschlüssel mit den Spalten gespeichert werden (das Diagramm in der Spaltenfamilie), wenn es wahr ist, dann sollte ich nicht Null für die Spalte erhalten.Cassandra fügt Nullwerte in übersprungene Spalte ein
Oder ist das ganze Konzept, das ich über die Cassandra-Säulenfamilie gelernt habe, falsch?
http://www.tutorialspoint.com/cassandra/cassandra_data_model.htm
Hier ist die CQL Skript
create keyspace test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'};
create table users (firstname text,lastname text,age int, gender ascii, primary key(firstname))
insert into users(firstname,age,gender,lastname) values("Michael",30,"male","smith");
Hier habe ich eine Spalte bin Skipping, aber wenn ich wählen Sie Abfrage ausführen, zeigt es für diese Spalte null. Warum füllt Cassandra in dieser Spalte null?
insert into users(firstname,age,gender) values('Jane',23,'female');
select * from users;
Da C * kein Read-Before-Write ausführt, ist es nicht so, dass C * immer annehmen muss, dass ein fehlender Wert gelöscht wurde und somit immer ein Tombstone erzeugt, auch für Spalten wurden nie geschrieben? Mit anderen Worten, ist der Zustand von _not present_ bei Verwendung von CQL kein hypothetischer? – Ralf
Die Zustände * nicht vorhanden * und * löschen * sind bei ** Lesezeit ** (CQL SELECT) sicher bekannt. Wenn Sie INSERT die Spalte nicht angeben, wird Cassandra nichts tun (kein Tombstone). Wenn Ihr Einfügen ** null ** Cassandra wird Grabstein für die Spalte – doanduyhai
Ah, rechts erstellen. Ich habe mich mit vorbereiteten Aussagen und NULLs in das Thema vertieft. – Ralf