【速報】新サービスS3 SELECTが発表されました!! #reinvent

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

ご機嫌いかがでしょうか、豊崎です。

re:Invent 2017 KeynoteにてS3 SELECTが発表されました!!

https://aws.amazon.com/jp/blogs/aws/s3-glacier-select/

特徴

  • 新しいAPIを使用して、オブジェクト内のデータを選択および取得します。
  • S3オブジェクトデータのサブセットを処理するアプリケーションの高速化します
  • データアクセスのパフォーマンスを最大400%に高速化
  • S3 SELECTを使用することで分析の高速化

コード例

import boto3
from s3select import ResponseHandler

class PrintingResponseHandler(ResponseHandler):
    def handle_records(self, record_data):
        print(record_data.decode('utf-8'))

handler = PrintingResponseHandler()
s3 = boto3.client('s3')
response = s3.select_object_content(
    Bucket="super-secret-reinvent-stuff",
    Key="stuff.csv",
    SelectRequest={
        'ExpressionType': 'SQL',
     'Expression': 'SELECT s._1 FROM S3Object AS s'',
        'InputSerialization': {
            'CompressionType': 'NONE',
            'CSV': {
                'FileHeaderInfo': 'IGNORE',
                'RecordDelimiter': '\n',
                'FieldDelimiter': ',',
            }
        },
        'OutputSerialization': {
            'RecordOrder': 'STRICT',
            'CSV': {
                'RecordDelimiter': '\n',
                'FieldDelimiter': ',',
            }
        }
    }
)
handler.handle_response(response['Body'])

さいごに

高速なS3へのSQLが発表されました!!今後、Athenaとのユースケースの違いを含めて触っていきたいと思います。

現在プレビューの申し込みが可能です。

Amazon S3 Select Preview

早く使って見たい!!