LoginSignup
1
0

S3 Select、Athena、Redshift Spectrumの違い

Posted at

概要

AWS上でデータ分析をする上で、登場するS3 SelectとAthenaとRedshift Spectrum。これらのサービスの違いがわかっておらず混同しがちだったため、主に使いどころの観点からサービスの違いを勉強してみました。

S3 Select

S3に保存されているオブジェクトに対してSQLを使用して 必要なデータのみ取得できるサービス。S3に保存されたデータから特定のデータを効率的に取り出すことに特化している。

使いどころ

  • 単一のオブジェクトに対してSQLを実行するケース

S3 Selectを実行する時に指定するパラメータ

  • S3のバケット名、オブジェクト名
  • 入力データのフォーマット形式
  • 圧縮の有無
  • 出力形式
  • 実行するSQL

対応フォーマット

  • CSV
  • JSON
  • Apache Parquet
  • 圧縮されたオブジェクト(GZIPやBZIP2)
  • サーバー側で暗号化されたオブジェクト

料金

S3 Selectを実行するS3のストレージタイプやリージョンによって異なる。
詳細は以下を参照
https://aws.amazon.com/jp/s3/pricing/

例:S3標準、東京の場合
スキャン:0.00225USD/GB
戻りデータ:0.0008USD/GB

Athena

S3に保存されたデータに対して、サーバーレスでSQLクエリを実行することができる。サーバーレスのため、実行するためのインフラの準備や管理は不要で、実行したクエリにのみ課金される。他のAWSサービスと統合することで、データを分析し可視化できるようにもなる。

使いどころ

  • S3に格納されているデータに対してアドホックな分析をしたいケース
  • S3以外のデータソースに対しても分析をしたいケース(横串検索)
    ※S3のデータとDynamoDBのデータなどを結合して分析したいケース

料金

スキャンするデータサイズに応じて課金される。1TBあたり5USB

Redshift Spectrum

Redshiftクラスター外のS3データに対して直接クエリを実行し、Redshift内のデータと結合することができる。

使いどころ

  • Redshiftに格納されているデータとS3に格納されているデータを統合したいケース
    ※頻繁にクエリを実行したいデータはRedshiftに保存し、あまりクエリを実行しないデータはS3に保存し、クエリを実行する時はRedshift Spectrumを使用するようなケース

料金

Athenaと同様にスキャンするデータサイズに応じて課金される。1TBあたり5USB
※Redshiftを起動していないと利用できないため、Redshiftの利用料金も必ず発生する。

まとめ

  • S3 Selectは単一のオブジェクトに対して簡単にSQLを実行したい時に使う
  • AthenaはS3に格納されているデータ(複数のオブジェクト)に対してアドホックな分析をしたい時に使う
  • Redshift SpectrumはRedshiftに格納されているデータとS3に格納されているデータを統合したい時に使う

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0