CREATE QUOTA
CREATE QUOTA
사용자나 역할에 할당할 수 있는 쿼터(quota)를 만들어요.
출처: 문서
본문
Syntax:
CREATE QUOTA [IF NOT EXISTS | OR REPLACE] name [ON CLUSTER cluster_name]
[IN access_storage_type]
[KEYED BY {user_name | ip_address | forwarded_ip_address | client_key | client_key,user_name | client_key,ip_address | normalized_query_hash} | NOT KEYED]
[IPV4_PREFIX_BITS number]
[IPV6_PREFIX_BITS number]
[FOR [RANDOMIZED] INTERVAL number {second | minute | hour | day | week | month | quarter | year}
{MAX { {queries | query_selects | query_inserts | errors | result_rows | result_bytes | read_rows | read_bytes | written_bytes | execution_time | failed_sequential_authentications | queries_per_normalized_hash} = number } [,...] |
NO LIMITS | TRACKING ONLY} [,...]]
[TO {role [,...] | ALL | ALL EXCEPT role [,...]}]
키 user_name, ip_address, forwarded_ip_address, client_key, client_key, user_name, client_key, ip_address, normalized_query_hash는 system.quotas 테이블의 필드에 대응해요.
IPV4_PREFIX_BITS와 IPV6_PREFIX_BITS 옵션은 KEYED BY가 ip_address 또는 forwarded_ip_address일 때만 사용할 수 있어요. 이들도 system.quotas 테이블의 필드에 대응합니다.
파라미터 queries, query_selects, query_inserts, errors, result_rows, result_bytes, read_rows, read_bytes, written_bytes, execution_time, failed_sequential_authentications, queries_per_normalized_hash는 system.quotas_usage 테이블의 필드에 대응해요.
ON CLUSTER 절은 클러스터에서 쿼터를 만들 수 있게 해주며, Distributed DDL을 참고하세요.
CREATE QUOTA는 CREATE QUOTA 권한이 필요해요. OR REPLACE는 적용 대상 역할을 포함해 같은 이름의 기존 쿼터를 버리므로, 추가로 DROP QUOTA 권한이 필요합니다. DROP QUOTA 권한은 쿼터가 이미 존재하는지와 상관없이 필요하므로, 이 문으로 어떤 쿼터가 존재하는지 알아낼 수 없어요.
Examples
15개월 제약에서 현재 사용자의 최대 쿼리 수를 123개로 제한해요.
CREATE QUOTA qA FOR INTERVAL 15 month MAX queries = 123 TO CURRENT_USER;
기본 사용자에 대해 30분 동안 최대 실행 시간을 0.5초로 제한하고, 5분기 동안 최대 쿼리 수를 321개, 최대 오류 수를 10개로 제한해요.
CREATE QUOTA qB FOR INTERVAL 30 minute MAX execution_time = 0.5, FOR INTERVAL 5 quarter MAX queries = 321, errors = 10 TO default;
각 고유한 정규화 쿼리 패턴이 자기 고유의 버킷을 얻고 시간당 100회 실행으로 제한되는 쿼터를 만들어요.
CREATE QUOTA qC KEYED BY normalized_query_hash FOR INTERVAL 1 hour MAX queries = 100 TO default;
단일 정규화 쿼리 패턴을 시간당 최대 50회 실행으로 제한(쿼터 키 타입과 무관):
CREATE QUOTA qD FOR INTERVAL 1 hour MAX queries_per_normalized_hash = 50 TO default;
xml 구성(ClickHouse Cloud에서 지원되지 않음)을 사용하는 추가 예시는 Quotas guide에서 확인할 수 있어요.