Como estimar o consumo de capacidade no Amazon Keyspaces - Amazon Keyspaces (para Apache Cassandra)

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

Como estimar o consumo de capacidade no Amazon Keyspaces

Quando você lê ou grava dados no Amazon Keyspaces, a quantidade de unidades de solicitação de leitura/gravação (RRUS/WRUs) ou unidades de capacidade de leitura/gravação (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 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. Como calcular o tamanho da linha no Amazon Keyspaces

Intervalo de consultas

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 modo de consistência. LOCAL_QUORUM

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 ck3=70 processar a consulta. No entanto, o Amazon Keyspaces retorna somente a linha em que a WHERE condição 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 casock3 = 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.

Limitar consultas

Ao processar uma consulta que usa a LIMIT cláusula, 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 LIMIT valor na primeira página, uma ou mais chamadas paginadas poderão ser necessárias. Para continuar lendo na próxima página, você pode usar um token de paginação. O tamanho padrão da página é de 1 MB. Para consumir menos capacidade de leitura ao usar LIMIT cláusulas, você pode reduzir o tamanho da página. Para obter mais informações sobre paginação, consulte Como paginar resultados no Amazon Keyspaces.

Por exemplo, vejamos a consulta a seguir.

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 ime-to-live configurações T ou nos timestamps do lado do cliente. Para consumir menos capacidade de leitura, recomendamos definir o tamanho da página igual ao LIMIT valor para reduzir a quantidade de dados que o Amazon Keyspaces lê.

Digitalizações de tabela

As consultas que resultam em varreduras completas da tabela, por exemplo, consultas usando a ALLOW FILTERING opção, 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 de exemplo 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>

O Amazon Keyspaces cria uma tabela no modo de capacidade sob demanda com quatro partições por padrão. 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 RRUs no modo de consistência. LOCAL_QUORUM Primeiro, o Amazon Keyspaces consome 3 RRUs para ler as três linhas com. pk=‘pk’ Em seguida, o Amazon Keyspaces consome as 3 RRUs adicionais para escanear as três partições vazias da tabela. Como essa consulta resulta em uma varredura de tabela, o Amazon Keyspaces escaneia todas as partições na tabela, incluindo partições sem dados.

Transações leves

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_QUORUM e não há cobrança adicional pelo uso de LWTs. A diferença para LWTs é que, quando uma verificação de condição de LWT resulta em FALSE, ela consome unidades de capacidade de gravação. O número de unidades de capacidade de gravação consumidas depende do tamanho da linha. Se o tamanho da linha for de 2 KB, a falha na gravação condicional consumirá duas unidades de capacidade de gravação. Se a linha não existir atualmente na tabela, a operação consumirá uma unidade de capacidade de gravação. Ao monitorar a ConditionalCheckFailed métrica, CloudWatch você pode determinar a capacidade consumida pelas falhas de verificação de condição do LWT.

Estime o consumo da capacidade de leitura e gravação com a Amazon CloudWatch

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

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. Crie uma nova tabela com dados de amostra

  2. Configure um CloudWatch painel do Amazon Keyspaces para a tabela. Para começar, você pode usar um modelo de painel disponível no Github.

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