S3に置いたGzip圧縮済みCSVファイルをRubyで読み込んでみた
Rubyでaws-sdkを使ってS3に置いたGzip圧縮したCSVファイル読み込む手順をご紹介します。
S3のキーを設定する
S3にアクセスするためにまずキーの設定を行います。
AWS::S3オブジェクトを作る
キーを設定したらAWS::S3
を使ってS3からデータを読み込むクライアントを作ります。
バケットを取得する
続いてバケット名前を指定してバケットオブジェクトを取得します
ファイルを取得する
次はバケット内のファイルを取得します。
ファイルを読み込む
取得したファイルをパイプストリームに書き込みます。
Gzip圧縮データを解凍する
読み込んだデータはGzip圧縮してあるのでGzipReader
を使って解凍します。
おまけ: Gzip圧縮した文字列を解凍する
上の例のように圧縮データはストリームに書き込むのが基本ですが、サイズが小さければ連結してStringIO
経由で解凍してもOKです。
解凍したCSVデータを読み込む
解凍したデータはCSV形式になっているのでCSV.parse
で読み込みます。
これで無事読み込めました。
今回はこれでおしまいです。