Amazon Keyspaces: So funktioniert's - 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's

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

Architektur auf hohem Niveau: Apache Cassandra im Vergleich zu Amazon Keyspaces

Herkömmliches Apache Cassandra wird in einem Cluster bereitgestellt, 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-Produktionsumgebung kann aus Hunderten von Knoten bestehen, die auf Hunderten von physischen Computern in einem oder mehreren physischen Rechenzentren ausgeführt werden. Dies kann zu einer betrieblichen Belastung für Anwendungsentwickler führen, die neben der Installation, Wartung und dem Betrieb von Software auch Server bereitstellen, patchen und verwalten müssen.

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: auf Abruf 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 passt Ihren Anwendungsdatenverkehr fast sofort an, wenn er steigt oder fällt, und ist somit eine gute Option für Anwendungen mit unvorhersehbarem Datenverkehr.

Der Modus „Bereitgestellte Kapazität“ hilft Ihnen, den Preis für den Durchsatz zu optimieren, wenn Sie einen vorhersehbaren Anwendungsdatenverkehr haben und den Kapazitätsbedarf Ihrer Tabelle im Voraus prognostizieren können. Im Modus „Bereitgestellte Kapazität“ geben Sie die Anzahl der Lese- und Schreibvorgänge pro Sekunde an, die Ihre Anwendung voraussichtlich ausführen soll. 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 mit einem starken Anstieg des Datenverkehrs rechnen, z. B. aufgrund eines wichtigen Ereignisses, von dem Sie erwarten, dass es zu einem starken Tabellenverkehr kommen wird. Weitere Informationen zur Bereitstellung von Lese- und Schreibkapazität finden Sie unter. Lese-/Schreibkapazitätsmodi in Amazon Keyspaces

Amazon Keyspaces (für Apache Cassandra) speichert drei Kopien Ihrer Daten in mehreren Availability Zones, um Haltbarkeit und hohe Verfügbarkeit zu gewährleisten. Darüber hinaus profitieren Sie von einer Rechenzentrums- und Netzwerkarchitektur, die auf die Anforderungen der sicherheitssensibelsten Unternehmen 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 sich mit einem vordefinierten Endpunkt (Hostname und Portnummer) verbindet und CQL-Anweisungen ausgibt. Eine Liste der verfügbaren Endpunkte finden Sie unter. Service-Endpunkte für Amazon Keyspaces

Cassandra-Datenmodell

Die Art und Weise, wie Sie Ihre Daten für Ihren Geschäftsszenario modellieren, ist entscheidend, um eine optimale Leistung von Amazon Keyspaces zu erzielen. Ein schlechtes Datenmodell kann die Leistung erheblich beeinträchtigen.

Obwohl CQL ähnlich aussieht wie SQL, 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

In CQL gibt es keine JOIN s. Daher sollten Sie beim Entwerfen Ihrer Tabellen die Form Ihrer Daten und die Art und Weise, wie Sie für Ihre geschäftlichen Anwendungsfälle darauf zugreifen müssen, berücksichtigen. Dies kann zu einer Deinormalisierung mit 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 sind, und wie sie auf die Partitionen verteilt sind, wird durch Ihren Partitionsschlüssel bestimmt. Die Art und Weise, wie Sie Ihren Partitionsschlüssel definieren, kann erhebliche Auswirkungen auf die Leistung Ihrer Abfragen haben. Bewährte Methoden finden Sie unter So verwenden Sie Partitionsschlüssel effektiv in Amazon Keyspaces.

Primärschlüssel

In Cassandra werden Daten als Schlüssel-Wert-Paar gespeichert. Zu diesem Zweck muss jede Cassandra-Tabelle einen Primärschlüssel haben, der der Schlüssel zu jeder Zeile in der Tabelle ist. Der Primärschlüssel besteht aus einem erforderlichen Partitionsschlüssel und optionalen Clusterspalten. 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 werden. 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 einige wenige Partitionen die meisten Daten enthalten und somit die meisten Festplatten-I/O-Operationen ausführen.

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

Weitere Informationen zum NoSQL-Design und zu Amazon Keyspaces finden Sie unter. Hauptunterschiede und Gestaltungsprinzipien des NoSQL-Designs Weitere Informationen zu Amazon Keyspaces und Datenmodellierung finden Sie unterBewährte Methoden zur Datenmodellierung: Empfehlungen für den Entwurf von Datenmodellen.

Von einer Anwendung aus auf Amazon Keyspaces zugreifen

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-Serviceendpunkt verweisen. Weitere Informationen zu den erforderlichen Anmeldeinformationen finden Sie unter. So erstellen und konfigurieren Sie AWS Anmeldeinformationen für Amazon Keyspaces

Anmerkung

Um Ihnen den Einstieg zu erleichtern, finden Sie end-to-end Codebeispiele für die Verbindung zu Amazon Keyspaces mithilfe verschiedener Cassandra-Client-Treiber im Amazon Keyspaces-Codebeispiel-Repository unter. 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 für Amazon Keyspaces auszuführen, müssen Sie: