15
7

More than 5 years have passed since last update.

Amazon S3 Select を使ってS3オブジェクトの特定データを抽出する。

Posted at

はじめに

Amazon S3 Select がGAになりました。対象は全てのリージョンです。
ということで試してみました。

Amazon S3 Select とは

S3バケット内に保存したオブジェクトに対し、SQL文を用いてデータの一部分のみを取り出すことができるサービスです。
アプリケーションが必要なデータのみ取得ができるので、パフォーマンスの向上が期待できます。

事前準備

まずは利用するためのデータを用意します。
適当にマラソンの大会名、距離、月、場所を記載したCSVデータです。

marathon.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へデータをアップします。

スクリーンショット 2018-05-02 1.04.07.png

実践

先ほどアップロードしたファイルを選択し、「さらに → 次から選択」をクリックします。

スクリーンショット 2018-05-02 1.04.41.png

次に、S3 Selectの設定画面になるため、今回のデータ内容に合わせます。
今回は、「ファイル形式:CSV、区切り文字:カンマ、ヘッダー行:あり」で設定しています。

スクリーンショット 2018-05-02 1.05.21.png

[ファイルプレビューの表示] をクリックすると下部のテキストボックスにcsvファイルの内容が表示されるので、問題なければ「次へ」をクリックします。

スクリーンショット 2018-05-02 1.05.41.png

すると、SQL式 の SQLエディタを実行する画面が現れるので、そこにSQLを入力して実行します。

スクリーンショット 2018-05-02 1.06.08.png

デフォルトだと、

デフォルトSQL
select * from s3object s limit 5`

が入力されています。とりあえずこのまま「SQL の実行」をしてみます。

スクリーンショット 2018-05-02 1.06.15.png

ヘッダー行なしでcsvファイルの内容がそのまま表示されました。
それでは、今度は12月にレースがあるマラソンのみを抽出したいと思います。

「サンプルのSQL式」というところにサンプルとなるSQLがあるのでここのを利用します。

スクリーンショット 2018-05-02 1.06.29.png

上の画像のように [SQLの追加] を行い、SQLの一部を以下のように修正します。

サンプルSQL
select * from s3object s where s.m = '10'

スクリーンショット 2018-05-02 1.06.52.png

あらためて [SQLの実行] を行うと今度は12月に開催されるマラソンのみが結果に表示されました。

スクリーンショット 2018-05-02 1.07.03.png

この結果をダウンロードしたい場合は右下の [ダウンロード] をクリックすることでtxtファイルとしてダウンロードできます。

おわりに

思った以上に簡単に使えるので、S3に貯めたログなどから特定の内容を抽出したいときとかにすごく役に立ちそうです。

15
7
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
15
7