データ基盤はサービスにあるすべてのデータを集めて、分析できるようにする基盤です。
例えば、Mysql、Postgresqlにあるようなマスターデータだったり、Nginxのアクセスログだったり、Google Speadsheetにあるデータとか、
SalesForceにあるデータを集めて、中間テーブルを作ったり、Tableauで可視化するためのデータを作ることがあります。
ワークフローエンジンとしてはいろんな候補がありますが、現職の会社の要件に合ったワークフローを選定したいです。
要件
私は2年間データ分析基盤のワークフローをDigdagで安定運用していたので、
そのノウハウから安定稼働するために必要な要件を下の表にまとめて、各ワークフローエンジンを調べました。
要件 | Digdag | Airflow | Luigi | Perfect | Argo |
---|---|---|---|---|---|
SQLの実行しやすさ | ◎ | o | x | x | x(コンテナ専用) |
ワークフロー記述しやすさ | ◎ | o | x | △(機械学習なら良いかも) | - |
backfill機能 | ◎ | x (aws maaw) | - | - | |
複数人が同時に開発できるか | ◎ | x | - | - | - |
Operator, pluginの豊富さ | ◎ | o | - | - | - |
Embulkとの相性がいいこと | ◎ | o | - | - | - |
安定稼働 | ◎ | o | - | - | - |
依存関係が見やすい | ✖︎ | ◎ | - | - | - |
- | 採用 | 不採用 | 不採用 | 不採用 | 不採用 |
上の表の要件に沿って、上から各ワークフローエンジンを比較しました。
重要な要件が上にあるので、上から罰が多いと、下の要件を調べません。
私はDigdagに詳しいのでDigdagを調査する必要はなかったのですが、
結果的に1年半前にワークフローエンジンを選定する時と、結果が変わらずDigdagを作用することにしました。