ちょっと話題の記事

【速報】Amazon Redshift:S3のデータを直接検索出来る新機能『Redshift Spectrum』が発表されました! #awssummit

2017.04.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

日本時間2017/04/20(木) 午前1:30(現地サンフランシスコ時間では2017/04/19(水) 午前9:30)から始まっていた『AWS Summit 2017 in San Francisco』。当イベントのキーノートにて、Amazon Redshiftの新機能として『Redshift Spectrum』なるものが発表されました!Amazon S3にある大量のデータに対して、Amazon Redshiftから直接クエリを投げる事が出来る、というものになるようです。

ちなみにこの機能については、本日から利用可能(Generally Available Today)となっているようです。 (※Amazon Redshiftの場合、例に拠って対応するクラスタバージョンのパッチが当たっている事が条件となります。詳細は後述)

redshift-spectrum_01

これまでAmazon Redshiftでクエリ出来る領域としては、Redshiftクラスタ内部のデータベース領域内に限られていましたが、今回のこの新機能はその領域をRedshiftクラスタの外、Amazon S3にまで拡張した形となります。

現時点でのアナウンスではS3上にあるファイルのフォーマットとして、CSV, JSON, ORC, Parquetがサポートされている様です(※追記:JSONについては下記スライドでは記載がありますが、現時点(2017/04/20)でのドキュメントを探してみた限りだと言及箇所がありませんでした)。ORC及びParquetは、Amazon Redshiftと同じ列指向型の分析に適したファイルフォーマットとなります。詳細については下記エントリをご参照ください。

redshift-spectrum_02

キーノートではHiveとのパフォーマンス比較についても言及されていました。まじかよ!という様な数値ですが、この辺りは実際に色々と検証してみたいところですね。

redshift-spectrum_03

利用可能な時期・条件

冒頭で記載しました通り、『本日から使えます!』とはありますが、実際Amazon Redshiftではクラスタバージョンにパッチが当てられ、任意のバージョンにアップグレードした状態となる事で利用可能となります。クラスタバージョンの確認はAWS管理コンソール上でのクラスタ関連情報、RedshiftクラスタにログインしSQLでSELECT VERSION()を実行、またはAWS CLIで任意のコマンドを実行する事で確認可能です。バージョン1.0.1294以降の環境でRedshift Spectrumの機能が利用可能となります。

# SELECT VERSION();
                                                         version                                                          
--------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 8.0.2 on i686-pc-linux-gnu, (中略), Redshift 1.0.1282
(1 row)
$ aws redshift describe-clusters --cluster-identifier cm-redshift \
> | jq '.Clusters[] | .ClusterVersion, .ClusterRevisionNumber'
"1.0"
"1282"

料金

Redshift Spectrumの利用料金については、クエリ処理に於いてS3から取得されたデータの量に対して掛かる形となり、テラバイトあたり5ドルとアナウンスされています(S3へのデータ保存時、またクエリ実行を行っていない時は料金は掛かりません)。ファイルを圧縮しておいたり、列指向型のファイル形式で保存しておく事でコストを節約する事が出来ますので利用の際にはこの辺り上手く活用しておきたいですね。

まとめ

以上、Amazon Redshiftの新機能『Redshift Spectrum』に関する速報的内容紹介エントリでした。この機能を使う事で、Redshift/S3のみならず、Amazon AthenaやEMR(が扱うS3ファイル)との連携も可能となる訳ですので、『データレイク構想』の根幹となるS3データの活用アイデアが更に広がりますね!関連するドキュメントも既に公開されていますので、早速色々試してみたいと思います!

参考情報: