기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Presto 엄격한 모드 활성화
경우에 따라 장기 실행 쿼리로 인해 비용이 증가하고 Amazon EMR이 더 많은 클러스터 리소스를 사용할 수 있습니다. 이렇게 하면 클러스터의 다른 워크로드에서 리소스를 가져옵니다. Amazon EMR 버전 6.8 이상에서는 다음과 같은 유형의 장기 실행 쿼리를 거부하거나 경고하는 엄격한 모드 기능을 사용할 수 있습니다.
-
파티셔닝된 열에 조건자가 없는 쿼리는 테이블에서 대량의 데이터를 스캔하게 됩니다.
-
두 개의 대형 테이블 간 교차 조인이 있는 쿼리
-
많은 행을 제한 없이 정렬하는 쿼리
Presto가 쿼리 계획을 완전히 최적화한 후 엄격한 모드가 실행됩니다. 엄격한 모드를 사용하고 쿼리 요구 사항에 맞게 사용자 지정하려면 다음과 같은 방법으로 Presto를 구성할 수 있습니다.
설정 | 설명 | Default |
---|---|---|
strict-mode-enabled |
엄격한 모드를 켜고 끕니다. 값이 true 이면 엄격한 모드가 켜져 있음을 나타냅니다. |
false |
strict-mode-fail-query |
엄격한 모드에서 장기 실행 쿼리가 감지되면 쿼리를 거부합니다. false 인 경우 Amazon EMR은 경고만 생성합니다. |
false |
strict-mode-restrictions |
엄격한 모드가 켜져 있을 때 적용할 제한 사항을 지정합니다. 엄격한 모드에서는 MANDATORY_PARTITION_PREDICATE, DISALLOW_CROSS_JOIN, LIMITED_SORT와 같은 제한 사항을 지원합니다. |
MANDATORY_PARTITION_PREDICATE,DISALLOW_CROSS_JOIN, LIMITED_SORT |
엄격한 모드를 시험해 보려면 이러한 구성을 재정의하거나 Presto 클라이언트를 사용할 때 세션 속성으로 설정할 수 있습니다.
를 사용하여 클러스터 생성 시 구성을 설정하려면 AWS Management Console
-
클러스터 생성을 선택하고 Amazon EMR 버전 6.8.0, Presto 또는 Trino를 선택합니다. 자세한 내용은 PrestoDB 및 Trino 설치를 참조하세요.
-
엄격한 모드의 구성 속성을 직접 지정하거나 Amazon S3에 JSON 파일을 업로드합니다. 선택적으로 메타스토어의 AWS Glue 데이터 카탈로그를 선택합니다. VPC, 서브넷, 부트스트랩 작업, 키 페어, 보안 그룹을 지정합니다. 클러스터 생성을 선택하여 클러스터를 생성합니다.
-
클러스터의 프라이머리 노드에 로그인하고
presto-cli
또는trino-cli
를 실행합니다. -
쿼리를 제출합니다. 엄격한 모드는 각 쿼리를 검증하고 장기 실행 쿼리인지 확인합니다.
strict-mode-fail-query
설정에 따라 Amazon EMR은 쿼리를 거부하거나 경고를 생성합니다. -
쿼리를 마치면 클러스터를 종료하고 리소스를 삭제합니다.
를 사용하여 실행 중인 클러스터에서 구성을 설정하려면 AWS CLI
-
를 사용하여 클러스터의 기본 노드에 로그인 AWS CLI 하고
presto-cli
또는를 실행합니다trino-cli
. -
원하는 값으로 다음 명령을 실행합니다.
set session strict_mode_enabled = true; set session strict_mode_fail_query = false; set session strict_mode_restrictions = 'DISALLOW_CROSS_JOIN,LIMITED_SORT';
고려 사항
엄격한 모드를 사용할 때 다음 사항을 고려합니다.
-
경우에 따라 엄격한 모드에서는 리소스를 많이 소비하지 않는 단기 실행 쿼리를 거부할 수 있습니다. 예를 들어 소형 테이블에 대한 쿼리는 동적 필터링을 적용하지 않거나 내부 조인을 교차 조인으로 대체하지 않습니다. 이로 인해 쿼리에서 필수 파티션 조건자를 사용하거나 교차 조인을 허용하지 않을 수 있습니다. 이 경우 엄격한 모드에서 쿼리를 거부합니다.
-
엄격한 모드 검사는 SELECT, INSERT, CREATE TABLE AS SELECT, EXPLAIN ANALYZE 쿼리 유형에만 적용됩니다.
-
Hive 커넥터에서는 필수 파티션 조건자에 대한 제한만 사용할 수 있습니다.