言いたいこと
先日、aws glueのversion2.0が出ました。
Python2のサポート切れタイミングに対し、かなり後手後手に対応していた感が否めなかったGlueでしたが、
version2.0はPython3で動作することはもちろん、以下の面でビックリするほどの改善がありました。
- スタートアップ時間がむちゃくちゃ早い
- ログがリアルタイムで出力されるようになった
これのおかげで開発体験がかなりレベルアップしたのでGlue0.9もしくは1.0で涙をのんでいた皆様へ、
実際のところの利用レポートとしてご報告しておきたいと思います。
正直これで、あの使いにくい開発エンドポイント要らなくなったんじゃない?? というレベルです。
比較環境について
言語 | glue version | |
---|---|---|
旧 | python2.7 | 0.9 |
新 | python3.x | 2.0 |
※このような環境条件での比較なので、厳密にはソースコードが少しだけ改修されています。(py27 -> py3)
ただ、元々メインロジックはpython3で単体テストを行っていたので、コード改修は極小ですので気にする必要はないはずです。
(というか、そもそもスタートアップ時間を論じるのにソースコードの中身はあまり関係ないはずです)
glue 0.9 と2.0の性能差
処理時間は殆ど変わらないものの、注目すべきはスタートアップ時間です。
5秒程度でSpark環境が起動していることとなります。(ver0.9では10分以上かかることが多かった)
→後述のリアルタイムログの雰囲気からも体感的に5秒程度というのは間違いないのでは?という感じです。(個人の感覚です)
これにより、テスタビリティが大幅に変わります。
今まではGlueジョブでは動作確認が時間がかかりすぎて厳しいので、私はGlue基盤不要なロジックは別のソースファイルにしてテストコードで事前テストを入念に行った上でいざGlueで実行確認!という感じで開発してきました。
しかし、このスタートアップ時間であれば、結構カジュアルにGlue実行基盤上で動作確認することができるレベルかなと思います。
ログがリアルタイムに
Glue1.0は知らないのですが、0.9では実行が完了しないとログが見れないという苦しいものでした。
しかし、2.0は実行開始時点からログがリアルタイムに見ることができます。素晴らしい!
終わりに
再テスト等を考えるとバージョン上げるのは非常に億劫だったりしますが、早く2.0に上げてしまった方がトータルコストとしてはリーズナブルなところに落ちる可能性が高いと思います。是非ともバージョンを上げていない方は上げてしまった方が良いのでは?という感じがしたのでご報告をいたしました。
→ちなみにまだ、不具合系の話は知りません。くれぐれも導入は自己責任でお願いいたします。