← Back to list

Snowflake Query Acceleration Service에 대해 알아보기

Snowflake에서 사용자가 요청하는 쿼리는 Virtual warehouse(VWH)에서 실행되며, Snowflake Cloud Service는 요청 받은 쿼리가 실행될 VWH에 충분한 리소스가 없는 경우 Queue에 해당 SQL 요청을…

HYUN in Snowflake Korea · 2022-06-17 04:27 · 75 claps · 5.0 min read
#스노우플레이크 #qa #성능 #virtual-warehouse
Open on Medium ↗
Wiki topics: 🔧 · Data Engineering

Snowflake Query Acceleration Service에 대해 알아보기

Snowflake에서 사용자가 요청하는 쿼리는 Virtual warehouse(VWH)에서 실행되며, Snowflake Cloud Service는 요청 받은 쿼리가 실행될 VWH에 충분한 리소스가 없는 경우 Queue에 해당 SQL 요청을 추가합니다. 이와 같이 큐잉으로 발생한 성능 저하를 해결하기 위한 일반적인 접근법은 VWH T-Shirt 크기를 SMALL에서 X-Large로 변경하는 것이 하나의 대안이 될 수 있습니다. 하지만 이 경우 해당 VWH에 가벼운 쿼리, 중간 쿼리 및 무거운 쿼리가 혼용되어 실행 되는 경우 효율적인 방식이 아닙니다. 가장 이상적인 방식은 VWH의 T-Shirt 사이즈를 중간 쿼리를 수용할 수 있는 값으로 설정하고 무거운 쿼리를 요청받는 경우, 일시적으로 VWH에 노드를 추가하는 것이 비용 및 사용자 만족도를 함께 달성할 수 있는 방법이라고 생각됩니다.

Snowflake의 QAS(Query Acceration Service)는 Snowflake에서 실행되는 쿼리가 대량의 테이블에 대한 스캔 작업을 수행할 때 QAS 서비스로 오프로드하여 쿼리 성능을 향상 시켜 줄 수 있는 기능입니다. Snowflake의 QAS 기능을 활용하는 경우 대량 테이블에 대한 스캔 작업, 필터 및 조인 필터 작업에 대한 성능 개선을 얻을 수 있습니다. QAS 서비스를 활성화 하는 경우 아래 그림과 같이 할당된 VWH에서 실행되기에 무거운 쿼리를 요청받은 경우 추가 리소스를 해당 VWH에 할당하여 쿼리 결과를 빠르게 실행할 뿐만 아니라 비용을 효율적으로 사용할 수 있는 방법이 될 수 있습니다. QAS 비용 모델을 추가로 사용되는 CPU 요금으로 과금 되기 때문에 필요한 리소스에 대한 비용만이 발생하기 때문에 합리적입니다. 현재 QAS는 Public Preview로 Enterprise 에디션 이상의 모든 사용자는 사용 가능합니다.

QAS를 VWH에 다음과 같이 적용하여, 무거운 작업에 대한 처리 환경을 Sacle-up할 수 있습니다:

alter warehouse QAS_WH enable_query_acceleration = true query_acceleration_max_scale_factor = 8;

예를 들어 QAS_WH가 Small(CPU: 8core x 2 = 16) 로 구성되어 있는 경우, 가벼운 쿼리는 단일 노드에서 처리되지만, 무거운 작업의 경우에는 최대 16(CPU 8core x 16 = 128)개의 노드에서 처리됨을 의미합니다.

Scale factor를 “0”으로 설정하면, Snowflake가 쿼리 별로 필요한 scale factor를 알아서 필요한 만큼 QAS를 확장하여 적용하는 것을 의미합니다.

현재 QAS가 적용되는 쿼리의 패턴은 다음과 같습니다:

  1. 요청 받은 쿼리가 대용량 데이터(GB 또는 TB)를 SCAN해야 하는 경우
  2. Filtering이 적용된 쿼리
  3. Ad-hoc 쿼리: 쿼리당 데이터 처리의 양을 예측하기 어려운 경우
  4. (추가 개선 예정) 특정 컬럼 별로 데이터 정렬
  5. 대용량 데이터 aggregation

QAS 서비스에 모니터링은 다음 쿼리를 통해 확인 할 수 있습니다:

SELECT * FROM Table(information_schema.query_acceleration_history( date_range_start=>dateadd(h, -1, current_timestamp)));

사용 예시: 10TB data-set을 대상으로 TPC-DS 24번 쿼리로 테스트

  1. Medium Size Vritual Warehouse without QAS

전체 쿼리를 수행하는데 8분20초 소요

  1. Medium Size Virtual Warehouse with QAS

위의 테스트와 동일한 Warehouse로 3분 53초 소요(대략 100% 성능 개선)

좀 더 자세한 내용은 Snowflake Documentation 또는 아래 링크를 확인해 주시기 바랍니다.

[embed]What is Snowflake Query Acceleration Service? - Analytics.Today Photo by Paweł Fijałkowski from Pexels 7 minute read. Snowflake Query Acceleration Service (QAS) is a feature built…www.analytics.today

[embed]Using the Query Acceleration Service - Snowflake Documentation The query acceleration service can accelerate parts of the query workload in a warehouse. When it is enabled for a…docs.snowflake.com


메타데이터
post_id
b5de033eeb9
slug
snowflake-query-acceleration-service에-대해-알아보기-b5de033eeb9
url
https://medium.com/snowflake-korea/snowflake-query-acceleration-service%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0-b5de033eeb9
canonical_url
https://medium.com/snowflake-korea/snowflake-query-acceleration-service%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0-b5de033eeb9
author_url
https://medium.com/@sunghyuncho_60219
status
ok
fetched_at
2026-08-02 19:11:32