Estimer la taille des lignes 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.

Estimer la taille des lignes dans Amazon Keyspaces

Amazon Keyspaces fournit un stockage entièrement géré qui offre des performances de lecture et d'écriture à un chiffre en millisecondes et stocke les données de manière durable sur plusieurs AWS Zones de disponibilité. Amazon Keyspaces associe des métadonnées à toutes les lignes et à toutes les colonnes clés primaires afin de garantir un accès efficace aux données et une haute disponibilité.

Cette section explique comment estimer la taille codée des lignes dans Amazon Keyspaces. La taille de ligne codée est utilisée lors du calcul de votre facture et de votre quota d'utilisation. Vous devez également utiliser la taille de ligne codée lorsque vous calculez les exigences de capacité de débit allouées pour les tables. Pour calculer la taille codée des lignes dans Amazon Keyspaces, vous pouvez suivre les directives suivantes.

  • Pour les colonnes ordinaires, qui ne sont pas des clés primaires, les colonnes de clustering ou les STATIC colonnes, utilisez la taille brute des données de cellule en fonction du type de données et ajoutez les métadonnées requises. Pour plus d'informations sur les types de données pris en charge dans Amazon Keyspaces, consultez. Types de données Certaines des principales différences dans la manière dont Amazon Keyspaces stocke les valeurs des types de données et les métadonnées sont répertoriées ci-dessous.

  • L'espace requis pour chaque nom de colonne est stocké à l'aide d'un identifiant de colonne et ajouté à chaque valeur de données stockée dans la colonne. La valeur de stockage de l'identifiant de colonne dépend du nombre total de colonnes de votre table :

    • 1 à 62 colonnes : 1 octet

    • 63 à 124 colonnes : 2 octets

    • 125 à 186 colonnes : 3 octets

    Pour chaque 62 colonnes supplémentaires, ajoutez 1 octet. Notez que dans Amazon Keyspaces, jusqu'à 225 colonnes normales peuvent être modifiées à l'aide d'une seule instruction INSERT ou UPDATE d'une seule instruction. Pour de plus amples informations, veuillez consulter Quotas de service Amazon Keyspaces.

  • Les clés de partition peuvent contenir jusqu'à 2 048 octets de données. Chaque colonne clé de la clé de partition nécessite jusqu'à 3 octets de métadonnées. Lorsque vous calculez la taille de votre ligne, vous devez partir du principe que chaque colonne de clé de partition utilise les 3 octets complets de métadonnées.

  • Les colonnes de clustering peuvent stocker jusqu'à 850 octets de données. Outre la taille de la valeur des données, chaque colonne de clustering nécessite jusqu'à 20 % de la taille de la valeur des données pour les métadonnées. Lorsque vous calculez la taille de votre ligne, vous devez ajouter 1 octet de métadonnées pour chaque valeur de 5 octets de données de colonne de clustering.

  • Amazon Keyspaces enregistre deux fois la valeur des données de chaque clé de partition et de chaque colonne de clé de clustering. La surcharge supplémentaire est utilisée pour des requêtes efficaces et une indexation intégrée.

  • Les types de données Cassandra ASCII et VARCHAR string sont tous stockés dans Amazon Keyspaces en Unicode UTF avec un encodage binaire -8. TEXT La taille d'une chaîne dans Amazon Keyspaces est égale au nombre de UTF -8 octets codés.

  • CassandraINT, BIGINTSMALLINT, et les types de TINYINT données sont stockés dans Amazon Keyspaces sous forme de valeurs de données de longueur variable, avec un maximum de 38 chiffres significatifs. Les zéros de début et de fin sont tronqués. La taille de chacun de ces types de données est d'environ 1 octet pour deux chiffres significatifs + 1 octet.

  • BLOBDans Amazon Keyspaces, A est stocké avec la longueur d'octet brute de la valeur.

  • La taille d'une Null valeur ou d'une Boolean valeur est de 1 octet.

  • Colonne qui stocke des types de données de collection tels que LIST ou MAP nécessitant 3 octets de métadonnées, quel que soit son contenu. La taille d'un LIST or MAP est (identifiant de colonne) + somme (taille des éléments imbriqués) + (3 octets). La taille d'un LIST or vide MAP est (identifiant de colonne) + (3 octets). Chaque individu LIST ou MAP élément nécessite également 1 octet de métadonnées.

  • STATICles données de colonne ne sont pas prises en compte dans la taille de ligne maximale de 1 Mo. Pour calculer la taille des données des colonnes statiques, consultezCalculez la taille de colonne statique par partition logique dans Amazon Keyspaces.

  • Les horodatages côté client sont enregistrés pour chaque colonne de chaque ligne lorsque la fonctionnalité est activée. Ces horodatages occupent environ 20 à 40 octets (selon vos données) et contribuent au coût de stockage et de débit de la ligne. Pour de plus amples informations, veuillez consulter Horodatages côté client dans Amazon Keyspaces.

  • Ajoutez 100 octets à la taille de chaque ligne pour les métadonnées de ligne.

