Cómo estimar el consumo de capacidad en Amazon Keyspaces - Amazon Keyspaces (para Apache Cassandra)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cómo estimar el consumo de capacidad en Amazon Keyspaces

Al leer o escribir datos en Amazon Keyspaces, la cantidad de unidades de solicitud de lectura/escritura (RRUS/WRU) o unidades de capacidad de lectura/escritura (RCU/WCU) que consume la consulta depende de la cantidad total de datos que Amazon Keyspaces debe procesar para ejecutar la consulta. En algunos casos, los datos devueltos al cliente pueden ser un subconjunto de los datos que Amazon Keyspaces tuvo que leer para procesar la consulta. En el caso de las escrituras condicionales, Amazon Keyspaces consume capacidad de escritura incluso si se produce un error en la comprobación condicional.

Para estimar la cantidad total de datos que se están procesando para una solicitud, debe tener en cuenta el tamaño codificado de una fila y el número total de filas. En este tema se describen algunos ejemplos de escenarios y patrones de acceso comunes para mostrar cómo Amazon Keyspaces procesa las consultas y cómo esto afecta al consumo de capacidad. Puedes seguir los ejemplos para estimar los requisitos de capacidad de tus tablas y utilizar Amazon CloudWatch para observar el consumo de capacidad de lectura y escritura en estos casos de uso.

Para obtener información sobre cómo calcular el tamaño codificado de las filas en Amazon Keyspaces, consulte. Cálculo del tamaño de las filas en Amazon Keyspaces

Consultas de rango

Para analizar el consumo de capacidad de lectura de una consulta de rango, utilizamos la siguiente tabla de ejemplo, que utiliza el modo de capacidad bajo 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>

Ahora ejecute la siguiente consulta en esta tabla.

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;

Recibes el siguiente conjunto de resultados de la consulta y la operación de lectura realizada por Amazon Keyspaces consume 2 RRU en LOCAL_QUORUM modo de coherencia.

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

Amazon Keyspaces consume 2 RRU para evaluar las filas con los valores ck3=60 y ck3=70 procesar la consulta. Sin embargo, Amazon Keyspaces solo devuelve la fila en la que la WHERE condición especificada en la consulta es verdadera, que es la fila con valor. ck3=60 Para evaluar el rango especificado en la consulta, Amazon Keyspaces lee la fila que coincide con el límite superior del rango, en este casock3 = 70, pero no devuelve esa fila en el resultado. El consumo de capacidad de lectura se basa en los datos leídos al procesar la consulta, no en los datos devueltos.

Limite las consultas

Al procesar una consulta que utiliza la LIMIT cláusula, Amazon Keyspaces lee las filas hasta el tamaño máximo de página cuando intenta cumplir la condición especificada en la consulta. Si Amazon Keyspaces no encuentra suficientes datos coincidentes que coincidan con el LIMIT valor de la primera página, podrían ser necesarias una o más llamadas paginadas. Para continuar leyendo en la página siguiente, puedes usar un token de paginación. El tamaño predeterminado de la página es de 1 MB. Para consumir menos capacidad de lectura al utilizar LIMIT cláusulas, puede reducir el tamaño de la página. Para obtener más información sobre paginación, consulte Paginación de resultados en Amazon Keyspaces.

A modo de ejemplo, veamos la siguiente consulta.

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

Si no estableces el tamaño de la página, Amazon Keyspaces lee 1 MB de datos aunque solo te devuelva una fila. Para que Amazon Keyspaces lea solo una fila, puedes establecer el tamaño de página en 1 para esta consulta. En este caso, Amazon Keyspaces solo leería una fila siempre que no tenga filas caducadas según la ime-to-live configuración de T o las marcas de tiempo del lado del cliente. Para consumir menos capacidad de lectura, te recomendamos que establezcas el tamaño de la página igual al LIMIT valor para reducir la cantidad de datos que lee Amazon Keyspaces.

Escaneos de tablas

Las consultas que dan como resultado un escaneo completo de la tabla, por ejemplo, las consultas que utilizan la ALLOW FILTERING opción, son otro ejemplo de consultas que procesan más lecturas de las que devuelven como resultados. Además, el consumo de capacidad de lectura se basa en los datos leídos, no en los datos devueltos.

Para el ejemplo de escaneo de tablas, utilizamos la siguiente tabla de ejemplo en el modo de capacidad bajo 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>

Amazon Keyspaces crea una tabla en el modo de capacidad bajo demanda con cuatro particiones de forma predeterminada. En esta tabla de ejemplo, todos los datos se almacenan en una partición y las tres particiones restantes están vacías.

Ahora ejecute la siguiente consulta en la tabla.

SELECT * from amazon_keyspaces.example_table_2;

Esta consulta da como resultado una operación de escaneo de tablas en la que Amazon Keyspaces escanea las cuatro particiones de la tabla y consume 6 RRU en LOCAL_QUORUM modo de coherencia. En primer lugar, Amazon Keyspaces consume 3 RRU para leer las tres filas. pk=‘pk’ A continuación, Amazon Keyspaces consume las 3 RRU adicionales para escanear las tres particiones vacías de la tabla. Como esta consulta da como resultado un escaneo de la tabla, Amazon Keyspaces escanea todas las particiones de la tabla, incluidas las particiones sin datos.

Transacciones ligeras

Las transacciones ligeras (LWT) te permiten realizar operaciones de escritura condicional con los datos de tu tabla. Las operaciones de actualización condicional son útiles al insertar, actualizar y eliminar registros en función de las condiciones que evalúan el estado actual.

En Amazon Keyspaces, todas las operaciones de escritura requieren coherencia con LOCAL_QUORUM y el uso de los LWT no conlleva ningún cargo adicional. La diferencia con los LWT es que cuando una comprobación del estado del LWT da como resultado FALSE, consume unidades de capacidad de escritura. El número de unidades de capacidad de escritura consumidas depende del tamaño de la fila. Si el tamaño de la fila es de 2 KB, la escritura condicional fallida consume dos unidades de capacidad de escritura. Si la fila no existe actualmente en la tabla, la operación consume una unidad de capacidad de escritura. Al monitorear la ConditionalCheckFailed métrica, CloudWatch puede determinar la capacidad consumida por los errores de verificación de estado del LWT.

Calcula el consumo de capacidad de lectura y escritura con Amazon CloudWatch

Para estimar y supervisar el consumo de capacidad de lectura y escritura, puede utilizar un CloudWatch panel de control. Para obtener más información sobre las métricas disponibles para Amazon Keyspaces, consulte. Métricas y dimensiones de Amazon Keyspaces

Para monitorear las unidades de capacidad de lectura y escritura consumidas por una declaración específica CloudWatch, puede seguir estos pasos.

  1. Cree una tabla nueva con datos de ejemplo

  2. Configure un CloudWatch panel de Amazon Keyspaces para la tabla. Para empezar, puedes usar una plantilla de panel disponible en Github.

  3. Ejecute la instrucción CQL, por ejemplo, utilizando la ALLOW FILTERING opción, y compruebe en el panel de control las unidades de capacidad de lectura consumidas durante el escaneo completo de la tabla.