Amazonのドキュメントを読んだ後、Glueスクリプトを実行/テストする唯一の方法は、それを開発エンドポイントにデプロイし、必要に応じてリモートでデバッグすることであると理解しています。同時に、(Python)コードが複数のファイルとパッケージで構成されている場合、メインスクリプトを除くすべてを圧縮する必要があります。これはすべて、開発とテストが面倒であるため、Glueは複雑なETLタスクには適していないと感じています。コードを毎回S3にアップロードすることなくローカルでSparkコードをテストでき、開発Glueエンドポイントに費用を支払うことなくCIサーバーでテストを検証できます。
AWSのセールスエンジニアと話しましたが、彼らはノーと答えました。Glueコードをテストするには、Glueトランスフォーム(クラウド内)を実行する必要があります。彼は、オンプレミスの運用を可能にするためにOutpostと呼ばれるものをテストしているが、まだ公開されていないことを述べました。ですから、これは固い「いいえ」のように見えます。しかし、単体テストがなければ、私には行きません。
接着剤とpysparkコードを別々のファイルに保存し、pysparkコードをローカルで単体テストできます。依存ファイルを圧縮するために、ファイルを圧縮してs3の場所にアップロードし、CFテンプレートを適用してグルージョブを展開するシェルスクリプトを作成しました。依存関係を検出するために、(glue job)_dependency.txtファイルを作成しました。
最終的に、2019年8月28日の時点で、Amazonはバイナリと
SparkおよびScala内のGlue ETLスクリプトと複雑なPythonアプリケーションをローカルで開発、コンパイル、デバッグ、およびシングルステップします。
このリンクを確認してください: https://aws.Amazon.com/about-aws/whats-new/2019/08/aws-glue-releases-binaries-of-glue-etl-libraries-for-glue -jobs /
私が知っていることではありません。リモートアセットがたくさんある場合は注意が必要です。 Windowsを使用して、仕事をオーサリングしている間、通常は開発エンドポイントとローカルツェッペリンノートブックを実行します。私は毎日それをシャットダウンしました。
ジョブエディター>スクリプトエディターを使用して、ジョブを編集、保存、および実行できます。コストの違いはわかりません。
CedricBに追加し、
開発/テストの目的で、コードをS3にアップロードする必要はなく、zeppelinノートブックをローカルにセットアップし、SSH接続を確立して、データカタログ/クローラーなどにアクセスできるようにします。また、データが存在するs3バケット。
すべてのテストが完了したら、コードをバンドルし、S3バケットにアップロードできます。次に、S3バケットのETLスクリプトを指すジョブを作成して、ジョブを実行し、同様にスケジュールできるようにします。すべての開発/テストが完了したら、開発者エンドポイントを必ず削除してください。IDLEの時間でも課金されます。
よろしく