Inhaltsverzeichnis:
- Weniger Bedarf an ETL
- Unterstützung für unstrukturierten Text
- Fähigkeit, Änderungen im Laufe der Zeit zu handhaben
- Keine Abhängigkeit von SQL Magic
- Fähigkeit zur horizontalen Skalierung auf handelsüblicher Hardware
- Breite der Funktionalität
- Unterstützung für mehrere Datenstrukturen
- Herstellerwahl
- Kein Legacy-Code
- Ausführen von Code neben den Daten
Video: Martin Klier - Oracle Database: Standard Edition versus Enterprise Edition 2024
NoSQL-Datenbanken sind kein direkter Ersatz für ein relationales Datenbankverwaltungssystem (RDBMS). Für viele Datenprobleme ist NoSQL jedoch besser geeignet als ein RDBMS.
Weniger Bedarf an ETL
NoSQL-Datenbanken unterstützen das Speichern von Daten "wie sie sind. "Schlüsselwertspeicher geben Ihnen die Möglichkeit, einfache Datenstrukturen zu speichern, wohingegen Dokument-NoSQL-Datenbanken Ihnen die Möglichkeit bieten, eine Reihe von flachen oder verschachtelten Strukturen zu verarbeiten.
Die meisten Daten, die zwischen Systemen fliegen, tun dies als Nachricht. Üblicherweise verwenden die Daten eines der folgenden Formate:
-
Ein binäres Objekt, das durch eine Reihe von Layern geleitet wird
-
Ein XML-Dokument
-
Ein JSON-Dokument
Diese Formate nativ in einem Bereich von NoSQL-Datenbanken verringern die Menge an Code, die Sie vom Quelldatenformat in das Format konvertieren müssen, das gespeichert werden muss. Dies wird als extrahiert, transformiert und geladen (ETL).
Mit diesem Ansatz verringern Sie den Code, der für den Start einer NoSQL-Datenbank erforderlich ist. Darüber hinaus werden die laufenden Wartungskosten erheblich gesenkt, da Sie nicht für Aktualisierungen dieses "Sanitär" -Codes zahlen müssen.
Unterstützung für unstrukturierten Text
Die überwiegende Mehrheit der Daten in Unternehmenssystemen ist unstrukturiert. Viele NoSQL-Datenbanken können die Indizierung von unstrukturiertem Text entweder als systemeigenes Feature (MarkLogic Server) oder als integrierten Satz von Services wie Solr oder Elasticsearch verarbeiten.
Die Fähigkeit, unstrukturierten Text zu verwalten, erhöht die Informationen erheblich und kann Unternehmen dabei unterstützen, bessere Entscheidungen zu treffen. Zu den erweiterten Anwendungen gehören z. B. die Unterstützung mehrerer Sprachen mit facettierter Suche, Snippet-Funktionalität und Unterstützung von Wortstämmen. Zu den erweiterten Funktionen gehört auch die Unterstützung von Wörterbüchern und Thesauri.
Darüber hinaus können Sie mithilfe von Suchalarmaktionen bei der Dateneingabe benannte Entitäten aus Verzeichnissen extrahieren, z. B. Personen, Orte und Organisationen, sodass Textdaten besser kategorisiert, markiert und durchsucht werden können.
Entitätsanreicherungsdienste wie SmartLogic, OpenCalais, NetOwl und TEMIS Luxid, die extrahierte Informationen mit anderen Informationen kombinieren, bieten ein reichhaltiges Interleaved-Informationsnetz und verbessern die effiziente Analyse und Verwendung.
Fähigkeit, Änderungen im Laufe der Zeit zu handhaben
Aufgrund der schema-agnostischen Natur von NoSQL-Datenbanken sind sie sehr gut in der Lage, Änderungen zu verwalten - Sie müssen ETL-Routinen nicht neu schreiben, wenn sich die XML-Nachrichtenstruktur zwischen Systemen ändert.
Einige NoSQL-Datenbanken gehen noch einen Schritt weiter und bieten einen universellen Index für die Struktur, die Werte und den Text in den Informationen.Microsoft DocumentDB und MarkLogic Server bieten diese Funktion.
Wenn sich eine Dokumentstruktur ändert, ermöglichen es diese Indizes den Organisationen, die Informationen sofort zu verwenden, anstatt mehrere Monate warten zu müssen, bevor sie Systeme testen und neu schreiben können.
Keine Abhängigkeit von SQL Magic
Structured Query Language (SQL) ist die vorherrschende Sprache, die zum Abfragen relationaler Datenbankverwaltungssysteme verwendet wird. In der Lage zu sein, Anfragen so zu strukturieren, dass sie gut funktionieren, ist im Laufe der Jahre zu einer heiklen Kunst geworden. Komplexe Mehrfachverbindungen sind nicht einfach aus dem Speicher zu schreiben.
Obwohl mehrere NoSQL-Datenbanken den SQL-Zugriff unterstützen, erfolgt dies aus Kompatibilitätsgründen mit bestehenden Anwendungen wie BI-Tools (Business Intelligence). NoSQL-Datenbanken unterstützen ihre eigenen Zugriffssprachen, die die gespeicherten Daten interpretieren können, anstatt ein relationales Modell in der zugrunde liegenden Datenbank zu benötigen.
Diese eher entwicklerorientierte Mentalität beim Design von Datenbanken und deren APIs (Access Application Programming Interfaces) sind der Grund dafür, dass NoSQL-Datenbanken unter Anwendungsentwicklern sehr beliebt sind.
Anwendungsentwickler müssen die inneren Abläufe und Launen von Datenbanken nicht kennen, bevor sie sie verwenden. NoSQL-Datenbanken ermöglichen Entwicklern, an den Anforderungen in den Anwendungen zu arbeiten, anstatt zu versuchen, relationale Datenbanken dazu zu zwingen, das zu tun, was erforderlich ist.
Fähigkeit zur horizontalen Skalierung auf handelsüblicher Hardware
NoSQL-Datenbanken übernehmen die Partitionierung ( Sharding ) einer Datenbank auf mehrere Server. Wenn Ihre Datenspeicheranforderungen zu stark ansteigen, können Sie weiterhin kostengünstige Server hinzufügen und diese mit Ihrem Datenbankcluster verbinden ( horizontale Skalierung ), sodass sie als ein einziger Datendienst funktionieren.
Vergleichen Sie dies mit der relationalen Datenbankwelt, in der Sie neue, leistungsfähigere und damit teurere Hardware zum Skalieren kaufen müssen ( vertikale Skalierung ). Wenn Sie die Menge an Daten, die Sie speichern, verdoppeln würden, würden Sie die Kosten für die Hardware, die Sie benötigen, leicht vervierfachen.
Die Bereitstellung von Langlebigkeit und Hochverfügbarkeit einer NoSQL-Datenbank durch die Verwendung von kostengünstiger Hardware und Speicher ist eines der großen Vorzüge von NoSQL. Dies zu tun und gleichzeitig eine großzügige Skalierbarkeit für viele Anwendungen zu bieten, schadet auch nicht!
Breite der Funktionalität
Die meisten relationalen Datenbanken unterstützen die gleichen Funktionen, aber auf eine etwas andere Weise, so dass sie alle ähnlich sind.
NoSQL-Datenbanken sind dagegen in vier Kerntypen erhältlich: Schlüsselwert-, Spalten-, Dokument- und Dreifachspeicher. Innerhalb dieser Typen können Sie eine Datenbank finden, die Ihren speziellen (und besonderen!) Bedürfnissen entspricht. Bei so viel Auswahl finden Sie bestimmt eine NoSQL-Datenbank, die Ihre Anwendungsprobleme löst.
Unterstützung für mehrere Datenstrukturen
Viele Anwendungen benötigen eine einfache Objektspeicherung, während andere sehr komplexe und zusammenhängende Strukturspeicher benötigen. NoSQL-Datenbanken unterstützen eine Reihe von Datenstrukturen.
-
Einfache Binärwerte, Listen, Maps und Strings können in Schlüsselwert-Speichern mit hoher Geschwindigkeit verarbeitet werden.
-
Zugehörige Informationen können in Bigtable-Klonen in Spaltenfamilien gruppiert werden.
-
Sehr komplexe hierarchische Strukturen zwischen übergeordneten und untergeordneten Elementen können in Dokumentdatenbanken verwaltet werden.
-
Ein Netz von zusammenhängenden Informationen kann flexibel beschrieben und in Dreifach- und Graph-Speichern verwandt werden.
Herstellerwahl
Die NoSQL-Branche ist voller Datenbanken, obwohl es viele seit weniger als zehn Jahren gibt. Zum Beispiel haben IBM, Microsoft und Oracle erst kürzlich ihre Zehen in diesen Markt getaucht. Folglich richten sich viele Anbieter mit ihrem eigenen Innovationsbündel an ein bestimmtes Publikum.
Open-] Quellvarianten sind für die meisten NoSQL-Datenbanken verfügbar, was es Unternehmen ermöglicht, NoSQL-Datenbanken mit minimalem Risiko zu untersuchen und zu starten. Diese Unternehmen können dann ihre neuen Methoden mithilfe von Unternehmensangeboten auf eine Produktionsplattform übertragen.
Kein Legacy-Code
Da sie so neu sind, haben NoSQL-Datenbanken keinen Legacy-Code, was bedeutet, dass sie keine Unterstützung für alte Hardwareplattformen bieten müssen oder fremde und selten verwendete Funktionen aktualisiert werden müssen.
NoSQL-Datenbanken haben ein schnelles Tempo in Bezug auf Entwicklung und Reifung. Neue Funktionen werden ständig veröffentlicht, und neue und vorhandene Funktionen werden häufig aktualisiert (daher müssen NoSQL-Anbieter keine sehr große Codebasis pflegen). In der Tat treten neue Major-Releases jährlich auf, nicht alle drei bis fünf Jahre.
Ausführen von Code neben den Daten
NoSQL-Datenbanken wurden im Zeitalter von Hadoop erstellt. Das hochverteilte Dateisystem (HDFS) und die Stapelverarbeitungsumgebung (Map / Reduce) von Hadoop signalisierten Änderungen in der Art und Weise, wie Daten gespeichert, abgefragt und verarbeitet werden.
Abfragen und Verarbeitungen werden jetzt an mehrere Server weitergeleitet, wodurch ein hohes Maß an Parallelisierung für die Aufnahme und Abfrage von Workloads erreicht wird. Die Möglichkeit, Aggregationen neben den Daten zu berechnen, ist ebenfalls zur Norm geworden.
Sie benötigen kein separates Data-Warehouse-System mehr, das über Nacht aktualisiert wird. Bei schnellen Aggregationen und Abfrageverarbeitung wird die Analyse zur Ausführung an die Datenbank übergeben, was bedeutet, dass Sie nicht viele Daten über ein Netzwerk versenden müssen, um lokal kombinierte Analysen zu erhalten.