Schlüsselwertdatenbanken entmystifiziert – DATAVERSITY

Schlüsselwertdatenbanken entmystifiziert – DATAVERSITY

Quellknoten: 2943225
SchlüsselwertdatenbankenSchlüsselwertdatenbanken

1966 wurde ein DEC PDP-7-Computer ohne jegliche Programmierung an das Massachusetts General Hospital geliefert. Das Krankenhaus hatte in einen Computer investiert, hatte aber keine Möglichkeit, diesen zu betreiben. Zu dieser Zeit gab es kaum Softwareoptionen, Betriebssysteme oder Datenbankunterstützung. Das Krankenhaus hatte jedoch Zugang zum Massachusetts Institute of Technology (MIT), das sich direkt auf der anderen Flussseite befand. Das MIT-Team begann bei Null und entwarf dann „MUMPS” (Massachusetts Utility Multi-Programming System) als Mehrbenutzer-Betriebssystem, Datenbank und Sprache in einem. MUMPS nutzte einen Schlüsselwertspeicher und mehrere andere Funktionen, die später in NoSQL-Datenspeicher integriert wurden. Die Verwendung und der Fokus von Schlüsselwertstrukturen entwickelten sich nach und nach zu einfachen NoSQL-Schlüsselwertdatenbanken.

Dieser Datenbanktyp speichert Daten als Gruppe von Schlüssel-Wert-Paaren, die aus zwei verknüpften Datenelementen bestehen. Die Verbindung zwischen den Elementen besteht aus einem „Schlüssel“ (z. B. „Dateiname“), der als Identifikator für ein Element in den Daten fungiert, und dem „Wert“, also den identifizierten Daten (oder Inhalten).

Schlüsselwertdatenbanken gelten oft als die einfachsten NoSQL-Datenbanken. Diese Einfachheit macht Schlüsselwertspeicher und Datenbanken schnell, benutzerfreundlich, portabel, skalierbar und flexibel. Allerdings waren die ursprünglichen Schlüsselwertsysteme nicht dafür konzipiert, Forschern die Filterung oder Kontrolle der von einer Anfrage zurückgegebenen Daten zu ermöglichen – sie enthielten keine Suchmaschine. Das ändert sich, wenn Menschen ihre Schlüsselwertdatenbanken ändern.

Redis stellte seine Schlüsselwertdatenbank vor im Jahr 2009 angegeben:

„Die ursprüngliche Absicht von Redis (oder einem anderen Schlüsselwertspeicher) bestand darin, für jedes einzelne Datenelement einen bestimmten Schlüssel oder Identifikator zu haben. Redis erweiterte dieses Konzept schnell um Datentypen, bei denen ein einzelner Schlüssel auf mehrere (sogar Millionen) Datenelemente verweisen konnte. Als Module in das Ökosystem kamen, wurde die Idee eines Schlüssels noch weiter ausgeweitet, da ein einzelnes Datenelement nun mehrere Schlüssel umfassen konnte (zum Beispiel für einen RediSearch-Index). Wenn wir also gefragt werden, ob Redis ein Schlüsselwertspeicher ist, antworten wir normalerweise mit „Es stammt von der Schlüsselwertreihe von Datenbanken ab“. Beachten Sie jedoch, dass es zum jetzigen Zeitpunkt schwierig ist, Redis allein als Schlüsselwertspeicher zu rechtfertigen. ”

Obwohl viele NoSQL-Datenbanken weiterhin Schlüsselwertspeicher enthalten, können Schlüssel auch in relationalen Datenbanken verwendet werden. Der für relationale Tabellen verwendete Primärschlüssel identifiziert jeden Datensatz innerhalb der Tabelle eindeutig. Einige Schlüssel können verwendet werden, um in einer Tabelle gespeicherte Daten mit den Daten in anderen Tabellen zu verbinden (oder zu verknüpfen). Das Speichern eines Primärschlüssels für eine Zeile in einer anderen Tabelle wird als Fremdschlüssel bezeichnet. Es gibt Primärschlüssel und Fremdschlüssel Fehler, die vermieden werden sollten

