Auf einen Blick: Cassandra SQL Batches and Maps erklärt SQL-Befehle und Datentypen in Cassandra und betont dessen Ähnlichkeiten mit traditionellem SQL. Es behandelt die Cassandra SQL-Shell, komplexe Datentypen wie Sammlungen und Karten sowie die Verwendung von Batches für atomare Transaktionen.
- Führt Cassandra-SQL-Shell-Befehle und Beispiele ein.
- Erklärt komplexe Datentypen: Sammlungen, Karten und Mengen.
- Beschreibt die Verwendung von Batchs für atomare Operationen in Anwendungen.
Es gibt zu viele SQL-Befehle und Datentypen, um alle in einem Blogbeitrag zu betrachten, daher werden wir uns hier einige anschauen.
Um die untenstehenden Beispiele zu verstehen, solltest du ein gewisses Verständnis von regulärem, also Oracle oder anderem RDBMS, SQL haben, da Cassandra SQL fast dasselbe ist. Und um mit Cassandra zu beginnen, kannst du hier lesen, was geschrieben wurde. Schau dir das an, selbst wenn du Cassandra bereits kennst und installiert hast, sodass du SQL von dort aus nutzen kannst, um eine Tabelle und einen Index einzurichten, mit dem wir hier beginnen.
Cassandra SQL Shell
Erster Schritt, um die Cassandra-SQL-Befehlszeile zu öffnen: cqlsh.
Füge unten das SQL ein. Wenn du dir diesen anderen Blogbeitrag angesehen hast, findest du hier einige Daten.
select * from Library.book;
Hier ist eine weitere Frage.
(Beachte, dass Cassandra die Verwendung von einfachen und nicht doppelten Anführungszeichen erfordert, sonst erhält man bei der Eingabe den Fehler "keine sinnvolle Alternative.")
select ssn from Library.patron where checkedOut contains '1234';
Sammlungen, Karten und Sets
Cassandra unterstützt komplexe Datentypen, darunter benutzerdefinierte Objekte, Sammlungen, Karten und Mengen.
Zum Beispiel. Wenn wir Folgendes eingeben:
Karten
describe library.patron;
Wir können sehen, dass Befehle verwendet wurden, um die Tabelle zu erstellen. Unten ist eine abgekürzte Ansicht davon, da die vollständige Ansicht viele Systemadministrationsoptionen zeigt, die wir in einem anderen Beitrag betrachten werden.
Unten sehen Sie, dass die ausgecheckte Spalte eine Menge von Typtext ist. Eine Menge ist eine Sammlung eindeutiger Werte.
CREATE TABLE library.patron (
ssn int PRIMARY KEY,
checkedout set
)
Maps speichern Werte im {key->value}-Format.
Erstelle zuerst diesen Schlüsselraum.
CREATE KEYSPACE shopping
WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 3 };
Dann erstellen Sie einen Einkaufswagen für eine E-Commerce-App, bei der die gekauften Artikel eine Karte sind. Das erste Feld ist die Bestellnummer des Kunden. Das zweite ist die Kombination dessen, was sie gekauft haben und wie viel, z. B. {"Schuhe", 1}.
CREATE TABLE shopping.cart (
customerOrder int PRIMARY KEY,
items map
);
Fügen Sie einige Daten hinzu, z. B. machen Sie einen Verkauf:
Und listen Sie es auf:
INSERT INTO shopping.cart (customerOrder, items)
VALUES (
1,
{'toys' : 12, 'socks': 5});
Und listen Sie es auf:
select * from shopping.cart;
customerorder | items
---------------+--------------------------
1 | {'socks': 5, 'toys': 12}
Chargen
Bei einer E-Commerce-Anwendung möchtest du Batches verwenden.
Batches gewährleisten Atomizität, was RDBMS-Programmierer als referenzielle Integrität ansprechen würden. Dies stellt sicher, dass, wenn eine der SQL-Anweisungen in einem Batch einen Fehler aufweist, keine der Anweisungen angewendet wird.
Das ist zum Beispiel ein Import für eine Einkaufswagen-App. Wir würden den Bestand nur aktualisieren wollen, wenn die Verkaufstransaktion funktioniert.
Um das zu veranschaulichen: Erstellen Sie zunächst eine Inventartabelle und legen Sie einen Artikel hinein:
CREATE TABLE shopping.inventory (
item text PRIMARY KEY,
quantity int
);
INSERT INTO shopping.inventory (item, quantity) VALUES ('eggs', 48);
Jetzt verkaufe 4 Eier in einer CHARGE:
BEGIN BATCH
INSERT INTO shopping.cart (customerOrder, items)
VALUES (
2,
{'eggs' : 4}
);
UPDATE shopping.inventory
SET quantity = 44
where item = 'eggs';
APPLY BATCH;
Cassandra-Führer
- Was ist Cassandra? Schlüsselmerkmale und Vorteile
- Wie man einen Cassandra-Cluster einrichtet
- Cassandra SQL Batches and Maps
- Stresstests und Leistungsabstimmung Apache Cassandra
- JSON mit Cassandra verwenden
- Konfiguration von Apache Cassandra Data Consistency
- Verwendung von Tokens zur Verteilung von Cassandra-Daten
- Partitionsschlüssel vs. zusammengesetzter Schlüssel vs. Clustering von Spalten in Cassandra
Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.