Ein Überblick über NoSQL

click fraud protection

Die Abkürzung NoSQL wurde 1998 geprägt. Viele Leute denken, dass NoSQL ein abfälliger Begriff ist, der geschaffen wurde, um in SQL herumzustochern. In Wirklichkeit bedeutet der Begriff nicht nur SQL. Die Idee ist, dass beide Technologien nebeneinander existieren können und jede ihren Platz hat. Die NoSQL-Bewegung war in den letzten Jahren in den Nachrichten, da viele der führenden Web 2.0-Unternehmen eine NoSQL-Technologie eingeführt haben. Unternehmen wie Facebook, Twitter, Digg, Amazon, LinkedIn und Google verwenden NoSQL auf die eine oder andere Weise. Lassen Sie uns NoSQL aufschlüsseln, damit Sie es Ihrem CIO oder sogar Ihren Mitarbeitern erklären können.

MySQL-Datenbank.

NoSQL entstand aus einem Bedarf

Datenspeicher: Die weltweit gespeicherten digitalen Daten werden in Exabyte gemessen. Ein Exabyte entspricht einer Milliarde Gigabyte (GB) an Daten. Entsprechend Internet.com, betrug die im Jahr 2006 hinzugefügte gespeicherte Datenmenge 161 Exabyte. Nur 4 Jahre später, im Jahr 2010, wird die gespeicherte Datenmenge fast 1.000 ExaByte betragen, was einer Steigerung von über 500% entspricht. Mit anderen Worten, es werden viele Daten auf der Welt gespeichert und sie werden weiter wachsen.

Verbundene Daten: Daten werden immer stärker vernetzt. Die Schaffung des Webs wird durch Hyperlinks gefördert, Blogs haben Pingbacks und jedes große soziale Netzwerksystem hat Tags, die Dinge miteinander verbinden. Große Systeme sind so gebaut, dass sie miteinander verbunden sind.

Komplexe Datenstruktur: NoSQL kann hierarchisch verschachtelte Datenstrukturen problemlos handhaben. Um dasselbe in SQL zu erreichen, benötigen Sie mehrere relationale Tabellen mit allen Arten von Schlüsseln. Darüber hinaus besteht ein Zusammenhang zwischen Performance und Datenkomplexität. Die Leistung eines herkömmlichen RDBMS kann sich verschlechtern, da wir die enormen Datenmengen speichern, die in Social-Networking-Anwendungen erforderlich sind, und die Semantisches Netz.

Was ist NoSQL?

Ich denke, eine Möglichkeit, NoSQL zu definieren, besteht darin, zu überlegen, was es nicht ist. Es ist nicht SQL und es ist nicht relational. Wie der Name schon sagt, ist es kein Ersatz für ein RDBMS, sondern ergänzt es. NoSQL wurde für verteilte Datenspeicher für sehr umfangreiche Datenanforderungen entwickelt. Denken Sie an Facebook mit seinen 500.000.000 Nutzern oder Twitter, das jeden Tag Terabit an Daten ansammelt.

In einer NoSQL-Datenbank gibt es kein festes Schema und keine Joins. Ein RDBMS "skaliert nach oben", indem es immer schnellere Hardware erhält und Speicher hinzufügt. NoSQL hingegen kann das "Scaling-Out" nutzen. Scale-out bezieht sich auf die Verteilung der Last auf viele Commodity-Systeme. Dies ist die Komponente von NoSQL, die es zu einer kostengünstigen Lösung für große Datenmengen macht.

NoSQL-Kategorien

Die aktuelle NoSQL-Welt gliedert sich in 4 grundlegende Kategorien.

  1. Schlüsselwertspeicher basieren in erster Linie auf Dynamo-Papier bei Amazon die 2007 geschrieben wurde. Die Hauptidee ist die Existenz einer Hash-Tabelle, in der es einen eindeutigen Schlüssel und einen Zeiger auf ein bestimmtes Datenelement gibt. Diese Zuordnungen werden normalerweise von Cache-Mechanismen begleitet, um die Leistung zu maximieren.
    1. Spalte Family Stores wurden geschaffen, um sehr große Datenmengen, die auf viele Maschinen verteilt sind, zu speichern und zu verarbeiten. Es gibt noch Schlüssel, aber sie zeigen auf mehrere Spalten. Im Fall von BigTable (Googles Column Family NoSQL-Modell) werden Zeilen durch einen Zeilenschlüssel identifiziert, wobei die Daten nach diesem Schlüssel sortiert und gespeichert werden. Die Spalten sind nach Spaltenfamilie angeordnet.
  2. Dokumentendatenbanken wurden inspiriert von Lotus Notes und ähneln Schlüsselwertspeichern. Das Modell besteht im Wesentlichen aus versionierten Dokumenten, die Sammlungen anderer Schlüsselwertsammlungen sind. Die halbstrukturierten Dokumente werden in Formaten wie JSON gespeichert.
  3. Graphdatenbanks bestehen aus Knoten, Beziehungen zwischen Notizen und den Eigenschaften von Knoten. Anstelle von Zeilen- und Spaltentabellen und der starren Struktur von SQL wird ein flexibles Graphenmodell verwendet, das sich über viele Maschinen hinweg skalieren lässt.

Wichtige NoSQL-Spieler

Die Hauptakteure von NoSQL sind in erster Linie aufgrund der Organisationen entstanden, die sie übernommen haben. Einige der größten NoSQL-Technologien umfassen:

  • Dynamo: Dynamo wurde von Amazon.com erstellt und ist die bekannteste Schlüsselwert-NoSQL-Datenbank. Amazon benötigte eine hoch skalierbare verteilte Plattform für sein E-Commerce-Geschäft und entwickelte Dynamo. Amazon S3 verwendet Dynamo als Speichermechanismus.
  • Kassandra:Kassandra wurde von Facebook als Open Source bereitgestellt und ist eine spaltenorientierte NoSQL-Datenbank.
  • Großer Tisch: BigTable ist die proprietäre spaltenorientierte Datenbank von Google. Google erlaubt die Verwendung von BigTable, jedoch nur für die Google App Engine.
  • SimpleDB: SimpleDB ist eine weitere Amazon-Datenbank. Wird für Amazon EC2 und S3 verwendet und ist Teil von Amazon Web Services, die Gebühren je nach Nutzung erhebt.
  • CouchDB:CouchDB zusammen mit MongoDB sind dokumentenorientierte Open-Source-NoSQL-Datenbanken.
  • Neo4J:Neo4j ist eine Open-Source-Graphdatenbank.

NoSQL abfragen

Die Frage, wie man eine NoSQL-Datenbank abfragt, interessiert die meisten Entwickler. Schließlich nützen Daten, die in einer riesigen Datenbank gespeichert sind, niemandem, wenn Sie sie nicht abrufen und Endbenutzern oder Webdiensten zeigen können. NoSQL-Datenbanken bieten keine deklarative Abfragesprache auf hoher Ebene wie SQL. Stattdessen ist die Abfrage dieser Datenbanken datenmodellspezifisch.

Viele der NoSQL-Plattformen ermöglichen RESTful-Schnittstellen zu den Daten. Andere Angebotsabfrage-APIs. Es wurden einige Abfragetools entwickelt, die versuchen, mehrere NoSQL-Datenbanken abzufragen. Diese Tools funktionieren normalerweise in einer einzigen NoSQL-Kategorie. Ein Beispiel ist SPARQL. SPARQL ist eine deklarative Abfragespezifikation für Graphdatenbanken. Hier ist ein Beispiel für eine SPARQL-Abfrage, die die URL eines bestimmten Bloggers abruft (mit freundlicher Genehmigung von IBM):

PREFIX-Schaum: 
SELECT ?URL
VON
WO {
?Mitwirkender Foaf: Name "Jon Foobar" .
?contributor foaf: Weblog ?url .
}

Zukunft von NoSQL

Unternehmen mit massivem Bedarf an Datenspeicherung prüfen NoSQL ernsthaft. Anscheinend findet das Konzept in kleineren Unternehmen nicht so viel Anklang. In einer von der Information Week durchgeführten Umfrage haben 44 % der IT-Experten in Unternehmen noch nie von NoSQL gehört. Darüber hinaus gaben nur 1 % der Befragten an, dass NoSQL ein Teil ihrer strategischen Ausrichtung ist. NoSQL hat eindeutig seinen Platz in unserer vernetzten Welt, muss sich jedoch weiterentwickeln, um die Massenanziehungskraft zu erlangen, von der viele glauben, dass sie es haben könnte.