PERF04-BP04 Wählen des Datenspeichers nach Zugriffsmuster
Bestimmen Sie anhand der Zugriffsmuster des Workloads, welche Services und Technologien sich anbieten. Zusätzlich zu nicht-funktionalen Anforderungen wie Leistung und Skalierung, beeinflussen Zugriffsmuster stark die Wahl der Datenbank- und Speicherlösungen. Die erste Dimension ist der Bedarf nach Transaktionen, ACID-Compliance und konsistenten Lesevorgängen. Nicht jede Datenbank unterstützt dies und die meisten NoSQL-Datenbanken bieten ein Modell für die eventuelle Konsistenz Die zweite wichtige Dimension wäre die Verteilung von Schreib- und Lesevorgängen über Zeit und Raum. Global verteile Anwendungen müssen Datenverkehrsmuster, Latenz und Zugriffsanforderungen in Betracht ziehen, um die optimale Speicherlösung zu ermitteln. Der dritte auszuwählende wesentliche Aspekt ist die Flexibilität des Abfragemusters, zufällige Zugriffsmuster und einmalige Abfragen. Überlegungen zu hochspezialisierten Abfragefunktionen für die Verarbeitung von Text und natürlicher Sprache, Zeitreihendatenbanken und Diagrammen sollten ebenfalls in Betracht gezogen werden.
Gewünschtes Ergebnis: Der Datenspeicher wurde auf Basis von identifizierten und dokumentieren Datenzugriffsmustern ausgewählt. Dies kann die gängigsten Lese-, Schreib und Löschabfragen, die Notwendigkeit für Ad-hoc-Kalkulationen und -Aggregationen, die Komplexität von Daten, die Abhängigkeiten zwischen Daten und die benötigten Kohärenzanforderungen umfassen.
Gängige Antimuster:
-
Sie wählen nur einen Datenbankanbieter aus, um die Betriebsverwaltung zu vereinfachen.
-
Sie gehen davon aus, dass Datenzugriffsmuster im Laufe der Zeit konsistent bleiben.
-
Sie implementieren komplexe Transaktionen, Rollback und Konsistenzlogik in der Anwendung.
-
Die Datenbank ist konfiguriert, um potenzielle Datenverkehrsspitzen zu unterstützen, was dazu führt, dass die Datenbankressourcen die meiste Zeit nicht genutzt werden.
-
Es wird eine geteilte Datenbank für Transaktions- und analytische Anwendungen verwendet.
Vorteile der Einführung dieser bewährten Methode: Das Auswählen und Optimieren Ihres Datenspeichers auf Basis von Zugriffsmustern hilft beim Verringern der Entwicklungskomplexität und Optimieren Ihrer Leistungsmöglichkeiten. Verstehen, wann Read Replicas, globale Tabellen, Datenpartitionen und Caching verwendet werden sollen und wie dies Ihnen dabei hilft, den Betriebsaufwand zu verringern und basierend auf Ihren Workload-Anforderungen zu skalieren.
Risikostufe, wenn diese bewährte Methode nicht eingeführt wird: Mittel
Implementierungsleitfaden
Identifizieren und evaluieren Sie Ihre Datenzugriffsmuster, um die richtige Speicherkonfiguration auszuwählen. Bei jeder Datenbanklösung gibt es Optionen, um Ihre Speicherlösung zu konfigurieren und zu optimieren. Verwenden Sie die erfassten Metriken und Protokolle und experimentieren Sie mit Optionen, um die optimale Konfiguration zu finden. Verwenden Sie die nachfolgende Tabelle, um Speicheroptionen je nach Datenbankservice anzusehen.
AWS-Services | Amazon RDS, Amazon Aurora | Amazon DynamoDB | Amazon DocumentDB | Amazon ElastiCache | Amazon Neptune | Amazon Timestream | Amazon Keyspaces | Amazon QLDB |
---|---|---|---|---|---|---|---|---|
Skalierung von Speicher | Eine Option zur automatischen Skalierung des Speichers ist verfügbar, um den bereitgestellten Speicher automatisch zu skalieren. IOPS können ebenfalls unabhängig vom bereitgestellten Speicher skaliert werden, wenn bereitgestellte IOPS-Speichertypen eingesetzt werden. | Skaliert automatisch. Tabellen haben keine Größeneinschränkung. | Eine Option zur automatischen Skalierung des Speichers ist verfügbar, um den bereitgestellten Speicher automatisch zu skalieren | In-Memory-Speicher, der an den Instance-Typ oder die Instance-Anzahl gebunden ist | Eine Option zur automatischen Skalierung des Speichers ist verfügbar, um den bereitgestellten Speicher automatisch zu skalieren | Konfigurieren einer Aufbewahrungsfrist in Tagen für In-Memory- und Magnetebenen | Skaliert Tabellenspeicher automatisch hoch und herunter | Skaliert automatisch. Tabellen haben keine Größeneinschränkung. |
Implementierungsschritte:
-
Identifizieren und dokumentieren Sie das antizipierte Wachstum von Daten und Datenverkehr.
-
Amazon RDS und Aurora unterstützen automatische Skalierung bis hin zu dokumentierten Grenzen. Erwägen Sie darüber hinaus, ältere Daten für die Archivierung an Amazon S3 zu übertragen, historische Daten für Analyseverfahren zu aggregieren oder über Sharding horizontal zu skalieren.
-
DynamoDB und Amazon S3 skalieren automatisch auf beinahe unbegrenztes Speichervolumen.
-
Amazon RDS-Instances and Datenbanken, die auf EC2 ausgeführt werden, können manuell in ihrer Größe angepasst werden und zu EC2-Instances können später neue EBS-Datenträger für zusätzlichen Speicher hinzugefügt werden.
-
Instance-Typen können auf Basis von Aktivitätsänderungen geändert werden. Sie können beispielsweise mit einer kleineren Instance starten, während Sie Tests durchführen, und die Instance dann skalieren, wenn allmählich Produktionsdatenverkehr im Service eingeht. Aurora Serverless V2 skaliert automatisch als Antwort auf Änderungen bei der Last.
-
-
Dokumentieren Sie Anforderungen in Bezug auf normale und Spitzenleistung (Transaktionen pro Sekunde, TPS, und Abfragen pro Sekunde, QPS) sowie Kohärenz (ACID und eventuelle Kohärenz).
-
Dokumentieren Sie Bereitstellungsaspekte der Lösung und die Zugriffsanforderungen der Datenbank (global, Multi-AZ, Read Replication, mehrere Schreibknoten).
Grad des Aufwands für den Implementierungsplan: Wenn Sie keine Protokolle oder Metriken für Ihre Datenverwaltungslösung haben, müssen Sie dies zuerst abschließen, bevor Sie Ihre Datenzugriffsmuster identifizieren und dokumentieren. Sobald Sie Ihr Datenzugriffsmuster verstanden haben, stellen das Auswählen und Konfigurieren Ihres Datenspeichers einen niedrigen Grad des Aufwands dar.
Ressourcen
Ähnliche Dokumente:
Ähnliche Videos:
Ähnliche Beispiele: