Snowflake vs. Spark on EMR 성능 및 비용 비교

MJ Lee
Snowflake Korea
Published in
4 min readSep 8, 2022

Snowflake 는 워크로드에 따른 warehouse 의 scale-up 과 scale-out 을 지원하기 때문에 모든 유형의 워크로드 처리시 최고의 성능을 내도록 동작합니다. 더불어 운영 없이 최소한의 관리만 필요하다는 점 때문에 Spark 운영에 대한 오버헤드를 줄일 수 있는 대체 방안으로 Snowflake 를 검토하시는 분들도 많은데요.

이번 글에서는 Snowflake 와 Spark on EMR 의 성능과 비용을 비교해 보도록 하겠습니다. 우선 Spark on EMR 의 테스트 결과는 여기를 참고했다는 것을 먼저 밝힙니다. 해당 글을 참고해 보면 Spark on EMR 테스트는 TPC-DS 데이터셋 1TB 를 ORC 와 Parquet 타입으로 S3 에 저장한 후 벤치마크 쿼리 성능을 측정했으며, Snowflake 는 TPC-DS 데이터셋 1TB 를 Snowflake 에 저장한 후 쿼리 성능을 측정했습니다.

EMR 클러스터는 r5.8xlarge 인스턴스 11대 (executor-10/cordinator-1) 를 사용했으며, Snowflake 는 2xlarge 사이즈의 warehouse 를 사용했습니다. 참고로 2xlarge 사이즈 warehouse 의 리소스는 r5.8xlarge 인스턴스 10대의 리소스 보다 더 적습니다.

99개의 벤치마크 쿼리 중 Spark on EMR 벤치마크 테스트에서 쿼리 파싱 시 error 가 발생한 7개의 쿼리를 제외한 92개 쿼리 테스트 결과는 다음과 같습니다. 결론적으로 Snowflake 가 Spark on ERM 대비 평균 10배 이상 빠른 성능을 보이는 것으로 나타났습니다. (더 적은 리소스를 사용하고도!)

Snowflake vs. Spark on EMR 성능비교
벤치마크 쿼리 실행 성능 테스트 결과 (단위: 초)

Analytics 쿼리로 분류되는 34, 46, 48, 59, 79, 96번 쿼리 성능은 다음과 같습니다.

Analytics 쿼리 성능 비교

Ad-hoc 쿼리로 분류되는 19, 42, 52, 55, 63, 68, 73, 98번 쿼리 성능은 다음과 같습니다.

Ad-hoc 쿼리 성능 비교

BI Reporting 쿼리인 3, 7, 27, 43, 89 번 쿼리 성능 비교입니다.

BI Reporting 쿼리 성능 비교

위 벤치마크 쿼리 테스트를 위해 사용된 비용도 비교해보겠습니다. AWS 서울 리전 기준입니다. Snowflake 가 시간 당 비용이 높지만 그만큼 쿼리를 빨리 처리하기 때문에 총 비용은 더 낮다는 것을 확인하실 수 있습니다. 이 테스트 결과를 기준으로 했을때 Snowflake 비용은 EMR 의 약 40% 수준으로 볼 수 있는데요. 이 외에도 Snowflake 는 쿼리 최적화, warehouse 자동 스케일 업/다운, warehouse 자동 시작/중지, 쿼리 가속화 서비스 (Query Acceleration Service) 등 다양한 자동화 기능이 지원되기 때문에 Spark 운영으로 인한 오버헤드를 상당부분 줄일 수 있을 것으로 봅니다.

Snowflake vs. EMR 비용 비교

이번 벤치마크 테스트를 통해 Snowflake 가 Spark on ERM 대비 평균 10배 이상 빠른 성능을 나타냈으며 비용 또한 EMR 의 약 40% 수준임을 알 수 있었습니다. 다음 글에서는 Spark 워크로드를 Snowflake 로 마이그레이션 하는 방법을 살펴보겠습니다.

--

--