Différences fonctionnelles : Amazon Keyspaces et Apache Cassandra - Amazon Keyspaces (pour Apache Cassandra)

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Différences fonctionnelles : Amazon Keyspaces et Apache Cassandra

Voici les différences fonctionnelles entre Amazon Keyspaces et Apache Cassandra.

Apache CassandraAPIs, opérations et types de données

Amazon Keyspaces prend en charge toutes les opérations courantes du plan de données Cassandra, telles que la création d'espaces de touches et de tables, la lecture de données et l'écriture de données. Pour voir ce qui est actuellement pris en charge, veuillez consulter API, opérations, fonctions et types de données Cassandra pris en charge.

Création et suppression asynchrones d'espaces clés et de tables

Amazon Keyspaces effectue des opérations en langage de définition des données (DDL), telles que la création et la suppression d'espaces clés et de tables, de manière asynchrone. Pour savoir comment surveiller l'état de création des ressources, consultez Vérifiez le statut de création des espaces de touches dans Amazon Keyspaces etVérifiez l'état de création des tables dans Amazon Keyspaces. Pour obtenir la liste des DDL instructions contenues dans la référence CQL linguistique, voirDDLdéclarations (langage de définition des données) dans Amazon Keyspaces.

Authentification et autorisation

Amazon Keyspaces (pour Apache Cassandra) utilise AWS Identity and Access Management (IAM) pour l'authentification et l'autorisation des utilisateurs, et prend en charge les politiques d'autorisation équivalentes à celles d'Apache Cassandra. Amazon Keyspaces ne prend donc pas en charge les commandes de configuration de sécurité d'Apache Cassandra.

Par lots

Amazon Keyspaces prend en charge les commandes par lots non enregistrées contenant jusqu'à 30 commandes par lot. Seules les commandes inconditionnelles INSERT, UPDATE ou DELETE sont autorisées dans un lot. Les lots consignés ne sont pas pris en charge.

Configuration de cluster

Amazon Keyspaces fonctionne sans serveur, il n'y a donc pas de clusters, d'hôtes ou de machines virtuelles Java (JVMs) à configurer. Les paramètres de Cassandra relatifs au compactage, à la compression, à la mise en cache, à la collecte des déchets et au filtrage des floraisons ne sont pas applicables à Amazon Keyspaces et sont ignorés s'ils sont spécifiés.

Connexions

Vous pouvez utiliser les pilotes Cassandra existants pour communiquer avec Amazon Keyspaces, mais vous devez les configurer différemment. Amazon Keyspaces prend en charge jusqu'à 3 000 CQL requêtes par TCP connexion et par seconde, mais le nombre de connexions qu'un conducteur peut établir est illimité.

La plupart des pilotes Cassandra open source établissent un pool de connexions avec Cassandra et équilibrent la charge des requêtes sur ce pool de connexions. Amazon Keyspaces expose 9 adresses IP homologues aux pilotes, et le comportement par défaut de la plupart des conducteurs est d'établir une connexion unique avec chaque adresse IP homologue. Par conséquent, le débit de CQL requêtes maximal d'un pilote utilisant les paramètres par défaut est de 27 000 CQL requêtes par seconde.

Pour augmenter ce nombre, nous vous recommandons d'augmenter le nombre de connexions par adresse IP que votre pilote maintient dans son groupe de connexions. Par exemple, si vous définissez le nombre maximum de connexions par adresse IP sur 2, le débit maximal de votre pilote est doublé pour le porter à 54 000 CQL requêtes par seconde.

Il est recommandé de configurer les pilotes de manière à ce qu'ils utilisent 500 CQL requêtes par seconde et par connexion afin de réduire les coûts et d'améliorer la distribution. Dans ce scénario, la planification de 18 000 CQL requêtes par seconde nécessite 36 connexions. La configuration du pilote pour 4 connexions sur 9 points de terminaison permet d'obtenir 36 connexions effectuant 500 demandes par seconde. Pour plus d'informations sur les meilleures pratiques en matière de connexions, consultezOptimisation des connexions client-pilote pour l'environnement sans serveur.

Lorsque vous vous connectez à des VPC points de terminaison, il se peut qu'il y ait moins de points de terminaison disponibles. Cela signifie que vous devez augmenter le nombre de connexions dans la configuration du pilote. Pour plus d'informations sur les meilleures pratiques en matière de VPC connexions, consultezComment configurer les connexions via des VPC points de terminaison dans Amazon Keyspaces.

INmot clé

Amazon Keyspaces prend en charge le IN mot clé dans la SELECT déclaration. INn'est pas compatible avec UPDATE etDELETE. Lorsque vous utilisez le IN mot clé dans l'SELECTinstruction, les résultats de la requête sont renvoyés dans l'ordre dans lequel les clés sont présentées dans l'SELECTinstruction. Dans Cassandra, les résultats sont classés lexicographiquement.

