Kurzbeschreibung
Dies ist eine vom Dozenten geleitete Grundlagenschulung. Geschult wird die Datenbankverwaltung von sehr großen aber dennoch strukturierten Daten in verteilten Systemen. Grundlage ist das NoSQL Datenbanksystem Apache Cassandra.
Die Cassandra Database ermöglicht Hochverfügbarkeit und massive Skalierbarkeit. Es gibt keine größenbezogenen Einschränkungen und selbst Datenbanken in Petabyte-Größe sind realisierbar. Auf den ersten Blick erscheint Cassandra db vertraut. Der Zugriff erfolgt über eine Syntax, die dem SQL ähnelt. In der Praxis unterscheidet sich die Arbeit aber grundlegend zu relationalen Datenbanken.
Hier setzt diese Schulung an. Sie erfahren eine grundlegende Einführung zu nicht relationalen Datenbanken und Besonderheiten in verteilten Systemen (CAP-Theorem / Brewers Theorem). An Hand von Theorie und vielen praktischen Übungen erlernen Sie die Architektur von Cassandra kennen und sie einzurichten. Sie erlernen den Umgang mit der Abfragesprache Cassandra Query Language CQL und die Erstellung eigener Datenmodelle. Skalierungsoptionen und die Einrichtung von Clustern zählen zu der Schulung ebenso wie eine persistente Datenhaltung und Optimierungsmöglichkeiten bzw. Patterns / Anti-Patterns bei NoSQL und Cassandra.
Nach diesem Kurs habe Sie das Rüstzeug:
• Den Nutzen von NoSQL Datenbanken und Cassandra einzuschätzen und kennen typische Einsatzfelder
• Die Apache Cassandra Architektur zu verstehen und einzurichten
• Datenmodelle für Cassandra zu erstellen
• Cassandra im Cluster zu installieren, zu konfigurieren und zu betreiben
Voraussetzungen
• Datenbank und SQL-Grundkenntnisse werden vorausgesetzt.
• Erfahrungen in Java sind wünschenswert aber nicht zwingend notwendig.
Seminarinhalt
Einführung noSQL und Apache Cassandra
• Historie Datenbanken
• Hintergrund - Cloudscale Big Data
• CAP Theorem
• ACID und BASE
• Überblick verschiedener NoSQL Datenbanken
• Positionierung Cassandra und Historie Apache Cassandra
Grundlagen von Apache Cassandra
• Überblick Architektur
• Überblick Datenmodellierung
• Gemeinsamkeiten und Unterschiede zwischen Apache Cassandra und RDBMS
• Einsatzbereiche von Cassandra
• Installation Apache Cassandra und Nutzung des CLI
Cassandra Query Language - CQL
• Vergleich von CQL und SQL
• Einsatz von CQL zur Definition und Manipulation von Daten
• Paging, Batches
Cassandra Datenmodellierung
• Vorgehensweise und Vergleich mit relationaler Modellierung
• Logisches und physisches Modell
• Schlüsseldefinition, zusammengesetzte Schlüssel, Index Auswahl
• Timeseries Data, Reihenfolge, Filterung, Time-To-Live (TTL)
• Versionierung von Daten
Cassandra Aufbau und Architektur
• Gossip Protokoll für Kommunikation
• Paxos für Koordination
• Coordinators und Partitoners
• Konsistentes Hashing
• Replikation und Strategien für Verfügbarkeit und Performance
• Failure Detection, Hinted Handoff, Read Repair
• Datenstrukturen: Bloom Filter, Merkle Bäume
• Storage Service, SSTables, memtables, commit logs
• Compaction, Compressions, Caches
Datenkonsistenz
• Einführung und Motivation Konsistenz
• Replication Factor, Quorum, Paxos
• Konsistenzstufen für lesende und schreibende Zugriffe
• Leichtgewichtige Transaktionen bei Cassandra
Cassandra Java Anbindung
• Optionen zur Integration in Java
• Konfiguration in der Anwendung
• Spring Data Cassandra
• Erzeugung von Daten, Abfrage von Daten mit Java (CRUD)
Clustering / Cassandra Rings
• Cluster-Topologien
• Einrichtung und Migration von Clustern
• Konsistenzlevel im Kontext von Clustern
Zielgruppen
• Software Entwickler und Datenbank Spezialisten, die eine Lösung für große Datenmengen an strukturierten Daten suchen und Cassandra einsetzen wollen.
• Administratoren und DevOps Spezialisten, die Cassandra für den Betrieb konfigurieren und administrieren wollen.
Preise und Termine
Software
Geschult wird grundsätzlich auf der aktuellsten Version von Apache Cassandra, die für einen produktiven Betrieb eingesetzt werden kann. Sofern gewünscht kann auch auf anderen Versionen geschult werden.
Seminarsprache
die Seminarsprache ist deutsch, sofern keine andere Angabe. Englisch ist in aller Regel machbar, andere Seminarsprachen sind möglich, fragen Sie bitte an.