Comment estimer la consommation de capacité dans Amazon Keyspaces - 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.

Comment estimer la consommation de capacité dans Amazon Keyspaces

Lorsque vous lisez ou écrivez des données dans Amazon Keyspaces, la quantité d'unités de demande de lecture/écriture (RRUS/WRU) ou d'unités de capacité de lecture/écriture (RCU/WCU) consommées par votre requête dépend de la quantité totale de données qu'Amazon Keyspaces doit traiter pour exécuter la requête. Dans certains cas, les données renvoyées au client peuvent être un sous-ensemble des données qu'Amazon Keyspaces a dû lire pour traiter la requête. Pour les écritures conditionnelles, Amazon Keyspaces consomme de la capacité d'écriture même si le contrôle conditionnel échoue.

Pour estimer la quantité totale de données traitées pour une demande, vous devez tenir compte de la taille codée d'une ligne et du nombre total de lignes. Cette rubrique présente quelques exemples de scénarios et de modèles d'accès courants pour montrer comment Amazon Keyspaces traite les requêtes et comment cela affecte la consommation de capacité. Vous pouvez suivre les exemples pour estimer les besoins en capacité de vos tables et utiliser Amazon CloudWatch pour observer la consommation de capacité de lecture et d'écriture pour ces cas d'utilisation.

Pour plus d'informations sur le calcul de la taille codée des lignes dans Amazon Keyspaces, consultez. Calcul de la taille des lignes dans Amazon Keyspaces

Requêtes de plage

Pour examiner la consommation de capacité de lecture d'une requête de plage, nous utilisons le tableau d'exemple suivant qui utilise le mode capacité à la demande.

pk1 | pk2 | pk3 | ck1 | ck2 | ck3 | value -----+-----+-----+-----+-----+-----+------- a | b | 1 | a | b | 50 | <any value that results in a row size larger than 4KB> a | b | 1 | a | b | 60 | value_1 a | b | 1 | a | b | 70 | <any value that results in a row size larger than 4KB>

Exécutez maintenant la requête suivante sur cette table.

SELECT * FROM amazon_keyspaces.example_table_1 WHERE pk1='a' AND pk2='b' AND pk3=1 AND ck1='a' AND ck2='b' AND ck3 > 50 AND ck3 < 70;

Vous recevez le jeu de résultats suivant à partir de la requête et l'opération de lecture effectuée par Amazon Keyspaces consomme 2 RRU en LOCAL_QUORUM mode cohérence.

pk1 | pk2 | pk3 | ck1 | ck2 | ck3 | value -----+-----+-----+-----+-----+-----+------- a | b | 1 | a | b | 60 | value_1

Amazon Keyspaces utilise 2 RRU pour évaluer les lignes contenant les valeurs ck3=60 et ck3=70 pour traiter la requête. Cependant, Amazon Keyspaces renvoie uniquement la ligne pour laquelle la WHERE condition spécifiée dans la requête est vraie, c'est-à-dire la ligne contenant une valeur. ck3=60 Pour évaluer la plage spécifiée dans la requête, Amazon Keyspaces lit la ligne correspondant à la limite supérieure de la plage, dans ce casck3 = 70, mais ne renvoie pas cette ligne dans le résultat. La consommation de capacité de lecture est basée sur les données lues lors du traitement de la requête, et non sur les données renvoyées.

Limiter les requêtes

Lors du traitement d'une requête qui utilise la LIMIT clause, Amazon Keyspaces lit les lignes jusqu'à la taille de page maximale en essayant de répondre à la condition spécifiée dans la requête. Si Amazon Keyspaces ne trouve pas suffisamment de données correspondantes correspondant à la LIMIT valeur de la première page, un ou plusieurs appels paginés peuvent être nécessaires. Pour poursuivre les lectures sur la page suivante, vous pouvez utiliser un jeton de pagination. La taille de page par défaut est de 1 Mo. Pour réduire la capacité de lecture lorsque vous utilisez LIMIT des clauses, vous pouvez réduire la taille de page. Pour plus d'informations sur la pagination, consultezPagination des résultats dans Amazon Keyspaces.

À titre d'exemple, examinons la requête suivante.

SELECT * FROM my_table WHERE partition_key=1234 LIMIT 1;”

