Funktionale Unterschiede: Amazon Keyspaces im Vergleich zu Apache Cassandra - 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.

Funktionale Unterschiede: Amazon Keyspaces im Vergleich zu Apache Cassandra

Im Folgenden sind die funktionalen Unterschiede zwischen Amazon Keyspaces und Apache Cassandra aufgeführt.

Apache CassandraAPIs, Operationen und Datentypen

Amazon Keyspaces unterstützt alle häufig verwendeten Cassandra-Datenebenenoperationen, z. B. das Erstellen von Schlüsselräumen und Tabellen, das Lesen von Daten und das Schreiben von Daten. Informationen zu den zurzeit unterstützten Komponenten finden Sie unter Unterstützte Cassandra-APIs, Operationen, Funktionen und Datentypen.

Asynchrones Erstellen und Löschen von Schlüsselräumen und Tabellen

Amazon Keyspaces führt Datendefinitionssprache-Operationen (DDL), wie das Erstellen und Löschen von Schlüsselräumen und Tabellen, asynchron aus. Informationen zur Überwachung des Erstellungsstatus von Ressourcen finden Sie unter und. Überprüfen Sie den Status der Schlüsselraumerstellung in Amazon Keyspaces Überprüfen Sie den Status der Tabellenerstellung in Amazon Keyspaces Eine Liste der DDL Aussagen in der CQL Sprachreferenz finden Sie unterDDLAnweisungen (Datendefinitionssprache) in Amazon Keyspaces.

Authentifizierung und Autorisierung

Amazon Keyspaces (für Apache Cassandra) verwendet AWS Identity and Access Management (IAM) für die Benutzerauthentifizierung und -autorisierung und unterstützt die gleichen Autorisierungsrichtlinien wie Apache Cassandra. Daher unterstützt Amazon Keyspaces die Sicherheitskonfigurationsbefehle von Apache Cassandra nicht.

Stapel

Amazon Keyspaces unterstützt nicht protokollierte Batch-Befehle mit bis zu 30 Befehlen pro Batch. In einem Batch sind nur bedingungslose INSERT DELETE Oder-Befehle zulässig. UPDATE Protokollierte Batches werden nicht unterstützt.

Cluster-Konfiguration

Amazon Keyspaces ist serverlos, sodass keine Cluster, Hosts oder virtuellen Java-Maschinen (JVMs) konfiguriert werden müssen. Cassandras Einstellungen für Komprimierung, Komprimierung, Caching, Garbage-Collection und Bloom-Filterung gelten nicht für Amazon Keyspaces und werden ignoriert, falls angegeben.

Verbindungen

Sie können vorhandene Cassandra-Treiber für die Kommunikation mit Amazon Keyspaces verwenden, müssen die Treiber jedoch anders konfigurieren. Amazon Keyspaces unterstützt bis zu 3.000 CQL Abfragen pro TCP Verbindung pro Sekunde, aber die Anzahl der Verbindungen, die ein Treiber herstellen kann, ist unbegrenzt.

Die meisten Open-Source-Cassandra-Treiber richten einen Verbindungspool zu Cassandra ein und verteilen Abfragen über diesen Verbindungspool. Amazon Keyspaces stellt Treibern 9 Peer-IP-Adressen zur Verfügung, und das Standardverhalten der meisten Treiber besteht darin, eine einzige Verbindung zu jeder Peer-IP-Adresse herzustellen. Daher beträgt der maximale CQL Abfragedurchsatz eines Treibers, der die Standardeinstellungen verwendet, 27.000 CQL Abfragen pro Sekunde.

Um diese Zahl zu erhöhen, empfehlen wir, die Anzahl der Verbindungen pro IP-Adresse zu erhöhen, die Ihr Treiber in seinem Verbindungspool verwaltet. Wenn Sie beispielsweise die maximale Anzahl an Verbindungen pro IP-Adresse auf 2 festlegen, verdoppelt sich der maximale Durchsatz Ihres Treibers auf 54.000 CQL Anfragen pro Sekunde.

