Skip to main content

NoSQL-Datenbanken im Überblick

2017 Mercedes Benz C 220 d T-Modell (S205) - Fahrbericht, Probefahrt,Test, Review, Kaufberatung (Kann 2024)

2017 Mercedes Benz C 220 d T-Modell (S205) - Fahrbericht, Probefahrt,Test, Review, Kaufberatung (Kann 2024)
Anonim

Das Akronym NoSQL wurde 1998 geprägt. Viele Leute meinen, NoSQL sei ein abfälliger Begriff, der geschaffen wurde, um sich mit SQL zu beschäftigen. In der Realität 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-Experten eine NoSQL-Technologie eingeführt haben. Unternehmen wie Facebook, Twitter, Digg, Amazon, LinkedIn und Google nutzen NoSQL auf die eine oder andere Weise. Brechen Sie NoSQL auf, damit Sie es Ihrem CIO oder sogar Ihren Kollegen erklären können.

NoSQL entstand aus einer Notwendigkeit

Datenspeicher: Die weltweit gespeicherten digitalen Daten werden in Exabyte gemessen. Ein Exabyte entspricht einer Milliarde Gigabyte (GB) an Daten. Laut Internet.com betrug die Menge der gespeicherten Daten im Jahr 2006 161 Exabyte. Nur vier Jahre später, im Jahr 2010, werden fast 1.000 ExaBytes gespeichert, was einem Anstieg von über 500% entspricht. Mit anderen Worten, es gibt viele Daten, die in der Welt gespeichert werden, und es wird einfach weiter wachsen.

Vernetzte Daten: Daten werden immer mehr verbunden. Die Erstellung des Webs wurde durch Hyperlinks gefördert, Blogs haben Pingbacks und jedes wichtige soziale Netzwerksystem verfügt über Tags, die die Dinge miteinander verbinden. Hauptsysteme sind so gebaut, dass sie miteinander verbunden sind.

Komplexe Datenstruktur: NoSQL kann hierarchisch verschachtelte Datenstrukturen problemlos verarbeiten. Um das gleiche in SQL zu erreichen, benötigen Sie mehrere relationale Tabellen mit allen Arten von Schlüsseln. Darüber hinaus besteht ein Zusammenhang zwischen Leistung und Datenkomplexität. In herkömmlichen RDBMS-Systemen kann sich die Leistung verschlechtern, da wir die riesigen Datenmengen speichern, die in Social-Networking-Anwendungen und im Semantic Web erforderlich sind.

Was ist NoSQL?

Ich denke, eine Möglichkeit, NoSQL zu definieren, besteht darin, zu berücksichtigen, was es nicht ist. Es ist nicht SQL und es ist nicht relational. Wie der Name vermuten lässt, ist dies kein Ersatz für ein RDBMS, sondern ein Kompliment. NoSQL wurde für verteilte Datenspeicher für sehr große Datenanforderungen entwickelt. Denken Sie an Facebook mit seinen 500.000.000 Nutzern oder Twitter, die täglich Terabits an Daten sammeln.

In einer NoSQL-Datenbank gibt es kein festes Schema und keine Verknüpfungen. Ein RDBMS "skaliert" durch schnellere und schnellere Hardware und das Hinzufügen von Speicher. Auf der anderen Seite kann NoSQL die "Skalierung" nutzen. Skalieren bezieht sich auf das Verteilen der Last auf viele Rohstoffsysteme. Dies ist die Komponente von NoSQL, die es zu einer kostengünstigen Lösung für große Datensätze macht.

NoSQL-Kategorien

Die derzeitige NoSQL-Welt passt in 4 grundlegende Kategorien.

  1. Schlüsselwerte speichert basieren hauptsächlich auf Amazons Dynamo Paper, das 2007 geschrieben wurde. Die Hauptidee ist das Vorhandensein einer Hash-Tabelle, bei 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 Familiengeschäfte wurden erstellt, um sehr große Datenmengen zu speichern und zu verarbeiten, die auf vielen Maschinen verteilt sind. Es gibt immer noch Schlüssel, aber sie zeigen auf mehrere Spalten. Im Falle von BigTable (NoSQL-Modell von Google Column Family) werden Zeilen durch einen Zeilenschlüssel identifiziert, wobei die Daten mit diesem Schlüssel sortiert und gespeichert werden. Die Spalten sind nach Spaltenfamilien angeordnet.
  2. Dokumentendatenbanks wurden von Lotus Notes inspiriert und ähneln den Speichern von Schlüsselwerten. Bei dem Modell handelt es sich im Wesentlichen um versionierte Dokumente, die Sammlungen anderer Schlüsselwertsammlungen sind. Die halbstrukturierten Dokumente werden in Formaten wie JSON gespeichert.
  3. Graph-Datenbanks bestehen aus Knoten, Beziehungen zwischen Notizen und den Eigenschaften von Knoten. Anstelle von Tabellen mit Zeilen und Spalten und der starren Struktur von SQL wird ein flexibles Diagrammmodell verwendet, das auf viele Maschinen skaliert werden kann.

Major NoSQL-Spieler

Die Hauptakteure in NoSQL sind vor allem auf die Organisationen zurückzuführen, die sie übernommen haben. Zu den größten NoSQL-Technologien gehören:

  • Dynamo: Dynamo wurde von Amazon.com erstellt und ist die bekannteste Key-Value NoSQL-Datenbank. Amazon benötigte eine hochskalierbare verteilte Plattform für ihre E-Commerce-Geschäfte und entwickelte daher Dynamo. Amazon S3 verwendet Dynamo als Speichermechanismus.
  • Kassandra: Cassandra wurde von Facebook als Quelle 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. Für Amazon EC2 und S3 verwendet, ist es Teil von Amazon Web Services, dass Gebühren je nach Nutzung anfallen.
  • CouchDB: CouchDB ist zusammen mit MongoDB eine Open Source-Dokument-orientierte NoSQL-Datenbank.
  • Neo4J: Neo4j ist eine Open-Source-Graphdatenbank.

NoSQL abfragen

Die Frage, wie eine NoSQL-Datenbank abgefragt werden kann, ist für die meisten Entwickler von Interesse. Schließlich sind Daten, die in einer riesigen Datenbank gespeichert sind, niemandem etwas nützt, wenn Sie sie nicht abrufen und Endbenutzern oder Web-Services zeigen können. NoSQL-Datenbanken bieten keine deklarative Abfragesprache auf hoher Ebene wie SQL. Stattdessen ist das Abfragen dieser Datenbanken datenmodellspezifisch.

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

PREFIX-Foaf: SELECT? UrlVON WOHER {Mitwirkender foaf: Name "Jon Foobar".foaf: weblog? url.}

Zukunft von NoSQL

Unternehmen, die große Anforderungen an die Datenspeicherung stellen, betrachten NoSQL ernsthaft. Anscheinend findet das Konzept in kleineren Organisationen nicht so viel Anklang. In einer von der Information Week durchgeführten Umfrage haben 44% der Business-IT-Experten nichts von NoSQL gehört. Darüber hinaus gaben nur 1% der Befragten an, NoSQL sei Teil ihrer strategischen Ausrichtung. Natürlich hat NoSQL seinen Platz in unserer vernetzten Welt, muss aber weiterentwickelt werden, um die Massenanklang zu finden, von denen viele glauben, dass sie es haben könnten.