Inhaltsverzeichnis
In früheren Tutorials haben wir vollständig mit eingetreten CQL und die Art und Weise, wie es uns bei der Verwaltung hilft Kassandra, sahen wir die grundlegenden Operationen für die Schlüsselräume und die Tabellen in Cassandra, könnten wir sie anwenden, um eine Anfangsstruktur in der Datenbank zu erstellen, jedoch gibt es eine beträchtliche Menge fortgeschrittener Konzepte, die wir kennen müssen, um Cassandra optimal zu nutzen.Diese Konzepte oder Eigenschaften, um sie in irgendeiner Weise zu nennen, ermöglichen es uns, unterschiedliche Funktionalitäten in unseren Tabellen zu erreichen, die uns eine Reihe von Möglichkeiten bieten, die viel größer sind als die der anderen. NoSQL-Datenbank.
Zuvor haben wir einige Tabellen erstellt und Werte wie Text oder Datum für unsere Spalten verwendet, aber das ist noch nicht alles CQL zur Verfügung hat, sehen wir uns die Arten von Daten an, die wir für unseren Betrieb haben:
ASCIIUS-ASCII-Zeichenkette.
bigintEin 64-Bit langer ganzzahliger Wert.
KlecksDatentyp, der in der Befehlskonsole von hexadezimal ausgedrückt wird CQLDarüber hinaus hat es keine Validierung und basiert auf beliebigen Bytes.
booleschDer klassische boolesche Datentyp, dessen Werte wahr oder falsch sein können.
Zählercounter ist ein neuer Datentyp für diejenigen von uns, die aus der relationalen Welt kommen, und zeigt an, dass er 64-Bit-verteilt ist.
DezimalEine andere Art von Daten, die wir erkennen können, die uns die Dezimalgenauigkeit für unsere Informationen gibt.
doppeltGleitkomma-Datentyp, aber basierend auf 64 Bit.
schwebenWie der vorherige ist es ein Gleitkomma-Datentyp, basiert jedoch auf 32 Bit.
inetDieser Typ ist ziemlich speziell und gleichzeitig sehr nützlich und ermöglicht es uns, eine Zeichenfolge einer IP-Adresse zu speichern, er unterstützt sowohl das Format IPV4 Was IPv6.
intDer klassische Integer-Datentyp, der Zahlen bis zu 32 Bit unterstützt.
aufführenEine andere Art von Daten, die in Cassandra ihr Debüt feiert und es uns ermöglicht, eine geordnete Sammlung von Elementen zu speichern.
KarteWie list ist es eine andere Art neuer Daten und ermöglicht es uns, ein assoziatives Array zu speichern, was für die Anwendungsentwicklung sehr nützlich ist.
einstellenÄhnlich dem Listendatentyp speichert er eine Sammlung von Elementen, jedoch in keiner bestimmten Reihenfolge.
TextSpeichert eine codierte Zeichenfolge.
ZeitstempelDatentyp, der Datum und Uhrzeit speichert, codiert als 8-Byte-Ganzzahl.
VariantePräzisionsdatentyp für beliebige Ganzzahlen.
Wie wir sehen, gibt es viele Arten von Daten, die wir erkennen können, wenn wir aus der relationalen Welt kommen, z Kassandra hebt sich von anderen Datenbanken ab.
In Kassandra wir haben nicht nur Datentypen für unsere Tabellen, dank CQL Wir können den Tabellen innerhalb unserer Datenbank Eigenschaften zuordnen, die uns bei Wartungs- und Entwicklungsaufgaben enorm helfen, mal sehen, was wir zur Verfügung haben.
CachingDiese Eigenschaft ermöglicht uns die Optimierung des Cache-Speichers. Die für diese Immobilie verfügbaren Ebenen sind dort oder alle, key_only oder nur Schlüssel, rows_only oder nur Reihen und keiner oder keine. Alle Optionen sind jedoch sehr nützlich row_only muss mit Vorsicht verwendet werden, da Kassandra eine beträchtliche Datenmenge im Speicher ablegen, wenn diese Option verwendet wird.
KommentarEine Option, die im relationalen Modell vorhanden ist und von Administratoren oder Entwicklern verwendet wird, um Notizen zu machen und wichtige Details in Tabellen hervorzuheben.
VerdichtungDiese Eigenschaft ermöglicht die Definition der Strategie für die Verwaltung der Minze, kann von folgenden Typen sein: Der erste GrößeTiered die ausgelöst wird, wenn die Tabelle ein Limit überschreitet, besteht der Vorteil dieser Strategie darin, dass die Schreibleistung nicht beeinträchtigt wird, hat jedoch den Nachteil, dass gelegentlich die doppelte Größe der Daten auf der Festplatte verwendet wird, was zu einer schlechten Leistung führt lesen. Die zweite Strategie ist LeveledCompaction und es funktioniert im Laufe der Zeit auf verschiedenen Ebenen und verbindet Tabellen mit längeren, was zu einer ziemlich guten Leseleistung führt.
KompressionDiese Eigenschaft bestimmt, wie die Informationen komprimiert werden. Wir können auswählen, ob Sie Geschwindigkeits- oder Platzvorteile erzielen möchten, wobei je höher die Geschwindigkeit, desto weniger Speicherplatz wird gespart.
Gc_grace_secondsDiese Eigenschaft definiert die Wartezeit zum Entfernen der Informationen aus den Tombstones. Standardmäßig sind es 10 Tage.
Populate_io_cache_on_flushDiese Eigenschaft ist standardmäßig deaktiviert und wir sollten sie nur aktivieren, wenn wir hoffen, dass alle Informationen in den Cache-Speicher passen.
Read_repair_chanceEine sehr interessante Eigenschaft, die eine Zahl zwischen 0 und 1,0 angibt, die die Wahrscheinlichkeit der Reparatur der Informationen angibt, wenn das Quorum nicht erreicht wird. Der Standardwert ist 0,1.
Replicate_on_writeDiese Eigenschaft gilt nur für Tabellen des Typs Zähler. Wenn definiert, schreiben Replikate in alle betroffenen Replikate und ignorieren die angegebene Konsistenzebene.
Da wir also bereits wissen, was wir sowohl auf der Ebene der Datentypen als auch der Eigenschaften haben, ist es an der Zeit, einige der gelernten Dinge auf unsere Tabellen in . anzuwenden Kassandra.
Zuerst erstellen wir eine einfache Tabelle, auf die wir die Eigenschaft comments anwenden. Sehen wir uns die Syntax an, die wir dafür verwenden werden:
CREATE TABLE Artikel (Texttitel, Textinhalt, Textkategorie, PRIMARY KEY (Titel)) WITH comment = 'Tabelle zum Speichern von Artikelinformationen';Wir öffnen unsere Kommandokonsole CQL und wir erstellen unsere Tabelle mit der genannten Eigenschaft, mal sehen, wie sie aussieht:
Wie wir bereits wissen, gibt die Befehlskonsole nichts zurück, außer dass kein Fehler vorliegt, aber wenn wir diese Änderungen sehen möchten, können wir zu unserem gehen OpsCenter und überprüfen Sie, ob alles richtig gelaufen ist:
VERGRÖSSERN
Wie wir sehen, können wir unseren Kommentar und andere Eigenschaften mit ihren Standardwerten sehen. Es ist wichtig zu erwähnen, dass die Definition der restlichen Eigenschaften in Kassandra es ist ganz einfach, wie wir im vorherigen Beispiel sehen konnten, mit der Syntax MIT wir können es ohne probleme machen.Wir führen ein weiteres Beispiel durch, in dem wir die Eigenschaften definieren werden Kompression Ja Verdichtung aber dafür ist es wichtig zu wissen, dass sie eine Reihe von Unteroptionen für ihre Verwendung haben, mal sehen für Kompression das sollten wir wissen:
Stabile_KompressionDiese Option gibt den zu verwendenden Komprimierungsalgorithmus an, seine Werte sind: LY4Compressor, SnappyCompressor, Ja Kompressor entleeren.
Chunck_length_kbTabellen werden blockweise komprimiert. Längere Werte sorgen im Allgemeinen für eine bessere Komprimierung, erhöhen jedoch die Größe der zu lesenden Informationen. Standardmäßig ist diese Option auf 64 KB eingestellt.
Die Manipulation von Komprimierungsoptionen kann zu einer erheblichen Leistungssteigerung führen, einschließlich vieler Implementierungen von Kassandra Sie haben diese Standardwerte, aber für die Perfektion ist es notwendig, diese Werte zu verwenden. Mal sehen, was wir wissen müssen Verdichtung:
ErmöglichtLegt fest, ob die Eigenschaft in der Tabelle ausgeführt wird, obwohl standardmäßig alle Eigenschaften über Verdichtung aktiviert.
KlasseHier werden wir die Art der Strategie für den Umgang mit den Tabellen definieren.
min_thresholdDieser Wert ist mit der Strategie verfügbar GrößeTiered y steht für die Mindestanzahl von Tabellen, die zum Starten eines Komprimierungsprozesses erforderlich ist. Es ist standardmäßig mit 4 definiert.
max_thresholdIn gleicher Weise in der Strategie verfügbar GrößeTiered y definiert die maximale Anzahl von Tabellen, die im Compact verarbeitet werden. Es ist standardmäßig mit 32 definiert.
Dies sind einige der wichtigsten Optionen für diese Eigenschaften. Wichtig zu erwähnen ist, dass wir für die Definition dieser Optionen eine Syntax verwenden müssen JSON Um gültig zu sein, sehen wir uns ein Beispiel für die Einbeziehung dieser beiden Eigenschaften an:
CREATE TABLE table_for_properties (int id, text name, text property, varint number, PRIMARY KEY (id)) WITHcompression = {'sstable_compression': 'DeflateCompressor', 'chunk_length_kb': 64} ANDcompacion = {'class': 'SizeTieredCompactionStrategy', 'min_threshold': 6};Wie wir sehen, haben wir die Art der Komprimierung geändert und die Größe dafür definiert, zusätzlich für Verdichtung wir haben die übliche strategie mit dem wert belassen Klasse und wir haben die definiert min_threshold like 6 hat den Standardwert so erhöht, zum Abschluss sehen wir uns an, wie das aussieht, wenn wir es in unserer Befehlskonsole ausführen:
Im letzten Tutorial konnten wir sehen, dass durch die Definition von mehr als einem Primärschlüssel diese erstellt werden als Clustering-Schlüssel und sag uns den Weg Kassandra sortiert die Informationen, standardmäßig ist die Reihenfolge in aufsteigender Reihenfolge definiert und eine Abfrage in absteigender Reihenfolge kann zu Leistungsproblemen führen, jedoch hat Cassandra eine Lösung für jedes Problem und das ist mit dem Satz CLUSTERING ***** VON. Mal sehen, wie man es benutzt.
CREATE TABLE Ordered_users (Benutzertext, Datums-Zeitstempel, Salary Float, Abteilungstext, Supervisor-Text, PRIMARY KEY (Benutzer, Datum)) WITH CLUSTERING ***** BY (Datum DESC);Lassen Sie uns unsere Syntax in der Befehlskonsole ausführen und sehen, wie sie aussieht:
Wie wir sehen konnten, war dieses Problem ganz einfach mit einer einfachen Zeile zu lösen, aber vor allem konnten wir unser Wissen im Umgang mit Tabellen in Kassandra, mit dem wir dieses Tutorial beenden, in dem wir alles abgedeckt haben, was wir für eine optimale Tabellenerstellung in . wissen müssen Kassandra.