Presto 엄격한 모드 활성화 - 아마존 EMR

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Presto 엄격한 모드 활성화

경우에 따라 쿼리를 오래 실행하면 비용이 증가하고 Amazon이 더 많은 클러스터 리소스를 EMR 사용하게 될 수 있습니다. 이렇게 하면 클러스터의 다른 워크로드에서 리소스를 가져옵니다. Amazon EMR 버전 6.8 이상에서는 다음과 같은 유형의 장기 실행 쿼리를 거부하거나 경고하는 엄격 모드 기능을 사용할 수 있습니다.

  • 파티셔닝된 열에 조건자가 없는 쿼리는 테이블에서 대량의 데이터를 스캔하게 됩니다.

  • 두 개의 대형 테이블 간 교차 조인이 있는 쿼리

  • 많은 행을 제한 없이 정렬하는 쿼리

Presto가 쿼리 계획을 완전히 최적화한 후 엄격한 모드가 실행됩니다. 엄격한 모드를 사용하고 쿼리 요구 사항에 맞게 사용자 지정하려면 다음과 같은 방법으로 Presto를 구성할 수 있습니다.

엄격한 모드를 위한 Presto 구성
설정 설명 기본값
strict-mode-enabled 엄격한 모드를 켜고 끕니다. 값이 true이면 엄격한 모드가 켜져 있음을 나타냅니다. false
strict-mode-fail-query 엄격한 모드에서 장기 실행 쿼리가 감지되면 쿼리를 거부합니다. 이 false 경우 Amazon은 EMR 경고만 표시합니다. false
strict-mode-restrictions 엄격한 모드가 켜져 있을 때 적용할 제한 사항을 지정합니다. 엄격 모드는 _ _, MANDATORY _ PARTITION DISALLOW CROSS _ PREDICATEJOIN, _와 LIMITED 같은 제한을 지원합니다SORT.

MANDATORY_PARTITION_PREDICATE,DISALLOW_CROSS_JOIN, LIMITED_SORT

엄격한 모드를 시험해 보려면 이러한 구성을 재정의하거나 Presto 클라이언트를 사용할 때 세션 속성으로 설정할 수 있습니다.

클러스터를 만들 때 구성을 설정하려면 다음을 사용하십시오. AWS Management Console
  1. 클러스터 생성을 선택하고 Amazon EMR 버전 6.8.0, 프레스토 또는 트리노를 선택합니다. 자세한 내용은 PrestoDB 및 Trino 설치를 참조하세요.

  2. 엄격 모드의 구성 속성을 직접 지정하거나 Amazon S3에 JSON 파일을 업로드하십시오. 선택적으로 메타스토어에 대한 항목을 선택합니다. VPC, 서브넷, 부트스트랩 작업, Key Pair, 보안 그룹을 지정합니다. 클러스터 생성을 선택하여 클러스터를 생성합니다.

  3. 클러스터의 프라이머리 노드에 로그인하고 presto-cli 또는 trino-cli를 실행합니다.

  4. 쿼리를 제출합니다. 엄격한 모드는 각 쿼리를 검증하고 장기 실행 쿼리인지 확인합니다. strict-mode-fail-query설정에 따라 Amazon은 쿼리를 EMR 거부하거나 경고를 표시합니다.

  5. 쿼리를 마치면 클러스터를 종료하고 리소스를 삭제합니다.

다음을 사용하여 실행 중인 클러스터에서 구성을 설정하려면 AWS CLI
  1. AWS CLI 및 presto-cli 또는 를 사용하여 클러스터의 기본 노드에 trino-cli 로그인합니다.

  2. 원하는 값으로 다음 명령을 실행합니다.

    set session strict_mode_enabled = true; set session strict_mode_fail_query = false; set session strict_mode_restrictions = 'DISALLOW_CROSS_JOIN,LIMITED_SORT';

고려 사항

엄격한 모드를 사용할 때 다음 사항을 고려합니다.

  • 경우에 따라 엄격한 모드에서는 리소스를 많이 소비하지 않는 단기 실행 쿼리를 거부할 수 있습니다. 예를 들어 소형 테이블에 대한 쿼리는 동적 필터링을 적용하지 않거나 내부 조인을 교차 조인으로 대체하지 않습니다. 이로 인해 쿼리에서 필수 파티션 조건자를 사용하거나 교차 조인을 허용하지 않을 수 있습니다. 이 경우 엄격한 모드에서 쿼리를 거부합니다.

  • 엄격 모드 검사는 SELECT INSERTSELECT, CREATE TABLE AS 및 EXPLAIN ANALYZE 쿼리 유형에만 적용됩니다.

  • Hive 커넥터에서는 필수 파티션 조건자에 대한 제한만 사용할 수 있습니다.