View a markdown version of this page

Amazon Keyspaces: So funktioniert es - Amazon Keyspaces (für Apache Cassandra)

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Amazon Keyspaces: So funktioniert es

Amazon Keyspaces beseitigt den Verwaltungsaufwand für die Verwaltung von Cassandra. Um zu verstehen, warum, ist es hilfreich, mit der Cassandra-Architektur zu beginnen und sie dann mit Amazon Keyspaces zu vergleichen.

High-level Architektur: Apache Cassandra im Vergleich zu Amazon Keyspaces

Traditionell wird Apache Cassandra in einem Cluster eingesetzt, der aus einem oder mehreren Knoten besteht. Sie sind dafür verantwortlich, jeden Knoten zu verwalten und Knoten hinzuzufügen und zu entfernen, wenn Ihr Cluster skaliert.

Ein Client-Programm greift auf Cassandra zu, indem es eine Verbindung zu einem der Knoten herstellt und Cassandra Query Language (CQL) -Anweisungen ausgibt. CQL ähnelt SQL, der beliebten Sprache, die in relationalen Datenbanken verwendet wird. Obwohl Cassandra keine relationale Datenbank ist, bietet CQL eine vertraute Oberfläche zum Abfragen und Bearbeiten von Daten in Cassandra.

Das folgende Diagramm zeigt einen einfachen Apache Cassandra-Cluster, der aus vier Knoten besteht.

Diagramm eines Apache Cassandra-Clusters mit 4 Knoten, der mit der Client-Anwendung interagiert.

Eine Cassandra-Produktionsbereitstellung kann aus Hunderten von Knoten bestehen, die auf Hunderten von physischen Computern in einem oder mehreren physischen Rechenzentren ausgeführt werden. Dies kann für Anwendungsentwickler, die neben der Installation, Wartung und dem Betrieb von Software auch Server bereitstellen, patchen und verwalten müssen, eine betriebliche Belastung darstellen.

Mit Amazon Keyspaces (für Apache Cassandra) müssen Sie keine Server bereitstellen, patchen oder verwalten, sodass Sie sich auf die Entwicklung besserer Anwendungen konzentrieren können. Amazon Keyspaces bietet zwei Durchsatzkapazitätsmodi für Lese- und Schreibvorgänge: bei Bedarf und bereitgestellt. Sie können den Durchsatzkapazitätsmodus Ihrer Tabelle wählen, um den Preis für Lese- und Schreibvorgänge auf der Grundlage der Vorhersagbarkeit und Variabilität Ihrer Arbeitslast zu optimieren.

Im On-Demand-Modus zahlen Sie nur für die Lese- und Schreibvorgänge, die Ihre Anwendung tatsächlich ausführt. Sie müssen die Durchsatzkapazität Ihrer Tabelle nicht im Voraus angeben. Amazon Keyspaces nimmt Ihren Anwendungsdatenverkehr fast sofort auf, wenn er hoch- oder heruntergeht, und ist daher eine gute Option für Anwendungen mit unvorhersehbarem Datenverkehr.

Der Modus „Bereitgestellte Kapazität“ hilft Ihnen dabei, den Durchsatzpreis zu optimieren, wenn Sie über einen vorhersehbaren Anwendungsdatenverkehr verfügen und die Kapazitätsanforderungen Ihrer Tabelle im Voraus prognostizieren können. Im Modus für bereitgestellte Kapazität geben Sie die Anzahl der Lese- und Schreibvorgänge pro Sekunde an, die Ihre Anwendung voraussichtlich ausführen wird. Sie können die bereitgestellte Kapazität für Ihre Tabelle automatisch erhöhen und verringern, indem Sie die automatische Skalierung aktivieren.

Sie können den Kapazitätsmodus Ihrer Tabelle einmal täglich ändern, wenn Sie mehr über die Datenverkehrsmuster Ihres Workloads erfahren, oder wenn Sie einen starken Anstieg des Datenverkehrs erwarten, z. B. aufgrund eines wichtigen Ereignisses, von dem Sie erwarten, dass es zu einem hohen Tabellenverkehr führen wird. Weitere Informationen zur Bereitstellung von Lese- und Schreibkapazität finden Sie unterread/write Kapazitätsmodi in Amazon Keyspaces konfigurieren.

Amazon Keyspaces (für Apache Cassandra) speichert drei Kopien Ihrer Daten in mehreren Availability Zones, um Haltbarkeit und Hochverfügbarkeit zu gewährleisten. Darüber hinaus profitieren Sie von einer Rechenzentrums- und Netzwerkarchitektur, die auf die Anforderungen der sicherheitsrelevantesten Organisationen zugeschnitten ist. Die Verschlüsselung im Ruhezustand wird automatisch aktiviert, wenn Sie eine neue Amazon Keyspaces-Tabelle erstellen und für alle Client-Verbindungen Transport Layer Security (TLS) erforderlich ist. Zu den zusätzlichen AWS Sicherheitsfunktionen gehören Überwachung und Virtual Private Cloud (VPC) -Endpunkte. AWS Identity and Access Management Eine Übersicht über alle verfügbaren Sicherheitsfunktionen finden Sie unter. Sicherheit in Amazon Keyspaces (für Apache Cassandra)

Das folgende Diagramm zeigt die Architektur von Amazon Keyspaces.

Diagramm der Interaktion von Amazon Keyspaces mit der Client-Anwendung.

Ein Client-Programm greift auf Amazon Keyspaces zu, indem es eine Verbindung zu einem vorbestimmten Endpunkt (Hostname und Portnummer) herstellt und CQL-Anweisungen ausgibt. Eine Liste der verfügbaren Endpunkte finden Sie unter. Serviceendpunkte für Amazon Keyspaces

Cassandra-Datenmodell

Wie Sie Ihre Daten für Ihren Geschäftsfall modellieren, ist entscheidend, um eine optimale Leistung von Amazon Keyspaces zu erzielen. Ein schlechtes Datenmodell kann die Leistung erheblich beeinträchtigen.

Obwohl CQL SQL ähnlich sieht, sind die Backends von Cassandra und relationalen Datenbanken sehr unterschiedlich und müssen unterschiedlich angegangen werden. Im Folgenden sind einige der wichtigsten Aspekte aufgeführt, die es zu berücksichtigen gilt:

Speicherung

Sie können Ihre Cassandra-Daten in Tabellen visualisieren, wobei jede Zeile einen Datensatz und jede Spalte ein Feld innerhalb dieses Datensatzes darstellt.

Tabellendesign: Zuerst abfragen

Es gibt keine JOIN s in CQL. Daher sollten Sie Ihre Tabellen mit der Form Ihrer Daten und der Art und Weise, wie Sie für Ihre geschäftlichen Anwendungsfälle darauf zugreifen müssen, entwerfen. Dies kann zu einer Deinormalisierung bei duplizierten Daten führen. Sie sollten jede Ihrer Tabellen speziell für ein bestimmtes Zugriffsmuster entwerfen.

Partitionen

Ihre Daten werden in Partitionen auf der Festplatte gespeichert. Die Anzahl der Partitionen, in denen Ihre Daten gespeichert werden, und wie sie auf die Partitionen verteilt werden, wird durch Ihren Partitionsschlüssel bestimmt. Wie Sie Ihren Partitionsschlüssel definieren, kann erhebliche Auswirkungen auf die Leistung Ihrer Abfragen haben. Bewährte Methoden finden Sie unter Wie benutzt man Partitionsschlüssel effektiv in Amazon Keyspaces.

Primärschlüssel

In Cassandra werden Daten als Schlüssel-Wert-Paar gespeichert. Jede Cassandra-Tabelle muss einen Primärschlüssel haben, der der eindeutige Schlüssel für jede Zeile in der Tabelle ist. Der Primärschlüssel setzt sich aus einem erforderlichen Partitionsschlüssel und optionalen Clusterspalten zusammen. Die Daten, aus denen der Primärschlüssel besteht, müssen für alle Datensätze in einer Tabelle eindeutig sein.

  • Partitionsschlüssel — Der Partitionsschlüsselteil des Primärschlüssels ist erforderlich und bestimmt, in welcher Partition Ihres Clusters die Daten gespeichert sind. Der Partitionsschlüssel kann eine einzelne Spalte oder ein zusammengesetzter Wert sein, der aus zwei oder mehr Spalten besteht. Sie würden einen zusammengesetzten Partitionsschlüssel verwenden, wenn ein einspaltiger Partitionsschlüssel dazu führen würde, dass eine einzelne Partition oder nur sehr wenige Partitionen die meisten Daten enthalten und somit die meisten I/O Festplattenoperationen ausführen.

  • Clustering-Spalte — Die optionale Cluster-Spalte Ihres Primärschlüssels bestimmt, wie die Daten innerhalb der einzelnen Partitionen gruppiert und sortiert werden. Wenn Sie eine Cluster-Spalte in Ihren Primärschlüssel aufnehmen, kann die Cluster-Spalte eine oder mehrere Spalten enthalten. Wenn die Cluster-Spalte mehrere Spalten enthält, wird die Sortierreihenfolge durch die Reihenfolge bestimmt, in der die Spalten in der Cluster-Spalte von links nach rechts aufgeführt sind.

Weitere Informationen zum NoSQL-Design und zu Amazon Keyspaces finden Sie unter. Die wichtigsten Unterschiede und Entwurfsprinzipien des NoSQL-Designs Weitere Informationen zu Amazon Keyspaces und Datenmodellierung finden Sie unter. Bewährte Methoden der Datenmodellierung: Empfehlungen für den Entwurf von Datenmodellen

Zugreifen auf Amazon Keyspaces von einer Anwendung aus

Amazon Keyspaces (für Apache Cassandra) implementiert die Apache Cassandra Query Language (CQL) API, sodass Sie CQL- und Cassandra-Treiber verwenden können, die Sie bereits verwenden. Das Aktualisieren Ihrer Anwendung ist so einfach wie das Aktualisieren Ihres Cassandra-Treibers oder Ihrer cqlsh Konfiguration, sodass sie auf den Amazon Keyspaces-Service-Endpunkt verweisen. Weitere Informationen zu den erforderlichen Anmeldeinformationen finden Sie unter AWS Anmeldeinformationen für Amazon Keyspaces erstellen und konfigurieren.

Anmerkung

Um Ihnen den Einstieg zu erleichtern, finden Sie im Amazon Keyspaces-Codebeispiel-Repository unter Verwendung verschiedener Cassandra-Client-Treiber umfassende Codebeispiele für die Verbindung zu Amazon Keyspaces. GitHub

Stellen Sie sich das folgende Python-Programm vor, das eine Verbindung zu einem Cassandra-Cluster herstellt und eine Tabelle abfragt.

from cassandra.cluster import Cluster #TLS/SSL configuration goes here ksp = 'MyKeyspace' tbl = 'WeatherData' cluster = Cluster(['NNN.NNN.NNN.NNN'], port=NNNN) session = cluster.connect(ksp) session.execute('USE ' + ksp) rows = session.execute('SELECT * FROM ' + tbl) for row in rows: print(row)

Um dasselbe Programm mit Amazon Keyspaces auszuführen, müssen Sie: