Inhaltsverzeichnis:
- SQL muss nicht geschrieben werden
- Müssen Sie nicht Monate damit verbringen, das Schema
- Weniger Datentransformationscode (ETL)
- Einfachere Verwaltung des Codes
- Code in der Nähe der Daten für die beste Leistung ausführen
- Viele Open-Source-Optionen
- Einfach zu skalieren
- Eventual Consistency Data Model
- Esoterische Sprachunterstützung
- JavaScript Ende-zu-Ende
Video: Azure Friday | Serverless Apps with Azure Cosmos DB and Azure Functions 2024
Die Beliebtheit von NoSQL-Datenbanken beruht auf der großen Anzahl von Entwicklern, die sich für die Verwendung dieser Datenbanken begeistern. Entwickler sehen NoSQL als eine ermöglichende und befreiende Technologie. Im Gegensatz zum traditionellen relationalen Ansatz bietet NoSQL Ihnen die Möglichkeit, mit Daten zu arbeiten, die näher an der Anwendung liegen als das relationale Datenmodell.
Entwickler verwenden NoSQL-Technologien aus vielen Gründen, von denen einige hier hervorgehoben sind:
SQL muss nicht geschrieben werden
Strukturierte Abfragesprache (SQL) zu schreiben - und es gut zu machen - ist der Fluch der Existenz vieler Unternehmensentwickler. Der Grund dafür ist, dass das Schreiben sehr komplexer Abfragen mit mehreren Verknüpfungen in verwandten Tabellen nicht einfach ist. Darüber hinaus ist die Aufrechterhaltung komplexer Abfragecodes an und für sich angesichts der regelmäßigen Datenbankänderungen im Laufe der Zeit eine Aufgabe.
Enterprise-Entwickler haben eine Reihe von Möglichkeiten entwickelt, um das Schreiben von SQL zu vermeiden. Einer der beliebtesten Wege ist die Verwendung der Object-Relational Mapping (ORM) Bibliothek, Hibernate. Hibernate verwendet eine Konfigurationsdatei und ein oder mehrere Objekte und abstrahiert das unangenehme SQL, sodass Entwickler es nicht verwenden müssen. Das kostet natürlich Leistung und löst nicht alle Abfrage-Anwendungsfälle. Manchmal muss man auf SQL zurückgreifen.
NoSQL-Datenbanken stellen ihre eigenen Abfragesprachen bereit, die auf die Art und Weise abgestimmt sind, wie die Daten von der Datenbank verwaltet werden, sowie auf die Operationen, die Entwickler am häufigsten durchführen. Dieser Ansatz bietet einen einfacheren Abfrage-Mechanismus als verschachtelte SQL-Anweisungen.
Einige NoSQL-Datenbanken bieten auch eine SQL-Schnittstelle, um NoSQL-Datenbanken abzufragen, falls Entwickler die SQL-Gewohnheit nicht brechen können!
Müssen Sie nicht Monate damit verbringen, das Schema
Schema-Agnostizismus in NoSQL-Datenbanken ermöglicht es Ihnen, Daten schnell zu laden, ohne ein relationales Schema über einen Zeitraum von Monaten erstellen zu müssen. Sie müssen nicht jedes einzelne Datenelement, das Sie in NoSQL speichern müssen, wie bei einem RDBMS analysieren.
Weniger Datentransformationscode (ETL)
Ein häufiges Problem bei relationalen Datenbanken, das durch ein vordefiniertes Schemadesign entsteht, besteht darin, dass nichtrelationale Daten in Zeilen und Spalten umgewandelt werden müssen. Dieser Zerkleinerungsmechanismus wird zusammen mit anderen Codeverfahren, die Informationen zum Speichern vorverarbeiten und zum Abrufen nachbearbeiten, als -Extrahieren, Transformieren und Laden (ETL) bezeichnet.
Dieser Code zwingt Entwickler dazu, ihre schönen glänzenden Objekt- und Dokumentmodelle zu verwenden und Code zu schreiben, um jedes letzte Element zu speichern. Dies ist unangenehm und führt auch zu hochqualifizierten Entwicklern, die schlecht funktionierende und uninteressante Installationscodes schreiben.
NoSQL-Datenbanken ermöglichen es Ihnen, die gespeicherten Datenstrukturen viel näher an ihrer ursprünglichen Form zu halten. Daten, die zwischen Systemen fließen, haben normalerweise ein XML-Format, wohingegen Datenanwendungen in einem JSON-Dokument formatiert sind. Native Speicherung, Verwaltung und Suche von JSON ist ein großer Vorteil für Anwendungsentwickler.
Einfachere Verwaltung des Codes
Der gesamte Code, den Sie schreiben, muss beibehalten werden. Indem Sie die Datenbankstrukturen an die Datenformate des Anwendungscodes anpassen, minimieren Sie die Menge an Code, was wiederum die Wartung von Code- und Regressionstests minimiert, die Sie im Laufe der Zeit durchführen müssen.
Wenn sich Datenstrukturen in einem RDBMS ändern, müssen Sie den gesamten SQL-Code überprüfen, der die geänderten Tabellen verwenden kann. In NoSQL fügen Sie einfach Unterstützung für die neuen Elemente hinzu oder ignorieren sie einfach! Viel einfacher zu warten, dank der schema-agnostischen Natur von NoSQL-Datenbanken.
Code in der Nähe der Daten für die beste Leistung ausführen
Ein RDBMS stellt gespeicherte Prozeduren zum Ausführen von Code auf einem Datenbankserver bereit. Dieser Code wird an einer Stelle ausgeführt. Dieser nützliche Ansatz ist die Grundlage vieler analytischer und komplexer Datenverwaltungsanwendungen.
Viele NoSQL-Datenbanken erlauben die Verteilung dieses Codetyps auf alle Server, auf denen relevante Daten gespeichert sind, was eine größere Parallelisierung der Arbeitslast ermöglicht. Dieser Ansatz ist besonders wichtig für große Dateneingaben, die zur Abfragezeit verarbeitet werden müssen, und für komplexe Aggregationsanalysen.
Benutzerdefinierte Funktionen (UDFs) und serverseitiges Scripting in einer Vielzahl von NoSQL-Datenbanken bieten diese verteilte Funktionalität. UDFs ähneln der MapReduce-Funktion von Hadoop, mit der Ausnahme, dass UDFs in Echtzeit statt im Batch-Modus ausgeführt werden können und nicht den gleichen Aufwand an Infrastruktur erfordern, den Hadoop und eine Datenbank benötigen würden.
Viele Open-Source-Optionen
In vielen Unternehmenssoftwarebereichen fehlt die Wahl einer soliden Open-Source-Lösung. Nur eine oder zwei weit verbreitete Optionen können existieren. Verfügbarkeit von Fähigkeiten und lokale Unterstützung vor Ort sind noch größere Probleme.
Es gibt jedoch eine Vielzahl von Open-Source-NoSQL-Datenbanken. Viele von ihnen haben vollwertige kommerzielle Unternehmen, die Unterstützung anbieten und weltweit Büros haben. Wenn Sie also Unterstützung oder mehr Funktionen benötigen, können Sie schließlich zu diesen Versionen wechseln.
Dies reduziert die Kosten für die Einführung der NoSQL-Technologie und ermöglicht es Ihnen, "vor dem Kauf zu testen. "Diese Verfügbarkeit von Open-Source-Alternativen hat kommerzielle Unternehmen im NoSQL-Raum veranlasst, kostenlose, aber gut ausgestattete Versionen ihrer Software anzubieten oder speziellen Startlizenzen für kleine Organisationen anzubieten.
Einfach zu skalieren
Sie brauchen keinen kostspieligen DBA, um Tage damit zu verbringen, SQL umzugestalten und materialisierte Ansichten zu erstellen, um jeden Zentimeter Leistung aus NoSQL-Systemen herauszuholen.
Schlüsselwertspeicher können Hunderttausende von Operationen pro Server verarbeiten. Alle Arten von NoSQL können horizontal über relativ billige Commodity-Server skaliert werden.Daher ist es viel einfacher, Ihren Datenbankcluster mit NoSQL zu skalieren als mit herkömmlichen relationalen Datenbanken.
Darüber hinaus eignen sich NoSQL-Datenbanken aufgrund ihrer Skalierbarkeit auch gut für öffentliche und private Clouds. NoSQL-Datenbanken sind so konzipiert, dass sie flexibel sind und sich erweitern und zusammenziehen, wenn sich die Verwendungsmöglichkeiten für Ihre Anwendung ändern. Diese Fähigkeit wird oft Elastizität genannt.
Eventual Consistency Data Model
Auch wenn geschäftskritische Fälle eine ACID-Compliance erfordern, muss dies nicht jede Anwendung tun. Die Fähigkeit, die Konsistenz über sehr große Cluster hinweg zu verbessern, kann für einige Anwendungen nützlich sein.
NoSQL-Datenbanken ermöglichen es Ihnen, diese Einschränkungen zu lockern oder starke Konsistenz und schwache Konsistenz in derselben Datenbank für verschiedene Datensatztypen zu kombinieren.
Esoterische Sprachunterstützung
So ziemlich alle Datenbanken unterstützen die wichtigsten Programmiersprachen wie Java und C #. NETZ. Viele Datenbanken unterstützen PHP, Python und Ruby on Rails.
NoSQL verfügt über eine Reihe von Sprachtreibern für eine noch größere Bandbreite an Programmiersprachen. Wenn Ihre Organisation eine domänenspezifische Sprache hat, können Sie in einer NoSQL-Datenbank Unterstützung dafür finden.
JavaScript Ende-zu-Ende
JavaScript-Nutzung ist in den letzten Jahren explodiert. Es ist eine bequeme Skriptsprache sowohl im Web als auch dank Node. js, auf der Serverseite.
Viele NoSQL-Datenbanken unterstützen jetzt vollständige End-to-End-JavaScript-Entwicklung. Dies bedeutet, dass Ihre Organisation nun denselben Programmiersprachenpool verwenden kann, um Webanwendungen und Daten-APIs und Geschäftslogik mittlerer Ebene zu erstellen sowie Back-End-Datenbankauslöser und MapReduce-basierte Analyseverarbeitung neben den Daten zu verarbeiten.
Infolgedessen sind die Gesamtbetriebskosten (TCO) von NoSQL niedriger als bei anderen Datenbanktechnologien.