はじめに
Amazon S3 Select がGAになりました。対象は全てのリージョンです。
ということで試してみました。
Amazon S3 Select とは
S3バケット内に保存したオブジェクトに対し、SQL文を用いてデータの一部分のみを取り出すことができるサービスです。
アプリケーションが必要なデータのみ取得ができるので、パフォーマンスの向上が期待できます。
事前準備
まずは利用するためのデータを用意します。
適当にマラソンの大会名、距離、月、場所を記載したCSVデータです。
marathon,type,m,region
honolulu,full,12,hawaii
shonann,full,12,kanagawa
okayama,full,11,okayama
fukkou,full,10,miyagi
fuji5lake,ultra,4,yamanashi
yokohama,full,10,kanagawa
ここではこのcsvファイルを作成し、S3へデータをアップします。
実践
先ほどアップロードしたファイルを選択し、「さらに → 次から選択」をクリックします。
次に、S3 Selectの設定画面になるため、今回のデータ内容に合わせます。
今回は、「ファイル形式:CSV、区切り文字:カンマ、ヘッダー行:あり」で設定しています。
[ファイルプレビューの表示] をクリックすると下部のテキストボックスにcsvファイルの内容が表示されるので、問題なければ**「次へ」**をクリックします。
すると、SQL式 の SQLエディタを実行する画面が現れるので、そこにSQLを入力して実行します。
デフォルトだと、
select * from s3object s limit 5`
が入力されています。とりあえずこのまま**「SQL の実行」**をしてみます。
ヘッダー行なしでcsvファイルの内容がそのまま表示されました。
それでは、今度は12月にレースがあるマラソンのみを抽出したいと思います。
「サンプルのSQL式」というところにサンプルとなるSQLがあるのでここのを利用します。
上の画像のように [SQLの追加] を行い、SQLの一部を以下のように修正します。
select * from s3object s where s.m = '10'
あらためて [SQLの実行] を行うと今度は12月に開催されるマラソンのみが結果に表示されました。
この結果をダウンロードしたい場合は右下の [ダウンロード] をクリックすることでtxtファイルとしてダウンロードできます。
おわりに
思った以上に簡単に使えるので、S3に貯めたログなどから特定の内容を抽出したいときとかにすごく役に立ちそうです。