La taille totale d'une ligne de données codée est basée sur la formule suivante :

partition key columns + clustering columns + regular columns + row metadata = total encoded size of row
Important

Toutes les métadonnées de colonne, par exemple les identifiants de colonne, les métadonnées de clé de partition, les métadonnées de colonne de clustering, ainsi que les horodatages côté client et les métadonnées de ligne sont prises en compte dans la taille de ligne maximale de 1 Mo.

Prenons l'exemple suivant d'une table où toutes les colonnes sont de type entier. La table comporte deux colonnes de clé de partition, deux colonnes de clustering et une colonne normale. Comme ce tableau comporte cinq colonnes, l'espace requis pour l'identifiant du nom de colonne est de 1 octet.

CREATE TABLE mykeyspace.mytable(pk_col1 int, pk_col2 int, ck_col1 int, ck_col2 int, reg_col1 int, primary key((pk_col1, pk_col2),ck_col1, ck_col2));

Dans cet exemple, nous calculons la taille des données lorsque nous écrivons une ligne dans le tableau, comme indiqué dans l'instruction suivante :

INSERT INTO mykeyspace.mytable (pk_col1, pk_col2, ck_col1, ck_col2, reg_col1) values(1,2,3,4,5);

Pour estimer le nombre total d'octets requis par cette opération d'écriture, vous pouvez suivre les étapes suivantes.

  1. Calculez la taille d'une colonne de clé de partition en ajoutant les octets correspondant au type de données stocké dans la colonne et les octets de métadonnées. Répétez cette opération pour toutes les colonnes clés de partition.

    1. Calculez la taille de la première colonne de la clé de partition (pk_col1) :

      (2 bytes for the integer data type) x 2 + 1 byte for the column id + 3 bytes for partition key metadata = 8 bytes
    2. Calculez la taille de la deuxième colonne de la clé de partition (pk_col2) :

      (2 bytes for the integer data type) x 2 + 1 byte for the column id + 3 bytes for partition key metadata = 8 bytes
    3. Ajoutez les deux colonnes pour obtenir la taille totale estimée des colonnes clés de partition :

      8 bytes + 8 bytes = 16 bytes for the partition key columns
  2. Calculez la taille de la colonne de clustering en ajoutant les octets correspondant au type de données stocké dans la colonne et les octets de métadonnées. Répétez cette opération pour toutes les colonnes de clustering.

    1. Calculez la taille de la première colonne de la colonne de clustering (ck_col1) :

      (2 bytes for the integer data type) x 2 + 20% of the data value (2 bytes) for clustering column metadata + 1 byte for the column id = 6 bytes
    2. Calculez la taille de la deuxième colonne de la colonne de clustering (ck_col2) :

      (2 bytes for the integer data type) x 2 + 20% of the data value (2 bytes) for clustering column metadata + 1 byte for the column id = 6 bytes
    3. Ajoutez les deux colonnes pour obtenir la taille totale estimée des colonnes de clustering :

      6 bytes + 6 bytes = 12 bytes for the clustering columns
  3. Ajoutez la taille des colonnes normales. Dans cet exemple, nous n'avons qu'une seule colonne qui stocke un entier à un chiffre, ce qui nécessite 2 octets dont 1 octet pour l'identifiant de colonne.

  4. Enfin, pour obtenir la taille totale des lignes codées, additionnez les octets de toutes les colonnes et ajoutez les 100 octets supplémentaires pour les métadonnées des lignes :

    16 bytes for the partition key columns + 12 bytes for clustering columns + 3 bytes for the regular column + 100 bytes for row metadata = 131 bytes.

Pour savoir comment surveiller les ressources sans serveur avec Amazon CloudWatch, consultezSurveillance d'Amazon Keyspaces avec Amazon CloudWatch.