참고: 이 내용은 2021. 11. 12에 게시된 컨텐츠(Industry Benchmarks and Competing with Integrity)에서 번역되었습니다.

Snowflake를 설립했을 때 우리는 혁신적인 플랫폼을 구축하기 시작했습니다. 우리는 이전 아키텍처 및 구현에서 잘 작동했던 것과 그렇지 않은 것을 고려할 기회가 있었습니다. 클라우드를 활용하여 가능성의 한계에 대해 다시 생각해 볼 수 있는 방법을 알아보았습니다. 우리는 또한 사용 편의성과 ‘그냥 작동하는’ 시스템 구축에 중점을 두었습니다. 우리는 이전 구현을 개선하고 성능과 규모, 관리의 단순성, 데이터 기반 협업을 주도하기 위해 혁신할 기회가 많다는 것을 알고 있었습니다.

우리가 하고 싶은 많은 것들에 대한 명확성을 지니고 있었던 것처럼, 하고 싶지 않은 것에 대한 확신도 있었습니다. 그러한 것 중 하나는 벤치마킹 전쟁에 참여하고 실제 경험과 분리된 경쟁적인 성능 주장을 하는 것이었습니다. 이러한 관행은 단순히 고객을 최우선으로 하는 우리의 핵심 가치와 일치하지 않습니다.

20년 전만 해도 몇 달에 한 번씩 벤치마크 결과를 뛰어넘는 게임이 데이터베이스 업계의 우선순위였으며 우리 둘 다 벤치마크 전쟁의 최전선에서 싸우고 있었습니다. 게시된 결과는 계속 개선되었고 새로운 세계 기록이 정기적으로 설정되었습니다. 업계의 대부분은 벤치마크를 단 몇 퍼센트 개선할 구성 노브, 특수 설정 및 매우 구체적인 최적화를 추가하기 시작했습니다. 불행히도 이러한 많은 변경 사항은 고객에게 추가적인 복잡성으로 여겨졌으며 더 나쁜 것은 대부분의 변경 사항이 고객의 일상적인 작업 부하에 거의 영향을 주지 않거나 심지어 부정적인 영향을 미치기도 했다는 것입니다. 부정적인 결과는 복합적입니다. 개발 팀이 고객에게 진정으로 중요한 것에 집중하지 못하고 사용자는 더 복잡해진 기술과 함께 제대로 된 서비스를 받지 못하고 남겨집니다. 업계에서 충분히 오래 일한 사람이라면 벤치마크 경쟁이 고객을 위한 훌륭한 제품을 만드는 데 방해가 된 현실에 대해 증언할 것입니다. 고객 워크로드의 다수를 실행하는 데이터베이스 업계의 모든 관련 플레이어가 대부분 새로운 결과 게시를 중단한 데는 이유가 있습니다.

Snowflake를 설립한 이래로 우리는 가상 벤치마크가 아닌 고객과 고객의 워크로드에 중점을 두었습니다. Snowflake와의 비교를 포함하여 Databricks에서 최근 발표한 벤치마크로 인해 오늘 이 철학을 반복해서 말하고 있습니다. Databricks의 결과는 TPC 제출 프로세스의 일부로 감사를 받고 있음에도, Snowflake와의 비교 시 기술적 성취의 커뮤니케이션을 무결성이 결여된 마케팅 묘기로 바꿔 놓았습니다. Databricks가 게시한 Snowflake 결과는 투명하지도 않았고, 감사를 받지도 않았으며, 재현할 수 없었습니다. 그리고 이러한 결과는 우리의 내부 벤치마크 및 고객 경험과 크게 불일치합니다.

따라서 우리가 자체적인 결과를 공유하고 있습니다만, 더 중요한 것은 Snowflake 결과를 재현하는 것이 얼마나 간단한지에 대한 지침을 우리가 제공하고자 한다는 점입니다. 이 비교에 관심이 있는 모든 사람은 자체 평가를 수행하고 Databricks 블로그 게시물의 부정확성을 검증하기를 권장 드립니다. 이 블로그 게시물 뒷부분의 ‘신뢰하되 확인’ 섹션에서는 Snowflake로 단 몇 번의 마우스 클릭을 통해 이를 달성할 수 있는 방법을 보여줍니다.

이번 주에는 AWS-US-WEST 클라우드 지역에서 TPC-DS 파워 런을 실행했습니다. 전체 파워 런은 100TB 규모의 TPC-DS 데이터베이스에 대해 99개의 쿼리를 실행하는 것으로 구성됩니다. 모든 쿼리는 3,760초 안에 4XL 웨어하우스에서 실행되며 두 번의 연속 실행 중 가장 좋은 경과 시간을 사용합니다.1 이는 Dataricks가 Snowflake 결과로 보고한 것보다 2배 이상 빠른 속도로, Dataricks가 자체 파워 런에 사용했다고 밝힌 사이즈의 절반에 불과한 4XL 웨어하우스를 사용한 결과입니다.

심지어 현재 공개 미리 보기가 제공되는 더 큰 5XL 웨어하우스를 사용하면 성능이 더욱 향상되고 총 경과 시간이 2,597초로 단축됩니다. 그러나 Snowflake는 이미 4XL에서 이러한 쿼리를 매우 빠르게 실행하고, 쿼리 시작 시간 및 동기화 오버헤드와 같은 고정 시간이 5XL에서 더 두드러지기 때문에 해당 구성으로 얻는 속도 향상이 감소합니다. 따라서 Snowflake의 경우 100TB에서 최적의 웨어하우스 크기는 5XL이 아니라 4XL입니다. 5XL 웨어하우스 크기는 300TB 또는 1PB와 같은 대용량 데이터에 유용합니다. 이 블로그의 나머지 부분에서 모든 수치는 4XL 구성을 사용하여 보고됩니다. 마지막으로 Snowflake 4XL 웨어하우스는 Databricks가 5XL 웨어하우스와 유사한 훨씬 더 강력한 하드웨어 구성에서 감사한 3,527초 TPC-DS 파워 런과 유사한 성능을 보입니다. 현재 형태에서 우리의 5XL은 총 경과 시간에서 Databricks를 크게 능가하며(2,597초 대 3,527초) 일반 공급에 도달하면 주목할 만한 개선이 있을 것으로 기대합니다.

Databricks 블로그 게시물의 가장 오해의 소지가 있는 측면은 Databricks가 가격/성능을 도출하는 방법입니다. 우리의 AWS-US-WEST 클라우드 지역에서 실행되는 4XL 웨어하우스의 Standard Edition 온디맨드 가격은 시간당 $256입니다. Snowflake에는 초당 청구가 있으므로 전체 파워 런에 대한 가격/성능은 Snowflake의 경우 $267인데, Databricks가 당사를 대신하여 보고한 것은 $1,791입니다. 이 벤치마크를 위해서 구체화된 보기 및 멀티 클러스터 웨어하우스가 필요하지는 않으므로 Enterprise Edition을 사용하여 TPC-DS를 실행할 필요가 없습니다.

Standard Edition 정가를 사용하면 Snowflake는 $267로 가격/성능 면에서 Databricks와 일치합니다. TPC에 제출된 3,527초 파워 런에 사용된 Databricks 구성의 주문형 가격은 $275입니다.2 

위의 수치는 마케팅 목적으로 기록을 세우기 위해 시스템을 조정하는 데 시간과 에너지를 집중하지 않더라도 Snowflake가 탁월한 결과를 제공한다는 것을 보여줍니다. 우리의 가격 대비 성능은 고객이 점점 더 많은 워크로드를 Snowflake로 마이그레이션하는 주요 이유이며, 실제 고객 워크로드가 더 빠르게 실행되도록 Snowflake의 성능을 지속적으로 개선하고 있으며, 이는 곧 전반적인 가격/성능 개선으로 이어집니다. 특히 출시 과정에 있는 많은 고객 워크로드 성능 개선 사항이 있으며 개발 중에 있는 것은 더 많습니다. 우리는 경쟁적인 게임이 아닌 고객 결과에 계속 초점을 맞출 것입니다. 

신뢰하되 확인

TPC-DS와 관련하여 우리의 입장이 궁금한 분은 벤치마크를 직접 실행해 보셔야 합니다. Snowflake를 사용하면 처음부터 끝까지 약 1시간 동안 말 그대로 몇 번의 마우스 클릭만으로, 몇백 달러를 써서 전체 TPC-DS 파워 런 @ 100TB을 실행할 수 있습니다. 사전 경험 없이 누구나 할 수 있습니다. 이는 Snowflake가 얼마나 단순한지, 그리고 우리 가치 제안의 큰 부분이 단순히 뛰어난 성능을 넘어섬을 보여줍니다.

Snowflake에서 TPC-DS 파워 런 @ 100TB를 실행하려면 아래의 간단한 세 단계를 따르십시오.

  1. 첫째, 아직 Snowflake 고객이 아니라면 signup.snowflake.com/을 방문하여 새 체험판 계정을 만드십시오. 첫 Snowflake 계정에 사용할 클라우드와 지역을 선택하십시오. 예를 들어 US-West Oregon 지역의 AWS. TPC-DS는 구체화된 보기 또는 멀티 클러스터 웨어하우스를 사용하지 않으므로 단순하게 Standard Edition을 사용하면 됩니다. 몇 초 안에 새 Snowflake 계정에 로그인할 수 있는 이메일을 받게 됩니다.
  2. 로그인하면 Snowflake 워크시트 탭으로 이동합니다. 거기에서 새 워크시트(화면 왼쪽 상단)라는 이름의 워크시트 탭의 오른쪽에 있는 아래쪽 화살표를 클릭하여 TPC-DS 100TB 자습서를 연 다음 자습서 열기(Open Tutorials)를 선택하고 자습서 4: TPC-DS 100TB 전체 쿼리 테스트(Tutorial 4: TPC-DS 100 TB Complete Query Test)를 선택합니다. 그러면 TPC-DS 파워 런 @ 100TB 규모를 실행하는 데 사용할 수 있는 스크립트가 포함된 새 워크시트 탭이 열립니다.
  3. 모든 쿼리(All queries)를 선택한 다음 실행(Run) 버튼을 클릭하여 로드된 스크립트를 실행합니다. 전체 스크립트가 실행될 때까지 기다리십시오. 약 1시간이 소요됩니다. 

스크립트를 보면 먼저 그 벤치마크를 실행하기 위해 4XL 웨어하우스를 생성하고 SNOWFLAKE_SAMPLE_DATA 데이터베이스의 TPC-DS 100 TB 스키마를 사용합니다. 이 데이터베이스는 Snowflake 내 데이터 공유의 힘을 보여줍니다. Snowflake에서 바로 만들어졌으며 모든 Snowflake 클라우드 지역의 모든 계정과 공유되었습니다. 스토리지 및 데이터 로딩 비용을 지불할 필요가 없습니다!

웨어하우스 생성은 1초 미만으로 실행되고 그다음 공유 데이터베이스에 대해 쿼리가 실행을 시작합니다. 스크립트의 끝에서, 웨어하우스에서 실행된 모든 TPC-DS 문의 기록 보기를 쿼리하면 모든 쿼리에 대한 전체 경과 시간 및 기하 평균이 즉시 계산됩니다. 이 메트릭이 보고되는 것을 확인해야 합니다. 이전 섹션에서 보고된 결과는 전체 쿼리 세트를 두 번 실행하고 두 번째 실행을 고려하여 웜 웨어하우스에 있음을 기억하십시오. 이렇게 하면 일반적으로 전체 성능이 약 5% 향상됩니다. 

이것은 Snowflake의 완전한 단순함과 강력함을 보여줍니다. 새 Snowflake 계정에 로그인한 후 마우스를 네 번만 클릭하면 전체 벤치마크를 실행할 수 있습니다!

다음 단계

이번 주 초, Databricks는 또한 경쟁적인 벤치마킹 및 명확한 공개와 함께 결과 게시를 가능하게 하고 업계의 다른 사람들도 그렇게 하도록 권장하는 서비스 약관 변경을 발표했습니다. 고객의 초점을 가상 벤치마크를 추적하는 것으로 돌리지는 않겠지만, 벤치마크를 게시하는 사람은 누구나 공정하고 투명하며 재현 가능한 방식으로 벤치마크를 게시해야 한다는 Databricks의 의견에 동의합니다. 우리는 또한 벤치마킹에서 미리 보기 기능을 제외하는 데도 동의합니다. 결국, 우리는 고객이 우리 플랫폼의 기능에 대해 정보에 입각한 결정을 내릴 수 있기를 바랍니다. 따라서 이 철학을 반영하기 위해 이용 목적 제한 방침을 업데이트했습니다. Snowflake의 성능을 표현하는 데 있어서, Dataricks가 옹호하는 재현성, 공개성 및 베타 기능 테스트의 원칙을 Dataricks가 따르지 않았다는 것은 분명합니다.

우리는 이 관점이 유용하길 바랍니다. 이 특정 대화뿐 아니라, 더욱 중요한 것은, 가장 중요한 목표인 고객의 이익을 위한 혁신으로부터 주의를 빼앗길 위험이 있는, 벤치마크 경쟁에 뛰어들고 싶어하는 많은 기업들에게 말입니다.

우리는 경쟁을 굳게 믿습니다. 업계가 발전하고 가장 중요한 것은 고객이 기술 및 경제적 이점을 누릴 수 있다는 것입니다. 그러나 우리는 우리 기술의 장점과 실제 고객 워크로드에 대한 이점에 경쟁적 노력을 집중할 것입니다. 따라서 일반적으로 고객에게 이익이 되지 않는 가상 업계 벤치마크는 게시하지 않겠습니다. 우리는 고객이 우리가 제공한 기능과 성능에서 엄청난 가치를 얻으며, 앞으로 있을 모든 추가 혁신에 대해 기뻐할 것임을 알고 있습니다.

위에 보고된 Snowflake 결과는 TPC-DS 100TB 파워 런에서 얻은 것이지만 TPC 정책에 따라 감사된 것은 아닙니다.


1 콜드 런과 웜 런의 차이는 약 5%입니다.

2 Databricks의 블로그 게시물에 설명된 결과와 TPC 위원회에 제출된 결과가 일치하지 않습니다.