

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.

# Horodatages côté client dans Amazon Keyspaces
<a name="client-side-timestamps"></a>

Dans Amazon Keyspaces, les horodatages côté client sont des horodatages compatibles avec Cassandra qui sont conservés pour chaque cellule de votre tableau. Vous pouvez utiliser les horodatages côté client pour résoudre les conflits en laissant vos applications clientes déterminer l'ordre des écritures. Par exemple, lorsque les clients d'une application distribuée dans le monde entier mettent à jour les mêmes données, les horodatages côté client conservent l'ordre dans lequel les mises à jour ont été effectuées sur les clients. Amazon Keyspaces utilise ces horodatages pour traiter les écritures. 

Les horodatages côté client d'Amazon Keyspaces sont entièrement gérés. Vous n'avez pas à gérer les paramètres système de bas niveau tels que les stratégies de nettoyage et de compactage. 

Lorsque vous supprimez des données, les lignes sont marquées d'une pierre tombale pour suppression. Amazon Keyspaces supprime automatiquement les données fondamentales (généralement dans les 10 jours) sans affecter les performances ou la disponibilité de votre application. Les données Tombstoned ne sont pas disponibles pour les instructions DML (Data Manipulation Language). Au fur et à mesure que vous effectuez des lectures et des écritures sur des lignes contenant des données gravées, celles-ci continuent d'être prises en compte dans le stockage, les unités de capacité de lecture (RCUs) et les unités de capacité d'écriture (WCUs) jusqu'à ce qu'elles soient supprimées du stockage. 

Une fois que les horodatages côté client ont été activés pour une table, vous pouvez spécifier un horodatage avec la `USING TIMESTAMP` clause dans votre requête CQL DML (Data Manipulation Language). Pour de plus amples informations, veuillez consulter [Utiliser les horodatages côté client dans les requêtes dans Amazon Keyspaces](client-side-timestamps-how-to-queries.md). Si vous ne spécifiez pas d'horodatage dans votre requête CQL, Amazon Keyspaces utilise l'horodatage transmis par le pilote de votre client. Si le pilote client ne fournit pas d'horodatage, Amazon Keyspaces attribue automatiquement un horodatage au niveau des cellules, car les horodatages ne peuvent pas l'être. `NULL` Pour demander des horodatages, vous pouvez utiliser la `WRITETIME` fonction de votre instruction DML. 

