

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Timestamp lato client in Amazon Keyspaces
<a name="client-side-timestamps"></a>

In Amazon Keyspaces, i timestamp lato client sono timestamp compatibili con Cassandra che vengono mantenuti per ogni cella della tabella. Puoi utilizzare i timestamp lato client per la risoluzione dei conflitti lasciando che le applicazioni client determinino l'ordine delle scritture. Ad esempio, quando i client di un'applicazione distribuita a livello globale aggiornano gli stessi dati, i timestamp lato client mantengono l'ordine in cui gli aggiornamenti sono stati effettuati sui client. Amazon Keyspaces utilizza questi timestamp per elaborare le scritture. 

I timestamp lato client di Amazon Keyspaces sono completamente gestiti. Non è necessario gestire impostazioni di sistema di basso livello come le strategie di pulizia e compattazione. 

Quando si eliminano i dati, le righe vengono contrassegnate per l'eliminazione con una lapide. Amazon Keyspaces rimuove automaticamente i dati archiviati (in genere entro 10 giorni) senza influire sulle prestazioni o sulla disponibilità delle applicazioni. I dati di Tombstoned non sono disponibili per le istruzioni DML (Data Manipulation Language). Man mano che si continuano a eseguire operazioni di lettura e scrittura su righe contenenti dati archiviati, i dati archiviati continuano a essere conteggiati ai fini dell'archiviazione, delle unità di capacità di lettura () e delle unità di capacità di scrittura (RCUs) fino a quando non vengono eliminati dallo storage. WCUs 

Dopo aver attivato i timestamp lato client per una tabella, puoi specificare un timestamp con la clausola nella query CQL del Data Manipulation Language (DML). `USING TIMESTAMP` Per ulteriori informazioni, consulta [Usa i timestamp lato client nelle query in Amazon Keyspaces](client-side-timestamps-how-to-queries.md). Se non specifichi un timestamp nella tua query CQL, Amazon Keyspaces utilizza il timestamp passato dal driver del client. Se il driver client non fornisce timestamp, Amazon Keyspaces assegna automaticamente un timestamp a livello di cella, perché i timestamp non possono esserlo. `NULL` Per richiedere i timestamp, puoi utilizzare la funzione nell'istruzione DML. `WRITETIME` 

Amazon Keyspaces non richiede costi aggiuntivi per l'attivazione dei timestamp lato client. Tuttavia, con i timestamp lato client puoi archiviare e scrivere dati aggiuntivi per ogni valore nella riga. Ciò può comportare un ulteriore utilizzo dello storage e, in alcuni casi, un ulteriore utilizzo del throughput. Per ulteriori informazioni sui prezzi di Amazon Keyspaces, consulta i prezzi di Amazon [Keyspaces (per Apache](https://aws.amazon.com/keyspaces/pricing) Cassandra).

Quando i timestamp lato client sono attivati in Amazon Keyspaces, ogni colonna di ogni riga memorizza un timestamp. Questi timestamp occupano circa 20-40 byte (a seconda dei dati) e contribuiscono al costo di archiviazione e velocità effettiva della riga. Questi byte di metadati vengono conteggiati anche ai fini della quota di dimensione delle righe di 1 MB. Per determinare l'aumento complessivo dello spazio di archiviazione (per garantire che la dimensione delle righe rimanga inferiore a 1 MB), considera il numero di colonne della tabella e il numero di elementi di raccolta in ogni riga. Ad esempio, se una tabella ha 20 colonne, con ogni colonna che memorizza 40 byte di dati, la dimensione della riga aumenta da 800 byte a 1200 byte. Per ulteriori informazioni su come stimare la dimensione di una riga, vedere. [Stima della dimensione delle righe in Amazon Keyspaces](calculating-row-size.md) Oltre ai 400 byte aggiuntivi per l'archiviazione, in questo esempio, il numero di unità di capacità di scrittura (WCUs) consumate per scrittura aumenta da 1 WCU a 2. WCUs Per ulteriori informazioni su come calcolare la capacità di lettura e scrittura, vedere. [Configura le modalità di read/write capacità in Amazon Keyspaces](ReadWriteCapacityMode.md)

Dopo aver attivato i timestamp lato client per una tabella, non è possibile disattivarla. 

Per ulteriori informazioni su come utilizzare i timestamp lato client nelle query, consulta. [Usa i timestamp lato client nelle query in Amazon Keyspaces](client-side-timestamps-how-to-queries.md)

