Eine Key-value Datenbank ist eine nicht-relationale NoSQL-Storage-Strategie, bei der Datensätze als eine Reihe von Schlüsseln (die Kennung) und Werten (der Wert für die Kennung) gespeichert werden. Schlüssel-Wert-Paare können eine einfache Zahl oder Zeichenfolge sein oder ein Wert kann ein Objekt wie ein Bild oder Geodaten sein. Großvolumige Anwendungen, die schnelle Antworten erfordern, profitieren von wichtigen Datenbanken.
Was sind Key-Value Stores?
Relationale Datenbanken speichern Daten in Tabellen, aber eine Schlüsselwertbeziehung besteht aus einer Reihe von Schlüsseln und Werten. Der Schlüssel ist die eindeutige Kennung, mit der die Datenbank nach dem richtigen Wert abgefragt wird. Beispielsweise könnte der Preis für ein Produkt mit „Preis“ als Schlüssel und „12,00“ als Wert gespeichert werden. Einige Anwendungen verwenden Schlüsselwertspeicher für Metadaten, die dann verwendet werden können, um zusätzliche Informationen in größeren relationalen oder anderen nicht relationalen Datenbanken abzufragen.
Durch das Speichern einer Reihe von Schlüsselwertpaaren werden Abfragen schneller, sodass Anwendungen, die schnelle Antworten benötigen und Millionen von Benutzern unterstützen, von der Verwendung einer Schlüsselwertdatenbank profitieren können. Key-Value-Storage ist auch vorteilhaft, wenn Unternehmen einfache Metadaten speichern müssen, um sie mit zusätzlichen größeren Datensilos zu verknüpfen. Einige Unternehmen verwenden Schlüsselwertpaare für einfache Datensätze, bei denen Millionen von Anfragen in die Datenbank gelangen, aber nur wenige Werte pro Abfrage zurückgegeben werden müssen.
Wichtige Stores in Aktion
Anwendungen, die nach kleinen Datensätzen abfragen, können von der Geschwindigkeit eines Key-Value-Stores profitieren. Angenommen, Sie haben einen Social-Media-Feed, der von Millionen von Benutzern verwendet wird. Benutzer aktualisieren ihren Feed ständig, und die Anwendung zeigt die fünf wichtigsten Threads aus ihrem Feed an. Ein Schlüsselwertpaar mit dem neuesten Beitrag und dem Link zum Beitrag könnte gespeichert werden.
Echtzeit-Anwendungen profitieren auch von wichtigen Stores in Aktion. Da Key-Value-Stores Daten schnell zurückgeben, verwenden sie Anwendungen mit Tickern oder Sekunden-Updates. Ein Aktien-Ticker, der beispielsweise den neuesten Wert eines bestimmten Aktien anzeigt, erfordert jede Sekunde Anzeigeaktualisierungen. Für diese Abfragen kann eine Schlüsselwertdatenbank verwendet werden.
Beispiele für wichtige Datenbanken
Wichtige Stores im Vergleich zu relationalen Datenbanken
Herkömmliche relationale Datenbanken haben ihren Zweck in herkömmlichen Anwendungen noch immer. Eine relationale Datenbank speichert Werte in einer tabellenähnlichen Strategie. Ein einzelner Datensatz hat mehrere Spalten, und jeder Spalte ist ein Wert zugewiesen. Entwickler weisen jedem Datensatz eine eindeutige Kennung zu, sodass Informationen mit dem richtigen Datensatz verknüpft werden können. Beispielsweise verknüpft eine eindeutige Kundenkennung den Namen und die Adresse des Kunden. Name und Adresse in diesem Beispiel sind zwei Spalten, und die Informationen des Kunden, einschließlich der eindeutigen Kennung, des Namens und der Adresse, sind ein einzelner Datensatz.
Schlüsselwert-Stores verknüpfen einen einzelnen eindeutigen Kennungsschlüssel mit einem Wert. Der Wert kann mehr als eine einfache Zahl oder Zeichenfolge sein. Schlüsselwert-Stores können ein Objekt einer einzigen Schlüsselkennung zuweisen, sodass Entwickler nicht auf Basisdaten beschränkt sind. Eine Kombination von Schlüsseln kann auch zum Abrufen bestimmter Daten verwendet werden.
Auswahl des richtigen Key-Value-Stores
Anwendungen, die Key-Value-Stores verwenden, benötigen schnelle Antworten. Suchen Sie also nach einer Datenbank, die In-Memory-Caching bietet. Häufig verwendete Daten können im Speicher zwischengespeichert werden, was bedeutet, dass die Datenbank-Engine keine Daten auf einer Festplatte durchsuchen, abrufen und dann an die anfordernde Anwendung übertragen muss. Da Key-Value-Stores kontinuierliche schnelle Lese- und Schreibaktionen durchführen, ist Caching für die Performance optimal.
Große Daten-Storage-Anforderungen können von der Datenpartitionierung und -verteilung profitieren. Mit der horizontalen Verteilung können Administratoren die Performance verbessern, indem sie Knoten zum Datenbankcluster hinzufügen. Es sind mehrere Partitionierungsstrategien verfügbar, darunter Hashing und Sharding. Wählen Sie eine Strategie, die Ihren Infrastruktur- und Administratorpräferenzen entspricht.
Best Practices für die Implementierung von Key-Value Stores
Unabhängig davon, ob Sie sich entscheiden, einen wichtigen Store lokal oder in der Cloud zu implementieren, sollten Sie einige Best Practices befolgen, um die Performance zu erhalten. Möglicherweise bemerken Sie zunächst keine Performance-Probleme, aber sie stellen sich oft nach dem Wachstum der Datenbank und der Anzahl der Anwendungsbenutzer dar. Einige Best Practices:
Verwenden Sie zusammengesetzte Primärschlüssel, um unterschiedliche Abfragen zu optimieren.
Verwenden Sie einen Sortierschlüssel für bereichsbezogene Abfragen.
Verwenden Sie einen Sharding-Schlüssel für verteilten Storage.
In den obigen Beispielen sind Best Practices für die Performance erforderlich. Performance ist für eine wichtige Datenbank von entscheidender Bedeutung, damit sie Echtzeitanwendungen unterstützen kann. Caching-Daten verbessern auch die Performance. Wählen Sie also eine Datenbank-Engine, die sie unterstützt.
Fazit
Wenn Sie eine Anwendung mit hohem Volumen haben, die Daten anfordert, die als Schlüsselwertpaar gespeichert werden können, ist ein Schlüsselwert-Store möglicherweise die beste Wahl. Geschwindigkeit ist ein entscheidender Faktor in diesen Datenbanken. Wählen Sie also einen aus, der Daten im Speicher speichert und eine verteilte Hashing- oder Sharding-Methode bietet. Sie können mit lokalen oder Cloud-Datenbanken arbeiten, aber wenn Sie nach einer Lösung suchen, bietet Pure Storage Storage Storage-Lösungen, die zu Ihrem Unternehmen passen.