Amazon Keyspaces ne facture aucun supplément pour activer l'horodatage côté client. Toutefois, avec les horodatages côté client, vous stockez et écrivez des données supplémentaires pour chaque valeur de votre ligne. Cela peut entraîner une utilisation supplémentaire du stockage et, dans certains cas, une utilisation du débit supplémentaire. Pour plus d'informations sur les tarifs d'Amazon Keyspaces, consultez les tarifs d'Amazon [Keyspaces (pour Apache](https://aws.amazon.com/keyspaces/pricing) Cassandra).

Lorsque les horodatages côté client sont activés dans Amazon Keyspaces, chaque colonne de chaque ligne contient un horodatage. 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. Ces octets de métadonnées sont également pris en compte dans votre quota de taille de ligne de 1 Mo. Pour déterminer l'augmentation globale de l'espace de stockage (afin de garantir que la taille des lignes reste inférieure à 1 Mo), considérez le nombre de colonnes de votre tableau et le nombre d'éléments de collection dans chaque ligne. Par exemple, si une table comporte 20 colonnes, chaque colonne stockant 40 octets de données, la taille de la ligne passe de 800 octets à 1 200 octets. Pour plus d'informations sur l'estimation de la taille d'une ligne, consultez[Estimer la taille des lignes dans Amazon Keyspaces](calculating-row-size.md). Outre les 400 octets supplémentaires pour le stockage, dans cet exemple, le nombre d'unités de capacité d'écriture (WCUs) consommées par écriture passe de 1 WCU à 2 WCUs. Pour plus d'informations sur le calcul de la capacité de lecture et d'écriture, consultez[Configurer les modes de read/write capacité dans Amazon Keyspaces](ReadWriteCapacityMode.md).

Une fois que les horodatages côté client ont été activés pour un tableau, vous ne pouvez pas le désactiver. 

Pour en savoir plus sur l'utilisation des horodatages côté client dans les requêtes, consultez. [Utiliser les horodatages côté client dans les requêtes dans Amazon Keyspaces](client-side-timestamps-how-to-queries.md)

**Topics**
+ [Comment les horodatages côté client d'Amazon Keyspaces s'intègrent aux services AWS](#client-side-timestamps_integration)
+ [Créez un nouveau tableau avec des horodatages côté client dans Amazon Keyspaces](client-side-timestamps-create-new-table.md)
+ [Configurer les horodatages côté client pour une table dans Amazon Keyspaces](client-side-timestamps-existing-table.md)
+ [Utiliser les horodatages côté client dans les requêtes dans Amazon Keyspaces](client-side-timestamps-how-to-queries.md)

## Comment les horodatages côté client d'Amazon Keyspaces s'intègrent aux services AWS
<a name="client-side-timestamps_integration"></a>

La métrique d'horodatage côté client suivante est disponible sur Amazon CloudWatch pour permettre une surveillance continue.
+ `SystemReconciliationDeletes`— Le nombre d'opérations de suppression nécessaires pour supprimer les données tombstonnées.

Pour plus d'informations sur le suivi CloudWatch des métriques, consultez[Surveillance d'Amazon Keyspaces avec Amazon CloudWatch](monitoring-cloudwatch.md).

Lorsque vous l'utilisez CloudFormation, vous pouvez activer les horodatages côté client lors de la création d'une table Amazon Keyspaces. Pour plus d’informations, consultez le [Guide de l’utilisateur AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html). 

# Créez un nouveau tableau avec des horodatages côté client dans Amazon Keyspaces
<a name="client-side-timestamps-create-new-table"></a>

Suivez ces exemples pour créer une nouvelle table Amazon Keyspaces avec les horodatages côté client activés à l'aide d'Amazon AWS Management Console Keyspaces, du Cassandra Query Language (CQL) ou du AWS Command Line Interface

------
#### [ Console ]

**Création d'un nouveau tableau avec des horodatages côté client (console)**

1. [Connectez-vous à la AWS Management Console console Amazon Keyspaces et ouvrez-la chez https://console.aws.amazon.com/keyspaces/ vous.](https://console.aws.amazon.com/keyspaces/home)

1. Dans le panneau de navigation, choisissez **Tables**, puis **Create table (Créer une table)**.

1. Sur la page **Créer une table** dans la section **Détails de la table**, sélectionnez un espace de touche et donnez un nom à la nouvelle table.

1. Dans la section **Schéma**, créez le schéma de votre table.

1. Dans la section **Paramètres du tableau**, choisissez **Personnaliser les paramètres**.

1. Passez aux **horodatages côté client.**

   Choisissez **Activer les horodatages côté client pour activer les horodatages** côté client pour le tableau. 

1. Choisissez **Créer un tableau**. Votre tableau est créé avec les horodatages côté client activés.

------
#### [ Cassandra Query Language (CQL) ]

**Création d'une nouvelle table à l'aide de CQL**

1. Pour créer une nouvelle table avec des horodatages côté client activés à l'aide de CQL, vous pouvez utiliser l'exemple suivant.

   ```
   CREATE TABLE my_keyspace.my_table (
      userid uuid,
      time timeuuid,
      subject text,
      body text,
      user inet,
      PRIMARY KEY (userid, time)
   ) WITH CUSTOM_PROPERTIES = {'client_side_timestamps': {'status': 'enabled'}};
   ```

1. Pour confirmer les paramètres d'horodatage côté client pour la nouvelle table, utilisez une `SELECT` instruction pour vérifier les paramètres, `custom_properties` comme indiqué dans l'exemple suivant. 

   ```
   SELECT custom_properties from system_schema_mcs.tables where keyspace_name = 'my_keyspace' and table_name = 'my_table';
   ```

   Le résultat de cette instruction indique l'état des horodatages côté client.

   ```
   'client_side_timestamps': {'status': 'enabled'}
   ```

------
#### [ AWS CLI ]

**Créez une nouvelle table à l'aide du AWS CLI**

1. Pour créer une nouvelle table avec les horodatages côté client activés, vous pouvez utiliser l'exemple suivant.

   ```
   ./aws keyspaces create-table \
   --keyspace-name my_keyspace \
   --table-name my_table \
   --client-side-timestamps 'status=ENABLED' \
   --schema-definition 'allColumns=[{name=id,type=int},{name=date,type=timestamp},{name=name,type=text}],partitionKeys=[{name=id}]'
   ```

1. Pour vérifier que les horodatages côté client sont activés pour la nouvelle table, exécutez le code suivant.

   ```
   ./aws keyspaces get-table \
   --keyspace-name my_keyspace \
   --table-name my_table
   ```

   La sortie doit ressembler à cet exemple.

   ```
   {
       "keyspaceName": "my_keyspace",
       "tableName": "my_table",
       "resourceArn": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/my_keyspace/table/my_table",
       "creationTimestamp": 1662681206.032,
       "status": "ACTIVE",
       "schemaDefinition": {
           "allColumns": [
               {
                   "name": "id",
                   "type": "int"
               },
               {
                   "name": "date",
                   "type": "timestamp"
               },
               {
                   "name": "name",
                   "type": "text"
               }
           ],
           "partitionKeys": [
               {
                   "name": "id"
               }
           ],
           "clusteringKeys": [],
           "staticColumns": []
       },
       "capacitySpecification": {
           "throughputMode": "PAY_PER_REQUEST",
           "lastUpdateToPayPerRequestTimestamp": 1662681206.032
       },
       "encryptionSpecification": {
           "type": "AWS_OWNED_KMS_KEY"
       },
       "pointInTimeRecovery": {
           "status": "DISABLED"
       },
       "clientSideTimestamps": {
           "status": "ENABLED"
       },
       "ttl": {
           "status": "ENABLED"
       },
       "defaultTimeToLive": 0,
       "comment": {
           "message": ""
       }
   }
   ```

------

# Configurer les horodatages côté client pour une table dans Amazon Keyspaces
<a name="client-side-timestamps-existing-table"></a>

Suivez ces exemples pour activer les horodatages côté client pour les tables existantes à l'aide d'Amazon Keyspaces AWS Management Console, du Cassandra Query Language (CQL) ou du. AWS Command Line Interface

------
#### [ Console ]

**Pour activer les horodatages côté client pour une table existante (console)**

1. [Connectez-vous à la AWS Management Console console Amazon Keyspaces et ouvrez-la chez https://console.aws.amazon.com/keyspaces/ vous.](https://console.aws.amazon.com/keyspaces/home)

1. Choisissez le tableau que vous souhaitez mettre à jour, puis choisissez l'onglet **Paramètres supplémentaires**.

1. **Dans l'onglet **Paramètres supplémentaires**, accédez à **Modifier les horodatages côté client et sélectionnez Activer les horodatages** côté client**

1. Choisissez **Enregistrer les modifications** pour modifier les paramètres du tableau.

------
#### [ Cassandra Query Language (CQL) ]

**Utilisation d'une instruction CQL**

1. Activez les horodatages côté client pour une table existante avec l'instruction CQL. `ALTER TABLE`

   ```
   ALTER TABLE my_table WITH custom_properties = {'client_side_timestamps': {'status': 'enabled'}};;
   ```

1. Pour confirmer les paramètres d'horodatage côté client pour la nouvelle table, utilisez une `SELECT` instruction pour vérifier les paramètres, `custom_properties` comme indiqué dans l'exemple suivant. 

   ```
   SELECT custom_properties from system_schema_mcs.tables where keyspace_name = 'my_keyspace' and table_name = 'my_table';
   ```

   Le résultat de cette instruction indique l'état des horodatages côté client.

   ```
   'client_side_timestamps': {'status': 'enabled'}
   ```

------
#### [ AWS CLI ]

**En utilisant le AWS CLI**

1. Vous pouvez activer les horodatages côté client pour une table existante à l'aide de l' AWS CLI exemple suivant.

   ```
   ./aws keyspaces update-table \
   --keyspace-name my_keyspace \
   --table-name my_table \
   --client-side-timestamps 'status=ENABLED'
   ```

1. Pour vérifier que les horodatages côté client sont activés pour la table, exécutez le code suivant.

   ```
   ./aws keyspaces get-table \
   --keyspace-name my_keyspace \
   --table-name my_table
   ```

   La sortie doit ressembler à cet exemple et indiquer l'état des horodatages côté client sous la forme. `ENABLED`

   ```
   {
       "keyspaceName": "my_keyspace",
       "tableName": "my_table",
       "resourceArn": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/my_keyspace/table/my_table",
       "creationTimestamp": 1662681312.906,
       "status": "ACTIVE",
       "schemaDefinition": {
           "allColumns": [
               {
                   "name": "id",
                   "type": "int"
               },
               {
                   "name": "date",
                   "type": "timestamp"
               },
               {
                   "name": "name",
                   "type": "text"
               }
           ],
           "partitionKeys": [
               {
                   "name": "id"
               }
           ],
           "clusteringKeys": [],
           "staticColumns": []
       },
       "capacitySpecification": {
           "throughputMode": "PAY_PER_REQUEST",
           "lastUpdateToPayPerRequestTimestamp": 1662681312.906
       },
       "encryptionSpecification": {
           "type": "AWS_OWNED_KMS_KEY"
       },
       "pointInTimeRecovery": {
           "status": "DISABLED"
       },
       "clientSideTimestamps": {
           "status": "ENABLED"
       },
       "ttl": {
           "status": "ENABLED"
       },
       "defaultTimeToLive": 0,
       "comment": {
           "message": ""
       }
   }
   ```

------

# Utiliser les horodatages côté client dans les requêtes dans Amazon Keyspaces
<a name="client-side-timestamps-how-to-queries"></a>

Après avoir activé les horodatages côté client, vous pouvez transmettre l'horodatage dans vos instructions`INSERT`,`UPDATE`, et avec la clause. `DELETE` `USING TIMESTAMP` 

La valeur d'horodatage `bigint` représente un nombre de microsecondes depuis l'heure de base standard connue sous le nom de epoch : 1er janvier 1970 à 00:00:00 GMT. Un horodatage fourni par le client doit se situer entre 2 jours dans le passé et 5 minutes dans le futur par rapport à l'heure actuelle de l'horloge murale.

Amazon Keyspaces conserve les métadonnées d'horodatage pendant toute la durée de vie des données. Vous pouvez utiliser cette `WRITETIME` fonction pour rechercher les horodatages survenus il y a des années. Pour plus d'informations sur la syntaxe CQL, consultez[Instructions DML (langage de manipulation de données) dans Amazon Keyspaces](cql.dml.md).

L'instruction CQL suivante est un exemple d'utilisation d'un horodatage en tant que. `update_parameter` 

```
INSERT INTO catalog.book_awards (year, award, rank, category, book_title, author, publisher)
   VALUES (2022, 'Wolf', 4, 'Non-Fiction', 'Science Update', 'Ana Carolina Silva', 'SomePublisher') 
   USING TIMESTAMP 1669069624;
```

Si vous ne spécifiez pas d'horodatage dans votre requête CQL, Amazon Keyspaces utilise l'horodatage transmis par le pilote de votre client. Si aucun horodatage n'est fourni par le pilote client, Amazon Keyspaces attribue un horodatage côté serveur pour votre opération d'écriture. 

Pour voir la valeur d'horodatage stockée pour une colonne spécifique, vous pouvez utiliser la `WRITETIME` fonction dans une `SELECT` instruction, comme illustré dans l'exemple suivant. 

```
SELECT year, award, rank, category, book_title, author, publisher, WRITETIME(year), WRITETIME(award), WRITETIME(rank),
  WRITETIME(category), WRITETIME(book_title), WRITETIME(author), WRITETIME(publisher) from catalog.book_awards;
```