Lors de l'utilisation ORDER BY, la réorganisation complète avec pagination désactivée n'est pas prise en charge et les résultats sont classés au sein d'une page. Les requêtes Slice ne sont pas prises en charge avec le IN mot clé. TOKENSne sont pas pris en charge par le IN mot clé. Amazon Keyspaces traite les requêtes avec le IN mot clé en créant des sous-requêtes. Chaque sous-requête est considérée comme une connexion dans le cadre de la limite de 3 000 CQL requêtes par TCP connexion et par seconde. Pour de plus amples informations, veuillez consulter Utiliser l'INopérateur avec l'SELECTinstruction dans une requête dans Amazon Keyspaces.

CQLréglage du débit des requêtes

Amazon Keyspaces prend en charge jusqu'à 3 000 CQL requêtes par TCP connexion et par seconde, mais le nombre de connexions qu'un conducteur peut établir est illimité.

La plupart des pilotes Cassandra open source établissent un pool de connexions avec Cassandra et équilibrent la charge des requêtes sur ce pool de connexions. Amazon Keyspaces expose 9 adresses IP homologues aux pilotes, et le comportement par défaut de la plupart des conducteurs est d'établir une connexion unique avec chaque adresse IP homologue. Par conséquent, le débit de CQL requêtes maximal d'un pilote utilisant les paramètres par défaut sera de 27 000 CQL requêtes par seconde.

Pour augmenter ce nombre, nous vous recommandons d'augmenter le nombre de connexions par adresse IP que votre pilote maintient dans son groupe de connexions. Par exemple, si vous définissez le nombre maximum de connexions par adresse IP sur 2, vous doublerez le débit maximal de votre pilote pour le porter à 54 000 CQL requêtes par seconde.

Pour plus d'informations sur les meilleures pratiques en matière de connexions, consultezOptimisation des connexions client-pilote pour l'environnement sans serveur.

Lorsque vous vous connectez à des VPC points de terminaison, moins de points de terminaison sont disponibles. Cela signifie que vous devez augmenter le nombre de connexions dans la configuration du pilote. Pour plus d'informations sur les meilleures pratiques en matière de connexions aux VPC terminaux, consultezComment configurer les connexions via des VPC points de terminaison dans Amazon Keyspaces.

FROZENcollections

Le FROZEN mot clé de Cassandra sérialise plusieurs composants d'un type de données de collection en une seule valeur immuable traitée comme un. BLOB INSERTet les UPDATE instructions remplacent l'ensemble de la collection.

Amazon Keyspaces prend en charge par défaut jusqu'à cinq niveaux d'imbrication pour les collections figées. Pour de plus amples informations, veuillez consulter Quotas de service Amazon Keyspaces.

Amazon Keyspaces ne prend pas en charge les comparaisons d'inégalités qui utilisent l'intégralité de la collection figée dans un conditionnel UPDATE ou SELECT une instruction. Le comportement des collections et des collections gelées est le même dans Amazon Keyspaces.

Lorsque vous utilisez des collections figées avec des horodatages côté client, dans le cas où l'horodatage d'une opération d'écriture est le même que celui d'une colonne existante qui n'est ni expirée ni gravée, Amazon Keyspaces n'effectue aucune comparaison. Au lieu de cela, il permet au serveur de déterminer le dernier rédacteur, et c'est le dernier rédacteur qui gagne.

Pour plus d'informations sur les collections congelées, consultezTypes de collections.

Transactions légères

Amazon Keyspaces (pour Apache Cassandra) prend entièrement en charge les fonctionnalités de comparaison et de définition surINSERT, et DELETE les commandesUPDATE, connues sous le nom de transactions légères (LWTs) dans Apache Cassandra. En tant qu'offre sans serveur, Amazon Keyspaces (pour Apache Cassandra) fournit des performances constantes à toutes les échelles, y compris pour les transactions légères. Avec Amazon Keyspaces, l'utilisation de transactions légères n'entraîne aucune baisse de performance.

Equilibrage de charge

Les entrées du system.peers tableau correspondent aux équilibreurs de charge Amazon Keyspaces. Pour de meilleurs résultats, nous vous recommandons d'utiliser une politique d'équilibrage de charge circulaire et d'ajuster le nombre de connexions par IP en fonction des besoins de votre application.

Pagination

Amazon Keyspaces pagine les résultats en fonction du nombre de lignes lues pour traiter une demande, et non du nombre de lignes renvoyées dans le jeu de résultats. Par conséquent, certaines pages peuvent contenir moins de lignes que ce que vous spécifiez PAGE SIZE pour les requêtes filtrées. En outre, Amazon Keyspaces pagine automatiquement les résultats après avoir lu 1 Mo de données afin de fournir aux clients des performances de lecture cohérentes à un chiffre en millisecondes. Pour de plus amples informations, veuillez consulter Paginer les résultats dans Amazon Keyspaces.