**Topics**
+ [In che modo i timestamp lato client di Amazon Keyspaces si integrano con i servizi AWS](#client-side-timestamps_integration)
+ [Crea una nuova tabella con timestamp lato client in Amazon Keyspaces](client-side-timestamps-create-new-table.md)
+ [Configura i timestamp lato client per una tabella in Amazon Keyspaces](client-side-timestamps-existing-table.md)
+ [Usa i timestamp lato client nelle query in Amazon Keyspaces](client-side-timestamps-how-to-queries.md)

## In che modo i timestamp lato client di Amazon Keyspaces si integrano con i servizi AWS
<a name="client-side-timestamps_integration"></a>

La seguente metrica di timestamp lato client è disponibile in Amazon CloudWatch per consentire il monitoraggio continuo.
+ `SystemReconciliationDeletes`— Il numero di operazioni di eliminazione necessarie per rimuovere i dati archiviati.

Per ulteriori informazioni su come monitorare le CloudWatch metriche, consulta. [Monitoraggio di Amazon Keyspaces con Amazon CloudWatch](monitoring-cloudwatch.md)

Quando lo usi CloudFormation, puoi abilitare i timestamp lato client durante la creazione di una tabella Amazon Keyspaces. Per ulteriori informazioni, consulta la [Guida per l'utente AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html). 

# Crea una nuova tabella con timestamp lato client in Amazon Keyspaces
<a name="client-side-timestamps-create-new-table"></a>

Segui questi esempi per creare una nuova tabella Amazon Keyspaces con timestamp lato client abilitati utilizzando Amazon Console di gestione AWS Keyspaces, Cassandra Query Language (CQL) o AWS Command Line Interface

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

**Crea una nuova tabella con timestamp lato client (console)**

1. [Accedi a e apri Console di gestione AWS la console Amazon Keyspaces a casahttps://console.aws.amazon.com/keyspaces/.](https://console.aws.amazon.com/keyspaces/home)

1. Nel pannello di navigazione, scegli **Tabelle**, quindi seleziona **Crea tabella**.

1. **Nella pagina Crea tabella**, nella sezione **Dettagli della tabella**, seleziona un keyspace e fornisci un nome per la nuova tabella.

1. Nella sezione **Schema**, crea lo schema per la tua tabella.

1. Nella sezione **Impostazioni tabella**, scegli **Personalizza impostazioni**.

1. Continua con i **timestamp sul lato client.**

   Scegli **Attiva i timestamp lato client per attivare i timestamp lato** client per la tabella. 

1. Scegliere **Create table (Crea tabella)**. La tabella viene creata con i timestamp lato client attivati.

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

**Crea una nuova tabella usando CQL**

1. Per creare una nuova tabella con timestamp lato client abilitati utilizzando CQL, puoi utilizzare il seguente esempio.

   ```
   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. Per confermare le impostazioni dei timestamp sul lato client per la nuova tabella, utilizzate un'`SELECT`istruzione per rivedere quanto mostrato nell'esempio seguente. `custom_properties` 

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

   L'output di questa istruzione mostra lo stato dei timestamp lato client.

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

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

**Crea una nuova tabella utilizzando il AWS CLI**

1. Per creare una nuova tabella con i timestamp sul lato client abilitati, puoi utilizzare il seguente esempio.

   ```
   ./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. Per confermare che i timestamp lato client sono attivati per la nuova tabella, esegui il codice seguente.

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

   L'output dovrebbe essere simile a quello di questo esempio.

   ```
   {
       "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": ""
       }
   }
   ```

------

# Configura i timestamp lato client per una tabella in Amazon Keyspaces
<a name="client-side-timestamps-existing-table"></a>

Segui questi esempi per attivare i timestamp lato client per le tabelle esistenti utilizzando Amazon Keyspaces Console di gestione AWS, Cassandra Query Language (CQL) o. AWS Command Line Interface

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

**Per attivare i timestamp lato client per una tabella esistente (console)**

1. [Accedi a e apri Console di gestione AWS la console Amazon Keyspaces a casahttps://console.aws.amazon.com/keyspaces/.](https://console.aws.amazon.com/keyspaces/home)

1. Scegli la tabella che desideri aggiornare, quindi scegli la scheda **Impostazioni aggiuntive**.

1. **Nella scheda **Impostazioni aggiuntive**, vai a **Modifica timestamp lato client e seleziona Attiva timestamp** lato client**

1. Scegli **Salva modifiche** per modificare le impostazioni della tabella.

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

**Utilizzo di un'istruzione CQL**

1. Attiva i timestamp lato client per una tabella esistente con l'istruzione CQL. `ALTER TABLE`

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

1. Per confermare le impostazioni dei timestamp sul lato client per la nuova tabella, utilizzate un'`SELECT`istruzione per rivedere quanto mostrato nell'esempio seguente. `custom_properties` 

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

   L'output di questa istruzione mostra lo stato dei timestamp lato client.

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

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

**Usando il AWS CLI**

1. È possibile attivare i timestamp sul lato client per una tabella esistente AWS CLI utilizzando l'esempio seguente.

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

1. Per confermare che i timestamp lato client sono attivati per la tabella, esegui il codice seguente.

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

   L'output dovrebbe essere simile a questo esempio e indicare lo stato dei timestamp lato client come. `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": ""
       }
   }
   ```

------

# Usa i timestamp lato client nelle query in Amazon Keyspaces
<a name="client-side-timestamps-how-to-queries"></a>

Dopo aver attivato i timestamp lato client, è possibile passare il timestamp nelle istruzioni`INSERT`, `UPDATE` e con la clausola. `DELETE` `USING TIMESTAMP` 

Il valore del timestamp `bigint` rappresenta un numero di microsecondi a partire dall'ora base standard nota come: 1° gennaio 1970 alle 00:00:00 GMT. epoch Un timestamp fornito dal cliente deve rientrare nell'intervallo di 2 giorni passati e 5 minuti futuri rispetto all'ora corrente dell'orologio da parete.

Amazon Keyspaces conserva i metadati con data e ora per tutta la durata dei dati. Puoi utilizzare la `WRITETIME` funzione per cercare i timestamp che si sono verificati anni fa. Per ulteriori informazioni sulla sintassi CQL, vedere. [Istruzioni DML (linguaggio di manipolazione dei dati) in Amazon Keyspaces](cql.dml.md)

La seguente istruzione CQL è un esempio di come utilizzare un timestamp come. `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;
```

Se non specifichi un timestamp nella tua query CQL, Amazon Keyspaces utilizza il timestamp passato dal driver del client. Se il driver client non fornisce alcun timestamp, Amazon Keyspaces assegna un timestamp lato server per l'operazione di scrittura. 

Per visualizzare il valore del timestamp memorizzato per una colonna specifica, puoi utilizzare la `WRITETIME` funzione in un'istruzione, come mostrato nell'esempio seguente. `SELECT` 

```
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;
```