

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á.

# Estimar o consumo de capacidade do throughput de leitura e gravação no Amazon Keyspaces
<a name="capacity-examples"></a>

Quando você lê ou grava dados no Amazon Keyspaces, a quantidade de unidades de read/write solicitação (RRUs/WRUs) or read/write capacity units (RCUs/WCUs) que sua consulta consome depende da quantidade total de dados que o Amazon Keyspaces precisa processar para executar a consulta. Em alguns casos, os dados retornados ao cliente podem ser um subconjunto dos dados que o Amazon Keyspaces precisou ler para processar a consulta. Para gravações condicionais, o Amazon Keyspaces consome a capacidade de gravação mesmo se a verificação condicional falhar.

Para estimar a quantidade total de dados que estão sendo processados para uma solicitação, é preciso considerar o tamanho codificado de uma linha e o número total de linhas. Este tópico aborda alguns exemplos de cenários comuns e padrões de acesso para mostrar como o Amazon Keyspaces processa consultas e como isso afeta o consumo de capacidade. Você pode seguir os exemplos para estimar os requisitos de capacidade de suas tabelas e usar CloudWatch a Amazon para observar o consumo de capacidade de leitura e gravação nesses casos de uso.

Para obter informações sobre como calcular o tamanho codificado das linhas no Amazon Keyspaces, consulte [Estimar o tamanho da linha no Amazon Keyspaces](calculating-row-size.md).

**Topics**
+ [Estimar o consumo de capacidade de consultas de intervalo no Amazon Keyspaces](range_queries.md)
+ [Estimar o consumo de capacidade de leitura de consultas limitadas](limit_queries.md)
+ [Estimar o consumo da capacidade de leitura das varreduras de tabelas](table_scans.md)
+ [Estimar o consumo de capacidade de transações leves no Amazon Keyspaces](lightweight_transactions.md)
+ [Estimar o consumo de capacidade para colunas estáticas no Amazon Keyspaces](static-columns.md)
+ [Estimar e provisionar a capacidade para uma tabela multirregional no Amazon Keyspaces](tables-multi-region-capacity.md)
+ [Estime o consumo da capacidade de leitura e gravação com a Amazon CloudWatch no Amazon Keyspaces](estimate_consumption_cw.md)

# Estimar o consumo de capacidade de consultas de intervalo no Amazon Keyspaces
<a name="range_queries"></a>

 Para analisar o consumo de capacidade de leitura de uma consulta de intervalo, usamos a tabela de exemplo a seguir, que está usando o modo de capacidade sob demanda. 

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

Agora execute a consulta a seguir nessa tabela.

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

Você recebe o seguinte conjunto de resultados da consulta e a operação de leitura realizada pelo Amazon Keyspaces consome 2 RRUs no `LOCAL_QUORUM` modo de consistência.

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

O Amazon Keyspaces consome 2 RRUs para avaliar as linhas com os valores `ck3=60` e processar `ck3=70` a consulta. No entanto, o Amazon Keyspaces retorna somente a linha em que a condição `WHERE` especificada na consulta é verdadeira, que é a linha com valor `ck3=60`. Para avaliar o intervalo especificado na consulta, o Amazon Keyspaces lê a linha correspondente ao limite superior do intervalo, nesse caso `ck3 = 70`, mas não retorna essa linha no resultado. O consumo da capacidade de leitura é baseado nos dados lidos durante o processamento da consulta, não nos dados retornados.

# Estimar o consumo de capacidade de leitura de consultas limitadas
<a name="limit_queries"></a>

 Ao processar uma consulta que usa a cláusula `LIMIT`, o Amazon Keyspaces lê as linhas até o tamanho máximo da página ao tentar corresponder à condição especificada na consulta. Se o Amazon Keyspaces não conseguir encontrar dados correspondentes suficientes que correspondam ao valor `LIMIT` na primeira página, podem ser necessárias uma ou mais chamadas paginadas. Para continuar as leituras na próxima página, você pode usar um token de paginação. O tamanho de página padrão é 1 MB. Para consumir menos capacidade de leitura ao usar cláusulas `LIMIT`, você pode reduzir o tamanho da página. Para obter mais informações sobre paginação, consulte [Paginar resultados no Amazon Keyspaces](paginating-results.md).