Als bewährte Methode empfehlen wir, Treiber so zu konfigurieren, dass sie 500 CQL Abfragen pro Sekunde und Verbindung verwenden, um Mehraufwand zu vermeiden und die Verteilung zu verbessern. In diesem Szenario sind für die Planung von 18.000 CQL Abfragen pro Sekunde 36 Verbindungen erforderlich. Die Konfiguration des Treibers für 4 Verbindungen an 9 Endpunkten ermöglicht 36 Verbindungen, die 500 Anfragen pro Sekunde ausführen. Weitere Informationen zu bewährten Methoden für Verbindungen finden Sie unterOptimieren Sie die Client-Treiberverbindungen für die serverlose Umgebung.

Beim Herstellen einer Verbindung mit VPC Endpunkten sind möglicherweise weniger Endpunkte verfügbar. Das bedeutet, dass Sie die Anzahl der Verbindungen in der Treiberkonfiguration erhöhen müssen. Weitere Informationen zu bewährten Methoden für VPC Verbindungen finden Sie unterSo konfigurieren Sie Verbindungen über VPC Endpunkte in Amazon Keyspaces.

INSchlüsselwort

Amazon Keyspaces unterstützt das IN Schlüsselwort in der SELECT Anweisung. INwird mit UPDATE und DELETE nicht unterstützt. Wenn das IN Schlüsselwort in der SELECT Anweisung verwendet wird, werden die Ergebnisse der Abfrage in der Reihenfolge zurückgegeben, in der die Schlüssel in der SELECT Anweisung dargestellt werden. In Cassandra sind die Ergebnisse lexikografisch geordnet.

Bei Verwendung ORDER BY wird eine vollständige Neuanordnung mit deaktivierter Paginierung nicht unterstützt und die Ergebnisse werden innerhalb einer Seite angeordnet. Slice-Abfragen werden mit dem Schlüsselwort nicht unterstützt. IN TOKENSwerden mit dem IN Schlüsselwort nicht unterstützt. Amazon Keyspaces verarbeitet Abfragen mit dem IN Schlüsselwort, indem es Unterabfragen erstellt. Jede Unterabfrage zählt als Verbindung zur Obergrenze von 3.000 CQL Abfragen pro TCP Verbindung pro Sekunde. Weitere Informationen finden Sie unter Verwenden Sie den IN Operator mit der SELECT Anweisung in einer Abfrage in Amazon Keyspaces.

CQLOptimierung des Abfragedurchsatzes

Amazon Keyspaces unterstützt bis zu 3.000 CQL Abfragen pro TCP Verbindung pro Sekunde, aber die Anzahl der Verbindungen, die ein Treiber herstellen kann, ist unbegrenzt.

Die meisten Open-Source-Cassandra-Treiber richten einen Verbindungspool zu Cassandra ein und verteilen Abfragen über diesen Verbindungspool. Amazon Keyspaces stellt Treibern 9 Peer-IP-Adressen zur Verfügung, und das Standardverhalten der meisten Treiber besteht darin, eine einzige Verbindung zu jeder Peer-IP-Adresse herzustellen. Daher beträgt der maximale CQL Abfragedurchsatz eines Treibers, der die Standardeinstellungen verwendet, 27.000 CQL Abfragen pro Sekunde.

Um diese Zahl zu erhöhen, empfehlen wir, die Anzahl der Verbindungen pro IP-Adresse zu erhöhen, die Ihr Treiber in seinem Verbindungspool verwaltet. Wenn Sie beispielsweise die maximale Anzahl an Verbindungen pro IP-Adresse auf 2 festlegen, wird der maximale Durchsatz Ihres Treibers auf 54.000 CQL Anfragen pro Sekunde verdoppelt.

Weitere Informationen zu bewährten Methoden für Verbindungen finden Sie unterOptimieren Sie die Client-Treiberverbindungen für die serverlose Umgebung.

Beim Herstellen einer Verbindung mit VPC Endpunkten sind weniger Endpunkte verfügbar. Das bedeutet, dass Sie die Anzahl der Verbindungen in der Treiberkonfiguration erhöhen müssen. Weitere Informationen zu bewährten Methoden für VPC Endpunktverbindungen finden Sie unterSo konfigurieren Sie Verbindungen über VPC Endpunkte in Amazon Keyspaces.

FROZENSammlungen

Das FROZEN Schlüsselwort in Cassandra serialisiert mehrere Komponenten eines Sammlungsdatentyps zu einem einzigen unveränderlichen Wert, der wie ein behandelt wird. BLOB INSERTund UPDATE Anweisungen überschreiben die gesamte Sammlung.

Amazon Keyspaces unterstützt standardmäßig bis zu fünf Verschachtelungsebenen für eingefrorene Sammlungen. Weitere Informationen finden Sie unter Amazon Keyspaces-Servicekontingente.

Amazon Keyspaces unterstützt keine Ungleichheitsvergleiche, bei denen die gesamte eingefrorene Sammlung in einer Bedingung UPDATE oder SELECT Anweisung verwendet wird. Das Verhalten für Sammlungen und eingefrorene Sammlungen ist in Amazon Keyspaces dasselbe.

Wenn Sie eingefrorene Sammlungen mit clientseitigen Zeitstempeln verwenden und der Zeitstempel eines Schreibvorgangs dem Zeitstempel einer vorhandenen Spalte entspricht, die nicht abgelaufen oder als veraltet markiert ist, führt Amazon Keyspaces keine Vergleiche durch. Stattdessen kann der Server den neuesten Writer ermitteln, und der letzte Writer gewinnt.

Weitere Informationen zu eingefrorenen Sammlungen finden Sie unterSammlungstypen.

Einfache Transaktionen

Amazon Keyspaces (für Apache Cassandra) unterstützt vollständig die Funktionen zum Vergleichen und Einstellen von DELETE BefehlenINSERT, undUPDATE, die in Apache Cassandra als Lightweight Transactions (LWTs) bezeichnet werden. Als serverloses Angebot bietet Amazon Keyspaces (für Apache Cassandra) gleichbleibende Leistung in jeder Größenordnung, auch für einfache Transaktionen. Mit Amazon Keyspaces gibt es keine Leistungseinbußen bei der Verwendung einfacher Transaktionen.

Load Balancing

Die system.peers Tabelleneinträge entsprechen den Load Balancern von Amazon Keyspaces. Um optimale Ergebnisse zu erzielen, empfehlen wir, eine Round-Robin-Load-Balancing-Richtlinie zu verwenden und die Anzahl der Verbindungen pro IP an die Anforderungen Ihrer Anwendung anzupassen.

Paginierung

Amazon Keyspaces paginiert Ergebnisse auf der Grundlage der Anzahl der Zeilen, die es liest, um eine Anfrage zu verarbeiten, und nicht auf der Anzahl der Zeilen, die in der Ergebnismenge zurückgegeben werden. Daher können einige Seiten weniger Zeilen enthalten, als Sie PAGE SIZE für gefilterte Abfragen angeben. Darüber hinaus paginiert Amazon Keyspaces die Ergebnisse nach dem Lesen von 1 MB Daten automatisch, um Kunden eine konsistente Leseleistung im einstelligen Millisekundenbereich zu bieten. Weitere Informationen finden Sie unter Ergebnisse in Amazon Keyspaces paginieren.

In Tabellen mit statischen Spalten legen sowohl Apache Cassandra als auch Amazon Keyspaces den statischen Spaltenwert der Partition am Anfang jeder Seite in einer mehrseitigen Abfrage fest. Wenn eine Tabelle aufgrund des Paginierungsverhaltens von Amazon Keyspaces große Datenzeilen enthält, ist die Wahrscheinlichkeit höher, dass das Ergebnis eines Bereichslesevorgangs für Amazon Keyspaces mehr Seiten zurückgibt als für Apache Cassandra. Folglich besteht in Amazon Keyspaces eine höhere Wahrscheinlichkeit, dass gleichzeitige Aktualisierungen der statischen Spalte dazu führen können, dass der Wert der statischen Spalte auf verschiedenen Seiten des Ergebnissatzes für den Bereich Read unterschiedlich ist.

Partitionierer

Die Standard-Partitionierung in Amazon Keyspaces ist Cassandra-Compatible. Murmur3Partitioner Darüber hinaus haben Sie die Wahl, entweder die Amazon Keyspaces DefaultPartitioner oder die RandomPartitioner Cassandra-kompatiblen zu verwenden.

