新しいことにはウェルカム

技術 | 電子工作 | ガジェット | ゲーム のメモ書き

AWS Redshift Spectrum / Athena を使った感想

元々AWS Redshiftを使っていたのですが、結構お高く、Google BigQueryに乗り換えました。

その後、Redshift Spectrum が出て、ひょっとしたらBigQueryよりいいのではと気になっていたので触ってみた感想です。

また、Redshift Spectrumが使えるようセットアップすると、合わせてAWS Athenaも使えるようになるので、その使用感も記載しました。

Redshift Spectrum とは?

AWS Redshift Spectrum とは、Redshiftの機能の一部で、わざわざテーブルにデータをロードする必要はなく、S3に置かれたファイルを直接Redshiftのテーブルとして使うことができます。

それにより、データベースの料金を抑えることができるというメリットがあります。

使い方

S3のファイルを直接テーブルとして読めるからといって、S3のディレクトリを指定すれば直ぐに使えるほど、うまい話ではありませんでした…。

データ自体はS3にあるとしても、テーブル定義(テーブル名・カラム名・データ型)をまず準備する必要があります。

テーブル定義は、AWS Glueを使って自動で行います。

Glueでは、S3のディレクトリを指定すると、その配下のファイルをクロールして、そこに置かれているデータのテーブル定義を自動で作ってくれます。1つのフォルダに複数の種類のテーブルのデータがあっても自動識別して、それぞれ別のテーブルとして定義してくれます。

テーブル定義を自動でやってくれるなんて、そんなうまい話があるのか!?とテンション上がったのですが、そんなうまい話ではありませんでした…。

自動で作られたテーブル定義は、そのままでは使えない場合が多く、結局手動で修正し直します。しかも、明確にこちら側で定義したい場合でも、自動識別がその定義を勝手に変えたりして、逆に邪魔だったりします。更に、テーブル定義の技術はHiveのメタストアを利用していて、色々自分で意図通りに調整するとなると敷居は低くないです。

テーブル定義が済むと、後はRedshiftから、通常のテーブルと同じように扱えるようになります。

Redshft Spectrum の使用感

速度に関してはまぁこんなものかなっといった感じです。特に遅くも、早くも感じませんでした。

気になったのは料金。データがS3ファイルになったところで、Redshiftの料金は従来通りのものがかかります。

そもそもRedshiftはデータベース容量料金が高いのではなく、計算するクラスター料金が高いので、データソースをRedshift Spectrumにしても料金は高いまま変わりませんでした。

Athena

AWS Athena とは?

AthenaもRedshft Spectrum同様、S3のファイルをテーブルとして直接見に行けるデータベースサービスです。

テーブル定義もRedshft Spectrum同様、必要になります。

テーブル定義はAthenaでAthena専用に作ることもできるのですが、Redshft Spectrumの時にGlueで作成したものも使えます。Glueはデータ加工機能もあり、AWS的にはGlueをデータ処理のハブにしたそうな雰囲気を感じました。

AWS Redshift Spectrum・Athena を使った感想
S3->Glue->Redshift/Athena

Redshft Spectrumは使用している・いないにかかわらず、Redshiftクラスターが立ち上がっている間中料金が発生するのですが、Athenaはクエリを実行して、クエリがデータを見にいった量に対して料金が発生します。そういった意味では、Google BigQueryに近い料金体系です。

Athena の使用感

Athenaは「Presto」という技術を使っているのですが、クエリの書き方にクセがあって使いづらかったです。Redshft Spectrum用のクエリもそのままではAthenaでは動かず、一般的なクエリもそのままではAthenaでは動かず、結局Prestoのリファレンスを見ながら、Athena用のクエリを書く必要があります。

雰囲気は分かったので、必要になったらその時考えようということで、現時点で積極的に使っていく気にはなりませんでした。

結論

  • Redshft Spectrum は、料金高いままなので、BigQueryでいいかなぁといった感想です。
  • Athena は、「テーブル定義準備」「方言の強いクエリ作成」… 面倒くさいからいいやぁといった感想です。