タダです.
以前紹介した「AWS Data Wrangler」が今年の4月に v1.0 でリリースされました.リリースから2ヶ月,過去記事に書いたものからどんなアップデートがあるかをまとめます.
公式ブログ
過去記事
AWS Data Wrangler 概要
「AWS Data Wrangler」は AWS の Redshift,Glue,Athena,EMR といったデータ解析系のサービスと連携しやすく,ETL 処理開発に集中できるオープンソースの Python モジュールです.
An open-source Python package that extends the power of Pandas library to AWS connecting DataFrames and AWS data related services (Amazon Redshift, AWS Glue, Amazon Athena, Amazon EMR, etc).
Built on top of other open-source projects like Pandas, Apache Arrow, Boto3, s3fs, SQLAlchemy, Psycopg2 and PyMySQL, it offers abstracted functions to execute usual ETL tasks like load/unload data from Data Lakes, Data Warehouses and Databases.
アップデートサマリー
- Athena のパーティション射影をサポート
- CSV,JSON,FWF 形式をサポート
- S3 に格納した Parquet の読み込みと Glue カタログに Parquet メタデータの格納における Parquet スキーマを混合する
- S3 に Parquet を書き込みと Glue カタログに Parquet メタデータの格納をサポート
- Parquetでの
uint8
,uint16
,uint32
,uint64
のサポート - Glue カタログでの
upsert_table_parameters
,get_table_parameters
,upsert_table_parameters
関数を追加 - Athena の入れ子になった配列と構造体をサポート
- 行数でチャンク化されたRead Parquet/Athena/Redshiftに対応
- Docker で EMR をサポート
- EMR でカスタム分類をサポート
- Redshift の UNLOAD 処理で
kms_key_id
,max_file_size
,region
を引数としてサポート - Glue カタログ の上書き操作でテーブルのバージョニングをサポート
- Athena の読み込み SQL 時に
keep_files
,ctas_temp_table_name
を引数としてサポート - S3 のオブジェクトコピー時に
replace_filenames
を引数としてサポート - 別のディレクトリにコピーする S3 オブジェクトをリストしたり,ターゲットのデータセットにマージする処理をサポート
- モジュールの型アノテーションが登録された
- S3 と EMR を moto でサポート
- moto でのテストの改善は適宜行われている
- Pandas DataFrame から Athena のカラムとパーティションタイプを抽出処理をサポート
- 受信した S3 プレフィックスや S3 オブジェクトのパスのリストから Apache Parquet ファイルを読み込んだり,s3 上の Parquet ファイルをステージとして使用して Redshift のクエリ結果から Pandas DataFrame をロード,Athena 上で任意の SQL クエリの実行結果をPandas DataFrame として返す処理をサポート
まとめ
「AWS Data Wrangler」が ver 1.0 リリースされたので 1.0 以降のアップデートサマリーを列挙しました.リポジトリを見ると issue も上がっていて近々でも対応されてたので今後もアップデートが楽しみです.自分自身としては「AWS Data Wrangler」を活用できるようまずはとっつきやすいチュートリアルから触れてナレッジを貯め込んでいきたいです.