COLUMN誰でもわかる!お役立ちコラム

AWS活用支援コラム

Amazon Redshift Spectrum と Amazon Athena、どっちを使う?

はじめに

ビッグデータ分析を行うためのデータウェアハウスソリューションは数多くあります。そのなかでも、Amazon Web Services(AWS)が提供する2つのサービス、Amazon Redshift SpectrumとAmazon Athenaは、データ分析のしやすさから非常に注目を集めています。

これらのサービスはそれぞれ、大量のデータに対する、SQLによる高速なクエリ実行機能を提供しますが、その使用方法や機能面で異なります。

では、これらのサービスはどのように違い、状況に応じてどちらを選ぶべきなのでしょうか?
この記事では、両サービスの特徴や使い分けについて、詳しく解説していきます。

Amazon Redshift Spectrumとは?

Amazon Redshift Spectrumは、Amazon Redshiftから直接Amazon S3に保存されているデータに対するSQLクエリを実行できるサービスです。Redshift Spectrumを使用すると、データをAmazon Redshiftにロードすることなく、テラバイトからペタバイトまでのデータを効率的に分析できます。

Redshift Spectrumは、その名前の通りRedshiftのサービスの一部分であるため、Redshiftクラスターと統合されています。そのためSQLクエリを行う対象となる、S3に保存されているデータが、あたかもRedshiftに保存されているかのように実行されます。

このため、例えばTableauなどの既存のBIツールの利用も、Redshift同様に可能となります。さらにRedshift Spectrumは、Redshift本体とは別の独立したプロセスでの処理となるため、Redshift自体に負荷を掛けることなくデータを分析することができます。

サポートしているデータ形式としては、Parquet、ORC、CSV、JSONなどがあげられます。

Amazon Athenaとは?

Amazon Athenaは、サーバーレスのクエリ実行サービスで、S3上のデータに対してSQLクエリを直接実行することができます。Athenaを使用すると、複雑なETL(Extract、Transform、Load)ジョブを実行することなく、大量のデータを素早く分析できます。

Athenaはフルマネージド型サービスであり、インフラストラクチャの管理、データウェアハウスのセットアップ、データの事前ロード等は必要なく、数クリックと定義用の設定を行うだけですぐに利用をスタートすることができます。
また、Athenaは標準SQLを使用することができます。

したがって、SQLを理解しているエンジニアであれば、すぐにデータ分析を開始できるだけでなく、JDBCおよびODBCドライバーを介してさまざまなBIツールと統合できます。
また、ほかのAWSサービスとの連携も容易になっています。具体的には下記のとおりです。

  • 高度ETL処理…Amazon Glueと連携させることで、より高度なETL処理を実行することが可能となっています。
  • 分析結果の可視化…Amazon QuickSightと連携し、分析結果をダッシュボード化することが可能です。

それぞれのベストプラクティス

それぞれのサービスを利用するにあたってのベストプラクティスを紹介します。

Amazon Redshift Spectrumのベストプラクティス

  • 列指向データの扱い
    Redshiftはもともと列指向データの分析に優れたDWHとなっています。そのため、Amazon Redshift Spectrumを利用するにあたっても、データを列指向のフォーマット(ParquetやORCなど)に保存すると、コスト効率に優れた利用が可能です。
  • 統計データの使用
    Redshift Spectrumは、クエリパフォーマンスを最適化するために、テーブルとカラムの統計情報を使用します。これらの情報を最新の状態に保つことが重要です。

Amazon Athenaのベストプラクティス

  • 分析対象データの圧縮
    Athenaはクエリ対象のデータ量に応じて課金が発生します。そのため、GZIPやSnappyなどの圧縮アルゴリズムを使用してデータを圧縮することで、クエリに対する課金を圧縮すると同時に、パフォーマンスについても向上させることが可能です。
  • 結果の再利用
    Athenaは、実行したクエリの結果をS3に自動的に保存します。同じクエリを再実行する際には、前回の結果を再利用することができます。
  • パーティショニング
    Athenaでは、S3上のデータをパーティション分けすることができます。これにより、クエリの実行範囲を制限し、コスト削減につなげることができます。

AWS上で様々なマネージドサービスを活用してDXを実現するスタイルズのクラウドネイティブ開発サービスはこちら→

Amazon Redshift Spectrum vs. Athena: どちらを選ぶべき?

Amazon Redshift Spectrumと、Amazon Athenaでは、それぞれSQLを用いてS3条に保存されているデータに対し、データ分析を実行できるという点で同じ機能を持っています。また、様々なデータ形式をサポートしている点も共通しています。

では、どのように使い分けをしていけばいいのでしょうか。

Amazon Redshift Spectrumが優れている場合

Amazon Redshift Spectrumが優れている場合は下記のケースです。

  • すでにRedshiftを利用している場合
    既にデータウェアハウスとしてRedshiftを活用している場合には、Redshift Spectrumが適しています。Redshift SpectrumはRedshiftの拡張機能として機能し、既存のRedshiftクエリとS3上のデータを簡単に統合することができます。これにより、ユーザーは既存のRedshiftインフラストラクチャを活用しつつ、大量のデータを効率的に分析できます。
  • 高度な分析を行う場合
    ストリームデータの分析など、即時性が高い分析や、複雑なJOIN操作を行うような高度な分析を行う場合は、Redshift Spectrumは優れたパフォーマンスを提供します。

Amazon Athenaが優れている場合

Amazon Athenaが優れている場合は下記のケースです。

  • 手軽にデータ分析を実施したい場合
    Athenaは、手軽さと即時性を重視したユースケースに適しています。サーバーレスアーキテクチャのため、インフラストラクチャの設定や管理が不要で、データに対するクエリをすぐに実行できます。これは、短期的なプロジェクトやアドホックな分析、または即時性が求められる分析に適しています。
  • コスト効率を重視する場合
    RedshiftはAWSのサービスの中で、比較的高額なサービスとなっています。そのため、コスト効率を重視する場合や、一時的にデータ分析を行う場合についてはAthenaが適しているといえるでしょう。
  • 学習コストをあまりかけたくない場合
    Redshiftと比較して、Athenaは導入における学習コストが比較的低いサービスとなっています。そのため、初めてAWSのデータ分析サービスを利用する、といった場合には、Athenaの手軽さと簡易性が魅力となります。

AWS上で様々なマネージドサービスを活用してDXを実現するスタイルズのクラウドネイティブ開発サービスはこちら→

まとめ

このように、Redshift SpectrumとAthenaは、それぞれ異なるユースケースに適した特性を持っています。そのため、どちらのサービスを選択するかは、具体的なニーズや要件、既存のインフラストラクチャによります。利用に向けて悩む場合には、専業のベンダーに相談してみてもいいでしょう。