

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Carimbos de data/hora do lado do cliente no Amazon Keyspaces
<a name="client-side-timestamps"></a>

No Amazon Keyspaces, os carimbos de data/hora do lado do cliente são compatíveis com o Cassandra que persistem para cada célula da sua tabela. Você pode usar carimbos de data/hora do lado do cliente para resolução de conflitos, permitindo que seus aplicativos cliente determinem a ordem das gravações. Por exemplo, quando clientes de um aplicativo distribuído globalmente fazem atualizações nos mesmos dados, os carimbos de data/hora do lado do cliente persistem na ordem em que as atualizações foram feitas nos clientes. O Amazon Keyspaces usa esses carimbos de data/hora para processar as gravações. 

Os carimbos de data/hora do lado do cliente do Amazon Keyspaces são totalmente gerenciados. Você não precisa gerenciar configurações de sistema de baixo nível, como estratégias de limpeza e compactação. 

Ao excluir dados, as linhas são marcadas para exclusão com uma lápide. O Amazon Keyspaces remove dados marcados para exclusão automaticamente (normalmente em 10 dias) sem afetar o desempenho ou a disponibilidade do seu aplicativo. Os dados marcados para exclusão não estão disponíveis para instruções de linguagem de manipulação de dados (DML). À medida que você continua realizando leituras e gravações em linhas que contêm dados gravados em lápide, esses dados continuam sendo contabilizados para armazenamento, unidades de capacidade de leitura () e unidades de capacidade de gravação (RCUsWCUs) até serem excluídos do armazenamento. 

Depois que os carimbos de data/hora do lado do cliente forem ativados para uma tabela, você poderá especificar um carimbo de data/hora com a cláusula `USING TIMESTAMP` em sua consulta CQL da Data Manipulation Language (DML). Para obter mais informações, consulte [Use carimbos de data/hora do lado do cliente em consultas no Amazon Keyspaces](client-side-timestamps-how-to-queries.md). Se você não especificar um carimbo de data/hora na sua consulta CQL, o Amazon Keyspaces usará o carimbo de data/hora passado pelo seu driver de cliente. Se o driver do cliente não fornecer carimbos de data/hora, o Amazon Keyspaces atribuirá automaticamente um carimbo no nível da célula, pois os carimbos não podem ser `NULL`. Para consultar carimbos de data/hora, você pode usar a função `WRITETIME` em sua instrução DML. 

