Glueの稼働時間(cost)を削減する
Sparkの「処理速度を高める」ための「分散処理」について書いてある記事
Sparkのperformance tuningの情報
englishであるけども、検索結果一番上
チューニング対象は大きく2つとのこと
パーティション数
そもそもデータソースにてパーティションが分かれていると、そのままブロックで分けて処理する
パーティションごとに1タスクで並列処理をする
つまりコア数よりも多いパーティションにしておかないともったいないtsawada.icon
処理の途中でパーティション間のデータシャッフルをする
変換処理完了時点で、結果を並列でデータストアに書き込む
パーティション数をspark-defaults.confに記述するらしいけど……glueにこれあったか?
メモリ割当量
これめちゃ良さそう。
推奨本もあるので読もう
Scala, Pythonなどで記載せずにSpark SQLで記述しても「処理の最適化」はされていそう AWS Glueの仕様について
https://gyazo.com/85bb51dcb9bdfb1e5f9bed792c7e749c
defaultで5DPUが割り当てられる
20CPU, 80GB RAMということ。でかいなwtsawada.icon
一度利用したtableはRAMにdata乗っけておくみたいだから、とりあえず読み込んで…というのでもいいのか
加工に用いるinput dataによっては、DPUをたくさん利用して一気に片付けたほうがいいこともあるかも。
1DPUで「4CPU」「16GBRAM」とのこと