digdag
(途中参加)
ワークフローエンジン
Aをやって、Bをやって、でもBが失敗したらCをやる、というのを、コードを書かないで制御する
サーバー
- どこの環境でも動くこと
- ワークフローが手元でも動く
- ステップを足す→ローカルで実行する
サーバーでアプローチすればサーバーで動く
Luigi
- 上から下へワークフローを動かす
- digdag
- digdag ネスト出来るようにした
- グループを作れる
- ある別のシステムがファイルをアップロードする→アップロードできたらコピーする
パラメータは一部ビルトイン
tdのクエリを実行する
- redshiftのクエリを実行する
- big query
- td for each
ポスグレ
メール
などなど…
slackへ通知も出来る
ローカルで実行する→デプロイする
サーバAで実行する→サーバBでも実行できるようにする
特定のプログラミング言語を特定のバージョンで特定の環境のなかでやりたい
- dockerオプション
- ubuntu:16.04 と書けば、ubuntu16.04のなかでrubyを実行したり出来る
- loopが出来る
プラス単位で書く
load_data
- load_users
- load_items
デモ
アイテムを買った人に対してその場所でのおすすめアイテムをレコメンデーションする
TDからデータを集める
- 処理は並列で行う
- 集めたデータをS3に置く
- Amazon EMRでSparkを実行する
- 新しいクラスター名をつくり、、アプリケーションを投入して実行し、クラスターを閉じる
- javaで書いたsparkアプリケーション
- td-spark
- sparkのデータをtreasureで参照する
- redshift→elastic searchで全文検索する
- 前回の処理が成功したら特定のジョブをスキップすることも出来る
workflow steps
- よくあるワークフローは複雑
- これらをグループ化して、実行順序を制御する
web ui
- タスクの進捗、ログ、成功失敗を確認することが出来る
登録はまだ無理
エラー通知は可能
- YAML
パラメータを利用して、過去分を再実行することが出来る
digdag ui/digdagはまだ発展途上であること