Auf einen Blick: Die Verwendung von JSON mit Cassandra ermöglicht ein flexibles Datenmanagement, indem Benutzer Daten im JSON-Format schreiben können. Der Leitfaden enthält Beispiele für das Erstellen von Schlüsselräumen und Tabellen, das Einfügen von Daten und das Abfragen mit JSON-Syntax.
- Unterstützt das Speichern und Schreiben von Daten im JSON-Format.
- Enthält Beispiele für das Erstellen von Tabellen und das Einfügen von Datensätzen mit JSON-Syntax.
Cassandra unterstützt JSON. Natürlich können Sie JSON-Text in Cassandra-Textspalten speichern. Aber das meinen wir hier nicht. Hier meinen wir, dass Sie JSON verwenden können, um in Cassandra-Tabellen zu schreiben.
Wir veranschaulichen das mit einem Beispiel. Zuerst erstellen Sie einen Schlüsselraum.
create keyspace json with REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor' : 2 };
Einfaches JSON-Beispiel
Lassen Sie uns eine Tabelle mit drei Spalten erstellen. Dann schreiben wir Daten mit dem JSON-Schlüsselwort hinein. Das sagt Cassandra, die JSON-Werte auf die Spaltennamen abzubilden, genau wie man es bei JSON erwarten würde.
create table books (isbn text primary key, title text, publisher text);
insert into books JSON '{"isbn": "123",
"title": "The Magic Mountain",
"publisher": "Knofp"}';
Dann listen wir die Daten auf. Es sieht aus wie reguläre Spaltendaten und nicht wie JSON. Weil es einfach reguläre Daten sind. Wir haben einfach JSON verwendet, um sie hinzuzufügen, was nützlich ist, da Daten oft als JSON dargestellt werden.
select * from books;
isbn | publisher | title
------+-----------+--------------------
123 | Knofp | The Magic Mountain
Verschachteltes JSON
Hier ist ein komplizierteres Beispiel. Wir haben einen Kundeneintrag mit einem Verkaufstyp, der eine Typliste hat. Offensichtlich hätte ein Kunde mehrere Verkäufe. Das ist also eine gute Möglichkeit, das darzustellen.
Zuerst erstellen wir den Verkaufstyp. Dann erstellen wir die Kundentabelle. Wir müssen das Schlüsselwort FROZEN verwenden, da jede Verkaufstransaktion nicht geändert werden kann, d.h. sie ist unveränderlich. Wenn Sie eine Verkaufstransaktion ändern wollen, müssten Sie sie löschen und dann wieder hinzufügen.
use json;
CREATE type json.sale ( id int, item text, amount int );
CREATE TABLE json.customers ( id int PRIMARY KEY, name text, balance int, sales list> );
Jetzt addiere Werte. Da die Verkaufsartikel eine Liste sind, können wir mehr als einen hinzufügen.
INSERT INTO json.customers (id, name, balance, sales)
VALUES (123, 'Greenville Hardware', 700,
[{ id: 5544, item : 'tape', amount : 100},
{ id: 5545, item : 'wire', amount : 200}]) ;
Listen Sie nun die Elemente auf. Beachten Sie, dass es kein Fragezeichen um den Schlüsselwert im jSON gibt. Das liegt daran, dass es sich um ein JSON-Objekt handelt.
select * from customers;
id | balance | name | sales
-----+---------+---------------------+--------------------------------------------------------------------------------
123 | 700 | Greenville Hardware | [{id: 5544, item: 'tape', amount: 100}, {id: 5545, item: 'wire', amount: 200}]
Wenn du es in einen JSON-String umwandeln willst, dann benutze toJson()
select id, toJson(sales) from customers;
id | system.tojson(sales)
-----+--------------------------------------------------------------------------------------------
123 | [{"id": 5544, "item": "tape", "amount": 100}, {"id": 5545, "item": "wire", "amount": 200}]
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.