2013-03-14 9 views
10

Am Anfang lernte ich Cassandra, weil dynamische Säulen meine Aufmerksamkeit erregten. Als ich anfing, mehr zu lernen, lernte ich, dass zusammengesetzte Primärschlüssel den dynamischen Spalten vorgezogen werden und Cassandra sich auf das Schema bezieht (Schema ist optional und nicht obligatorisch, aber empfehlenswert). In cql3 ist es allerdings obligatorisch und ich lese cql3 ist der beste Ansatz für neue Anwendungen in Cassandra.Wenn dynamische Spalten in Cassandra 1.2/Cql3 entmutigt werden, wie ist es dann besser als Mysql in der Funktionalität?

Hier ist, wo ich eine interessante Frage stelle. Ich las eine bestimmte Folie (Mysql vs Cassandra) - http://lanyrd.com/2012/austin-mysql-meetup-january/spdrx/ (Sprung zu 31 Folie), wo es über die Use Case zur Betrugserkennung diskutiert.

„In FraudDetection Risiko zu berechnen, ist es üblich, die E-Mails alle wissen zu müssen, Destinationen, Herkunft, Geräte, Standorte, Telefonnummern, etc. je für das betreffende Konto verwendet.“

Es wurde erklärt, wie Wir müssen eine individuelle Tabelle für E-Mails, Ziele, Herkunft usw. in der relationalen Welt pflegen und wie einfach es ist, mit dynamischen Spaltenschlüsseln und Werten in der Cassandra-Welt zu sein. (31-34 Dias).

Jetzt diese dynamische Spalte Schlüssel und Werte und entmutigt, wie können wir dieses Problem lösen? Sollten wir einzelne Spaltenfamilien für jede E-Mail, jedes Ziel usw. pflegen? Wie unterscheidet es sich dann von der relationalen Welt? Geht es nur um Skalierbarkeit? Können wir den Schema-less-Ansatz noch fortsetzen? Ist das die goldene Regel "Schema ist optional und empfohlen, aber nicht zwingend erforderlich?"

Dank

Antwort

8

Sorry für die Verwirrung hier. Wie sich herausstellte, habe ich die grundlegenden Konzepte nicht richtig verstanden. Hier ist die Antwort

Dynamische Säulen sind Kern von Cassandra. Sie werden immer noch unterstützt und ist immer noch der Kern :) Es ist nur, dass Sie in der Sparsamkeit direkt tun und in CQL Sie auf andere Weise (durch Schema-Weise). Aber immer noch tun Sie es :) - das Lesen - http://www.datastax.com/dev/blog/thrift-to-cql3

Und darüber, wie Cassandra ist besser als Mysql - Lesen Sie diese http://lanyrd.com/2012/austin-mysql-meetup-january/spdrx/ (16-24 Folien)

Thanks :)

2

Sie noch ein Schema losen Ansatz verwenden, wenn Sie die Thrift API statt CQL verwenden. Als langjähriger Cassandra-Benutzer finde ich auch den Push in Richtung der Upfront-Schemadefinition fraglich. Aber glücklicherweise ist der zugrundeliegende Speichermechanismus der gleiche, und alle Clients, die ich kenne, unterstützen Thrift-basierte Aufrufe.

+0

Dies ist ein alter Rat. Siehe [this] (http://planetcassandra.org/making-the-change- from-thrift-to-cql /) für Details zum Übergang in CQL. –

2

Stattdessen dynamische Spalten gibt unterstützen Sammlungen wie Sets, Listen, Maps. Ist es nicht genug für die Dynamik

+0

Sie können jedoch momentan nicht indiziert werden und können daher nicht abgefragt werden. Sie werden jedoch in Zukunft hinzugefügt werden. – mac