Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ETLanTIS Core デプロイモード解説

ETLanTIS Core デプロイモード解説

- ETLanTIS Core での二つのデプロイモード SPP と GPP について解説します
- 本資料では,SPP と GPP それぞれの動作原理と使用上の注意点について解説しています
- GPP は開発中のモードですので,今後製品上で提供するにあたり仕様変更の可能性があります
- 本資料では,SPP と GPP を利用する上でのライセンス上の注意事項,制限については言及しません

※ETLanTIS は,IPOC 株式会社の登録商標です

shinjin

May 25, 2021
Tweet

More Decks by shinjin

Other Decks in Technology

Transcript

  1. はじめに • ETLanTIS Core での⼆つのデプロイモード SPP と GPP について解説し ます

    • 本資料では,SPP と GPP それぞれの動作原理と使⽤上の注意点について 解説しています • GPP は開発中のモードですので,今後製品上で提供するにあたり仕様変 更の可能性があります • 本資料では,SPP と GPP を利⽤する上でのライセンス上の注意事項,制 限については⾔及しません • ETLanTIS は,IPOC 株式会社の登録商標です ETLanTIS Core デプロイモード解説 © 2021 IPOC 2
  2. ⽬次 • Executive Summary • SPP(Series Pipeline Parallelism)説明 • GPP(Global

    Pipeline Parallelism)説明 • PM 制約 • トポロジー制約 • 処理速度⽐較 • GPP 使⽤上の注意点 ETLanTIS Core デプロイモード解説 © 2021 IPOC 3
  3. Executive Summary • ETLanTIS Core は UI で定義したフローを解読し,ファイルとコマンド(PM) をアレンジしたシェルスクリプトをデプロイして,データ処理を⾏います •

    ETLanTIS Core では初期リリースから,コマンドの並列実⾏の恩恵を受けられ るファイルとコマンドのアレンジを⾏ってきました(SPP)が,バージョン 2.0 以降では,さらに進んだコマンドの並列実⾏形式 GPP を選択できます • Series Pipeline Parallelism(SPP: 直列パイプライン並列化) • Global Pipeline Parallelism(GPP: 全域パイプライン並列化): v2.0 以降選択可能 • SPP はオーバーヘッドの少ない並列化で,⼊⼒ファイルや分岐の少ないフロー に適しています • GPP はオーバーヘッドは SPP に⽐べると⼤きいですが,⼊⼒ファイルや分岐が 多く,横に広いフローの処理に適しています • GPP は,CPU やメモリ資源が潤沢な環境での利⽤を推奨します ETLanTIS Core デプロイモード解説 © 2021 IPOC 4
  4. SPP(Series Pipeline Parallelism)はパイプで複数のコ マンドの⼊出⼒を接続して実現します • パイプ(|)で複数のコマンドの⼊ 出⼒を接続して実⾏すると,それ らコマンドは並列実⾏されます • 複数のコマンドを⼊出⼒ファイル

    を⽤いて順次実⾏(当然,並列実 ⾏にはなりません) ETLanTIS Core デプロイモード解説 © 2021 IPOC 5 $ commandA in=IN | commandB | commandC out=OUT commandA commandB commandC CPU 1 CPU 2 CPU 3 $ commandA in=IN out=outA $ commandB in=outA out=outB $ commandC in=outB out=OUT commandA commandB commandC CPU 1 CPU 1 CPU 1 t t IN OUT IN outA outB OUT
  5. ETLanTIS Core デプロイモード解説 © 2021 IPOC 6 PM1 PM2 PM3

    PM6 PM4 PM5 PM7 PM8 PM1 in=IN1 | PM2 out=out2 PM4 in=IN2 out=out4-1,out4-2 PM7 in=out4-2 | PM8 out=OUT2 PM5 in=out4-1 out=out5 PM3 in=out2,out5 | PM6 out=OUT1 SPP でデプロイされるシェルスクリプト ※ コンセプト説明⽤に単純化したスクリプトです ※ 実際のスクリプトは,エラー処理などを含みます パイプグループ並列を考慮しない場合: 8 ステップ ↓ パイプグループ並列が働いた場合: 5 ステップ IN1 IN2 OUT1 OUT2 out2 out5 out4-1 out4-2 : ファイル パイプグループ フローを SPP でデプロイして動かす場合 - パイプグループによりステップ数が減少します - フローの分岐や合流でパイプグループが区切られます
  6. GPP(Global Pipeline Parallelism)は コマンド間を繋ぐ名前付きパイプを作成後 全コマンドをバックグラウンド起動します ETLanTIS Core デプロイモード解説 © 2021

    IPOC 7 PM1 PM2 PM3 PM6 PM4 PM5 PM7 PM8 out1 out2 out3 out4-1 out4-2 out5 out7 mkfifo out1 out2 .. out7 PM1 in=IN1 out=out1 & PM2 in=out1 out=out2 & PM3 in=out2,out5 out=out3 & PM4 in=IN2 out=out4-1,out4-2 & PM5 in=out4-1 out=out5 & PM6 in=out3 out=OUT1 & PM7 in=out4-2 out=out7 & PM8 in=out7 out=OUT2 & GPP でデプロイされるシェルスクリプト PM1〜8 は同時実⾏されます(1ステップ化) 名前付きパイプ作成 : 名前付きパイプ IN1 IN2 OUT1 OUT2 ※ コンセプト説明⽤に単純化したスクリプトです ※ 実際のスクリプトは,エラー処理などを含みます
  7. デプロイにおける制約1: PM 制約 ⼊出⼒にパイプを使⽤できない PM があります ※フローパーサーが⾃動的に判定しますので,ユーザーが考慮する必要はありません ETLanTIS Core デプロイモード解説

    © 2021 IPOC 8 SPP GPP ⼊⼒パイプ不可 結合系 標準偏差 相関係数 ユニーク カスタム関数 標準偏差 相関係数 カスタム関数 出⼒パイプ不可 条件分割 先頭レコード 最終レコード ユニーク カスタム関数 カスタム関数 PM1 PM2 PM3 PM6 PM4 PM5 PM7 PM8 IN1 IN2 OUT1 OUT2 トポロジ上はパイプにできるが, PM7 の出⼒,または PM8 の⼊⼒がパイ プ不可の場合,ファイルになる
  8. デプロイにおける制約2(GPP のみ): トポロジー制約 Type2 Splitter の出⼒と,Type1 Splitter 下流の Merger へ

    の⼊⼒はパイプではなく,ファイルになります ※フローパーサーが⾃動的に判定しますので,ユーザーが考慮する必要はありません ETLanTIS Core デプロイモード解説 © 2021 IPOC 9 PM1 PM2 PM3 PM2,PM3 ともに⼊⼒は PM1 の出⼒ out1 である → PM1 は Type2 Splitter x PM1 の出⼒はファイル PM1 PM2 PM4 PM5 PM3 PM6 x PM3 と PM5 の出⼒はファイル (パイプだとデッドロック発⽣) (PM1 in=... out=out1; NOTIFY out1) & (WAIT out1; PM2 in=out1 out=...) & (WAIT out1; PM3 in=out1 out=...) & PM1 in=... out=out1-1,out1-2 & ... (PM3 in=... out=out3; NOTIFY out3) & (PM5 in=... out=out5; NOTIFY out5) & (WAIT out3,out5; PM6 in=out3,out5 out=...) & ※ ファイル⽣成を通知,検知する NOTIFY, WAIT コマンドは抽 象的な表記であり,実際は別の内容が⼊ります PM1 は複数のストリームを出⼒し PM2,PM4 は違うストリームを⼊⼒ → PM1 は Type1 Splitter PM3 と PM5 の出⼒は Merger(PM6)が⼊⼒
  9. 【実⾏速度⽐較】PM 209 個のフローで⽐較 SPP 25秒 → GPP 9秒 GPP の⽅が延べ

    CPU 使⽤量が多いが,実⾏時間が半分以下に ETLanTIS Core デプロイモード解説 © 2021 IPOC 10 SPP [dbpp@pmdev 9]$ time ./SPP.sh real 0m24.998s user 0m9.731s sys 0m6.484s [dbpp@pmdev 9]$ GPP [dbpp@pmdev 9]$ time ./GPP.sh real 0m8.883s user 0m17.062s sys 0m12.212s [dbpp@pmdev 9]$ ⽐較したフロー サーバー: HP Z210 CPU: E3-1225 (1S4C4T) RAM: 8GB
  10. GPP 利⽤上の注意点 • 処理速度について • GPP ではフロー上の全 PM に対応するプロセスを同時起動しますが,トポロジ上の 制約によるファイル待ちや,PM

    の性質上の待ち,また SPP と⽐べて増加するコン テキストスイッチのため,直ちに CPU の数だけ性能が向上するわけではありません • 使⽤資源について • GPP では,ソート PM が同時稼働される可能性があります(SPP でも同時「起動」 はありますが同時「稼働」はありません)ので,メモリの必要容量が SPP に⽐べて 増加する可能性があります • ETLanTIS のフローパーサーは,使⽤資源のアカウンティングを⾏いませんので, 資源利⽤の競合が少なくなるよう JOB スケジュールなどの⼯夫を施してください • もちろん CPU コア数が⼤きいほど GPP の効果が出ますので,メモリ量とともに潤 沢な環境での稼働を推奨します ETLanTIS Core デプロイモード解説 © 2021 IPOC 11