Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Apache Cassandra Grundkurs

User Defined Types

Testen Sie unsere 2019 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Sehen Sie in diesem Video, wie Sie eigene Datenstrukturen (sogenannte User Defined Types) definieren und wiederverwenden können.
07:15

Transkript

Wenn Tupel nicht mehr ausreichen bzw. eine explizitere Struktur gewünscht ist, können User-defined Types, also selbst definierte Typen, zum Einsatz kommen. Diese unterscheiden sich dadurch von Tupeln, dass ihre einzelnen Felder benannt werden und diese Typen im Keyspace wiederverwendet werden können. Lassen Sie uns gemeinsam ein Beispiel betrachten. Dazu gehen wir in die CQL-Shell und verwenden den Keyspace "training". Im Folgenden möchten wir eine Tabelle namens "produkte" erstellen und jedes Produkt soll eine Liste von Kommentaren mitführen können. Ein solcher Kommentar soll aus einem Autor und einer Nachricht bestehen, das heißt, wir beginnen damit, dass wir uns einen Typen "kommentar" definieren mit folgenden Eigenschaften. Wir haben einmal das Feld "autor", das als Text definiert ist. Und wir haben die "nachricht", die auch ein Text ist. Jetzt können wir unsere Tabelle erstellen, "CREATE TABLE produkte", mit folgenden Spalten. Wir möchten zunächst eine "id" als Integer haben. Wir möchten, dass die Kommentare später nach Land aufgeteilt werden, da diese Kommentare in unterschiedlichen Sprachen verfasst sein können, das heißt, wir werden die ID als Partition Key verwenden und das Land wiederum als Clustering Key. Zusätzlich möchten wir eine Spalte "name" für den Namen des Produktes haben. Dadurch, dass dieser Name allein vom Partition Key, also von der Produkt-ID, abhängt und nicht vom Land, können wir diese Spalte als "STATIC" definieren. Und schließlich kommen wir zu den Kommentaren. Diese Kommentare sind eine Liste, und zwar vom Typ "kommentar". Und weil wir hier eine Schachtelung von komplexen Datentypen haben, müssten wir auch den Kommentar einmal einfrieren, also "frozen" darumpacken. Schließlich müssen wir noch den Primary Key definieren. Dieser ist, wie gerade erwähnt, zusammengesetzt aus dem Partition Key "id" und aus dem Clustering Key "land". Jetzt können wir das "CREATE TABLE"-Statement abschließen und die Tabelle ist erstellt. Jetzt wollen wir unser erstes Produkt einfügen, "INSERT INTO produkte", folgende Spalten: einmal die "id", anschließend das "land", der "name" und "kommentare". Folgende Werte: Für die ID vergeben wir die "1", für das Land definieren wir "DE" für Deutschland, der Name soll der "Super TV 5000x" sein und für den ersten Kommentar bzw. die initiale Liste an Kommentaren können wir jetzt eine Liste mit eckigen Klammern beginnen und ein User-defined Type wird mit geschweiften Klammern geschrieben. Den Autor bzw. die Felder "autor" und "nachricht" müssen wir nicht in Anführungszeichen setzen, sondern nur die Werte. Diesen Kommentar hat "dieter@gmx" geschrieben und seine Nachricht war: "Dieser Fernseher ist ein super Teil". So, das Ganze mit einer runden Klammer und einem Semikolon abschließen. Und nun überprüfen wir, ob das auch so in die Datenbank bzw. in die Tabelle geschrieben wurde, wie wir das gerade erwarten. Und wir sehen ID, Land, Name und die erste Kommentarliste mit User-defined Types wurde richtig bzw. wie erwartet gesetzt. Lassen Sie uns jetzt einen zweiten Kommentar hinzufügen. Dazu schalten wir ein Update auf die Produkte und setzen "kommentare = kommentare +". Wir möchten also einen Kommentar hinzufügen bei dem bereits bestehenden Datensatz vom Autor bzw. der Autorin "isabell@live.com" mit folgender Nachricht: "Dieser Fernseher ist schlecht", also einmal "Schlecht!" Und das Update soll stattfinden an der Position "id = 1". Und da wir nun einen Clustering Key mit dabei haben und "kommentare" auch keine statische Spalte ist, also nicht nur vom Partition Key abhängt, müssen wir jetzt auch eingrenzen, dass es sich hier um das Land "DE" handelt. Wir überprüfen einmal mit dem "SELECT", ob alles passt und wie erwartet aussieht. Und wir sehen tatsächlich, zum bestehenden Datensatz wurde ein weiterer Kommentar hinzugefügt. Jetzt wollen wir noch einen Kommentar hinzufügen, aber diesmal hat Jeff aus den USA etwas geschrieben. Das heißt, wir können wieder ein Update auf die Produkte fahren. Wir schreiben wieder "SET kommentare = kommentare +", wieder eine Listenklammer und eine geschweifte Klammer für den User-defined Type. Autor ist diesmal "jeff@gmail.com". Und was Jeff zu dem Thema zu sagen hat, ist: "Nice TV". So. Weil es sich diesmal um einen Kommentar aus den USA handelt, können wir zwar den Partition Key gleich lassen auf der "1", aber wir können diesmal einen anderen Clustering Key angeben, nämlich "US". Und wir prüfen, ob das Ganze auch wie erwartet angekommen ist, mit einem "SELECT"-Statement. Und tatsächlich, wir sehen, es wurde ein neuer Datensatz mit dem gleichen Partition Key "1" eingesetzt, aber mit einem neuen Clustering Key "US". Und der Kommentar von Jeff wurde entsprechend richtig zugeordnet. Sie haben gesehen, wie Sie mit Hilfe von User-defined Types komplexe Strukturen geschachtelt abbilden können. Sie haben in einem weiteren Kontext verstanden, dass Sie in Cassandra mit einem zusammengesetzten Schlüssel und komplexen Datentypen mehrere Ebenen in Ihrem Datenmodell abbilden können. Diese Ebenen sind in diesem Beispiel einerseits eine gesamte Partition, das sind beide Datensätze hier, einen Datensatz und schließlich, in einer Zelle geschachtelt, eine Liste eines User-definierten Datentypen.

Apache Cassandra Grundkurs

Lernen Sie, wie Sie Apache Cassandra als hoch verfügbare und skalierbare Datenbank einsetzen können.

2 Std. 11 min (26 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Exklusiv für Abo-Kunden
Erscheinungsdatum:24.02.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!