Wie Schlüsselwertdatenbanken funktionieren

Schlüsselwertdatenbanken legen kein bestimmtes Schema fest. Herkömmliche relationale Datenbanken definieren ihre Strukturen innerhalb der Datenbank vorab, indem sie Tabellen verwenden, die Felder mit genau definierten Datentypen enthalten. Schlüsselwertsysteme hingegen behandeln Daten als eine einzelne Sammlung, wobei der Schlüssel eine beliebige Zeichenfolge darstellt – beispielsweise einen Dateinamen, einen Hash oder einen URI (Uniform Resource Identifier). Schlüsselwertspeicher verbrauchen im Allgemeinen viel weniger Speicher, während sie die gleiche Datenmenge speichern und speichern, was wiederum die Leistung für bestimmte Arten von Arbeitslasten erhöht.

„Reine“ Schlüsselwertdatenbanken verwenden keine Abfragesprache, bieten jedoch eine Möglichkeit, Daten mithilfe sehr einfacher Befehle abzurufen, zu speichern und zu löschen bekommen, setzen, und löschen. (Modifizierte Schlüsselwertdatenbanken können Volltextsuchen umfassen.) Das Abrufen von Daten erfordert eine direkte Anforderungsmethode für die Kommunikation mit der Datendatei. Es gibt weder eine Suche noch eine Suchmaschine. Wenn der Schlüssel nicht bekannt ist, gibt es keine Möglichkeit, ihn zu finden.

Verwendungsmöglichkeiten von Schlüsselwertdatenbanken

Während relationale Datenbanken Obwohl sie Zahlungstransaktionen recht gut abwickeln, fällt es ihnen schwer, große Mengen gleichzeitiger Transaktionen zu bewältigen. NoSQL-Schlüsselwertdatenbanken können jedoch je nach Bedarf skaliert werden und extrem hohe Datenverkehrsvolumina pro Sekunde verarbeiten und so Tausende gleichzeitiger Benutzer bedienen.

Schlüsselwert-NoSQL-Datenbanken verfügen über integrierte Redundanz, sodass sie verlorene Speicherknoten problemlos verarbeiten können. (Gelegentlich gehen beispielsweise in einem „Warenkorb“ Artikel verloren.) Schlüsselwertspeicher verarbeiten große Datenmengen und einen konsistenten Fluss von Lese-/Schreibvorgängen für:

  • Sitzungsverwaltung: Bietet Benutzern die Möglichkeit, Sitzungen zu speichern und wiederherzustellen.
  • Benutzereinstellungen und Profilspeicher: Persönliche Daten zu bestimmten Benutzern.
  • Produktempfehlungen: Maßgeschneiderte Artikel, an denen ein Kunde interessiert sein könnte.
  • Gutscheine, personalisierte Anzeigen: Angepasst und in Echtzeit von Kunden eingesehen.
  • Fungiert als Cache für regelmäßig angezeigte Daten, die selten aktualisiert werden.

Schlüsselwertdatenbanken werden häufig zur Sitzungsverwaltung in Webanwendungen verwendet. Sie sind gut darin, die Sitzungsinformationen für alle neuen Benutzer-Apps auf Smartphones und anderen Geräten zu verwalten.

Schlüsselwertdatenbanken können auch für Online-Spiele mit mehreren Spielern verwendet werden, wobei die Sitzung jedes Spielers verwaltet wird.

Sie
sind sehr gut darin, Einkaufswagen für Online-Käufer zu verwalten – bis zur Zahlung.
Zahlungsvorgänge und eventuelle Umsatzbuchungen funktionieren besser mit einem relationalen System
Datenbank.

Als eine der einfachsten NoSQL-Datenbanken können Schlüsselwertdatenbanken für Zwecke der Big-Data-Recherche problemlos skaliert werden und gleichzeitig mehrere Benutzer bedienen.

