Quotas dans ClickHouse CloudLes quotas sont pris en charge dans ClickHouse Cloud, mais ils doivent être créés à l’aide de la syntaxe DDL. L’approche de configuration XML décrite ci-dessous n’est pas prise en charge.
- imposent des restrictions sur un ensemble de requêtes pouvant être exécutées sur une période donnée, au lieu de limiter une seule requête ;
- prennent en compte les ressources consommées sur tous les serveurs distants dans le cadre du traitement distribué des requêtes.
queries – Le nombre total de requêtes.
query_selects – Le nombre total de requêtes SELECT.
query_inserts – Le nombre total de requêtes INSERT.
errors – Le nombre de requêtes ayant levé une exception.
result_rows – Le nombre total de lignes renvoyées en résultat.
result_bytes - La taille totale des lignes renvoyées en résultat.
read_rows – Le nombre total de lignes lues dans les tables pour exécuter la requête sur l’ensemble des serveurs distants.
read_bytes - La taille totale lue depuis les tables pour exécuter la requête sur l’ensemble des serveurs distants.
written_bytes - La taille totale d’une opération d’écriture.
execution_time – Le temps d’exécution total des requêtes, en secondes (temps réel).
failed_sequential_authentications - Le nombre total d’erreurs d’authentification séquentielles.
queries_per_normalized_hash – Le nombre maximal d’exécutions d’une même requête normalisée. Les requêtes normalisées sont des requêtes dans lesquelles les valeurs littérales sont remplacées par des marqueurs de substitution ; ainsi, SELECT 1 et SELECT 2 sont considérées comme une seule et même requête normalisée. Cette limite est suivie indépendamment pour chaque modèle distinct de requête normalisée.
Si la limite est dépassée sur au moins un intervalle de temps, une exception est levée avec un message indiquant quelle restriction a été dépassée, pour quel intervalle, et quand le nouvel intervalle commence (c’est-à-dire quand des requêtes peuvent à nouveau être envoyées).
Les quotas peuvent utiliser la fonctionnalité de « clé de quota » pour suivre l’utilisation des ressources indépendamment pour plusieurs clés. En voici un exemple :
<keyed_by_normalized_query_hash />:
SELECT number FROM numbers(1) et SELECT number FROM numbers(2) partagent le même bucket (car elles ont la même forme normalisée), mais SELECT number, number FROM numbers(1) utilise un bucket distinct.
Le quota est attribué aux utilisateurs dans la section ‘users’ de la config. Voir la section “Droits d’accès”.
Pour le traitement distribué des requêtes, les quantités cumulées sont stockées sur le serveur émetteur de la requête. Ainsi, si l’utilisateur passe à un autre serveur, le quota y repartira de zéro.
Lorsque le serveur redémarre, les quotas sont réinitialisés.