Por exemplo, vejamos a seguinte consulta.

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

Se você não definir o tamanho da página, o Amazon Keyspaces lê 1 MB de dados, mesmo que retorne apenas 1 linha para você. Para que o Amazon Keyspaces leia apenas uma linha, você pode definir o tamanho da página como 1 para essa consulta. Nesse caso, o Amazon Keyspaces só leria uma linha, desde que você não tivesse linhas expiradas com base nas Time-to-live configurações ou nos timestamps do lado do cliente. 

O `PAGE SIZE` parâmetro determina quantas linhas o Amazon Keyspaces escaneia do disco para cada solicitação, não quantas linhas o Amazon Keyspaces retorna ao cliente. O Amazon Keyspaces aplica os filtros que você fornece, por exemplo, desigualdade em colunas que não são chave ou `LIMIT` depois de escanear os dados em disco. Se você não definir explicitamente o`PAGE SIZE`, o Amazon Keyspaces lê até 1 MB de dados antes de aplicar os filtros. Por exemplo, se você estiver usando `LIMIT 1` sem especificar o`PAGE SIZE`, o Amazon Keyspaces poderá ler milhares de linhas do disco antes de aplicar a cláusula de limite e retornar somente uma única linha.

Para evitar leitura excessiva, reduza o, o `PAGE SIZE` que reduz o número de linhas que o Amazon Keyspaces escaneia para cada busca. Por exemplo, se você definir `LIMIT 5` em sua consulta, defina um valor entre 5 e 10 `PAGE SIZE` para que o Amazon Keyspaces escaneie somente de 5 a 10 linhas em cada chamada paginada. Você pode modificar esse número para reduzir o número de buscas. Para limites maiores que o tamanho da página, o Amazon Keyspaces mantém a contagem total de resultados com o estado da paginação. No caso `LIMIT` de 10.000 linhas, o Amazon Keyspaces pode buscar esses resultados em duas páginas de 5.000 linhas cada. O limite de 1 MB é o limite superior para qualquer tamanho de página definido.

# Estimar o consumo da capacidade de leitura das varreduras de tabelas
<a name="table_scans"></a>

As consultas que resultam em varreduras completas da tabela, como por exemplo, consultas usando a opção `ALLOW FILTERING`, são outro exemplo de consultas que processam mais leituras do que as que retornam como resultados. E o consumo da capacidade de leitura é baseado nos dados lidos, não nos dados retornados.

Para o exemplo de varredura de tabela, usamos a tabela a seguir no modo de capacidade sob demanda.

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

Por padrão, o Amazon Keyspaces cria uma tabela no modo de capacidade sob demanda com quatro partições. Nesta tabela de exemplo, todos os dados são armazenados em uma partição e as três partições restantes estão vazias.

Agora execute a consulta a seguir na tabela.

```
SELECT * from amazon_keyspaces.example_table_2;
```

Essa consulta resulta em uma operação de varredura de tabela em que o Amazon Keyspaces escaneia todas as quatro partições da tabela e consome 6 no modo de consistência. RRUs `LOCAL_QUORUM` Primeiro, o Amazon Keyspaces consome 3 RRUs para ler as três linhas com. `pk=‘pk’` Em seguida, o Amazon Keyspaces consome os 3 adicionais RRUs para escanear as três partições vazias da tabela. Como essa consulta resulta em uma varredura de tabela, o Amazon Keyspaces varre todas as partições na tabela, incluindo partições sem dados. 

# Estimar o consumo de capacidade de transações leves no Amazon Keyspaces
<a name="lightweight_transactions"></a>