Dans les tables comportant des colonnes statiques, Apache Cassandra et Amazon Keyspaces définissent la valeur de colonne statique de la partition au début de chaque page dans une requête multipage. Lorsqu'une table comporte de grandes lignes de données, en raison du comportement de pagination d'Amazon Keyspaces, il est plus probable que le résultat d'une opération de lecture par plage renvoie plus de pages pour Amazon Keyspaces que pour Apache Cassandra. Par conséquent, il est plus probable dans Amazon Keyspaces que des mises à jour simultanées de la colonne statique entraînent une différence de valeur de colonne statique entre les différentes pages du jeu de résultats de lecture de la plage.

Cloisons

Le partitionneur par défaut d'Amazon Keyspaces est compatible avec Cassandra. Murmur3Partitioner De plus, vous avez le choix d'utiliser soit les Amazon Keyspaces, soit les appareils compatibles avec DefaultPartitioner Cassandra. RandomPartitioner

Avec Amazon Keyspaces, vous pouvez modifier le partitionneur de votre compte en toute sécurité sans avoir à recharger vos données Amazon Keyspaces. Une fois la modification de configuration terminée, qui prend environ 10 minutes, les clients verront le nouveau partitionneur se configurer automatiquement lors de leur prochaine connexion. Pour de plus amples informations, veuillez consulter Utilisation des partitionneurs dans Amazon Keyspaces.

Déclarations préparées

Amazon Keyspaces prend en charge l'utilisation d'instructions préparées pour les opérations du langage de manipulation de données (DML), telles que la lecture et l'écriture de données. Amazon Keyspaces ne prend actuellement pas en charge l'utilisation d'instructions préparées pour les opérations du langage de définition des données (DDL), telles que la création de tables et d'espaces de touches. DDLles opérations doivent être exécutées en dehors des instructions préparées.

Supprimer une plage

Amazon Keyspaces prend en charge la suppression de lignes dans une plage. Une plage est un ensemble contigu de lignes au sein d'une partition. Vous spécifiez une plage dans une DELETE opération à l'aide d'une WHERE clause. Vous pouvez spécifier que la plage correspond à une partition complète.

En outre, vous pouvez définir une plage comme un sous-ensemble de lignes contiguës au sein d'une partition en utilisant des opérateurs relationnels (par exemple, « > », « < ») ou en incluant la clé de partition et en omettant une ou plusieurs colonnes de clustering. Avec Amazon Keyspaces, vous pouvez supprimer jusqu'à 1 000 lignes au sein d'une plage en une seule opération.

Les suppressions de plages ne sont pas isolées. Les suppressions de lignes individuelles sont visibles pour les autres opérations lorsqu'une suppression de plage est en cours.

Tables système

Amazon Keyspaces remplit les tables système requises par les pilotes open source Cassandra d'Apache 2.0. Les tables système visibles par un client contiennent des informations propres à l'utilisateur authentifié. Les tables système sont entièrement contrôlées par Amazon Keyspaces et sont en lecture seule. Pour de plus amples informations, veuillez consulter Keyspaces du système dans Amazon Keyspaces.

L'accès en lecture seule aux tables système est requis, et vous pouvez le contrôler à l'aide de politiques d'IAMaccès. Pour de plus amples informations, veuillez consulter Gestion des accès à l’aide de politiques. Vous devez définir des politiques de contrôle d'accès basées sur des balises pour les tables système différemment selon que vous utilisez ou non AWS SDKou des API appels Cassandra Query Language (CQL) via les pilotes Cassandra et les outils de développement. Pour en savoir plus sur le contrôle d'accès basé sur des balises pour les tables système, consultez Accès aux ressources Amazon Keyspaces basé sur des balises.

Si vous accédez à Amazon Keyspaces via des VPCpoints de terminaison Amazon, des entrées apparaissent dans le system.peers tableau pour chaque point de terminaison Amazon VPC autorisé à consulter par Amazon Keyspaces. Par conséquent, votre pilote Cassandra peut émettre un message d'avertissement concernant le nœud de contrôle lui-même dans le system.peers tableau. Vous pouvez ignorer cet avertissement en toute sécurité.

Horodatages

Dans Amazon Keyspaces, les horodatages au niveau des cellules compatibles avec les horodatages par défaut d'Apache Cassandra sont une fonctionnalité optionnelle.

La USING TIMESTAMP clause et la WRITETIME fonction ne sont disponibles que lorsque les horodatages côté client sont activés pour une table. Pour en savoir plus sur les horodatages côté client dans Amazon Keyspaces, consultez. Horodatages côté client dans Amazon Keyspaces