5年ほど前、Big DataとAnalyticsを取り巻く多くの誇大広告がありました。

今日、この業界はそうした誇大広告に応える形で、ビジネスを推進するための動力として変貌を遂げています。これまで長年にわたって、毎秒生成される膨大な量のデータが指数関数的に増加してきました。これにより、分析業務を行う上で非常に効率的なエンタープライズクラウドデータウェアハウステクノロジーが出現しました。

データウェアハウスは、データを効率的に活用し、深いインサイトを得るために非常に重要な役割を果たしていま。では、どのデータウェアハウスが我々のビジネスに最適なのでしょうか?考慮すべき3つのデータウェアハウスの巨人としては、Amazon Redshift、Google BigQuery、Snowflakeが挙げられます。

Xplentyのブログでは、これまでにAmazon RedshiftとGoogle BigQuery、およびGoogle BigQueryとSnowflakeを比較してきました。しかし、Amazon RedshiftとSnowflakeはどうでしょうか?

Xplentyは、この比較に際して一切の利害関係を挟むことはありません。 なぜなら、Xplentyは3つのデータウェアハウスすべてをサポートしており、お客様は、いずれかのクラウドデータウェアハウスにも、パワフルなデータ統合パイプラインを構築することができます。しかしながら、こSnowflakeとBigQueryを比較しているクライアントが正しい選択を行ってもらいたい考えています。

強力なリレーショナルデータベースであるRedshiftとSnowflakeを見てみると、違いよりも類似点が多くあります。しかしながら、この違いはかなり重要になります。

Table of Contents:

Redshiftについて

Snowflakeについて

Snowflake vs Redshift

Snowflake vs Redshift: Pros & Cons

まとめ

undefined

Redshiftについて

Redshift は、ビジネスインテリジェンス(BI)ツールとシームレスに統合できる、フルマネージドの、クラウド対応のペタバイト規模のデータウェアハウスサービスだと言えます。よりスマートなビジネス上の意思決定を行うためには、抽出、変換、ロード(ETL)したものをデータウェアハウスに入れる必要があります。

Amazonは、数百ギガバイトのデータからスタートし、その時の需要に基づいてシームレスにスケールアップまたはスケールダウンするのが非常に簡単です。これにより、企業はデータを活用して、自分自身または顧客に関する貴重なビジネスインサイトを得ることができます。

クラウドデータウェアハウスを起動するには、Redshiftクラスターと呼ばれるノードセットを起動する必要があります。クラスターをプロビジョニングしたら、データセットをアップロードしてデータ分析クエリを実行することができます。

データセットのサイズに関係なく、いつもお使いのSQLベースのツールやBIアプリケーションによって、高速なクエリパフォーマンスのメリットを享受することができます。

Snowflakeについて

Redshiftと同様に、Snowflakeも強力なリレーショナルデータベース管理システムです。これは、構造化データと半構造化データの両方の分析データウェアハウスとしてSoftware-as-a-Service (SaaS)モデルで提供されています。

つまり、既存のデータベースやビッグデータソフトウェアプラットフォーム(Hadoopなど)上に構築されていないことを意味しています。その代わりに、Snowflakeは、独自のクラウド用に設計されたアーキテクチャーを持つSQLデータベースエンジンを使用しています。

このデータおよび分析ソリューションは、高速でユーザーフレンドリーであり、従来のデータウェアハウスよりも柔軟性があります。

Redshift ETLSnowflake ETLの両方を使用したことがあれば、2つのソリューションの間に多くの類似点があることはすでにご存じかと思います。ただし、各プラットフォームに付随する独自の機能やその他の特徴が追加されています。 たとえば、データ分析ワークロードを完全にクラウド上で実施することを検討している場合、これら2つの堅牢なクラウドデータウェアハウジングソリューションの類似点は、それらの違いよりもはるかに大きくなります。

スノーフレークはクラウドベースのデータストレージと分析機能をスノーフレークエラスティックデータウェアハウスという形で提供しています。このシナリオの場合、ユーザーはクラウドベースのハードウェアとソフトウェアを使用してデータを分析および保存できます。

次に、データはAmazon S3に保存されます。 Snowflake ETLを使用している場合は、Hadoopなどのテクノロジーを使用せずにパブリッククラウドのエコシステムを活用することが可能です。

これらのクラウドウェアハウスシステムはどちらも強力で、データの管理に関していくつかのユニークな機能を提供しています。しかし、明確な違いがあります。

企業に適したソリューションを選択するには、データ統合、データベース機能、メンテナンス、セキュリティ、そして(もちろんですが)コストも比較する必要があります。

Snowflake vs. Redshift: データ統合とパフォーマンス

もしあなたの会社がすでにAWSを利用しているのであれば、Redshiftが自然な選択のように思えるかもしれません(それにはそれなりの理由があります)。しかし、オンデマンド機能を備えたSnowflakeもAWS Marketplaceで見つけることができます。

Athena、Database Migration Service (DMS)、DynamoDB、CloudWatch、Kinesis Data FirehoseなどのAWSサービスをすでに活用しているのであれば、Redshiftをシームレスに統合できるのは朗報です。

しかし、Snowflakeを使う場合は、Redshiftのような統合機能がないことに注意が必要です。これにより、AthenaやGlueのようなツールとデータウェアハウスを統合すのが困難になります。

とは言え、Snowflakeは、Apache Spark、IBM Cognos、Qlik、Tableauなど、さまざまな統合オプションでこれを補っています。その結果、両者のソリューションはほぼ互角と言えるでしょう(だからここは比較対象になりません)。

Redshiftはより確立されたソリューションではあるものの、Snowflakeはここ数年で大きな進歩を遂げています。

Snowflakeはマテリアライズされたビューやディストキーのようなデータ最適化オプションやダッシュボードは、これまでのデータベースよりも最大150倍高速に実行できる可能性を秘めています。

Snowflake vs. Redshift: データベースの特性

Snowflakeは、異なるアカウント間でデータを共有を非常に簡単にしてくれます。そのため、例えば顧客とデータを共有したい場合、データをコピーすることなくデータを共有することができます。

これは、サードパーティのデータを扱う上で非常に効率的なアプローチであり、プラットフォーム全体でのスタンダードとなる可能性があります。現時点では、Redshiftは同じようなサポートを提供していません。実際、RedshiftはArray、Object、Variantのような半構造化データ型をサポートしていません。しかし、Snowflakeはサポートしています。

文字列型に関しては、Redshift Varcharはデータ型を65535文字に制限しています。また、先に列の長さを選択しなければなりません。

Snowflakeでは、String型は16MBに制限されており、デフォルト値はString型の最大サイズです(パフォーマンスのオーバーヘッドはありません)。結果として、実際にやる際にまず初めにStringのサイズ値mについて知っておく必要はありません。

Snowflake vs. Redshift: 運用メンテナンス

AmazonのRedshiftでは、ユーザーは同じクラスタを見て、利用可能なリソースを巡って競争することを余儀なくされます。実際には、それを管理するためにWLMキューを使用しなければならず、理解して管理しなければならない複雑なルールの数々を考えると、これは非常に困難なことになります。

Snowflakeでは、この問題は存在しません。異なるデータウェアハウス(様々なサイズの)をシームレスに起動して、同じデータをコピーすることなく、見ることができます。そのため、これらのデータウェアハウスを異なるユーザーやタスクに簡単に割り当てることができます。

定期的なテーブルの最適化と分析に関しては、Snowflakeはターンキーソリューションを提供します。Redshiftでは、スケールアップやスケールダウンが難しい場合があるため、これが課題になることがあります。

また、Redshiftのリサイズ操作は、すぐに非常に高価になる可能性があり、大幅なダウンタイムにつながる可能性があります。Snowflakeでは、演算処理とストレージが分離されているため、スケールアップやスケールダウンのためにデータをコピーする必要はありません。データの演算能力を自由に切り替えることができます。 

Snowflake vs. Redshift: セキュリティ

ビッグデータプロジェクトを成功させるためには、セキュリティがすべての活動の中心となります。しかし、新しいデータソースが増えるたびに新たな脆弱性が発生する可能性があるため、一貫して維持することは難しい場合があります。これは、生成されるデータとセキュリティが確保されているデータの間にギャップが生じる可能性があります。

セキュリティに関して言えば、どちらの製品も強化されたセキュリティを誇っているので、この部分について比較対象になりません。しかし、Redshiftでは、アクセス管理、Amazon Virtual Private Cloud、クラスター暗号化、クラスターセキュリティグループ、転送中のデータ、ロードデータの暗号化、サインイン認証情報、SSL接続といった管理するための機能やツールも用意されています。

Snowflakeも同様のツールや機能を提供しており、セキュリティや規制機関へのコンプライアンスを確保しています。しかし、セキュリティ機能はすべてのバージョンで利用できるわけではないため、どのエディションを使用しているかに注意する必要があります。

Snowflake vs. Redshift: 費用

Snowflake ETLとRedshift ETLの両方が非常に異なる価格モデルを持っています。よく見てみると、オンデマンドの価格設定に関しては、Redshiftの方が安価であることがわかります。どちらのソリューションも、前払いを選択した企業には30%から70%の割引を提供しています。

1年または3年のリザーブドインスタンス(RI)価格では、標準的なオンデマンド価格モデルでは見逃してしまうような追加の割引を受けることができます。Redshiftは、ノードごとの時間でコストを計算します。

そのため、Redshiftでは以下のように毎月のコミットメントを計算することができます。

Redshiftの月間コスト = [1時間あたりの価格] x [クラスタサイズ] x [月間の時間数]

Snowflakeの料金は、毎月の使用パターンに大きく依存します。これは、各請求書が仮想データウェアハウスごとに時間単位の粒度で生成されるためです。さらに、データストレージコストも計算コストとは別物になります。

たとえば、Snowflake上のストレージコストは、平均的な圧縮量で、1テラバイトあたり23ドルの定額料金で開始できます。これは毎日発生し、毎月請求されます。しかし、計算コストは、1秒または1クレジットあたり約0.00056ドルとなります(Snowflake On Demand Standard Editionでは)。

しかし、Snowflakeには、1クレジットまたは1時間あたり2ドルのコストの最小のクラスターなど7段階の演算ウェアハウスプランがあり、すぐに混乱することになります。1つ上位のレベルを上げるとこれらのコストは、2倍になります。

結果として、RedshiftはSnowflakeのオンデマンド価格と比較して安価であると結論付けても問題ありません。しかし、大幅な節約の恩恵を受けるには、1年または3年のリザーブドインスタンスにサインアップする必要があります。

Snowflake vs Redshift: Pros & Cons

Amazon Redshift Pros

  • Amazon Redshiftは非常にユーザーフレンドリーです。
  • また、管理作業もほとんど必要ありません。例えば、クラスタを作成し、インスタンスの種類を選択し、スケーリングを管理するだけです。
  • さまざまなAWSサービスとシームレスに統合することができます(世界最大の機能を持つクラウドエコシステムの中で)。
  • データがAmazon S3に保存されている場合、Spectrumは複雑なクエリを簡単に実行することができます。演算処理とストレージをそれぞれ独立してスケーリングできるようにすればいいだけです。
  • レポーティング環境でのデータの集約/非正規化に非常に適しています。
  • アナリティクスのための高速なクエリを提供し、複数の同時接続の分析を可能にします。
  • JSONを含む複数のデータ出力形式を提供します。
  • SQLのバックグラウンドを持つ開発者は、PostgreSQLの構文を活用し、シームレスにデータを扱うことができます。
  • 演算能力とデータストレージの両方をカバーするオンデマンドのリザーブドインスタンス価格プランを、1時間単位、1ノード単位で提供します。
  • 強化されたデータベースセキュリティ機能に加えて、Amazonは広範な統合コンプライアンスプログラムも提供しています。
  • 安全でシンプルで信頼性の高いバックアップを提供します。

Amazon Redshift Cons

  • トランザクション系のシステムには不向き
  • AWSが新しいパッチをリリースするまでの間、古いバージョンのRedshiftにロールバックしなければならないことがあります。
  • Amazon Redshift Spectrumは、スキャンしたバイト数に応じて追加料金が発生します。
  • Redshiftには最新の機能やデータ型が欠けており、言語要素はPostgreSQL 8によく似ています。
  • 外部テーブルでハンギングクエリの問題が発生する可能性があります。
  • また、変換されたテーブルの整合性を検証する場合、他の手段に頼らなければなりません。さらに、制約が適用されません。

Snowflake Pros

  • Snowflakeは、主にクラウド上で運用する企業に最適です。
  • このデータウェアハウスソリューションは、非常にユーザーフレンドリーで、他のほとんどのテクノロジーと互換性があります。
  • 内蔵されているSQLインターフェイスも非常に直感的です。
  • Snowflake自体がクラウドベースのデータウェアハウスであるため、データ統合が簡単です。
  • セットアップが簡単で、実行に移すのも簡単です。
  • サードパーティのパートナーやテクノロジーの広範なエコシステムをサポートしています。
  • Set and Forgetモデル。真のSaaSは、他のクラウドサービス、データストレージ、クエリ処理との統合が可能です。
  • データストレージと演算処理の料金は、異なるティアとクラウドプロバイダーに基づいて個別に課金されます。
  • セキュアなビューとセキュアなユーザー定義機能が可能。
  • データベーステーブルに対してアカウント間のデータ共有を可能にする。
  • Amazon AWSとシームレスに統合。

Snowflake Cons

  • クラウドベースのサービスと簡単に連携することのできないオンプレミスのテクノロジーを使ってビジネスを運営しているのであれば、Snowflakeは間違った選択肢です。
  • また、1分単位のSnowflakeクレジットは、仮想ウェアハウスを起動するたびに使用されますが、それ以降は秒単位で課金されます。
  • SnowflakeのSQLエディタは、オートコンプリート機能を実装すべきです。


まとめ

RedshiftとSnowflakeのどちらを選択するかは、お客様のリソースと特定のビジネス需要に応じて決めることになります。例えば、数百万から数十億にも及ぶ大規模なワークロードの管理が必要な場合は、Redshiftを選択することになります。

Redshiftは費用対効果に優れていますが、企業はデイリーアクティブなクラスタのために低価格帯のクエリ速度を選択することで費用を削減することもできます。

RedshiftはAmazonの人気製品であるため、詳細なドキュメントやサポートも用意されており、あなたのチームが直面する可能性のあるハードルを克服するのに役立ちます。しかし、最も基本的なことですが、データウェアハウスの決定は、日々の利用パターンや扱うデータ量に基づいて行わなければなりません。

あなたがどちらの製品を選ぶかに関係なく、Xplentyは、あなたが安全にデータを得るのをサポートします。もし両方のデータウェアハウスを使用する場合、RedshiftとSnowflakeの統合についての詳細をご覧ください。 無償トライアルをご希望の場合は、以下よりお申し込みください。

Xplentyのデモ紹介に登録して、無料でプラットフォームを試してみよう!(予約サイトは英語ですが、日本語でデモします)

(本ブログは、2019年6月に投稿された記事を翻訳したものです。)