게시된 날짜: Oct 27, 2022
EMR 6.8에서 PrestoDB 및 Trino를 사용할 때는 엄격한 모드라는 구성 설정을 활용할 수 있습니다. 이 모드에서는 장기 실행 쿼리로 인해 과도하게 발생하는 비용을 방지할 수 있습니다. 이전에는 잘못 작성된 SQL 쿼리가 장시간 실행되어 다른 비즈니스 크리티컬 워크로드의 리소스를 사용하는 경우가 있다는 고객의 피드백이 많았습니다. 관리자가 이러한 쿼리와 관련하여 조치를 취할 수 있도록 엄격한 모드 설정이 도입되었습니다. 이 설정을 사용하면 특정 유형의 쿼리가 실행될 때 경고를 표시하거나 해당 쿼리를 거부할 수 있습니다. 분할된 열에서 조건자 없이 실행되어 큰 테이블을 스캔하는 쿼리, 큰 테이블 간의 교차 조인을 수행하는 쿼리 및/또는 많은 수의 행을 한도 없이 정렬하는 쿼리 등을 예로 들 수 있습니다. 클러스터를 생성할 때 엄격한 모드 구성을 설정할 수 있으며 세션 속성을 사용하여 해당 설정을 재정의할 수도 있습니다. select, insert, create table as select 및 explain analyze 쿼리 유형에 엄격한 모드 확인을 적용할 수 있습니다.
그리고 Amazon EMR PrestoDB와 Trino에는 비용 효율적이면서도 안정적으로 쿼리를 실행할 수 있도록 스팟 인터럽트를 처리하는 새 기능도 추가되었습니다. Amazon EMR의 스팟 인스턴스를 사용하면 온디맨드 인스턴스에 비해 저렴한 비용으로 예비 Amazon EC2 용량에서 빅 데이터 워크로드를 실행할 수 있습니다. 하지만 Amazon EC2에서는 스팟 인스턴스가 중단될 수 있습니다(2분 전에 알림이 표시됨). 스팟 노드가 종료되면 PrestoDB/Trino 쿼리는 실패합니다. 이로 인해 고객은 저렴한 비용으로 스팟 인스턴스에서 이러한 워크로드를 실행할 수 없었습니다. EMR 6.7에는 스팟 인터럽트를 감지한 후 해당 노드에서 2분 내에 기존 쿼리를 완료할 수 있는지를 확인하는 새로운 기능이 PrestoDB/Trino 엔진에 추가되었습니다. 완료할 수 없는 쿼리는 빠르게 실패 처리되며 다른 노드에서 재시도됩니다. 또한 Amazon EMR PrestoDB/Trino 엔진은 회수 예정인 스팟 노드에서는 새 쿼리를 예약하지 않습니다. 새로 추가된 이 두 가지 기능을 활용하면 Amazon EMR에서 PrestoDB/Trino 엔진을 통해 복원력을 개선하는 동시에 스팟 노드에서 쿼리를 경제적으로 실행할 수 있습니다.