PERF 4: Was ist bei der Wahl der Datenbanklösung zu beachten?
Welche Datenbanklösung sich am besten für ein System eignet, hängt von der erforderlichen
Verfügbarkeit, Konsistenz, Partitionstoleranz, Latenz, Langlebigkeit, Skalierbarkeit
und Abfragefähigkeit ab. Viele Systeme nutzen für verschiedene Untersysteme unterschiedliche
Datenbanklösungen und bieten verschiedene Möglichkeiten zur Leistungsoptimierung.
Die Wahl der falschen Datenbanklösung und -funktionen kann die Leistungseffizienz
eines Systems schmälern.
Ressourcen
AWS purpose-built databases (DAT209-L)
Amazon Aurora storage demystified: How it all works (DAT309-R)
Amazon DynamoDB deep dive: Advanced design patterns (DAT403-R1)
Cloud Databases with AWS
AWS Database Caching
Amazon DynamoDB Accelerator
Amazon Aurora best practices
Amazon Redshift performance
Amazon Athena top 10 performance tips
Amazon Redshift Spectrum best practices
Amazon DynamoDB best practices
Bewährte Methoden:
-
Datenmerkmale verstehen:
Machen Sie sich mit den verschiedenen Merkmalen der Daten Ihres Workloads vertraut.
Bestimmen Sie, ob die Workload Transaktionen erfordert, wie sie mit Daten interagiert,
und welche Leistungsanforderungen erfüllt werden müssen. Wählen Sie auf Grundlage
dieser Daten den leistungsfähigsten Datenbankansatz für Ihre Workload aus (z. B. relationale
Datenbanken, NoSQL-Schlüsselwert, Dokument, Wide Column, Graph, Zeitreihe oder In-Memory-Speicher).
-
Verfügbare Optionen prüfen:
Prüfen Sie die Services und Speicheroptionen, die im Rahmen des Auswahlprozesses für
die Speichermechanismen des Workloads zur Verfügung stehen. Bestimmen Sie, wie und
wann ein bestimmter Service oder ein bestimmtes System für die Datenspeicherung zu
verwenden ist. Machen Sie sich mit den verfügbaren Konfigurationsoptionen vertraut,
mit denen sich Leistung oder Effizienz einer Datenbank optimieren lassen, z. B. bereitgestellte
IOPs, Arbeitsspeicher, Datenverarbeitungsressourcen und Caching.
-
Kennzahlen zur Datenbankleistung erfassen:
Nutzen Sie Tools, Bibliotheken und Systeme zum Aufzeichnen von Messungen zur Datenbankleistung.
Messen Sie beispielsweise die Transaktionen pro Sekunde, langsame Abfragen oder die
Systemlatenz beim Aufrufen der Datenbank. Anhand dieser Daten lässt sich die Leistung
Ihrer Datenbanksysteme nachvollziehen.
-
Datenspeicher nach Zugriffsmuster wählen:
Bestimmen Sie anhand der Zugriffsmuster des Workloads, welche Services und Technologien
sich anbieten. Setzen Sie beispielsweise eine relationale Datenbank für Workloads
ein, die Transaktionen erfordern, oder einen Schlüssel-Wert-Speicher, der einen höheren
Durchsatz ermöglicht und konsistent ist.
-
Datenspeicher nach Zugriffsmuster und Kennzahlen wählen:
Optimieren Sie anhand der Leistungsmerkmale und Zugriffsmuster die Art und Weise,
in der Daten gespeichert oder abgefragt werden. So lässt sich die bestmögliche Leistung
erzielen. Messen Sie, wie sich Optimierungen, z. B. Indizierung, Schlüsselverteilung,
Data Warehouse Design oder Caching-Strategien, auf die Systemleistung oder die allgemeine
Effizienz auswirken.
Verbesserungsplan
Datenmerkmale verstehen
Untersuchen und Dokumentieren von Datenmerkmalen:
Bevor Sie sich für eine Datenbanklösung entscheiden, sollten Sie sich mit den funktionalen
Anforderungen Ihres Workloads vertraut machen und nachvollziehen, wie der Workload
mit Daten interagiert. Überlegen Sie beim Bewerten einer Datenbanklösung, inwieweit
sie Ihre Anforderungen erfüllt (etwa mit Blick auf Transaktionen oder Hochverfügbarkeit).
Wählen Sie dann die Kombination aus Datenbanken aus, die für Ihren Workload am besten
geeignet sind.
Bewerten Sie alternative Datenbanken, die Ihren Workload-Anforderungen besser entsprechen
könnten. Wenn Sie beispielsweise eine IoT-Anwendung erstellen, kann es besser sein,
eine Zeitreihen-Datenbank wie Amazon Timestream auszuwählen, um Billionen von Ereignissen
pro Tag zu einem Zehntel der Kosten relationaler Datenbanken einfach zu speichern
und zu analysieren.
Verfügbare Optionen prüfen
Wählen Sie den geeigneten Datenbanktyp für Ihre Workload aus.:
In AWS haben Sie die Wahl aus verschiedenen speziell entwickelten Datenbankmodulen,
darunter relationale, Schlüssel-Werte-, Dokument-, In-Memory-, Graph-, Zeitreihen-
und Ledger-Datenbanken. Das AWS-Portfolio speziell entwickelter Datenbanken unterstützt
verschiedene Datenmodelle und ermöglicht es Ihnen, anwendungsorientierte, hochskalierbare
und verteilte Anwendungen zu entwickeln. Durch die Auswahl der besten Datenbank zur
Lösung eines bestimmten Problems (oder einer Gruppe von Problemen) können Sie sich
von restriktiven, einheitlichen monolithischen Datenbanken lösen und sich auf die
Entwicklung von Anwendungen konzentrieren, die den Anforderungen Ihres Unternehmens
entsprechen.
Anforderungen an die Datenbankleistung definieren:
Identifizieren Sie die für Ihren Workload relevanten Kennzahlen zur Datenbankleistung
und implementieren Sie die Anforderungen im Rahmen eines datengestützten Ansatzes,
bei dem Benchmarks und Lasttests zur Anwendung kommen. Ermitteln Sie anhand dieser
Daten, an welcher Stelle Ihre Datenbanklösung Defizite hat. Prüfen Sie anschließend
die Konfigurationsoptionen, mit denen diese behoben werden könnten.
Aktivieren von Datenbank-Caching-Optionen:
Bewerten Sie Datenbank-Caching-Optionen wie Amazon ElastiCache for Redis für das Caching
relationaler Datenbanken oder Amazon DynamoDB Accelerator (DAX) für einen vollständig
verwalteten, hochverfügbaren In-Memory-Cache für DynamoDB. Diese Optionen können sogar
bei Millionen von Anforderungen pro Sekunde eine bessere Leistung liefern, in einigen
Fällen Mikrosekunden statt Millisekunden.
Kennzahlen zur Datenbankleistung erfassen
Kennzahlen zur Datenbank erfassen:
Konfigurieren Sie Ihre Workload für das Erfassen von Metriken zur Datenbankaktivität.
Diese Daten sind von wesentlicher Bedeutung, um festzustellen, wie sich Ihre Datenbanksysteme
auf die Gesamtleistung des Workloads auswirken und welche Änderungen für eine verbesserte
Leistung und Effizienz erforderlich sind. Sie können Ihre Datenbanksysteme beispielsweise
optimieren, indem Sie Datenpunkte einschließlich Abfragezeiten, die Anzahl der Transaktionen,
Datenträgernutzung, Indexnutzung oder langsame Abfragen verfolgen.
Kennzahlen überwachen:
Mit Amazon CloudWatch lassen sich Kennzahlen aus sämtlichen Ressourcen Ihrer Architektur
erfassen. Sie können auch benutzerdefinierte Metriken erfassen und veröffentlichen,
um geschäftliche oder abgeleitete Metriken zu ermitteln. Richten Sie mit CloudWatch
oder mit Lösungen von Drittanbietern Alarme ein, die auf das Überschreiten von Schwellenwerten
hinweisen.
Datenspeicher nach Zugriffsmuster wählen
Verwenden von Zugriffsmustern, um die Datenspeicherung zu bestimmen:
Bewerten Sie die Zugriffsmuster Ihrer Workload, um ein geeignetes Datenspeichermuster
zu finden. Wenn Ihr Workload beispielsweise Ad-hoc-Abfragezugriff erfordert, können
Sie eine relationale Datenbank wie Amazon RDS auswählen. Wenn Ihre Workload von einer
hohen Wachstumsrate oder Ereignissen mit hohem Datenverkehr abhängt, sollten Sie eine
Schlüsselwertdatenbank wie Amazon DynamoDB wählen.
Datenspeicher nach Zugriffsmuster und Kennzahlen wählen
Speicher basierend auf Kennzahlen und Mustern optimieren:
Verwenden Sie gemeldete Metriken, um Bereiche in Ihrer Workload zu identifizieren
und Ihre Datenbankkomponenten zu optimieren. Für jedes Datenbanksystem müssen eigene
Leistungsmerkmale in Betracht gezogen werden, etwa das Verfahren, mit dem Daten indiziert,
in den Cache gelesen oder auf mehrere Systeme verteilt werden. Messen Sie die Auswirkungen
Ihrer Optimierungen.