As transações leves (LWT) permitem que você execute operações de gravação condicional nos dados da tabela. As operações de atualização condicional são úteis ao inserir, atualizar e excluir registros com base nas condições que avaliam o estado atual. 

No Amazon Keyspaces, todas as operações de gravação exigem a consistência LOCAL\$1QUORUM e não há cobrança adicional pelo uso. LWTs A diferença LWTs é que, quando uma verificação de condição de LWT resulta`FALSE`, o Amazon Keyspaces consome unidades de capacidade de gravação WCUs () ou unidades de solicitação de gravação (). WRUs O número de WCUs/WRUs consumidos depende do tamanho da linha. 

Por exemplo, se o tamanho da linha for 2 KB, a falha na gravação condicional consumirá dois WCUs/. WRUs Se a linha não existir atualmente na tabela, a operação consumirá um WCUs/WRUs. 

Para determinar o número de solicitações que resultaram em falhas na verificação de condições, você pode monitorar a `ConditionalCheckFailed` métrica em CloudWatch.

## Estime os custos de LWT para tabelas com Time to Live (TTL)
<a name="lightweight_transactions_ttl"></a>

LWTs pode exigir unidades adicionais de capacidade de leitura (RCUs) ou unidades de solicitação de leitura (RRUs) para tabelas configuradas com TTL que não usam timestamps do lado do cliente. Ao usar `IF EXISTS` nossos resultados de verificação de condição de `IF NOT EXISTS` palavras-chave`FALSE`, as seguintes unidades de capacidade são consumidas:
+ RCUs/RRUs – If the row exists, the RCUs/RRUsconsumidos são baseados no tamanho da linha existente.
+ RCUs/RRUs – If the row doesn't exist, a single RCU/RRUé consumido.

Se a condição avaliada resultar em uma operação de gravação bem-sucedida, WCUs/WRUs serão consumidas com base no tamanho da nova linha.

# Estimar o consumo de capacidade para colunas estáticas no Amazon Keyspaces
<a name="static-columns"></a>

Em uma tabela do Amazon Keyspaces com colunas de clustering, você pode usar a palavra-chave `STATIC` para criar uma coluna estática. O valor armazenado em uma coluna estática é compartilhado entre todas as linhas em uma partição lógica. Quando você atualiza o valor dessa coluna, o Amazon Keyspaces aplica a alteração automaticamente a todas as linhas na partição. 