Unternehmen, die Produkte über das Internet verkaufen, haben oft mit den unterschiedlichen Einkaufsmengen in der Vorweihnachtszeit und im Rest des Jahres zu kämpfen. Es geht darum, für eine Infrastruktur zu bezahlen, die für die Einkaufsspitze zu Weihnachten ausgelegt ist (und diese Infrastruktur für den Rest des Jahres zu bezahlen) oder das Risiko einzugehen, den Weihnachtsansturm nicht bewältigen zu können (und mehrere Stunden lang einzubrechen). Unter der Annahme, dass eine relationale Datenbank das ganze Jahr über normale Dienste abwickelt, ist die Anmietung einer Cloud-Service mit einer Schlüsselwertdatenbank für den Weihnachtsansturm bietet eine effiziente, relativ kostengünstige Lösung.

Auswahl der richtigen Datenbank für Ihr Unternehmen

Verschiedene Schlüsselwertdatenbanken verwenden unterschiedliche Techniken zur Verbesserung des grundlegenden Schlüsselwertmodells. Einige speichern alle ihre Daten in RAM, während andere mit einer Kombination davon arbeiten SSDs (Solid-State-Laufwerke) und RAM. Wieder andere kombinieren die Unterstützung für rotierende Festplatten und RAM.

Diese Datenbanken wurden entwickelt, um auf die neuen Anwendungen zu reagieren, die für Smartphones und andere Geräte verfügbar sind. Unternehmen sollten vermeiden, alle ihre relationalen Datenbanken durch NoSQL zu ersetzen, insbesondere für Finanzanwendungen. Nachfolgend sind einige beliebte Schlüsselwertdatenbanken aufgeführt:

  • Aerospike: Eine Open-Source-NoSQL-Datenbank mit einem Flash-optimierten In-Memory.
  • Apache Kassandra: Ein verteiltes, kostenloses, Open-Source-NoSQL-Datenbankverwaltungssystem mit großem Spaltenspeicher.
  • Amazon Dynamo-DB: Ein vollständig verwalteter proprietärer NoSQL-Datenbankdienst, der von Amazon angeboten wird.
  • Berkeley DB: Eine einfache, leistungsstarke, eingebettete Open-Source-Datenbankspeicherbibliothek.
  • Couchbase: Entwickelt für geschäftskritische Anwendungen, bietet es Volltextsuchen, SQL-basierte Abfragen und Analysen.
  • Memcached: Beschleunigt Websites durch Zwischenspeichern von Daten und Objekten im RAM, um die Häufigkeit zu reduzieren, mit der eine externe Datenquelle gelesen werden muss. Kostenlos und Open-Source.
  • Riak: Schnell, flexibel und skalierbar, eignet es sich gut für die Entwicklung von Anwendungen und die Arbeit mit anderen Datenbanken und Anwendungen.
  • Redis: Eine Datenbank, ein Nachrichtenbroker und ein Speichercache. Es unterstützt Hashes, Strings, Listen, Bitmaps und HyperLogLog.

Im Allgemeinen ist das Geheimnis
zu Schlüsselwertdatenbanken liegt in ihrer Einfachheit und der daraus resultierenden Geschwindigkeit
wird verfügbar. Das Abrufen von Daten erfordert eine direkte Anfrage (Schlüssel) für die
Objekt im Speicher (Wert), und es gibt keine Abfragesprache. Die Daten können sein
auf verteilten Systemen gespeichert, ohne sich Gedanken darüber machen zu müssen, wo sich die Indizes befinden,
das Datenvolumen oder Netzwerkverlangsamungen. Einige Schlüsselwertdatenbanken verwenden Flash
Speicher und sekundäre Indizes, um die Grenzen der Schlüsselwerttechnologie zu erweitern.

Eine Schlüsselwertdatenbank ist beides
einfach zu bauen und zu skalieren. Es bietet typischerweise eine hervorragende Leistung und kann
optimiert werden, um den Anforderungen einer Organisation gerecht zu werden. Wenn es sich um eine Schlüsselwertdatenbank handelt
Wenn das System durch neue Anwendungen geändert wird, besteht eine erhöhte Wahrscheinlichkeit, dass dies der Fall ist
langsamer arbeiten.

Bild verwendet unter Lizenz von Shutterstock.com

Zeitstempel:

Mehr von DATENVERSITÄT