注:本記事は(2021年11月12日)に公開された(Industry Benchmarks and Competing with Integrity)を翻訳して公開したものです。

Snowflakeを創設したとき、私たちは革新的なプラットフォームを構築することを目指しました。幸い私たちは、それまでのアーキテクチャやソリューションから得た何がうまくいき何がうまくいかないかという知識を活用することができたため、クラウドをどのように利用し、可能性の限界をどのように突破すればよいかを心得ていました。私たちは、使いやすく、「ただ求めたとおりに動く」システムを構築することにも焦点を当てました。パフォーマンスとスケール、管理のしやすさ、およびデータドリブン型のコラボレーションという点でリードするには、以前のソリューションに改善の余地が数多くあることも認識していました。

同様に、私たちが実現させたい多くの内容について明確化し、避けたい項目についても確認しました。たとえばベンチマーキング競争に躍起になったり、実体験とかけ離れたパフォーマンスを売りにするという行為は、カスタマー第一という私たちの中核的価値観とはまさに矛盾するものです。

20年前のデータベース業界では、数か月ごとに他社を一足飛びに出し抜くようなベンチマーク結果を出すことが優先事項であり、私たちもそのベンチマーク競争の最前線にいました。発表される結果はどんどん高くなり、世界記録が頻繁に塗り替えられていました。業界のほとんどの企業が、ベンチマークをほんの少しでも良くするために、設定機能や、特殊な設定や、きわめて固有な最適化機能を追加し始めました。残念なことに、それらの変更の多くはカスタマーにとって複雑さを増すだけとなり、さらにはほとんどが日々のワークロードに悪影響をもたらす結果となりました。悪影響は複合的なもので、たとえば開発チームがカスタマーにとって本当に重要な項目に集中できなくなったり、複雑なテクノロジーによってユーザーが置き去りにされたりといった具合です。業界関係者ならば誰もが、ベンチマーク競争はカスタマーにとって優れたプロダクトの構築を阻害しているという現実を立証できるでしょう。カスタマーのワークロードの大部分を実行しているデータベース業界の主要企業のすべてが、新しい結果の発表をほぼやめてしまったのには理由があるということです。

Snowflakeの創設以来、私たちは合成されたベンチマークではなく、カスタマーやそのワークロードに焦点を当ててきました。私たちが今この哲学を再度口にするのは、最近Databricks社が発表したベンチマークにおいて、Snowflakeとの比較があったからです。Databricks社の結果は、現在TPC提出プロセスの一環として監査中ですが、技術的な実績を伝えるべきところが、Snowflakeとの比較が誠実さを欠いたマーケティング上の演出となっています。同社が発表したSnowflakeの結果は、透明性がなく、監査されておらず、再現性もありません。これらの結果は当社内のベンチマークやカスタマーのエクスペリエンスと大きく矛盾しています。

そのため、当社としての結果は公開しますが、より重要なこととして、Snowflakeの結果を再現することがいかに簡単かを説明させていただきたいと考えます。興味のある方は、Databricks社のブログ記事の評価と比較して、その不正確性を検証していただければ、と思います。このブログ記事で後ほど登場する「信頼しつつ検証する」のセクションでは、Snowflakeを使用してマウスを数クリックするだけで検証を行う方法をご紹介しています。

今週、当社はAWS-US-WESTクラウドリージョンで、TPC-DSパワーランを実行しました。このパワーランは、100 TBスケールのTPC-DSデータベースに対する99のクエリ実行で構成されます。特別な設定なしで、すべてのクエリは4XLウェアハウス上で3,760秒で実行され、2つの連続ランでベストな実行時間を記録しました。1 これはDatabricks社がSnowflakeの結果として報告した時間よりも2倍速く、しかも4XLウェアハウスを使用しているため、Databricks社が自社のパワーランで使用したウェアハウスのわずか半分のサイズとなっています。

さらに大きな5XLウェアハウスを使用した場合、こちらは現在パブリックプレビュー版ですが、パフォーマンスはさらに上がり、合計実行時間は2,597秒に短縮されました。しかしSnowflakeは4XLでも十分速くクエリを実行できるほか、5XLの場合、クエリスタートアップ時間といった固定時間や同期オーバーヘッドが増加するため4XLで得られたスピードは低下します。したがって、Snowflakeの場合、100 TBのウェアハウスサイズのスイートスポットは4XLであり、5XLではありません。5XLウェアハウスサイズは、データ量が300 TBまたは1 PBなどと多い場合に有益です。このブログの以降の数字はすべて4XL構成に基づきます。最後に、Snowflakeの4XLウェアハウスのパフォーマンスは、Databricks社が5XLなみの強力なハードウェア構成で監査した3,527秒のTPC-DSパワーランと同等のパフォーマンスを発揮します。当社の5Xの場合、パブリックプレビュー版の現在でも、Databricks社の合計経過時間よりもはるかに高速で(3,527秒に対して2,597秒)あり、一般提供が開始される頃にはさらに大きく改良されているはずです。

Databricks社のブログ記事で最も誤解を与えかねない点は、Databricks社が当社の価格/パフォーマンスを導出した方法です。AWS-US-WESTクラウドリージョンで実行される4XLウェアハウスのスタンダードエディションのオンデマンド価格は、1時間で$256です。Snowflakeは秒単位で課金するため、Snowflakeのパワーラン全体の価格/パフォーマンスは実際には$267となりますが、Databricksの報告では、その金額が$1,791となっています。なお、マテリアライズドビューとマルチクラスターウェアハウスは必要ないため、当社のエンタープライズエディションを使用してTPC-DSを実行する必要はありません。

価格/パフォーマンスの面で、TPCに提出されたDatabricksの3,527秒のパワーラン用構成のオンデマンド価格($275)と比較すべきは、Snowflakeのスタンダードエディションのリスト価格($267)です。2 

上の数字が示すとおり、マーケティング目的で記録更新のためのシステム調整に時間とエネルギーを割かなくても、Snowflakeは卓越した結果を出しています。当社の価格パフォーマンスは、カスタマーがより多くのワークロードをSnowflakeに移行させている主な理由です。私たちはこれからも、現実のカスタマーワークロードをより高速に実行できるようSnowflakeのパフォーマンスを改善し、全体的な価格/パフォーマンスの向上に直接つなげていきます。特に、私たちはカスタマーワークロードのパフォーマンスを向上させる数多くのエンハンスメントのリリースに向けて進行中であり、さらにその他多くの機能の開発も進めているところです。当社はこれからも、競争ゲームではなく、カスタマーの成果にフォーカスしていきます。

信頼しつつ検証する

TPC-DSに関する当社の立ち位置に興味がある方は、ご自身でベンチマークを実行してみることをお勧めします。Snowflakeの場合、100 TBでの全TPC-DSパワーテストを、開始から完了まで約1時間の時間と数百ドルの費用だけで、ほぼ数クリックのみで実行できます。経験は一切必要ありません。Snowflakeはそれほどシンプルです。このような点も、優れたパフォーマンスだけではない、私たちの価値提案の大きな部分です。

Snowflakeで100TBのTPC-DSパワーランを実行するには、以下の簡単な3つのステップに従ってください。

  1. Snowflakeをまだご利用いただいていない場合は、signup.snowflake.com/にアクセスして、新規トライアルアカウントを作成してください。最初のSnowflakeアカウントを作成するクラウドとリージョンを選択します(たとえば、AWSのUS-West Oregonリージョンなど)。TPC-DSではマテリアライズドビューやマルチクラスターウェアハウスを使用しないため、スタンダードエディションを選択します。数秒で新しいSnowflakeアカウントへのログインを許可するEメールが送信されます。
  2. ログインすると、Snowflakeワークシートタブが表示されます。そこから、New Worksheet(画面左上)という名前のワークシートタブの右側にある下向き矢印をクリックし、次にOpen Tutorialsを選択してTPC-DS 100 TBのチュートリアルを開き、さらにTutorial 4: TPC-DS 100 TB Complete Query Testを選択します。この操作により、100 TB規模でTPC-DSパワーランを実行するためのスクリプトが記載された新規ワークシートタブが表示されます。
  3. ロードされたスクリプトを実行するには、All queriesを選択し、次にRunボタンをクリックします。すべてのスクリプトが実行されるまで約1時間かかります。

スクリプトを見ると分かりますが、まずベンチマークを実行するための4XLウェアハウスが作成され、SNOWFLAKE_SAMPLE_DATAデータベースからTPC-DS 100 TBスキーマが使用されます。このデータベースはSnowflakeにおけるデータシェアリングの力を示しています。データベースは設定不要でSnowflakeによって作成され、Snowflakeの全クラウドリージョン内の全アカウントにシェアされます。このストレージやデータのロードに対して料金を払う必要はありません。

ウェアハウスの作成は1秒以内で実行され、次に共有データベースに対するクエリの実行が開始されます。スクリプトの終わりに、合計の経過時間とすべてのクエリの幾何平均が、ウェアハウスで実行されたすべてのTPC-DS文の履歴ビューをクエリすることで直接計算されます。レポートとして出力されるメトリックをご覧ください。前のセクションでレポートされた結果は、全クエリセットを2回実行したウォームウェアハウス上の結果で、2回目のランを考慮に入れたものです。通常この場合、全体的なパフォーマンスが若干(約5%)上昇します。

ここから分かるのは、Snowflakeが非常にシンプルで強力だということです。新しいSnowflakeアカウントにログインした後、マウスをたった4回クリックするだけで、ベンチマーク全体を実行できます。

今後の展開

今週の初め、Databricks社は競争的なベンチマークを実行しその結果を明確な情報開示によって公表できるようサービス規約を変更し、同業他社にも同様の措置を推奨すると発表しました。当社はカスタマー第一の方針を覆して合成されたベンチマークを追求するつもりはありませんが、ベンチマークを発表する企業は、透明性と再現性を持って公正に行うべきだというDatabricks社の主張には賛成します。当社はさらに、プレビュー機能をベンチマークの対象から外すことにも賛成です。最終的に、私たちはカスタマーが当社のプラットフォームの機能に関し、情報に基づく意思決定ができるようになればよいと考えています。この理念を反映させるため、当社は「Acceptable Use Policy(利用規定)」を更新しました。しかしDatabricks社は、Snowflakeのパフォーマンスに関する表現において、自ら提唱している再現性、開示、ベータ機能のテストに関する原則に従っておらず、誠実性に欠けます。

私たちはこの視点が、今回の議論に関してだけでなく、より重要なこととして、多くの新興企業がベンチマーク競争に気を取られ、カスタマーのメリットのために技術を革新していくという最も重要な目標が手薄になるというリスクの抑止力になればよいと願っています。

当社は、競争は良いものだと強く信じています。競争によって業界は進歩し、カスタマーは技術的、経済的メリットを得ることができます。しかし当社は、競争力を高めるという努力を、当社のテクノロジーや実際のカスタマーのワークロードにとって有益なものに集中させていきます。したがって当社は、概してカスタマーのメリットにならない合成された業界ベンチマークの発表を行いません。私たちは、Snowflakeが提供する機能やパフォーマンスからカスタマーが大きな価値を得ていると認識しています。また、今後予定しているイノベーションの数々についても喜んでいただけるものと確信しています。

上記のSnowflake結果レポートは、TPC-DS 100 TBパワーランから得られたものですが、TPCポリシーに基づく監査を経ていません。


1 コールドランとウォームランとの間の差異は5%です。

2 Databricks社のブログ記事に掲載されている結果は、TPC評議会に提出された結果と一致していません。