Skip to main content
QUOTAS en ClickHouse CloudLas QUOTAS son compatibles con ClickHouse Cloud, pero deben crearse mediante la sintaxis DDL. El enfoque de configuración XML que se documenta a continuación no es compatible.
Las QUOTAS le permiten limitar el uso de recursos durante un período de tiempo o hacer un seguimiento del uso de los recursos. Las QUOTAS se configuran en la configuración del usuario, que normalmente es ‘users.xml’. El sistema también tiene una función para limitar la complejidad de una sola consulta. Consulte la sección Restricciones sobre la complejidad de las consultas. A diferencia de las restricciones sobre la complejidad de las consultas, las QUOTAS:
  • Imponen restricciones sobre un conjunto de consultas que pueden ejecutarse durante un período de tiempo, en lugar de limitar una sola consulta.
  • Contabilizan los recursos consumidos en todos los servidores remotos para el procesamiento distribuido de consultas.
Veamos la sección del archivo ‘users.xml’ que define las QUOTAS.
De forma predeterminada, la QUOTA hace un seguimiento del consumo de recursos por hora, sin limitar su uso. El consumo de recursos calculado para cada intervalo se escribe en el log del servidor después de cada petición.
Para la QUOTA ‘statbox’, se establecen restricciones para cada hora y para cada período de 24 horas (86.400 segundos). El intervalo de tiempo se cuenta a partir de un momento fijo definido por la implementación. En otras palabras, el intervalo de 24 horas no necesariamente comienza a medianoche. Cuando finaliza el intervalo, se restablecen todos los valores recopilados. Para la hora siguiente, el cálculo de la QUOTA vuelve a empezar. Estas son las cantidades que se pueden restringir: queries – El número total de solicitudes. query_selects – El número total de solicitudes SELECT. query_inserts – El número total de solicitudes de inserción. errors – El número de consultas que generaron una excepción. result_rows – El número total de filas devueltas como resultado. result_bytes - El tamaño total de las filas devueltas como resultado. read_rows – El número total de filas de origen leídas de las tablas para ejecutar la consulta en todos los servidores remotos. read_bytes - El tamaño total leído de las tablas para ejecutar la consulta en todos los servidores remotos. written_bytes - El tamaño total de una operación de escritura. execution_time – El tiempo total de ejecución de la consulta, en segundos (tiempo real transcurrido). failed_sequential_authentications - El número total de errores de autenticación secuenciales. queries_per_normalized_hash – El número máximo de ejecuciones de una misma consulta normalizada. Las consultas normalizadas son consultas en las que los literales se reemplazan por marcadores de posición, por lo que SELECT 1 y SELECT 2 se consideran la misma consulta normalizada. Este límite se controla de forma independiente para cada patrón de consulta normalizada distinto. Si se supera el límite durante al menos un intervalo de tiempo, se lanza una excepción con un mensaje que indica qué restricción se ha superado, para qué intervalo y cuándo comienza el nuevo intervalo (cuándo se pueden volver a enviar consultas). Las QUOTAS pueden usar la función de “clave de QUOTA” para hacer un seguimiento de los recursos de varias claves de forma independiente. Este es un ejemplo de ello:
También puede asociar las QUOTAS al hash de la consulta normalizada, de modo que cada patrón de consulta distinto tenga su propio bucket de QUOTA independiente. En la configuración XML, esto se escribe como <keyed_by_normalized_query_hash />:
Esto mismo se puede expresar con la sintaxis DDL:
En este ejemplo, el usuario puede ejecutar hasta 100 veces cada consulta normalizada distinta por hora. SELECT number FROM numbers(1) y SELECT number FROM numbers(2) comparten el mismo bucket (porque tienen la misma forma normalizada), pero SELECT number, number FROM numbers(1) usa un bucket distinto. La QUOTA se asigna a los usuarios en la sección ‘users’ de la configuración. Consulte la sección “Derechos de acceso”. Para el procesamiento distribuido de consultas, las cantidades acumuladas se almacenan en el servidor que realiza la solicitud. Por lo tanto, si el usuario cambia a otro servidor, la QUOTA allí “volverá a empezar”. Cuando se reinicia el servidor, las QUOTAS se restablecen.
Última modificación el 3 de julio de 2026