요청 제한 정책
적용 대상: ✅Microsoft Fabric✅Azure Data Explorer
워크로드 그룹의 요청 제한 정책을 사용하면 실행 중에 요청에서 사용하는 리소스를 제한할 수 있습니다.
정책 개체
각 제한은 다음으로 구성됩니다.
- 형식화된
Value
- 제한 값입니다. -
IsRelaxable
- 요청의 요청 속성일부로 호출자가 제한을 완화할 수 있는지 여부를 정의하는 부울 값입니다.
다음 제한은 구성할 수 있습니다.
재산 | 형 | 묘사 | 지원되는 값 | 클라이언트 요청 속성 일치 |
---|---|---|---|---|
DataScope | string |
쿼리의 데이터 범위입니다. 이 값은 쿼리가 모든 데이터에 적용되는지 아니면 핫 캐시에만 적용되는지를 결정합니다. |
All , HotCache 또는 null |
query_datascope |
MaxMemoryPerQueryPerNode | long |
쿼리에서 할당할 수 있는 최대 메모리 양(바이트)입니다. | [ |
max_memory_consumption_per_query_per_node |
MaxMemoryPerIterator | long |
쿼리 연산자 할당할 수 있는 최대 메모리 양(바이트)입니다. | [1 , Min(32212254720 , 50% 단일 노드의 총 RAM)] |
maxmemoryconsumptionperiterator |
MaxFanoutThreadsPercentage | int |
쿼리 실행을 팬아웃할 각 노드의 스레드 비율입니다. %100으로 설정하면 클러스터는 각 노드의 모든 CPU를 할당합니다. 예를 들어 Azure D14_v2 노드에 배포된 클러스터의 CPU 16개. | [1 , 100 ] |
query_fanout_threads_percent |
MaxFanoutNodesPercentage | int |
쿼리 실행을 팬아웃할 클러스터의 노드 비율입니다.
MaxFanoutThreadsPercentage 유사한 방식으로 함수입니다. |
[1 , 100 ] |
query_fanout_nodes_percent |
MaxResultRecords | long |
요청이 호출자에게 반환할 수 있는 최대 레코드 수이며, 그 이상으로 결과가 잘립니다. 잘림 제한은 클라이언트에 다시 전달되는 쿼리의 최종 결과에 영향을 줍니다. 그러나 잘림 제한은 하위 쿼리의 중간 결과(예: 클러스터 간 참조가 있는 결과)에 적용되지 않습니다. | [1 , 9223372036854775807 ] |
truncationmaxrecords |
MaxResultBytes | long |
요청이 호출자에게 반환될 수 있는 최대 데이터 크기(바이트)이며, 그 이상으로 결과가 잘립니다. 잘림 제한은 클라이언트에 다시 전달되는 쿼리의 최종 결과에 영향을 줍니다. 그러나 잘림 제한은 하위 쿼리의 중간 결과(예: 클러스터 간 참조가 있는 결과)에 적용되지 않습니다. | [1 , 9223372036854775807 ] |
truncationmaxsize |
MaxExecutionTime | timespan |
요청의 최대 기간입니다. 참고 사항: 1) 실행 시간 2) 시간 제한 처리는 3) 클라이언트에서 페이로드를 다시 읽는 데 걸리는 시간은 시간 제한의 일부로 처리되지 않습니다. 호출자가 스트림에서 데이터를 가져오는 빈도에 따라 달라집니다. 4) 실행을 중단하는 데 시간이 오래 걸리는 경우 총 실행 시간이 구성된 값을 초과할 수 있습니다. |
[00:00:00 , 01:00:00 ] |
servertimeout |
재산 | 형 | 묘사 | 지원되는 값 | 클라이언트 요청 속성 일치 |
---|---|---|---|---|
DataScope | string |
쿼리의 데이터 범위입니다. 이 값은 쿼리가 모든 데이터에 적용되는지 아니면 핫 캐시에만 적용되는지를 결정합니다. |
All , HotCache 또는 null |
query_datascope |
MaxMemoryPerQueryPerNode | long |
쿼리에서 할당할 수 있는 최대 메모리 양(바이트)입니다. | [ |
max_memory_consumption_per_query_per_node |
MaxMemoryPerIterator | long |
쿼리 연산자 할당할 수 있는 최대 메모리 양(바이트)입니다. | [1 , Min(32212254720 , 50% 단일 노드의 총 RAM)] |
maxmemoryconsumptionperiterator |
MaxFanoutThreadsPercentage | int |
쿼리 실행을 팬아웃할 각 노드의 스레드 비율입니다. %100으로 설정하면 Eventhouse는 각 노드의 모든 CPU를 할당합니다. 예를 들어 Azure D14_v2 노드에 배포된 eventhouse의 CPU 16개. | [1 , 100 ] |
query_fanout_threads_percent |
MaxFanoutNodesPercentage | int |
쿼리 실행을 팬아웃할 Eventhouse의 노드 비율입니다.
MaxFanoutThreadsPercentage 유사한 방식으로 함수입니다. |
[1 , 100 ] |
query_fanout_nodes_percent |
MaxResultRecords | long |
요청이 호출자에게 반환할 수 있는 최대 레코드 수이며, 그 이상으로 결과가 잘립니다. 잘림 제한은 클라이언트에 다시 전달되는 쿼리의 최종 결과에 영향을 줍니다. 그러나 잘림 제한은 이벤트 하우스 간 참조가 있는 결과와 같은 하위 쿼리의 중간 결과에는 적용되지 않습니다. | [1 , 9223372036854775807 ] |
truncationmaxrecords |
MaxResultBytes | long |
요청이 호출자에게 반환될 수 있는 최대 데이터 크기(바이트)이며, 그 이상으로 결과가 잘립니다. 잘림 제한은 클라이언트에 다시 전달되는 쿼리의 최종 결과에 영향을 줍니다. 그러나 잘림 제한은 이벤트 하우스 간 참조가 있는 결과와 같은 하위 쿼리의 중간 결과에는 적용되지 않습니다. | [1 , 9223372036854775807 ] |
truncationmaxsize |
MaxExecutionTime | timespan |
요청의 최대 기간입니다. 참고 사항: 1) 실행 시간 2) 시간 제한 처리는 3) 클라이언트에서 페이로드를 다시 읽는 데 걸리는 시간은 시간 제한의 일부로 처리되지 않습니다. 호출자가 스트림에서 데이터를 가져오는 빈도에 따라 달라집니다. 4) 실행을 중단하는 데 시간이 오래 걸리는 경우 총 실행 시간이 구성된 값을 초과할 수 있습니다. |
[00:00:00 , 01:00:00 ] |
servertimeout |
메모
정의되지 않았거나 null
정의된 제한은 default
워크로드 그룹의 요청 제한 정책에서 가져옵니다.
CPU 리소스 사용량
쿼리는 클러스터 내의 모든 CPU 리소스를 사용할 수 있습니다. 기본적으로 여러 쿼리가 동시에 실행되는 경우 시스템은 공정한 라운드 로빈 접근 방식을 사용하여 리소스를 배포합니다. 이 전략은 임시 쿼리를 사용하여 고성능을 달성하는 데 최적입니다.
쿼리는 Eventhouse 내의 모든 CPU 리소스를 사용할 수 있습니다. 기본적으로 여러 쿼리가 동시에 실행되는 경우 시스템은 공정한 라운드 로빈 접근 방식을 사용하여 리소스를 배포합니다. 이 전략은 임시 쿼리를 사용하여 고성능을 달성하는 데 최적입니다.
그러나 특정 쿼리에 할당된 CPU 리소스를 제한하려는 시나리오가 있습니다. 예를 들어 더 높은 대기 시간을 수용할 수 있는 백그라운드 작업을 실행하는 경우입니다. 요청 제한 정책은 분산 하위 쿼리 작업을 실행할 때 사용할 스레드 또는 노드의 낮은 비율을 지정할 수 있는 유연성을 제공합니다. 기본 설정은 100%.
default
워크로드 그룹
default
워크로드 그룹에는 기본적으로 정의된 다음 정책이 있습니다. 이 정책은 변경할 수 있습니다.
{
"DataScope": {
"IsRelaxable": true,
"Value": "All"
},
"MaxMemoryPerQueryPerNode": {
"IsRelaxable": true,
"Value": < 50% of a single node's total RAM >
},
"MaxMemoryPerIterator": {
"IsRelaxable": true,
"Value": 5368709120
},
"MaxFanoutThreadsPercentage": {
"IsRelaxable": true,
"Value": 100
},
"MaxFanoutNodesPercentage": {
"IsRelaxable": true,
"Value": 100
},
"MaxResultRecords": {
"IsRelaxable": true,
"Value": 500000
},
"MaxResultBytes": {
"IsRelaxable": true,
"Value": 67108864
},
"MaxExecutiontime": {
"IsRelaxable": true,
"Value": "00:04:00"
}
}
메모
-
default
워크로드 그룹의 제한을 정의하고null
값이 아닌 값을 가져야 합니다. -
default
워크로드 그룹의 모든 제한은IsRelaxable
true
설정됩니다. 명령 및 및 같은 쿼리 명령에서 수집하는 같은 작업 그룹 내의 특정 명령 유형에 대해 요청 제한이 해제됩니다. 이러한 명령이 기본이 아닌 워크로드 그룹에 할당되면 정책에 지정된 요청 제한이 적용됩니다.
본보기
다음 JSON은 사용자 지정 요청 제한 정책 개체를 나타냅니다.
{
"DataScope": {
"IsRelaxable": true,
"Value": "HotCache"
},
"MaxMemoryPerQueryPerNode": {
"IsRelaxable": true,
"Value": 2684354560
},
"MaxMemoryPerIterator": {
"IsRelaxable": true,
"Value": 2684354560
},
"MaxFanoutThreadsPercentage": {
"IsRelaxable": true,
"Value": 50
},
"MaxFanoutNodesPercentage": {
"IsRelaxable": true,
"Value": 50
},
"MaxResultRecords": {
"IsRelaxable": true,
"Value": 1000
},
"MaxResultBytes": {
"IsRelaxable": true,
"Value": 33554432
},
"MaxExecutiontime": {
"IsRelaxable": true,
"Value": "00:01:00"
}
}
관련 콘텐츠
- 워크로드 그룹
- 클라이언트 요청 속성
- .alter-merge workload_group
- .create-or-alter workload_group
- .drop workload_group
- .show workload_group 명령