Si vous ne définissez pas le format de page, Amazon Keyspaces lit 1 Mo de données même s'il ne vous renvoie qu'une seule ligne. Pour qu'Amazon Keyspaces ne lise qu'une seule ligne, vous pouvez définir le format de page sur 1 pour cette requête. Dans ce cas, Amazon Keyspaces ne lira qu'une seule ligne, à condition que vous n'ayez pas de lignes expirées en fonction des ime-to-live paramètres T ou des horodatages côté client. Pour réduire la capacité de lecture, nous vous recommandons de définir une taille de page égale à la LIMIT valeur afin de réduire la quantité de données lues par Amazon Keyspaces.

Numérisations de tableaux

Les requêtes qui aboutissent à une analyse complète de la table, par exemple les requêtes utilisant l'ALLOW FILTERINGoption, sont un autre exemple de requêtes qui traitent plus de lectures que ce qu'elles renvoient sous forme de résultats. Et la consommation de capacité de lecture est basée sur les données lues, et non sur les données renvoyées.

Pour l'exemple de numérisation de tables, nous utilisons l'exemple de tableau suivant en mode capacité à la demande.

pk | ck | value ---+----+--------- pk | 10 | <any value that results in a row size larger than 4KB> pk | 20 | value_1 pk | 30 | <any value that results in a row size larger than 4KB>

Amazon Keyspaces crée une table en mode capacité à la demande avec quatre partitions par défaut. Dans cet exemple de tableau, toutes les données sont stockées dans une partition et les trois partitions restantes sont vides.

Exécutez maintenant la requête suivante sur la table.

SELECT * from amazon_keyspaces.example_table_2;

Cette requête entraîne une opération d'analyse de table au cours de laquelle Amazon Keyspaces analyse les quatre partitions de la table et consomme 6 RRU en LOCAL_QUORUM mode de cohérence. Tout d'abord, Amazon Keyspaces consomme 3 RRU pour lire les trois lignes avec. pk=‘pk’ Amazon Keyspaces consomme ensuite les 3 RRU supplémentaires pour scanner les trois partitions vides de la table. Comme cette requête entraîne une analyse de table, Amazon Keyspaces analyse toutes les partitions de la table, y compris les partitions ne contenant pas de données.

Transactions légères

Les transactions légères (LWT) vous permettent d'effectuer des opérations d'écriture conditionnelle sur les données de votre table. Les opérations de mise à jour conditionnelle sont utiles lors de l'insertion, de la mise à jour et de la suppression d'enregistrements en fonction de conditions évaluant l'état actuel.

Dans Amazon Keyspaces, toutes les opérations d'écriture nécessitent la cohérence LOCAL_QUORUM et l'utilisation des LWT est gratuite. La différence pour les LWT est que lorsqu'une vérification de condition LWT aboutit à la valeur FALSE, elle consomme des unités de capacité d'écriture. Le nombre d'unités de capacité d'écriture consommées dépend de la taille de la ligne. Si la taille de ligne est de 2 Ko, l'écriture conditionnelle échouée consomme deux unités de capacité d'écriture. Si la ligne n'existe pas actuellement dans la table, l'opération consomme une unité de capacité d'écriture. En surveillant la ConditionalCheckFailed métrique, CloudWatch vous pouvez déterminer la capacité consommée par les défaillances du contrôle d'état du LWT.

Estimez la consommation de capacité de lecture et d'écriture avec Amazon CloudWatch

Pour estimer et surveiller la consommation de capacité de lecture et d'écriture, vous pouvez utiliser un CloudWatch tableau de bord. Pour plus d'informations sur les statistiques disponibles pour Amazon Keyspaces, consultez. Statistiques et dimensions d'Amazon Keyspaces

Pour surveiller les unités de capacité de lecture et d'écriture consommées par une instruction spécifique avec CloudWatch, vous pouvez suivre ces étapes.

  1. Création d'une nouvelle table avec des exemples de données

  2. Configurez un tableau de bord Amazon Keyspaces pour le CloudWatch tableau. Pour commencer, vous pouvez utiliser un modèle de tableau de bord disponible sur Github.

  3. Exécutez l'instruction CQL, par exemple à l'aide de l'ALLOW FILTERINGoption, et vérifiez les unités de capacité de lecture consommées pour l'analyse complète du tableau dans le tableau de bord.