Suchen

Definition Was ist Couchbase?

Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Couchbase ist eine dokumentenorientierte nicht-relationale Datenbank (NoSQL-Datenbank). Sie speichert Informationen in Form von JSON-Dokumenten. Die Couchbase-Lösung umfasst Couchbase Server und Couchbase Mobile. Für das Abfragen und Verändern von Daten steht die Abfragesprache N1QL zur Verfügung, die ähnlich wie SQL für relationale Datenbanken arbeitet.

Firmen zum Thema

(Bild: © aga7ta - stock.adobe.com)

Couchbase ist sowohl der Name für eine dokumentenorientierte NoSQL-Datenbank als auch für das Unternehmen Couchbase, Inc., das die Software weiterentwickelt und kommerzielle Produkte sowie Service rund um die Lösung anbietet. Die Couchbase-Lösung umfasst Couchbase Server und Couchbase Mobile. Es lassen sich Cloud-native, nicht-relationale Datenbanken realisieren, die Informationen mithilfe von JSON-Dokumenten speichern.

Couchbase-Datenbanken eignen sich für interaktive Anwendungen. Sie bieten hohe Leistung, sind einfach zu skalieren und stellen ein sehr flexibles Datenmodell zur Verfügung. Unternehmen wie Amadeus, AT&T, Cisco, Disney, eBay, LinkedIn, Marriott, Tommy Hilfiger, Office Depot, Verizon, Salesforce.com oder DreamWorks Animation und viele mehr betreiben Anwendungen basierend auf Couchbase-Datenbanken.

Es werden Webanwendungen, mobile Anwendungen, IoT-Anwendungen und andere Anwendungsmodelle unterstützt. Der Couchbase Server arbeitet Cloud-native und nutzt verteilte Architekturen. Couchbase Mobile ist für mobile Deployments mit NoSQL-Datenbanken vorgesehen. Couchbase basiert auf offenen Standards und steht unter Open Source Apache 2.0 License. Das Unternehmen Couchbase, Inc. entstand im Jahr 2012 aus dem Merger von Membase, Inc. und CouchOne. Es hat seinen Hauptsitz in Santa Clara, Kalifornien. Couchbase-Software ist für Betriebssysteme wie Linux, Windows und macOS verfügbar.

Grundsätzliches zur NoSQL-Dokumentendatenbank

Eine Dokumentendatenbank speichert Informationen auf eine prinzipiell andere Art als relationale Datenbanken. Daten werden nicht in Tabellen, sondern in Form von JSON-ähnlichen Dokumenten gespeichert und können aus diesen Dokumenten abgefragt werden. Für Entwickler bietet das den Vorteil, dass sich das gleiche Dokumentmodellformat wie im Anwendungscode verwenden lässt. Die JSON-Dokumente selbst sind semi-strukturiert. Vorteile von Dokumentendatenbanken sind die flexible Indexierung und die hohe Leistung bei Analysen, Abfragen und Speichervorgängen.

Couchbase Server und Couchbase Mobile

Die Couchbase-Lösung umfasst Couchbase Server und Couchbase Mobile. Bei Couchbase Server handelt es sich um ein Datenbank-Softwarepaket für verteilte Shared-Nothing-Architekturen und dokumentenorientierte NoSQL-Datenbanken. Couchbase Server ist für interaktive Anwendungen optimiert und kann viele Anwender und Anwendungen gleichzeitig bedienen. JSON-Dokumente lassen sich mit niedrigen Latenzzeiten und hohem Durchsatz verarbeiten. Der Couchbase Server kann auf einzelnen Rechnern und auf Cluster-basierten Umgebungen betrieben werden. Große Deployments werden unterstützt. Die aktuelle Version des Couchbase Servers ist die Version 6.5.1 (Stand April 2020). Couchbase Server Builds sind verfügbar für verschiedene Linux-Distributionen wie Ubuntu, Debian, Red Hat und SUSE sowie für die Betriebssysteme Microsoft Windows and macOS.

Couchbase Mobile wird über Couchbase Lite bereitgestellt und sorgt für eine nahtlose Synchronisierung von der Cloud zum Edge-Bereich. Es handelt sich bei Couchbase Lite um eine eingebettete NoSQL-Datenbank, die für mobile Deployments und embedded Devices optimiert ist. Die aktuelle Version ist Couchbase Lite 2.7.1 (Stand April 2020).

Kurzer Einblick in die Architektur

Jeder Couchbase-Knoten besteht aus einem Index-Service, einem Daten-Service, einem Abfrage-Service und einer Cluster-Manager-Komponente. Die Services lassen sich bei Bedarf auf unterschiedlichen Knoten eines Clusters betreiben. Der Cluster Manager ist für die Konfiguration und die Überwachung aller Services in einem Couchbase-Cluster verantwortlich. Er managt beispielsweise die Replikations-Streams und verteilt Aufgaben. Das Basiselement der Datenspeicherung einer Couchbase Datenbank ist das JSON-Dokument. Das Datenformat der JSON-Dokumente hat kein vordefiniertes Schema. Es lassen sich auch Nicht-JSON-Dokumente wie XML-Daten auf einem Couchbase Server speichern.

Abfragesprache N1QL

Für die Couchbase NoSQL-Datenbank existiert eine eigene Abfragesprache. Sie heißt N1QL, was die Abkürzung für „non-1st normal from query language“ ist. Mit der Sprache lassen sich JSON-Dokumente abfragen und manipulieren. N1QL ist vergleichbar mit SQL (Structured Query Language), die Datenbanksprache für relationale Datenbanken. Wie SQL bietet N1QL Befehle wie „Select“, „Insert“, „Delete“, „Update“ oder „Merge“. N1QL wird auch als SQL für Dokumente bezeichnet.

Vorteile von Couchbase

Couchbase und das dokumentenorientierte NoSQL-Datenbankmodell bieten eine Vielzahl an Vorteilen. Im Folgenden ein Überblick über einige dieser Vorteile:

  • hohe Flexibilität
  • gute Performance
  • gute Skalierbarkeit – horizontale Skalierbarkeit der Indices
  • bei einer Veränderung des Datenmodells muss kein Schema-Update erfolgen – es genügt die betroffenen Dokumente zu aktualisieren
  • Unterstützung des Betriebs auf Cluster-basierten, verteilten Umgebungen
  • optimale Unterstützung von Cloud-nativen Umgebungen
  • keine Abhängigkeit der Lese- oder Verarbeitungsleistung von der Anzahl der Attribute wie in relationalen Datenbanken
  • einfache Abfragen von JSON-Daten über N1QL-Anfragen mit hoher Abfrageperformance
  • Unterstützung der Migration von Anwendungen mit relationalen Datenbanken zu Couchbase
  • Unterstützung des Eventings für datengesteuerte Geschäftslogiken

(ID:46604986)

Über den Autor