© Excellent backgrounds/Shutterstock.com
Überblick und Zugriff mit Objectify

Cloud-Datenspeicher objektiv betrachtet


Wer nicht mit den drei Normalformen unter dem Kopfkissen schläft und in der Cloud nur ein großes Datenschutzproblem sieht, kann sich im Folgenden einen kleinen Überblick über den Google Cloud Datastore verschaffen, eine moderne NoSQL-Datenbank in der Cloud. Vor allem werden wir uns anschauen, wie man diesen ohne größere Schmerzen von Java aus anspricht. Dazu gibt es ein Low-Level-API von Google und ein modernes Mapping-Framework mit dem schönen Namen Objectify.

Neben diversen Möglichkeiten, Docker-Container in der Cloud zu hosten, bietet Google mit seiner Google App Engine bereits seit Anfang 2008 eine echte Platform-as-a-Service-(PasS-)Lösung an. App Engine macht es leicht, hoch skalierbare Anwendungen auf Basis der standardisierten Dienste der App-Engine-Plattform zu schreiben. Und da die meisten nicht trivialen Anwendungen irgendeine Form von persistenter Datenhaltung benötigen, bieten App Engine und die Google Cloud allgemein hier einige Möglichkeiten. Interessant sind zum einen Cloud SQL, das relationale MySQL- oder PostgreSQL-Datenbankinstanzen in der Cloud zur Verfügung stellt, und vor allem die dokumentenbasierte NoSQL-Datenbank Google Cloud Datastore [1].

Während Cloud SQL, wie der Name schon sagt, die altbekannten Tugenden relationaler Datenbanken bietet, also vor allem transaktionsbasiert arbeitet und so die Datenkonsistenz stets sicherstellt, müssen wir auch beim Cloud Datastore nicht völlig auf diese Eigenschaften verzichten, auch er bietet ACID-Transaktionen. Darüber hinaus wartet der Datastore mit den Vorteilen einer modernen NoSQL-Datenbank auf: Die Speicherung erfolgt schemalos und hoch skalierbar. Der Datastore repliziert die Daten innerhalb der Google-Infrastruktur automatisch und für den Benutzer völlig transparent. Die Daten werden in Dokumenten gespeichert, die als Entity bezeichnet werden. Dort werden die Daten typisiert in Schlüssel/Wert-Paaren, den Properties, abgelegt. Das Typensystem bietet dabei die üblichen Datentypen wie Integer und Text String, aber auch einige hoch spezialisierte Typen wie Rating für das Abspeichern von Kundenbewertungen oder Link für URLs.

Weiterhin wird eine Entity durch ihren Key identifiziert, der wiederum aus mehreren Komponenten besteht. Zunächst ist da das Kind der Entity: eine Art Typbezeichnung, z. B. Person. Dann besitzt der Key natürlich einen Identifier, der eine Entity innerhalb eines Kinds eindeutig identifiziert. Der Identifier kann entweder eine meist automatisch generierte numerische ID se...

Exklusives Abo-Special

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang