目次
はじめに
2022年のタイミングで新規にデータ基盤を構築しようとする時、皆さまは実行基盤をどこに置かれるでしょうか。一昔前であればオンプレミスのデータセンターにDWHのパッケージ製品を導入することが主流であったかと思いますが、ハイパースケーラーのクラウドサービスが隆盛を極めるようになり、コンピューティングリソースのスケーラビリティやほぼ無限のストレージ拡張性、マネージドサービスによる運用負荷の低減といったメリットにより、クラウド上でデータ基盤/DWHを構成する選択が多くなったように思います。
本記事では、私がデータ基盤の構築案件に携わる中で得たいくつかの考慮事項を書き留めることで市場にどのような選択肢があるのかの記録とします。ただし、裏取りが不十分な内容もありますので、いくつかの情報を見た上での個人的な考察になります。
ハイパースケーラーのDWHサービス
ここでいうハイパースケーラーとは、AWS, Azure, Google Cloudのことを指していますが、各社それぞれでDWHサービスを持っています。AWSであればAmazon Redshift、AzureはAzure Synapse Analytics、Google CloudはBig Queryになります。 また、ハイパースケーラーのDWHサービスではありませんが、Snowflakeにも注目すべきでしょう。Snowflakeはハイパースケーラーのクラウドサービス上で稼働するクラウドDWHサービスで、市場での勢いから良く話題に上がります。
※ただし、2022年5月以降、Snowflakeの株価は売り上げ鈍化の懸念から最盛期の半分以下まで下がっています。
スノーフレイク株下落、2四半期連続で売り上げ伸び鈍化見込む - Bloomberg
あくまで私の周りの限られた意見になりますが、どうもデータ分析ならGoogleのBig Queryだとか、Redshiftはアーキテクチャーが古いからSnowflakeに乗り換えるといった傾向の言説を聞くことがありますが、実際のところそういった印象と実態は一致しているのでしょうか。本来であれば実際に自分で性能比較して公正な結果を求めることが最善ですが、それだけのリソースを用意できないため、今回は公開情報と自身がサービスを使用した気付きから洞察をまとめてみます。
性能とコストパフォーマンス比較
各クラウドベンダーとも自社DWHサービスと競合他社サービスを比較したベンチマーク結果をブログやサービス紹介ページで掲載していますが、いずれも当然ですが自社サービスが一番優位であると公表しています。
自分の備忘と公正のために、各社が公開しているベンチマーク結果を引用します。
Microsoft
Microsoftが独立系調査会社のGigaOmに依頼して2021年3月に実施されたTPC-DS派生のベンチマーク結果です。Big Queryが実行時間で大きく後れを取っていること、TCOはBig Query, Snowflakeが大きくなる傾向があることが分かります。
Azure Synapse、AWS、Google の比較 – 分析の比較 | Microsoft Azure
AWS
AWSが2022年4月に公表したTPC-DS派生のベンチマーク結果です。各社の名前が伏せられていますが、ショートクエリのスループットはAWSが他を大きく引き離していること、コストパフォーマンスは一社だけ後れを取っていることが分かります。
Amazon Redshift continues its price-performance leadership | AWS Big Data Blog
Googleの顧客であるVerizon Mediaが2021年3月に寄稿して公表した独自のベンチマーク結果です。他社の名前が伏せられていますが、ショートクエリと複雑なクエリを複合したパフォーマンスはBig Queryが高いこと、TCOはESGという企業の調査の引用ですが、Big Queryが一番低く、その他のクラウドは同程度であることが分かります。
Benchmarking cloud data warehouse BigQuery to scale fast | Google Cloud Blog
Oracle
Snowflakeから公開されているベンチマーク結果は見当たらなかったため、代わりにOracleが2022年9月に発表したMySQL HeatWave on AWSの発表資料に記載されている資料を確認します。
公表されているのは、TPC-H派生のベンチマーク結果です。MySQL HeatWave on AWSの処理が圧倒的に高速で、次点がSynapse Analytics、その他は大きく遅れて同程度とのこと。コストパフォーマンスはMySQL HeatWave on AWS、Synapse Analytics、Redshift、Snowflake、Big Queryの順に悪くなるようです。
オラクル、MySQL HeatWave on AWS発表 - 価格性能はRedshiftの7倍 | TECH+(テックプラス)
各社の公開する情報を比較すると、以下のような傾向はある程度見えてくるように思います。
- 他社名を一部隠していることもあり、どのクラウドのDWHサービスが際立って優秀とも劣っているとも断言はできない
- 各社ベンチマークを公表するにあたり、TPCベンチマークから派生させたテストや独自のテストで結果を得ている(各社公表の結果は当然同じ条件で実施されていない)
- TCOの算出も、リザーブドインスタンスの使用やコスト削減の計算は各社の匙加減による
以上のことから、推察される見解としては、各社とも自社のサービス特性に有利に働くように条件を設定してベンチマークを行っていることが考えられます。しかし、それは決して悪いことではなく、顧客のシステム特性に最適なDWHサービスを選ぶことが出来れば、最良の処理性能とコストパフォーマンスを得られる結果につながるため、最終的にはAWSがブログ内で述べているように、顧客自身が自身のシステム特性に合ったテストを行って、どのサービスを選定するかが重要であることが分かります。その意味では、冒頭で述べたような他社と比べてBig Queryがデータ分析には絶対的に向いているといったことは必ずしも言い切れないではないかと思います。
DWHのシステム特性とは?
では、DWHのシステム特性とは具体的にどのようなものなのでしょうか?各社の主張や解説を見ると、大枠のイメージは掴めてきます。
まず、TPC-DSとTPC-Hのベンチマークの違いですが、厳密な内容は他に譲るとして、以下のようになります。
TPC-DS:スタースキーマやスノーフレーク型モデルのような非正規化されたデータに対して、インタラクティブだが反復的なクエリ、データマイニングのような長時間実行される複雑なクエリ、および計画された定型のレポートクエリの動作の処理性能をテスト(スループット重視?)
TPC-H:正規化された複数のテーブルの結合処理を含む、ビジネス指向のアドホックなクエリと同時に発生するデータ変更に対する処理性能をテスト(レイテンシー重視?)
私が理解した限りだと、TPC-DSは定型のレポーティング処理や長時間の分析クエリ向けのテストで、TPC-HはBIのダッシュボードをアナリストが色々と検討のために試行錯誤するようなショート(アドホック)クエリ用のテストではないかと思います。
サンプルデータ: TPC-DS | Snowflake Documentation
サンプルデータ: TPC-H | Snowflake Documentation
その意味では、以下の結果が導出されます。
- Synapse AnalyticsはMicrosoft, Oracleの結果によると、定型クエリは他社と同等レベルで、アドホッククエリは良い数字を出している
- Redshiftは定型クエリはAWSの結果が良いが、アドホッククエリはOracleの結果によるとやや分が悪い
- Big Queryは、Microsoftのテスト結果を鵜吞みにすると、定型クエリは他に大きく後れを取っており、アドホッククエリはOracleの結果によるとRedshiftよりは少し良い
- SnowflakeはMicrosoft, Oracleの結果によると、定型クエリはRedshiftと同等レベルで、アドホッククエリはBig Query相当で、バランスは良いがどちらも飛び抜けて良いわけではない
- コストパフォーマンスについては、どの会社も自社サービスが一番と謳うため、条件設定の匙加減次第に思える
このまとめを一つの結論とすると、現在使用しているクラウドサービスによっては他社のサービスの方がよりシステム特性にマッチするというケースはあり得るが、Big Queryがデータ分析には向いているとか、Snowflakeがすごいというのは、顧客の持つイメージ先行の感があります。
処理性能以外の使い勝手
性能やコストパフォーマンスの疑問に一つの回答が出たところで、最後に私が触って感じたサービスとしての使い勝手について記述します。
AWS中心に仕事をしているため、RedshiftとSnowflakeを比べることになりますが、以下のような違いがあります。
Redshift | Snowflake | |
---|---|---|
プラットフォーム | AWS限定 | マルチクラウド |
サーバレス | Redshift ServerlessがGA | 始めからサーバレス(Virtual Warehouse) |
過去データ参照 | 自由に過去データの参照は出来ない | Time Travelで過去90日間のデータ参照可能 |
データ共有 | 特になし | Snowflakeアカウント間でテーブル・ビュー等を共有可能 |
バージョンアップ | メンテナンスウィンドウでクラスター更新(Redshift Serverlessの場合、ソフトウェアバージョンの更新は自動的に適用) | 無停止自動バージョンアップ |
ネットワーク接続 | プライベート接続可能 | プライベート接続はビジネスクリティカル以上のエディションが必要 |
Redshiftは自身でクラスターを作成するという点においてオンプレミスのDWH製品の延長のような作りを感じさせるところがあり、その点を指摘してBig QueryやSnowflakeはサーバーレスで使用した分だけの従量課金であり、クラスターメンテナンスも不要であるということが喧伝されるのかと思われます。しかし、RedshiftもRedshift Serverlessがリリースされた今、同じ土俵に並んでいると言えるでしょうし、これからのクラウドDWHサービスは各社用途特性に応じてクエリ性能は横並びする競争が行われてくるであろうことを考慮すると、どのような機能を持っているかという点での差別化が一つのポイントになってくるかと思われます。
私自身はAWSを利用したシステム開発の案件に多く携わっているため、AWSでデータパイプラインを構築する場合にRedshiftは他のAWSサービスとの機能連携が良く行われていることから頻繁に利用しています。新機能に対する開発も積極的に行われており、世の中で言われるほど一概にBig QueryやSnowflakeがデータ分析には優れているとも言い切れず、Redshiftの価値が発揮される場面も多いのではないかと感じています。
第三の選択肢
最後に、クラスター・ノード型のDWHとは違うアプローチでデータ基盤を構成する製品であるClouderaについて触れます。
Cloudera Data PlatformはHadoopエコシステムをベースに構成されるデータ基盤サービスで、CDP Public Cloudサービスを選択することで、顧客自身のクラウド環境に迅速にデータ基盤を立ち上げることができるそうです。 AWSでデータ基盤を作る場合は、S3, Redshift, Glueといったサービスを自分で組み合わせますが、CDP Public Cloudサービスでは、Apache HBaseやApache NiFi, Apache Atlas, HUEといったオープンソースソフトウェアベースのプラットフォームを包括的にデプロイするとのことでした。
Amazon EMRの対抗になるサービスのようですが、Amazon EMRより最初から必要な機能が揃っているパッケージと理解しています。Hadoopは分散システムのため、メジャーなクラウドサービスのDWHと比べてパフォーマンスはどうなのかと気になるところですが、データ基盤の一つの選択肢になるのではないでしょうか。
Cloudera Data Platform (CDP) | Cloudera
まとめ
本記事では、公開されているベンチマーク結果を元に、メジャーなクラウドデータウェアハウスサービスの比較を行い、自分の周りで醸成されている各サービスへのイメージが妥当なのか理解を深めました。また、そういったサービスとは異なるアプローチを取っている製品も取り上げました。 クラウドサービスは常に進化を続けているため、この記事もすぐに陳腐化しますが、2022年時点でのクラウドデータウェアハウスを取り巻く環境の理解の助けになれば幸いです。