Esta seção descreve como calcular o tamanho codificado dos dados ao gravar em colunas estáticas. Esse processo é tratado separadamente do processo que grava dados nas colunas não estáticas de uma linha. Além das cotas de tamanho para dados estáticos, as operações de leitura e gravação em colunas estáticas também afetam a medição e capacidade de throughput das tabelas de forma independente. Para diferenças funcionais com o Apache Cassandra ao usar colunas estáticas e resultados de leitura de intervalos paginados, consulte [Paginação](functional-differences.md#functional-differences.paging).

**Topics**
+ [Calcular o tamanho da coluna estática por partição lógica no Amazon Keyspaces](static-columns-estimate.md)
+ [Estime os requisitos de capacidade e taxa de transferência para read/write operações com dados estáticos no Amazon Keyspaces](static-columns-metering.md)

# Calcular o tamanho da coluna estática por partição lógica no Amazon Keyspaces
<a name="static-columns-estimate"></a>

Esta seção fornece detalhes sobre como estimar o tamanho codificado das colunas estáticas no Amazon Keyspaces. O tamanho codificado é usado ao calcular o uso da fatura e da cota. Você também deve usar o tamanho codificado ao calcular os requisitos de capacidade de throughput provisionada para tabelas. Para calcular o tamanho codificado das colunas estáticas no Amazon Keyspaces, é possível usar as diretrizes a seguir.
+ As chaves de partição podem conter até 2.048 bytes de dados. Cada coluna de chave na chave de partição requer até 3 bytes de metadados. Esses bytes de metadados contam para sua cota de tamanho de dados estáticos de 1 MB por partição. Ao calcular o tamanho de seus dados estáticos, você deve assumir que cada coluna de chave de partição usa os 3 bytes completos de metadados.
+ Use o tamanho bruto dos valores de dados da coluna estática com base no tipo de dados. Para obter informações sobre tipos de dados, consulte [Tipos de dados](cql.elements.md#cql.data-types).
+ Adicione 104 bytes ao tamanho dos dados estáticos para metadados.
+ Colunas de clustering e colunas de chave não primária regulares não contam para o tamanho dos dados estáticos. Para saber como estimar o tamanho dos dados não estáticos dentro das linhas, consulte [Estimar o tamanho da linha no Amazon Keyspaces](calculating-row-size.md).

O tamanho total codificado de uma coluna estática é baseado na seguinte fórmula:

```
partition key columns + static columns + metadata = total encoded size of static data
```

Considere o exemplo a seguir de uma tabela em que todas as colunas são do tipo inteiro. A tabela tem duas colunas de chave de partição, duas colunas de clustering, uma coluna regular e uma coluna estática.

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

Neste exemplo, calculamos o tamanho dos dados estáticos da seguinte instrução:

```
INSERT INTO mykeyspace.mytable (pk_col1, pk_col2, static_col1) values(1,2,6);
```

Para estimar o total de bytes exigidos por essa operação de gravação, você pode usar as etapas a seguir.

1. Calcule o tamanho de uma coluna de chave de partição adicionando os bytes do tipo de dados armazenado na coluna e os bytes de metadados. Repita isso para todas as colunas da chave de partição.

   1. Calcule o tamanho da primeira coluna da chave de partição (pk\$1col1):

      ```
      4 bytes for the integer data type + 3 bytes for partition key metadata = 7 bytes
      ```

   1. Calcule o tamanho da segunda coluna da chave de partição (pk\$1col2): 

      ```
      4 bytes for the integer data type + 3 bytes for partition key metadata = 7 bytes
      ```

   1. Adicione as duas colunas para obter o tamanho total estimado das colunas da chave de partição: 

      ```
      7 bytes + 7 bytes = 14 bytes for the partition key columns
      ```

1. Adicione o tamanho das colunas estáticas. Neste exemplo, temos apenas uma coluna estática que armazena um número inteiro (o que exige 4 bytes).

1. Por fim, para obter o tamanho total codificado dos dados da coluna estática, some os bytes das colunas da chave primária e das colunas estáticas e adicione os 104 bytes adicionais dos metadados:

   ```
   14 bytes for the partition key columns + 4 bytes for the static column + 104 bytes for metadata = 122 bytes.
   ```

Você também pode atualizar dados estáticos e não estáticos com a mesma instrução. Para estimar o tamanho total da operação de gravação, você deve primeiro calcular o tamanho da atualização não estática de dados. Em seguida, calcule o tamanho da atualização da linha, conforme mostrado no exemplo em [Estimar o tamanho da linha no Amazon Keyspaces](calculating-row-size.md), e adicione os resultados. 

Nesse caso, você pode gravar um total de 2 MB — 1 MB é a cota máxima de tamanho de linha e 1 MB é a cota para o tamanho máximo de dados estáticos por partição lógica.

Para calcular o tamanho total de uma atualização de dados estáticos e não estáticos na mesma instrução, você pode usar a seguinte fórmula:

```
(partition key columns + static columns + metadata = total encoded size of static data) + (partition key columns + clustering columns + regular columns + row metadata = total encoded size of row)
= total encoded size of data written
```

Considere o exemplo a seguir de uma tabela em que todas as colunas são do tipo inteiro. A tabela tem duas colunas de chave de partição, duas colunas de clustering, uma coluna regular e uma coluna estática.

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

Neste exemplo, calculamos o tamanho dos dados quando escrevemos uma linha na tabela, conforme mostrado na instrução a seguir:

```
INSERT INTO mykeyspace.mytable (pk_col1, pk_col2, ck_col1, ck_col2, reg_col1, static_col1) values(2,3,4,5,6,7);
```

Para estimar o total de bytes exigidos por essa operação de gravação, você pode usar as etapas a seguir.

1. Calcule o tamanho total codificado dos dados estáticos conforme mostrado anteriormente. Neste exemplo, são 122 bytes.

1. Adicione o tamanho do tamanho total codificado da linha com base na atualização de dados não estáticos, seguindo as etapas em [Estimar o tamanho da linha no Amazon Keyspaces](calculating-row-size.md). Neste exemplo, o tamanho total da atualização da linha é 134 bytes.

   ```
   122 bytes for static data + 134 bytes for nonstatic data = 256 bytes.
   ```

# Estime os requisitos de capacidade e taxa de transferência para read/write operações com dados estáticos no Amazon Keyspaces
<a name="static-columns-metering"></a>

Os dados estáticos estão associados a partições lógicas no Cassandra, não a linhas individuais. As partições lógicas no Amazon Keyspaces podem ter tamanho praticamente ilimitado, abrangendo várias partições de armazenamento físico. Como resultado, os medidores do Amazon Keyspaces gravam operações em dados estáticos e não estáticos separadamente. Além disso, gravações que incluem dados estáticos e não estáticos exigem operações subjacentes adicionais para fornecer consistência de dados. 

Se você realizar uma operação de gravação mista de dados estáticos e não estáticos, isso resultará em duas operações de gravação separadas — uma para dados não estáticos e outra para dados estáticos. Isso se aplica aos modos de capacidade sob demanda e provisionada. read/write 

O exemplo a seguir fornece detalhes sobre como estimar as unidades de capacidade de leitura (RCUs) e unidades de capacidade de gravação (WCUs) necessárias ao calcular os requisitos de capacidade de transferência provisionada para tabelas no Amazon Keyspaces que têm colunas estáticas. Você pode estimar quanta capacidade sua tabela precisa para processar gravações que incluam dados estáticos e não estáticos usando a seguinte fórmula:

```
2 x WCUs required for nonstatic data + 2 x WCUs required for static data
```

Por exemplo, se seu aplicativo grava 27% KBs de dados por segundo e cada gravação inclui 25,5 KBs de dados não estáticos e 1,5 KBs de dados estáticos, sua tabela exige 56 WCUs (2 x 26 WCUs \$1 2 x 2 WCUs).

O Amazon Keyspaces mede as leituras de dados estáticos e não estáticos da mesma forma que as leituras de várias linhas. Como resultado, o preço da leitura de dados estáticos e não estáticos na mesma operação é baseado no tamanho agregado dos dados processados para realizar a leitura.

Para saber como monitorar recursos sem servidor com a Amazon CloudWatch, consulte. [Monitorando o Amazon Keyspaces com a Amazon CloudWatch](monitoring-cloudwatch.md)

# Estimar e provisionar a capacidade para uma tabela multirregional no Amazon Keyspaces
<a name="tables-multi-region-capacity"></a>

Você pode configurar a capacidade de throughput de uma tabela multirregional de uma destas duas maneiras:
+ Modo de capacidade sob demanda, medido em unidades de solicitação de gravação () WRUs
+ Modo de capacidade provisionada com escalabilidade automática, medido em unidades de capacidade de gravação () WCUs

Você pode usar o modo de capacidade provisionada com escalabilidade automática ou o modo de capacidade sob demanda para ajudar a garantir que uma tabela multirregional tenha capacidade suficiente para realizar gravações replicadas em todas. Regiões da AWS

**nota**  
A alteração do modo de capacidade da tabela em uma das regiões altera o modo de capacidade de todas as réplicas.

Por padrão, o Amazon Keyspaces usa o modo sob demanda para tabelas multirregionais. No modo sob demanda, não é necessário especificar o throughput de leitura e gravação que você espera que sua aplicação execute. O Amazon Keyspaces acomoda instantaneamente o crescimento e a redução das workloads para qualquer nível de tráfego previamente registrado. Se o nível de tráfego de uma workload atingir um novo pico, o Amazon Keyspaces faz adaptações rapidamente para acomodar a workload.

Se você escolher o modo de capacidade provisionada para uma tabela, precisará configurar o número de unidades de capacidade de leitura (RCUs) e unidades de capacidade de gravação (WCUs) por segundo que seu aplicativo exige. 

Para planejar as necessidades de capacidade de taxa de transferência de uma tabela multirregional, você deve primeiro estimar o número de WCUs por segundo necessário para cada região. Em seguida, você adiciona as gravações de todas as regiões nas quais sua tabela é replicada e usa a soma para provisionar a capacidade de cada região. Isso é necessário porque cada gravação realizada em uma região também deve ser repetida em cada região de réplica. 

Se a tabela não tiver capacidade suficiente para lidar com as gravações de todas as regiões, ocorrerão exceções de capacidade. Além disso, os tempos de espera de replicação inter-regional aumentarão.

Por exemplo, se você tiver uma tabela multirregional na qual espera 5 gravações por segundo no Leste dos EUA (Norte da Virgínia), 10 gravações por segundo no Leste dos EUA (Ohio) e 5 gravações por segundo na Europa (Irlanda), você deve esperar que a tabela consuma 20 WCUs em cada região: Leste dos EUA (Norte da Virgínia), Leste dos EUA (Ohio) e Europa (Irlanda). Isso significa que, neste exemplo, você precisa provisionar 20 WCUs para cada uma das réplicas da tabela. Você pode monitorar o consumo de capacidade da sua mesa usando a Amazon CloudWatch. Para obter mais informações, consulte [Monitorando o Amazon Keyspaces com a Amazon CloudWatch](monitoring-cloudwatch.md). 

Cada gravação é cobrada como 1 WCU, então você veria um total de 60 WCUs cobradas neste exemplo. Para obter mais informações sobre preços, consulte o [Amazon Keyspaces (para Apache Cassandra)](https://aws.amazon.com/keyspaces/pricing). 

Para obter mais informações sobre capacidade provisionada com o ajuste de escala automático do Amazon Keyspaces, consulte [Gerencia automaticamente a capacidade de throughput com o ajuste de escala automático do Amazon Keyspaces](autoscaling.md). 

**nota**  
Se uma tabela estiver sendo executada no modo de capacidade provisionada com ajuste de escala automático, a capacidade de gravação provisionada poderá flutuar dentro das configurações de ajuste de escala automático de cada região. 

# Estime o consumo da capacidade de leitura e gravação com a Amazon CloudWatch no Amazon Keyspaces
<a name="estimate_consumption_cw"></a>

Para estimar e monitorar o consumo da capacidade de leitura e gravação, você pode usar um CloudWatch painel. Para obter mais informações sobre as métricas disponíveis para o Amazon Keyspaces, consulte [Métricas e dimensões do Amazon Keyspaces](metrics-dimensions.md). 

Para monitorar as unidades de capacidade de leitura e gravação consumidas por uma instrução específica com CloudWatch, você pode seguir estas etapas.

1. Criar uma tabela com dados de amostra

1. Configure um CloudWatch painel do Amazon Keyspaces para a tabela. Para começar, você pode usar um modelo de painel disponível no [Github](https://github.com/aws-samples/amazon-keyspaces-cloudwatch-cloudformation-templates).

1. Execute a instrução CQL, por exemplo, usando a opção `ALLOW FILTERING` e verifique as unidades de capacidade de leitura consumidas para a verificação completa da tabela no painel.