継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

『AWS Data Wrangler』の v1.0 がリリース! どんなアップデートがあったかを整理する

タダです.

以前紹介した「AWS Data Wrangler」が今年の4月に v1.0 でリリースされました.リリースから2ヶ月,過去記事に書いたものからどんなアップデートがあるかをまとめます.

公式ブログ

aws.amazon.com

過去記事

sadayoshi-tada.hatenablog.com

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」を活用できるようまずはとっつきやすいチュートリアルから触れてナレッジを貯め込んでいきたいです.