Vorwort
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Warum Apache Cassandra?
Apache Cassandra ist ein kostenloses, quelloffenes, verteiltes System zur Speicherung von Daten, das sich deutlich von relationalen Datenbankmanagementsystemen (RDBMS) unterscheidet.
Cassandra wurde im Januar 2009 als Inkubator-Projekt bei Apache gestartet. Kurz darauf veröffentlichten die Committer unter der Leitung von Jonathan Ellis, dem Vorsitzenden des Apache Cassandra-Projekts, die Version 0.3 von Cassandra und brachten kontinuierlich neue Versionen bis zum Meilenstein 3.0 heraus. Seit 2017 wird das Projekt von Nate McCall, dem Vorsitzenden des Apache Cassandra-Projekts, geleitet und hat die Versionen 3.1 bis 4.0 veröffentlicht. Cassandra wird von einigen der größten Unternehmen im Internet, darunter Facebook, Twitter und Netflix, in der Produktion eingesetzt.
Seine Beliebtheit ist zum großen Teil auf seine herausragenden technischen Eigenschaften zurückzuführen. Sie ist langlebig, nahtlos skalierbar und abstimmbar konsistent. Sie schreibt rasend schnell, kann Hunderte von Terabytes an Daten speichern und ist dezentral und symmetrisch, sodass es keinen einzigen Ausfallpunkt gibt. Sie ist hochverfügbar und bietet ein Datenmodell, das auf der Cassandra Query Language (CQL) basiert.
Ist dieses Buch etwas für dich?
Dieses Buch ist für eine Vielzahl von Zielgruppen gedacht. Es sollte für dich nützlich sein, wenn du:
-
Ein Entwickler, der mit groß angelegten, hochvolumigen Anwendungen arbeitet, wie z. B. sozialen Web 2.0-Anwendungen, E-Commerce-Seiten, Finanzdienstleistungen oder sensorbasierten Internet of Things (IoT)-Systemen
-
Ein Anwendungsarchitekt oder Datenarchitekt, der die verfügbaren Optionen für leistungsstarke, dezentralisierte, elastische Datenspeicher verstehen muss
-
Ein Datenbankadministrator oder Datenbankentwickler, der derzeit mit standardmäßigen relationalen Datenbanksystemen arbeitet und verstehen muss, wie man einen fehlertoleranten, letztendlich konsistenten Datenspeicher implementiert
-
Ein Manager, der die Vorteile (und Nachteile) von Cassandra verstehen möchte, um Entscheidungen über die Technologiestrategie treffen zu können
-
Ein Student, Analyst oder Forscher, der ein Projekt im Zusammenhang mit Cassandra oder anderen nicht-relationalen Datenspeichern plant
Dieses Buch ist ein technischer Leitfaden. Cassandra und andere NoSQL-Datenbanken stellen in vielerlei Hinsicht eine neue Art dar, über Daten nachzudenken. Viele Entwicklerinnen und Entwickler, die in den letzten 15 bis 20 Jahren ihr berufliches Rüstzeug erworben haben, sind es gewohnt, über Daten in rein relationalen oder objektorientierten Begriffen zu denken. Das Datenmodell von Cassandra ist anders und kann anfangs schwer zu verstehen sein, vor allem für diejenigen von uns, die festgefahrene Vorstellungen davon haben, was eine Datenbank ist (und sein sollte).
Die Nutzung von Cassandra bedeutet nicht, dass du ein Java-Entwickler sein musst. Allerdings ist Cassandra in Java geschrieben. Wenn du also in den Quellcode eintauchen willst, sind solide Java-Kenntnisse unerlässlich. Viele der Beispiele in diesem Buch sind in Java geschrieben, aber Cassandra-Treiber sind in einer Vielzahl von Sprachen verfügbar, darunter Java, Node.js, Python, C#, PHP, Ruby und Go.
Schließlich wird davon ausgegangen, dass du ein gutes Verständnis davon hast, wie das Web funktioniert, eine integrierte Entwicklungsumgebung (IDE) verwenden kannst und mit den typischen Problemen datengesteuerter Anwendungen einigermaßen vertraut bist. Auch wenn du ein erfahrener Entwickler oder Administrator bist, kann es vorkommen, dass du in der Cassandra-Welt auf Tools stößt, mit denen du nicht vertraut bist. Apache Ant wird zum Beispiel zum Erstellen von Cassandra verwendet, und der Quellcode von Cassandra ist über Git verfügbar. In den Fällen, in denen wir vermuten, dass du selbst etwas einrichten musst, um mit den Beispielen arbeiten zu können, versuchen wir, das zu unterstützen.
Was steht in diesem Buch?
Dieses Buch ist so konzipiert, dass die einzelnen Kapitel in einem angemessenen Umfang als eigenständige Anleitungen fungieren. Das ist wichtig für ein Buch über Cassandra, das sich an eine Vielzahl von Zielgruppen in unterschiedlichen Berufsfeldern und Branchen richtet. In Anlehnung an die Software-Welt ist das Buch modular aufgebaut. Wenn du Cassandra noch nicht kennst, ist es sinnvoll, das Buch der Reihe nach zu lesen. Wenn du die Einführungsphase hinter dir hast, werden dir die späteren Kapitel, die du als eigenständige Anleitungen lesen kannst, immer noch von Nutzen sein.
So ist das Buch aufgebaut:
- Kapitel 1, "Jenseits relationaler Datenbanken"
-
Dieses Kapitel gibt einen Überblick über die Geschichte der enorm erfolgreichen relationalen Datenbank und den Aufstieg von nicht-relationalen Datenbanktechnologien wie Cassandra.
- Kapitel 2, "Einführung in Cassandra"
-
In diesem Kapitel wird Cassandra vorgestellt und erläutert, was an ihr spannend und anders ist, woher sie kommt und was ihre Vorteile sind.
- Kapitel 3, "Installation von Cassandra"
-
In diesem Kapitel erfährst du, wie du Cassandra installierst, zum Laufen bringst und einige der grundlegenden Funktionen ausprobierst.
- Kapitel 4, "Die Cassandra-Abfragesprache"
-
Hier schauen wir uns das Datenmodell von Cassandra an und zeigen auf, wie es sich vom traditionellen relationalen Modell unterscheidet. Wir untersuchen auch, wie dieses Datenmodell in der Cassandra Query Language (CQL) ausgedrückt wird.
- Kapitel 5, "Datenmodellierung"
-
In diesem Kapitel werden Prinzipien und Prozesse für die Datenmodellierung in Cassandra vorgestellt. Wir analysieren einen gut verstandenen Bereich, um ein funktionierendes Schema zu erstellen.
- Kapitel 6, "Die Kassandra-Architektur"
-
In diesem Kapitel erfährst du, was bei Lese- und Schreibvorgängen passiert und wie die Datenbank einige ihrer bemerkenswerten Aspekte wie Haltbarkeit und Hochverfügbarkeit erreicht. Wir gehen unter die Haube, um einige der komplexeren inneren Abläufe zu verstehen, wie das Gossip-Protokoll, Hinted Handoffs, Read-Repair, Merkle-Trees und mehr.
- Kapitel 7, "Anwendungen mit Cassandra entwerfen"
-
Um einige der Architekturkonzepte von Cassandra konkreter zu machen, werden wir einige der gängigen Möglichkeiten untersuchen, wie Cassandra in die Architektur und das Design moderner Cloud-Anwendungen eingebunden wird.
- Kapitel 8, "Anwendungsentwicklung mit Treibern"
-
Es gibt eine Vielzahl von Treibern für verschiedene Sprachen, darunter Java, Node.js, Python, Ruby, C# und PHP, um die untergeordnete API von Cassandra zu abstrahieren. Wir helfen dir zu verstehen, wie du die gängigen Treiberfunktionen nutzen kannst, um Anwendungen mit Cassandra zu entwickeln.
- Kapitel 9, "Daten schreiben und lesen"
-
Wir bauen auf den vorherigen Kapiteln auf und lernen, wie Cassandra "unter der Haube" arbeitet, um Daten zu lesen und zu schreiben. Außerdem werden wir Konzepte wie Batches, leichtgewichtige Transaktionen und Paging besprechen.
- Kapitel 10, "Konfigurieren und Bereitstellen von Cassandra"
-
In diesem Kapitel erfährst du, wie du Partitionierer, Replikat-Platzierungsstrategien und Snitches festlegen kannst. Wir richten einen Cluster ein und sehen, welche Auswirkungen verschiedene Konfigurationsentscheidungen haben. Wir besprechen, wie du deinen Cluster-Einsatz planst, einschließlich hybrider und Multi-Cloud-Einsätze mit Anbietern wie Amazon, Microsoft und Google, sowie die Bereitstellung und Verwaltung von Clustern mit Docker und Kubernetes.
- Kapitel 11, "Überwachung"
-
Sobald dein Cluster in Betrieb ist, möchtest du seine Nutzung, Speichermuster und Thread-Muster überwachen und seine allgemeine Aktivität verstehen. Cassandra verfügt über eine umfangreiche Java Management Extensions (JMX)-Schnittstelle, die wir nutzen, um all dies und noch mehr zu überwachen.
- Kapitel 12, "Wartung"
-
Die laufende Wartung eines Cassandra-Clusters wird durch einige Tools, die mit dem Server geliefert werden, etwas erleichtert. Wir sehen uns an, wie man einen Knoten außer Betrieb nimmt, den Cluster ausbalanciert, Statistiken abruft und andere Routineaufgaben durchführt.
- Kapitel 13, "Leistungsoptimierung"
-
Eine der bemerkenswertesten Eigenschaften von Cassandra ist ihre Geschwindigkeit - sie ist sehr schnell. Aber es gibt eine Reihe von Dingen, wie z. B. die Speichereinstellungen, die Speicherung von Daten, die Wahl der Hardware, das Caching und die Puffergrößen, die du einstellen kannst, um noch mehr Leistung herauszuholen .
- Kapitel 14, "Sicherheit"
-
NoSQL-Technologien wird oft nachgesagt, sie seien nicht besonders sicher. Zum Glück bietet Cassandra Authentifizierungs-, Autorisierungs- und Verschlüsselungsfunktionen, die wir in diesem Kapitel konfigurieren werden.
- Kapitel 15, "Migrieren und Integrieren"
-
Wir schließen das Buch mit einer Zusammenfassung der Schritte, die nötig sind, um Cassandra in dein Unternehmen zu bringen, und zwar aus der Perspektive der Migration von einer relationalen Datenbank zu Cassandra. Wir betrachten die Auswirkungen auf die Datenmodellierung, die Anwendungsentwicklung und den Einsatz sowie die Integration von Cassandra mit anderen gängigen Technologien, darunter:
-
Streaming-Systeme wie Apache Kafka
-
Suchmaschinen wie Apache Lucene, Apache Solr und ElasticSearch
-
Analyseplattformen wie Apache Spark
-
In diesem Buch verwendete Cassandra-Versionen
Dieses Buch wurde mit Apache Cassandra 4.0 und dem DataStax Java Driver Version 4.1 entwickelt. Die Formatierung und der Inhalt der Tool-Ausgaben, Protokolldateien, Konfigurationsdateien und Fehlermeldungen entsprechen der Version 4.0 und können sich in zukünftigen Versionen ändern.
Wenn wir über Funktionen sprechen, die in den Versionen 2.0 und später hinzugefügt wurden, geben wir die Version an, in der die Funktion hinzugefügt wurde, damit die Leser, die frühere Versionen verwenden, sich überlegen können, ob sie ein Upgrade durchführen möchten.
Neu in der dritten Auflage
In dieser dritten Ausgabe ist die Zeitspanne zwischen der ersten und zweiten Ausgabe nicht mehr ganz so groß, aber es gibt einige wichtige Änderungen, die wir erwähnen möchten:
- Eine erwachsene Datenbank
-
In der Softwareentwicklungs-Community herrscht die Meinung vor, dass es 5-10 Jahre dauert, bis eine neue Datenbank-Engine vollständig ausgereift ist. Glücklicherweise hat Cassandra diesen Meilenstein erreicht, und obwohl die Version 4.0 einige Verbesserungen bei der Stabilität und Verfügbarkeit aufweist, konzentriert sich der Großteil der neuen Funktionen auf solche, die das Verständnis und die Wartung der Datenbank erleichtern. In dieser Ausgabe werden die neuen 4.0-Funktionen behandelt, darunter: virtuelle Tabellen ( Kapitel 11), Audit-Logging ( Kapitel 14) und Change Data Capture (CDC) ( Kapitel 15).
- Cassandra in Cloud-Anwendungen
-
Die Arten von Anwendungen, in denen Cassandra eingesetzt wird, nehmen weiter zu. Um die Kluft zwischen Konzept und Realität zu überbrücken, haben wir ein neues Kapitel zu diesem Thema hinzugefügt ( Kapitel 7). Außerdem haben wir Kapitel 15 aktualisiert, um verschiedene Muster für die gemeinsame Nutzung von Kafka und Cassandra zu erläutern.
- Änderungen beim Cloud-Einsatz
-
Als die zweite Ausgabe veröffentlicht wurde, war Docker bereits eine beliebte Wahl für die Anwendungsbereitstellung, aber das Urteil über den Einsatz von Datenbanken auf Docker stand noch aus. Seitdem hat es so viele Fortschritte gegeben, dass wir den Einsatz von Cassandra auf Docker nun empfehlen können. Kubernetes hat sich als Schlüsseltechnologie für die Orchestrierung der Bereitstellung und Wartung von Containern in Maschinenclustern etabliert. In dieser Ausgabe haben wir Kapitel 10 mit einer neuen Anleitung für den Einsatz von Cassandra auf Docker aktualisiert und Kubernetes hinzugefügt, um der veränderten Landschaft Rechnung zu tragen.
Anmerkung zur überarbeiteten dritten Auflage
Diese überarbeitete dritte Auflage enthält mehrere Aktualisierungen, um die Geschichte von Kassandra auf den Stand von 2022 zu bringen:
-
Die Cassandra-Gemeinschaft hat seit der Veröffentlichung von Version 4.0 weiter an Innovationen gearbeitet. In dieser Ausgabe geht es um die Bemühungen im Rahmen des Apache-Projekts, die sich in dem Prozess des Cassandra Enhancement Proposal (CEP) widerspiegeln. Außerdem stellen wir weitere Projekte vor, darunter K8ssandra, ein Projekt zum Einsatz von Cassandra in Kubernetes.
In diesem Buch verwendete Konventionen
In diesem Buch werden die folgenden typografischen Konventionen verwendet:
- Kursiv
-
Weist auf neue Begriffe, URLs, E-Mail-Adressen, Dateinamen und Dateierweiterungen hin.
Constant width
-
Wird für Programmlistings sowie innerhalb von Absätzen verwendet, um auf Programmelemente wie Variablen- oder Funktionsnamen, Datenbanken, Datentypen, Umgebungsvariablen, Anweisungen und Schlüsselwörter hinzuweisen.
Constant width bold
-
Zeigt Befehle oder anderen Text an, der vom Benutzer wortwörtlich eingetippt werden sollte.
Tipp
Dieses Element steht für einen Tipp oder eine Anregung.
Hinweis
Dieses Element steht für einen allgemeinen Hinweis.
Warnung
Dieses Element weist auf eine Warnung oder einen Warnhinweis hin.
Code-Beispiele verwenden
Die Codebeispiele in diesem Buch stehen unter https://github.com/jeffreyscarpenter/cassandra-guide und https://github.com/jeffreyscarpenter/reservation-service zum Download bereit .
Dieses Buch soll dir helfen, deine Arbeit zu erledigen. Im Allgemeinen darfst du den Code in diesem Buch in deinen Programmen und deiner Dokumentation verwenden. Du musst uns nicht um Erlaubnis fragen, es sei denn, du reproduzierst einen großen Teil des Codes. Wenn du zum Beispiel ein Programm schreibst, das mehrere Teile des Codes aus diesem Buch verwendet, brauchst du keine Erlaubnis. Der Verkauf oder die Verbreitung von Beispielen aus O'Reilly-Büchern erfordert jedoch eine Genehmigung. Die Beantwortung einer Frage mit einem Zitat aus diesem Buch und einem Beispielcode erfordert keine Genehmigung. Wenn du einen großen Teil des Beispielcodes aus diesem Buch in die Dokumentation deines Produkts aufnimmst, ist eine Genehmigung erforderlich.
Wir freuen uns über eine Namensnennung, verlangen sie aber in der Regel nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel: "Cassandra: The Definitive Guide, Revised Edition, von Jeff Carpenter und Eben Hewitt (O'Reilly). Copyright 2022 Jeff Carpenter, 978-1-492-09714-3."
Wenn du der Meinung bist, dass deine Verwendung von Codebeispielen nicht unter die Fair-Use-Regelung oder die hier erteilte Erlaubnis fällt, kannst du uns gerne unter permissions@oreilly.com kontaktieren .
O'Reilly Interaktive Katacoda-Szenarien
Interaktive Katacoda-Szenarien ahmen reale Produktionsumgebungen nach und ermöglichen es dir, direkt in deinem Browser Code zu schreiben und auszuführen, während du lernst. Der Autor hat eine Sammlung von Katacoda-Szenarien entwickelt, mit denen du die in diesem Buch beschriebenen Werkzeuge und Praktiken praktisch anwenden kannst. Unter http://oreilly.com findest du weitere Informationen über unsere interaktiven Inhalte, das ebook-Format für diesen Titel und alles, was unsere Lernplattform zu bieten hat.
O'Reilly Online Learning
Hinweis
Seit mehr als 40 Jahren bietet O'Reilly Media Schulungen, Wissen und Einblicke in Technologie und Wirtschaft, um Unternehmen zum Erfolg zu verhelfen.
Unser einzigartiges Netzwerk von Experten und Innovatoren teilt sein Wissen und seine Erfahrung durch Bücher, Artikel und unsere Online-Lernplattform. Die Online-Lernplattform von O'Reilly bietet dir On-Demand-Zugang zu Live-Trainingskursen, ausführlichen Lernpfaden, interaktiven Programmierumgebungen und einer umfangreichen Text- und Videosammlung von O'Reilly und über 200 anderen Verlagen. Weitere Informationen findest du unter http://oreilly.com.
Wie du uns kontaktierst
Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:
-
O'Reilly Media, Inc.
-
1005 Gravenstein Highway Nord
-
Sebastopol, CA 95472
-
800-998-9938 (in den Vereinigten Staaten oder Kanada)
-
707-829-0515 (international oder lokal)
-
707-829-0104 (Fax)
Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten. Du kannst diese Seite unter https://oreil.ly/cassandra_revisedEd aufrufen .
Schicke eine E-Mail an bookquestions@oreilly.com, um Kommentare abzugeben oder technische Fragen zu diesem Buch zu stellen.
Weitere Informationen zu unseren Büchern, Kursen und Neuigkeiten findest du auf unserer Website unter http://www.oreilly.com.
Finde uns auf Facebook: http://facebook.com/oreilly
Folge uns auf Twitter: http://twitter.com/oreillymedia
Schau uns auf YouTube: http://www.youtube.com/oreillymedia
Danksagungen
Es gibt viele wunderbare Menschen, denen wir dankbar sind, dass sie geholfen haben, dieses Buch zum Leben zu erwecken.
Vielen Dank an unsere technischen Prüfer: Stu Hood, Robert Schneider und Gary Dusbabek haben die erste Ausgabe sorgfältig rezensiert, während Andrew Baker, Ewan Elliot, Kirk Damron, Corey Cole, Jeff Jirsa, Chris Judson und Patrick McFadin die zweite Ausgabe geprüft haben. Die dritte Ausgabe wurde von Pankaj Gallar, Cedrick Lunven, Alex Ott und Wei Deng rezensiert.
Vielen Dank an Jonathan Ellis und Patrick McFadin für die Vorworte zur ersten bzw. zweiten Auflage und an Nate McCall für das Vorwort zur dritten Auflage. Danke auch an Patrick für seine Beiträge zum Abschnitt über die Spark-Integration in Kapitel 15.
Wir danken unseren Redakteuren Mike Loukides, Marie Beaugureau, Nicole Taché, Jess Haberman und Sarah Grey für ihre ständige Unterstützung und dafür, dass sie dieses Buch zu einem besseren gemacht haben.
Jeff möchte sich bei Eben dafür bedanken, dass er ihm die Möglichkeit gegeben hat, einen so angesehenen, grundlegenden Text zu aktualisieren, und für Ebens Ermutigung von Anfang bis Ende.
Und schließlich wurden wir von den vielen großartigen Entwicklern inspiriert, die zu Cassandra beigetragen haben. Hut ab, dass sie eine so elegante und leistungsstarke Datenbank entwickelt haben.
Get Cassandra: The Definitive Guide, (Revised) Third Edition, 3. now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.