◾️S3 Select とは
オブジェクトから必要なデータのみを抽出するよう設計された、新しい Amazon S3 機能で、パフォーマンスを大幅に改善し、S3 のデータへのアクセスに必要なアプリケーションのコストを削減することができます。
ほとんどのアプリケーションでは、オブジェクト全体を取得した後、詳細な分析に必要なデータのみをフィルタで除外する必要があります。
S3 Select を使用すると、アプリケーションは、Amazon S3 サービスへのオブジェクト内にあるデータのフィルタリングやデータへのアクセスといった手間のかかる作業から解放されます。
アプリケーションでロードおよび処理しなければならないデータ量を減らすことで、S3 Select は S3 のデータに頻繁にアクセスするほとんどのアプリケーションのパフォーマンスを最大で 400% 改善することができます。
ただし、S3 Select の料金は、入力、出力、および転送されたデータのサイズに基づいています。
クエリごとに、スキャンした GB あたり 0.00225 USD と、返された GB あたり 0.0008 USD の料金がかかるため、特定のデータだけを抽出したいときなどに便利かと思われる。
◾️やってみた
適当なCSVファイルを準備し、S3へアップロードする。
namae,type,age,city
sato,man,20,sapporo
tanaka,man,30,kanagawa
kimura,woman,20,okayama
hogawa,woman,10,miyagi
sato,woman,20,yamanashi
amuro,man,10,kanagawa
ファイル形式:「CSV」
区切り記号:「カンマ」
「ファイルにはヘッダー行があります」にチェック。
デフォルトのSQLを実行してみます。
select * from s3object s limit 5
最大で 5 つのデータが取得(limit 5)されたことがわかる。
他のサンプルも確認してみましょう。age=20のものだけ抽出します。
select * from s3object s where s.age = '20'
age = 20 のものだけが抽出された。