Cassandra - Einführung
Apache Cassandra ist eine hoch skalierbare, leistungsstarke verteilte Datenbank, die für die Verarbeitung großer Datenmengen auf vielen Commodity-Servern ausgelegt ist und eine hohe Verfügbarkeit ohne Single Point of Failure bietet. Es ist eine Art NoSQL-Datenbank. Lassen Sie uns zunächst verstehen, was eine NoSQL-Datenbank tut.
NoSQLDatabase
Eine NoSQL-Datenbank (manchmal auch als Not Only SQL bezeichnet) ist eine Datenbank, die einen Mechanismus zum Speichern und Abrufen anderer Daten als der in relationalen Datenbanken verwendeten tabellarischen Beziehungen bietet. Diese Datenbanken sind schemafrei, unterstützen eine einfache Replikation, verfügen über eine einfache API, sind schließlich konsistent und können große Datenmengen verarbeiten.
Das Hauptziel einer NoSQL-Datenbank ist es, zu haben
- Einfachheit des Designs,
- horizontale Skalierung und
- feinere Kontrolle über die Verfügbarkeit.
NoSql-Datenbanken verwenden im Vergleich zu relationalen Datenbanken andere Datenstrukturen. Es beschleunigt einige Operationen in NoSQL. Die Eignung einer bestimmten NoSQL-Datenbank hängt von dem Problem ab, das sie lösen muss.
NoSQL vs. relationale Datenbank
In der folgenden Tabelle sind die Punkte aufgeführt, die eine relationale Datenbank von einer NoSQL-Datenbank unterscheiden.
Relationale Datenbank | NoSql-Datenbank |
---|---|
Unterstützt leistungsstarke Abfragesprache. | Unterstützt eine sehr einfache Abfragesprache. |
Es hat ein festes Schema. | Kein festes Schema. |
Folgt ACID (Atomizität, Konsistenz, Isolierung und Haltbarkeit). | Es ist nur "irgendwann konsistent". |
Unterstützt Transaktionen. | Unterstützt keine Transaktionen. |
Neben Cassandra haben wir die folgenden NoSQL-Datenbanken, die sehr beliebt sind -
Apache HBase- HBase ist eine nicht relationale, verteilte Open Source-Datenbank, die dem BigTable von Google nachempfunden und in Java geschrieben ist. Es wurde als Teil des Apache Hadoop-Projekts entwickelt und läuft auf HDFS auf und bietet BigTable-ähnliche Funktionen für Hadoop.
MongoDB - MongoDB ist ein plattformübergreifendes dokumentenorientiertes Datenbanksystem, bei dem die Verwendung der traditionellen tabellenbasierten relationalen Datenbankstruktur zugunsten von JSON-ähnlichen Dokumenten mit dynamischen Schemata vermieden wird, wodurch die Integration von Daten in bestimmte Arten von Anwendungen einfacher und schneller wird.
Was ist Apache Cassandra?
Apache Cassandra ist ein Open Source, verteiltes und dezentrales / verteiltes Speichersystem (Datenbank) zur Verwaltung sehr großer Mengen strukturierter Daten, die auf der ganzen Welt verteilt sind. Es bietet hochverfügbaren Service ohne Single Point of Failure.
Nachfolgend sind einige der bemerkenswerten Punkte von Apache Cassandra aufgeführt -
Es ist skalierbar, fehlertolerant und konsistent.
Es ist eine spaltenorientierte Datenbank.
Das Distributionsdesign basiert auf Amazon Dynamo und das Datenmodell auf Googles Bigtable.
Es wurde bei Facebook erstellt und unterscheidet sich stark von relationalen Datenbankverwaltungssystemen.
Cassandra implementiert ein Replikationsmodell im Dynamo-Stil ohne Single Point of Failure, fügt jedoch ein leistungsfähigeres Datenmodell für die Spaltenfamilie hinzu.
Cassandra wird von einigen der größten Unternehmen wie Facebook, Twitter, Cisco, Rackspace, eBay, Twitter, Netflix und anderen verwendet.
Eigenschaften von Cassandra
Cassandra ist wegen seiner herausragenden technischen Eigenschaften so beliebt geworden. Im Folgenden sind einige der Funktionen von Cassandra aufgeführt:
Elastic scalability- Cassandra ist hoch skalierbar; Es ermöglicht das Hinzufügen von mehr Hardware, um je nach Anforderung mehr Kunden und mehr Daten aufzunehmen.
Always on architecture - Cassandra hat keinen einzigen Fehlerpunkt und ist kontinuierlich für geschäftskritische Anwendungen verfügbar, die sich einen Fehler nicht leisten können.
Fast linear-scale performance- Cassandra ist linear skalierbar, dh es erhöht Ihren Durchsatz, wenn Sie die Anzahl der Knoten im Cluster erhöhen. Daher bleibt eine schnelle Reaktionszeit erhalten.
Flexible data storage- Cassandra unterstützt alle möglichen Datenformate, einschließlich: strukturiert, halbstrukturiert und unstrukturiert. Es kann Änderungen an Ihren Datenstrukturen je nach Bedarf dynamisch berücksichtigen.
Easy data distribution - Cassandra bietet die Flexibilität, Daten nach Bedarf zu verteilen, indem Daten auf mehrere Rechenzentren repliziert werden.
Transaction support - Cassandra unterstützt Eigenschaften wie Atomizität, Konsistenz, Isolation und Haltbarkeit (ACID).
Fast writes- Cassandra wurde für den Betrieb mit billiger Standardhardware entwickelt. Es führt blitzschnelle Schreibvorgänge durch und kann Hunderte von Terabyte an Daten speichern, ohne die Leseeffizienz zu beeinträchtigen.
Geschichte von Cassandra
- Cassandra wurde bei Facebook für die Posteingangssuche entwickelt.
- Es wurde im Juli 2008 von Facebook als Open-Source-Version bereitgestellt.
- Cassandra wurde im März 2009 in Apache Incubator aufgenommen.
- Es wurde seit Februar 2010 zu einem Apache-Top-Level-Projekt gemacht.