LoginSignup
1
0

More than 3 years have passed since last update.

create_dynamic_frame_from_optionsでデータベーステーブルの特定列のみを取得したい

Last updated at Posted at 2020-09-13

AWS Glueで、create_dynamic_frame_from_optionsを使ってAurora(MySQL互換)の各テーブルのDynamicFrameを作成し、write_dynamic_frame_from_optionsでパーティション分割したParquetフォーマットのファイルとしてS3に吐き出すだけの簡単なJobを動かしていたんですが、ある大きめなテーブル(数百万行、かつ、TEXT型フィールドが複数含まれる)だけで2時間以上かかったり、メモリ不足で処理が完了しなくなってました。

おそらく、不要なTEXT型フィールドを取り除いてしまえば必要とするメモリも少なくてすみ、処理も早くなるだろうと思ったんですが、オプションを眺めても取得するカラムを指定できそうなものがない。そこで、必要なカラムのみを指定したVIEWをAuroraのDBに作成し、GlueのJobはテーブルの代わりにVIEWを使用してDynamicFrameを作成、ファイルに出力することで数分で終わるようになりました。

ということで、同じようなケースで困っている方はVIEW作るのおすすめです。

ただ、push_down_predicateで取得する行はフィルタリングできるので、なにか別の方法でもっと簡単にできるのではないかという気もしています。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0