O Amazon Keyspaces não cobra nada a mais para ativar os carimbos de data/hora do lado do cliente. No entanto, com os carimbos de data/hora do lado do cliente, você armazena e grava dados adicionais para cada valor em sua linha. Isso pode levar ao uso adicional do armazenamento e, em alguns casos, ao uso adicional do throughput. Para obter mais informações sobre os preços do serviço Amazon Keyspaces, consulte os preços do serviço [Amazon Keyspaces (para Apache Cassandra)](https://aws.amazon.com/keyspaces/pricing).

Quando os carimbos de data/hora do lado do cliente são ativados no Amazon Keyspaces, cada coluna de cada linha armazena um carimbo de data/hora. Esses carimbos de data/hora ocupam aproximadamente 20 a 40 bytes (dependendo dos seus dados) e contribuem para o custo de armazenamento e throughput da linha. Esses bytes de metadados também contam para sua cota de tamanho de linha de 1 MB. Para saber o aumento geral no espaço de armazenamento (para garantir que o tamanho da linha permaneça abaixo de 1 MB), considere o número de colunas em sua tabela e o número de elementos de coleção em cada linha. Por exemplo, se uma tabela tiver 20 colunas, com cada coluna armazenando 40 bytes de dados, o tamanho da linha aumentará de 800 bytes para 1200 bytes. Para obter mais informações sobre como estimar o tamanho de uma linha, consulte [Estimar o tamanho da linha no Amazon Keyspaces](calculating-row-size.md). Além dos 400 bytes extras para armazenamento, neste exemplo, o número de unidades de capacidade de gravação (WCUs) consumidas por gravação aumenta de 1 WCU para 2. WCUs Para obter mais informações sobre como calcular a capacidade de leitura e gravação, consulte [Configurar modos de read/write capacidade no Amazon Keyspaces](ReadWriteCapacityMode.md).

Depois que os carimbos de data/hora do lado do cliente forem ativados para uma tabela, você não poderá desativá-la. 

Para saber mais sobre como usar carimbos de data/hora no lado do cliente em consultas, consulte [Use carimbos de data/hora do lado do cliente em consultas no Amazon Keyspaces](client-side-timestamps-how-to-queries.md).

**Topics**
+ [Como os timestamps do lado do cliente do Amazon Keyspaces se integram aos serviços AWS](#client-side-timestamps_integration)
+ [Crie uma nova tabela com carimbos de data/hora do lado do cliente no Amazon Keyspaces](client-side-timestamps-create-new-table.md)
+ [Configure carimbos de data/hora no lado do cliente para uma tabela no Amazon Keyspaces](client-side-timestamps-existing-table.md)
+ [Use carimbos de data/hora do lado do cliente em consultas no Amazon Keyspaces](client-side-timestamps-how-to-queries.md)

## Como os timestamps do lado do cliente do Amazon Keyspaces se integram aos serviços AWS
<a name="client-side-timestamps_integration"></a>

A seguinte métrica de timestamps do lado do cliente está disponível na Amazon CloudWatch para permitir o monitoramento contínuo.
+ `SystemReconciliationDeletes`: o número de operações de exclusão necessárias para remover dados marcados com lápides.

Para obter mais informações sobre como monitorar CloudWatch métricas, consulte[Monitorando o Amazon Keyspaces com a Amazon CloudWatch](monitoring-cloudwatch.md).

Ao usar CloudFormation, você pode habilitar timestamps do lado do cliente ao criar uma tabela Amazon Keyspaces. Para obter mais informações, consulte o [Guia do usuário do AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html). 

# Crie uma nova tabela com carimbos de data/hora do lado do cliente no Amazon Keyspaces
<a name="client-side-timestamps-create-new-table"></a>

Siga esses exemplos para criar uma nova tabela Amazon Keyspaces com timestamps do lado do cliente habilitados usando o Amazon Console de gerenciamento da AWS Keyspaces, o Cassandra Query Language (CQL) ou o AWS Command Line Interface

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

**Crie uma nova tabela com carimbos de data/hora do lado do cliente (console)**

1. [Faça login no Console de gerenciamento da AWS e abra o console do Amazon Keyspaces em casahttps://console.aws.amazon.com/keyspaces/.](https://console.aws.amazon.com/keyspaces/home)

1. No painel de navegação, selecione **Tabelas** e **Criar tabela**.

1. Na página **Criar tabela**, na seção **Detalhes da tabela**, selecione um espaço de chaves e forneça um nome para a nova tabela.

1. Na seção **Esquema**, crie o esquema para sua tabela.

1. Na seção **Configurações da tabela**, selecione **Personalizar configurações**.

1. Continue com os carimbos de **data/hora do lado do cliente**.

   Escolha **Ativar carimbos de data/hora do lado do cliente** para ativar os carimbos de data/hora do lado do cliente para a tabela. 

1. Escolha **Criar tabela**. Sua tabela é criada com os carimbos de data/hora do lado do cliente ativados.

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

**Crie uma nova tabela usando CQL**

1. Para criar uma nova tabela com carimbos de data/hora no lado do cliente ativados usando CQL, você pode usar o seguinte exemplo:

   ```
   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. Para confirmar as configurações de carimbos de data/hora do lado do cliente para a nova tabela, use uma instrução `SELECT` para revisar as `custom_properties` conforme mostrado no exemplo a seguir. 

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

   A saída dessa declaração mostra o status dos carimbos de data/hora do lado do cliente.

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

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

**Crie uma nova tabela usando o AWS CLI**

1. Para criar uma nova tabela com carimbos de data/hora no lado do cliente ativados, você pode usar o seguinte exemplo:

   ```
   ./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. Para confirmar se os carimbos de data/hora do lado do cliente estão ativados para a nova tabela, execute o código a seguir.

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

   A saída deve ser semelhante a este exemplo:

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

------

# Configure carimbos de data/hora no lado do cliente para uma tabela no Amazon Keyspaces
<a name="client-side-timestamps-existing-table"></a>

Siga esses exemplos para ativar os timestamps do lado do cliente para tabelas existentes usando o Amazon Keyspaces Console de gerenciamento da AWS, o Cassandra Query Language (CQL) ou o. AWS Command Line Interface

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

**Para ativar os carimbos de data/hora do lado do cliente para uma tabela existente (console)**

1. [Faça login no Console de gerenciamento da AWS e abra o console do Amazon Keyspaces em casahttps://console.aws.amazon.com/keyspaces/.](https://console.aws.amazon.com/keyspaces/home)

1. Escolha a tabela que você deseja atualizar e selecione a guia **Configurações adicionais**.

1. Na guia **Configurações adicionais**, acesse **Modificar carimbos de data/hora do lado do cliente** e selecione **Ativar carimbos de data/hora do lado do cliente**

1. Escolha **Salvar alterações** para alterar as configurações da tabela.

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

**Usando uma instrução CQL**

1. Ative os carimbos de data/hora do lado do cliente para uma tabela existente com a instrução CQL `ALTER TABLE`.

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

1. Para confirmar as configurações de carimbos de data/hora do lado do cliente para a nova tabela, use uma instrução `SELECT` para revisar as `custom_properties` conforme mostrado no exemplo a seguir. 

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

   A saída dessa declaração mostra o status dos carimbos de data/hora do lado do cliente.

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

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

**Usando o AWS CLI**

1. Você pode ativar os carimbos de data/hora do lado do cliente para uma tabela existente usando o exemplo a AWS CLI seguir.

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

1. Para confirmar se os carimbos de data/hora do lado do cliente estão ativados para a tabela, execute o código a seguir.

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

   A saída deve ser semelhante a este exemplo e o status dos carimbos de data/hora do lado do cliente deve ser `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": ""
       }
   }
   ```

------

# Use carimbos de data/hora do lado do cliente em consultas no Amazon Keyspaces
<a name="client-side-timestamps-how-to-queries"></a>

Depois de ativar os carimbos de data/hora do lado do cliente, você pode passar o carimbo de data/hora em suas declarações`INSERT`, `UPDATE` e `DELETE` com a cláusula `USING TIMESTAMP`. 

O valor do carimbo de data/hora `bigint` representa um número de microssegundos desde a hora base padrão conhecida como epoch: 1º de janeiro de 1970 às 00:00:00 GMT. Um carimbo de data/hora fornecido pelo cliente deve estar entre o intervalo de 2 dias no passado e 5 minutos no futuro a partir do horário atual do relógio.

O Amazon Keyspaces mantém metadados de carimbo de data/hora durante a vida útil dos dados. Você pode usar a função `WRITETIME` para pesquisar registros de data e hora que ocorreram anos atrás. Para obter mais informações sobre sintaxe de CQL, consulte [Declarações DML (linguagem de manipulação de dados) no Amazon Keyspaces](cql.dml.md).

A instrução CQL a seguir é um exemplo de como usar um carimbo de data/hora como um `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 você não especificar um carimbo de data/hora na sua consulta CQL, o Amazon Keyspaces usará o carimbo de data/hora passado pelo seu driver de cliente. Se nenhum carimbo de data/hora for fornecido pelo driver de cliente, o Amazon Keyspaces atribuirá um carimbo de data/hora do lado do servidor para sua operação de gravação. 

Para ver o valor do carimbo de data/hora armazenado em uma coluna específica, você pode usar a função `WRITETIME` em uma instrução `SELECT`, conforme mostrado no exemplo a seguir. 

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