PERF04-BP01 Verstehen von Datenmerkmalen
Wählen Sie Ihre Datenverwaltungslösungen aus, sodass Sie den Eigenschaften, Zugriffsmustern und Anforderungen Ihrer Workload-Datensätze optimal entsprechen. Beim Auswählen und Implementieren Ihrer Datenverwaltungslösung müssen Sie sicherstellen, dass Ihre Abfrage-, Skalierungs- und Speichermerkmale die Datenanforderungen der Workload unterstützen. Erfahren Sie, wie unterschiedliche Datenbankoptionen Ihren Datenmodellen entsprechen und welche Konfigurationsoptionen am besten für Ihren Anwendungsfall geeignet sind.
AWS bietet zahlreiche speziell entwickelte Datenbankmodule, darunter relationale, Schlüssel-Werte-, Dokument-, In-Memory-, Graph-, Zeitreihen- und Ledger-Datenbanken. Jede Datenverwaltungslösung hat verfügbare Optionen und Konfigurationen, um Ihre Anwendungsfälle und Datenmodelle zu unterstützen. Basierend auf Ihren Datenmerkmalen kann Ihre Workload möglicherweise mehrere unterschiedliche Datenbanklösungen verwenden. Sie können den Umstieg von monolithischen Datenbanken bewerkstelligen, die mit ihrem Einheitsansatz restriktiv sind, indem Sie die beste Datenbanklösung für ein spezifisches Problem auswählen und sich darauf konzentrieren, Daten zu verwalten, um die Bedürfnisse Ihrer Kunden zu erfüllen.
Gewünschtes Ergebnis: Die Datenmerkmale von Workloads sind mit ausreichenden Details dokumentiert, um die Auswahl und Konfiguration von unterstützenden Datenbanklösungen zu ermöglichen und Einblicke in mögliche Alternativen zu bieten.
Gängige Antimuster:
-
Möglichkeiten nicht in Betracht ziehen, größere Datensätze, die ähnliche Merkmale aufweisen, in kleinere Datensammlungen aufzuteilen, was dazu führt, dass Chancen verabsäumt werden, um speziell entwickelte Datenbanken zu verwenden, die den Daten- und Wachstumsmerkmalen besser entsprechen.
-
Datenzugriffsmuster nicht vorab identifizieren, was später zu kostspieliger und komplexer Nachbearbeitung führt.
-
Wachstum einschränken, indem Datenspeicherstrategien verwendet werden, die nicht ausreichend schnell skalieren.
-
Einen Datenbanktyp und -anbieter für alle Workloads auswählen.
-
An einer Datenbanklösung festhalten, da es interne Erfahrungen und Wissen über eine bestimmte Datenbanklösung gibt.
-
Eine Datenbanklösung behalten, weil sie in einer On-Premises-Umgebung gut funktioniert hat.
Vorteile der Einführung dieser bewährten Methode: Sie sollten mit allen AWS-Datenbanklösungen vertraut sein, damit Sie die richtige Datenbanklösung für Ihre verschiedenen Workloads bestimmen können. Nachdem Sie die geeignete Datenbanklösung für Ihren Workload ausgewählt haben, können Sie schnell mit diesen Datenbankangeboten experimentieren, um festzustellen, ob sie Ihren Workload-Anforderungen weiterhin entsprechen.
Risikostufe, wenn diese bewährte Methode nicht eingeführt wird: Hoch
-
Potenzielle Kosteneinsparungen werden möglicherweise nicht erkannt.
-
Daten werden möglicherweise nicht im erforderlichen Ausmaß gesichert.
-
Der Datenzugriff und die Speicherleistung sind möglicherweise nicht optimal.
Implementierungsleitfaden
Definieren Sie die Datenmerkmale und Zugriffsmuster Ihrer Workload. Überprüfen Sie alle verfügbaren Datenbanklösungen, um herauszufinden, welche Lösung am besten Ihren Datenanforderungen entspricht. Innerhalb einer bestimmten Workload können mehrere Datenbanken ausgewählt werden. Evaluieren Sie jeden Service oder jede Servicegruppe und führen Sie eine individuelle Bewertung durch. Wenn potenzielle alternative Datenverwaltungslösungen für alle oder Teile der Daten identifiziert werden, experimentieren Sie mit unterschiedlichen Implementierungen, die zu Vorteilen hinsichtlich Kosten, Sicherheit, Leistung und Zuverlässigkeit führen können. Aktualisieren Sie die bestehende Dokumentation, falls ein neuer Ansatz zur Datenverwaltung eingeführt wird.
Typ | AWS-Services | Schlüsselmerkmale | Gängige Anwendungsfälle |
---|---|---|---|
Relational | Amazon RDS, Amazon Aurora | Referenzielle Integrität, ACID-Transaktionen, Schema-on-Write | ERP, CRM, kommerzielle Standardsoftware |
Schlüssel-Werte-Datenbanken | Amazon DynamoDB | Hoher Durchsatz, geringe Latenz, beinahe unendliche Skalierbarkeit | Einkaufswagen (E-Commerce), Produktkataloge, Chat-Anwendungen |
Dokumentdatenbanken | Amazon DocumentDB | JSON-Dokumente speichern und Abfragen zu jedem Attribut durchführen | Content-Management (CMS), Kundenprofile, mobile Anwendungen |
In-Memory | Amazon ElastiCache, Amazon MemoryDB | Latenz im Mikrosekundenbereich | Caching, Ranglisten für Spiele |
Graphdatenbanken | Amazon Neptune | Höchst relationale Daten, wobei die Beziehung zwischen Daten von Bedeutung ist | Soziale Netzwerke, Personalisierungs-Engines, Betrugserkennung |
Zeitreihendatenbanken | Amazon Timestream | Daten, bei denen Zeit wesentlich ist | DevOps, IoT, Überwachung |
Wide-Column-Datenbanken | Amazon Keyspaces | Cassandra-Workloads | Instandhaltung von Industrieanlagen, Routenoptimierung |
Ledger-Datenbanken | Amazon QLDB | Unveränderliches und kryptografisch überprüfbares Änderungs-Ledger | Systems of Record, Gesundheitswesen, Lieferketten, Finanzinstitute |
Implementierungsschritte
-
Wie sind die Daten strukturiert? (z. B. nicht strukturiert, Schlüssel-Wert, halbstrukturiert, relational)
-
Wenn die Daten nicht strukturiert sind, erwägen Sie einen Objektspeicher wie Amazon S3
oder eine NoSQL-Datenbank wie Amazon DocumentDB. -
Erwägen Sie für Schlüssel-Werte-Daten DynamoDB
, ElastiCache für Redis oder MemoryDB. -
Welche Ebene an Referenzintegrität ist erforderlich, wenn die Daten über eine relationale Struktur verfügen?
-
Bei Fremdschlüsseleinschränkungen können relationale Datenbanken wie Amazon RDS
und Aurora diese Integritätsebene bieten. -
Üblicherweise würden Sie innerhalb eines NoSQL-Datenmodells Ihre Daten in ein einzelnes Dokument oder eine Sammlung von Dokumenten denormalisieren, die in einer einzelnen Anfrage abgerufen werden können, anstatt Daten in Dokumenten oder Tabellen zusammenzufügen.
-
-
-
Ist AKID-Compliance (Atomarität, Konsistenz, Isolation, Dauerhaftigkeit) erforderlich?
-
Wenn mit relationalen Datenbanken zusammenhängende AKID-Eigenschaften erforderlich sind, erwägen Sie eine relationale Datenbank wie Amazon RDS
und Aurora.
-
-
Welches Konsistenzmodell ist erforderlich?
-
Wenn Ihre Anwendung eventuelle Kohärenz tolerieren kann, ziehen Sie eine NoSQL-Implementierung in Erwägung. Überprüfen Sie die anderen Eigenschaften, um zu bestimmen, welche NoSQL-Datenbank
am besten geeignet ist. -
Wenn strikte Konsistenz erforderlich ist, können Sie strikt konsistente Lesevorgänge mithilfe von DynamoDB
durchführen oder mit einer relationalen Datenbank wie Amazon RDS evaluieren.
-
-
Welche Abfrage- und Ergebnisformate müssen unterstützt werden? (z. B. SQL, CSV, Parque, Avro, JSON usw.)
-
Welche Datentypen, Feldgrößen und Gesamtmengen sind vorhanden? (z. B. Text, numerische, räumliche, zeitreihenkalkulierte, binäre oder BLOB-Daten)
-
Wie ändern sich die Speicheranforderungen im Laufe der Zeit? Wie beeinflusst dies die Skalierbarkeit?
-
Serverless-Datenbanken wie DynamoDB
und Amazon Quantum Ledger Database skalieren dynamisch auf beinahe unbeschränkten Speicher. -
Relationale Datenbanken haben oftmals Obergrenzen bei bereitgestelltem Speicher und müssen mithilfe von Mechanismen wie Sharding horizontal partitioniert werden, sobald sie diese Grenzen erreicht haben.
-
-
In welcher Proportion stehen Leseabfragen zu Schreibabfragen? Könnte Caching die Leistung verbessern?
-
Leseintensive Workloads könnten von einer Caching-Ebene profitieren. Diese könnte ElastiCache
oder DAX sein, wenn es sich bei der Datenbank um DynamoDB handelt. -
Lesevorgänge können auch zu Read Replicas mit relationalen Datenbanken ausgelagert werden, wie Amazon RDS
evaluieren.
-
-
Wird Speicher und Modifizierung (OLTP – Online Transaction Processing) oder Abruf und Berichterstattung (OLAP – Online Analytical Processing) eine höhere Priorität eingeräumt?
-
Erwägen Sie für Transaktionsverarbeitung mit hohem Durchsatz eine NoSQL-Datenbank wie DynamoDB oder Amazon DocumentDB.
-
Erwägen Sie für analytische Abfragen eine spaltenbasierte Datenbank wie Amazon Redshift
oder das Exportieren von Daten zu Amazon S3 und das Durchführen von Analysen mithilfe von Athena oder QuickSight.
-
-
Wie sensibel sind die Daten und welches Ausmaß an Schutz und Verschlüsselung erfordern sie?
-
Alle Amazon RDS- und Aurora-Engines unterstützen Datenverschlüsselung im Ruhezustand mithilfe von AWS KMS. Microsoft SQL Server und Oracle unterstützen auch Transparent Data Encryption (TDE), wenn Amazon RDS verwendet wird.
-
Sie können für DynamoDB eine differenzierte Zugriffskontrolle mit IAM verwenden, um zu steuern, wer Zugriff auf welche Daten auf Schlüsselebene hat.
-
-
Welches Ausmaß an Stabilität erfordern die Daten?
-
Aurora repliziert Ihre Daten automatisch in drei Availability Zones innerhalb von einer Region, was bedeutet, dass Ihre Daten hochbeständig sind und eine geringere Wahrscheinlichkeit von Datenverlust besteht.
-
DynamoDB wird automatisch in mehreren Availability Zones repliziert und bietet hohe Verfügbarkeit und Datenstabilität.
-
Amazon S3 bietet eine Stabilitätsgarantie von 99,999999999 %. Viele Datenbankservices wie Amazon RDS und DynamoDB unterstützen das Exportieren von Daten zu Amazon S3 für Langzeitaufbewahrung und Archivierung.
-
-
Beeinflussen die Anforderungen an die Wiederherstellungsdauer (Recovery Time Objective, RTO) oder den Wiederherstellungszeitpunkt (Recovery Point Objective, RPO) die Lösung?
-
Amazon RDS, Aurora, DynamoDB, Amazon DocumentDB und Neptune unterstützen alle Point-in-Time-Wiederherstellung und On-Demand-Sicherung und -Wiederherstellung.
-
Bei Anforderungen für eine hohe Verfügbarkeit können DynamoDB-Tabellen mithilfe der Funktion Globale Tabellen
global repliziert werden und Aurora-Cluster können mithilfe der Funktion „Globale Datenbanken“ innerhalb von mehreren Regionen repliziert werden. Zusätzlich können S3-Buckets in AWS-Regionen mithilfe von regionsübergreifender Replikation repliziert werden.
-
-
Besteht der Wunsch, sich von kommerziellen Datenbank-Engines/Lizenzkosten zu entfernen?
-
Was ist die Betriebserwartung an die Datenbank? Ist der Umstieg zu verwalteten Services eine Priorität?
-
Das Verwenden von Amazon RDS anstatt von Amazon EC2 und DynamoDB oder Amazon DocumentDB anstatt eine NoSQL-Datenbank selbst zu hosten kann den Betriebsaufwand verringern.
-
-
Wie erfolgt derzeit der Zugriff auf die Datenbank? Handelt es sich nur um einen Anwendungszugriff oder gibt es Business-Intelligence (BI)-Benutzer und andere Standardanwendungen?
-
Wenn Sie von externen Tools abhängig sind, müssen Sie möglicherweise mit der Datenbank, die unterstützt wird, die Kompatibilität aufrecht erhalten. Amazon RDS ist vollständig kompatibel mit den unterschiedlichen Engine-Versionen, die unterstützt werden, einschließlich Microsoft SQL Server, Oracle, MySQL und PostgreSQL.
-
-
Nachstehend finden Sie eine Liste von möglichen Datenmanagementservices und wo diese am besten verwendet werden können:
-
In relationalen Datenbanken werden Daten mit vordefinierten Schemata und Beziehungen zwischen ihnen gespeichert. Diese Datenbanken unterstützen AKID-Transaktionen (Atomarität, Konsistenz, Isolation und Dauerhaftigkeit) und gewährleisten die referentielle Integrität sowie eine starke Datenkonsistenz. Bei zahlreichen herkömmlichen Anwendungen, Enterprise Resource Planning (ERP), Customer Relationship Management (CRM) und E-Commerce werden relationale Datenbanken zum Speichern der Daten verwendet. Viele dieser Datenbank-Engines können Sie in Amazon EC2 ausführen oder Sie können einen der von AWS verwalteten Datenbankservices nutzen
: Amazon Aurora , Amazon RDS und Amazon Redshift evaluieren. -
Schlüssel-Werte-Datenbanken sind auf gängige Zugriffsmuster ausgelegt, üblicherweise zum Speichern und Abrufen großer Datenmengen. Diese Datenbanken bieten kurze Reaktionszeiten, selbst bei extrem großen Mengen gleichzeitiger Anforderungen. Web-Apps mit hohem Datenverkehr, E-Commerce-Systeme und Gaming-Anwendungen sind typische Anwendungsfälle für Schlüssel-Werte-Datenbanken. In AWS können Sie Amazon DynamoDB
verwenden, eine vollständig verwaltete, regionsübergreifende, beständige Multi-Master-Datenbank mit integrierter Sicherheit, Sicherung und Wiederherstellung sowie In-Memory-Caching für internetfähige Anwendungen. -
In-Memory-Datenbanken werden für Anwendungen eingesetzt, die einen Echtzeitzugriff auf Daten, die niedrigste Latenz und den höchsten Durchsatz erfordern. Durch das direkte Speichern von Daten im Arbeitsspeicher liefern diese Datenbanken eine Latenz im Mikrosekundenbereich für Anwendungen, wo eine Latenz im Millisekundenbereich nicht ausreicht. Sie können In-Memory-Datenbanken für Anwendungs-Caching, Sitzungsverwaltung, Gaming-Bestenlisten und Geodatenanwendungen verwenden. Amazon ElastiCache
ist ein vollständig verwalteter In-Memory-Datenspeicher, der mit Redis oder Memcached evaluieren. Wenn die Anwendungen eine höhere Stabilität erfordern, bietet Amazon MemoryDB für Redis eine Kombination, da es ein stabiler In-Memory-Datenbankservice für ultraschnelle Leistung ist. -
Eine Dokumentdatenbank ist darauf ausgelegt, halbstrukturierte Daten als JSON-ähnliche Dokumente zu speichern. Mit diesen Datenbanken können Entwickler Anwendungen wie Content Management, Kataloge und Benutzerprofile schnell erstellen und aktualisieren. Amazon DocumentDB
ist ein schneller, skalierbarer, hochverfügbarer und vollständig verwalteter Dokumentdatenbank-Service, der MongoDB-Workloads unterstützt. -
Ein Wide Column-Speicher ist eine Art NoSQL-Datenbank. Sie verwendet Tabellen, Zeilen und Spalten, aber im Gegensatz zu einer relationalen Datenbank können sich die Namen und das Format der Spalten von Zeile zu Zeile in derselben Tabelle unterscheiden. In der Regel werden Wide Column-Speicher in umfangreichen Branchen-Apps für Gerätewartung, Flottenverwaltung und Routenoptimierung eingesetzt. Amazon Keyspaces (für Apache Cassandra)
ist ein skalierbarer, hoch verfügbarer und verwalteter Apache Cassandra-kompatibler Datenbankservice. -
Graph-Datenbanken sind für Anwendungen gedacht, die in Millionen von Beziehungen zwischen hochgradig vernetzten Diagrammdatensätzen mit Millisekunden-Latenz navigieren und diese abfragen müssen. Viele Unternehmen verwenden Graph-Datenbanken für Betrugserkennung, soziale Netzwerke und Empfehlungs-Engines. Amazon Neptune
ist ein schneller, zuverlässiger, vollständig verwalteter Graph-Datenbankservice, der das Erstellen und Ausführen von Anwendungen vereinfacht, die mit hochgradig verbundenen Datensätzen arbeiten. -
Zeitreihen-Datenbanken erfassen, generieren und gewinnen auf effiziente Weise Einblicke aus Daten, die sich im Laufe der Zeit ändern. IoT-Anwendungen, DevOps und industrielle Telemetrie können Zeitreihen-Datenbanken nutzen. Amazon Timestream
ist ein schneller, skalierbarer, vollständig verwalteter Zeitreihen-Datenbankservice für IoT- und Betriebsanwendungen, der das Speichern und Analysieren von Billionen von Ereignissen pro Tag vereinfacht. -
Ledger-Datenbanken bieten eine zentrale und vertrauenswürdige Instanz für die Verwaltung einer skalierbaren, unveränderlichen und kryptografisch überprüfbaren Aufzeichnung von Transaktionen für jede Anwendung. Ledger-Datenbanken werden für Datensatzsysteme, Lieferketten, Registrierungen und sogar Banktransaktionen verwendet. Amazon Quantum Ledger Database (Amazon QLDB)
ist eine vollständig verwaltete Ledger-Datenbank, die ein transparentes, unveränderliches und kryptografisch überprüfbares Transaktionsprotokoll bereitstellt, das sich im Besitz einer zentralen vertrauenswürdigen Stelle befindet. Amazon QLDB verfolgt jede Änderung der Anwendungsdaten und pflegt einen vollständigen und überprüfbaren Änderungsverlauf.
-
Grad des Aufwands für den Implementierungsplan: Wenn eine Workload von einer Datenbanklösung zu einer anderen verschoben wird, stellt dies möglicherweise einen hohen Grad des Aufwands beim Faktorwechsel der Daten und Anwendung dar.
Ressourcen
Zugehörige Dokumente:
Relevante Videos:
Zugehörige Beispiele: