2016-05-12 7 views
2

Ich bin ziemlich neu in Apache Cassandra und eine Sache, die ich habe es schwer zu verstehen ist, ob ich eine Tabelle mit mehreren Partition Schlüssel oder einen einzigen berechneten Schlüssel (in einer Anwendungsschicht berechnet) haben sollte.Apache Cassandra Mehrere Partition Keys oder Single Computed Key?

In meinem speziellen Fall habe ich 16 Partitionsschlüssel k1 ... k16, die ein einzelnes Datenelement einzigartig machen. Mit mehreren Partitionsschlüsseln muss ich sie in meiner Select-Anweisung angeben und ich bin damit einverstanden, aber gibt es irgendwelche Vor-und Nachteile, dies in Bezug auf Speicher und oder Leistung zu tun?

Die Weise, die ich verstehe, ist der Speicher möglicherweise mehr, aber die Partitionsschlüssel sind "menschlich lesbar" und möglicherweise von anderen Clients dieser Daten abfragbar. Ich nehme an, dass Cassandra einige Hashwerte auf meinen Partitionsschlüsseln berechnet, egal ob es sich um einen einzelnen Wert oder mehrere Werte handelt.

Meine Frage ist dort Speicher-/Performance-Probleme oder andere Überlegungen, die ich mit mehreren Partitionsschlüsseln oder einzelne Anwendung berechnet Partitionschlüssel denken sollte?

Jede Hilfe wird sehr geschätzt!

Antwort

2

Sie haben Recht, Cassandra konvertiert einen mehrteiligen Partitionsschlüssel in einen einzelnen Hash. Also, ich denke, jede Effizienzgewinne aus der Berechnung der Hash in Ihrer Anwendung wäre bestenfalls minimal.

Wenn Sie das nicht wissen, denken Sie daran, dass der Primärschlüssel in den Partitionsschlüssel und die Clustering-Schlüssel unterteilt ist.

Prost Ben

Verwandte Themen