Mit Amazon Keyspaces können Sie den Partitionierer für Ihr Konto sicher ändern, ohne Ihre Amazon Keyspaces-Daten neu laden zu müssen. Nach Abschluss der Konfigurationsänderung, die etwa 10 Minuten dauert, sehen Kunden die neue Partitionierungseinstellung automatisch, wenn sie das nächste Mal eine Verbindung herstellen. Weitere Informationen finden Sie unter Arbeiten mit Partitionierern in Amazon Keyspaces.

Vorbereitete Aussagen

Amazon Keyspaces unterstützt die Verwendung von vorbereiteten Anweisungen für Datenmanipulationssprachen (DML), z. B. das Lesen und Schreiben von Daten. Amazon Keyspaces unterstützt derzeit nicht die Verwendung von vorbereiteten Anweisungen für Data Definition Language (DDL) -Operationen, wie das Erstellen von Tabellen und Schlüsselräumen. DDLOperationen müssen außerhalb von vorbereiteten Anweisungen ausgeführt werden.

Bereich löschen

Amazon Keyspaces unterstützt das Löschen von Zeilen im Bereich. Ein Bereich ist ein zusammenhängender Satz von Zeilen innerhalb einer Partition. Sie geben einen Bereich in einer DELETE Operation mithilfe einer WHERE Klausel an. Sie können den Bereich als gesamte Partition angeben.

Darüber hinaus können Sie einen Bereich als Teilmenge zusammenhängender Zeilen innerhalb einer Partition angeben, indem Sie relationale Operatoren verwenden (z. B. '>', '<') oder indem Sie den Partitionsschlüssel angeben und eine oder mehrere Clusterspalten weglassen. Mit Amazon Keyspaces können Sie bis zu 1.000 Zeilen innerhalb eines Bereichs in einem einzigen Vorgang löschen.

Bereichslöschungen sind nicht isoliert. Das Löschen einzelner Zeilen ist für andere Vorgänge sichtbar, während ein Bereich gelöscht wird.

Systemtabellen

Amazon Keyspaces füllt die Systemtabellen, die für die Open-Source-Cassandra-Treiber von Apache 2.0 erforderlich sind. Die Systemtabellen, die für einen Client sichtbar sind, enthalten Informationen, die für den authentifizierten Benutzer eindeutig sind. Die Systemtabellen werden vollständig von Amazon Keyspaces gesteuert und sind schreibgeschützt. Weitere Informationen finden Sie unter Systemschlüsselräume in Amazon Keyspaces.

Ein schreibgeschützter Zugriff auf Systemtabellen ist erforderlich, und Sie können ihn mithilfe von Zugriffsrichtlinien steuern. IAM Weitere Informationen finden Sie unter Verwalten des Zugriffs mit Richtlinien. Sie müssen tagbasierte Zugriffskontrollrichtlinien für Systemtabellen unterschiedlich definieren, je nachdem, ob Sie die AWS SDKoder Cassandra Query Language (CQL) API -Aufrufe über Cassandra-Treiber und Entwicklertools. Weitere Informationen zur tagbasierten Zugriffskontrolle für Systemtabellen finden Sie unter. Amazon Keyspaces-Ressourcenzugriff basierend auf Tags

Wenn Sie über VPCAmazon-Endpunkte auf Amazon Keyspaces zugreifen, werden in der system.peers Tabelle Einträge für jeden VPC Amazon-Endpunkt angezeigt, für den Amazon Keyspaces Zugriffsberechtigungen besitzt. Infolgedessen gibt Ihr Cassandra-Treiber möglicherweise eine Warnmeldung über den Kontrollknoten selbst in der Tabelle aus. system.peers Sie können diese Warnung getrost ignorieren.

Zeitstempel

In Amazon Keyspaces sind Zeitstempel auf Zellenebene, die mit den Standardzeitstempeln in Apache Cassandra kompatibel sind, eine optionale Funktion.

Die USING TIMESTAMP Klausel und die WRITETIME Funktion sind nur verfügbar, wenn clientseitige Zeitstempel für eine Tabelle aktiviert sind. Weitere Informationen zu clientseitigen Zeitstempeln in Amazon Keyspaces finden Sie unter. Clientseitige Zeitstempel in Amazon Keyspaces