HOW TO TD(User Engagement)Treasure Data User Engagement

Workflowのプロジェクト構成について

ホーム » Workflowのプロジェクト構成について

データマネジメントチームの藤井 温子です。
今回は、Treasure Workflowでワークフローを構築する際のプロジェクト構成についてご紹介します。Treasure Workflowをこれから使い始める方や、より複雑なワークフローを作成しようとしている方にお役に立てる内容かと思います。

プロジェクトの構成要素

Treasure Workflow上で実行する一連の処理のことを「ワークフロー」と呼びます。ワークフローのファイルは.digという拡張子なので、digファイルと呼ばれることもあります。digファイルの中に、具体的な処理を指定する「タスク」が記述されます。digファイルの他に、ワークフローの実行に必要なSQLファイルや設定ファイルなどをまとめたものを合わせて「プロジェクト」と呼びます。

プロジェクトのファイル構成

弊社のデータマネジメントユニットで作成している典型的なワークフロープロジェクトを1つ例にとって、ファイル構成の一例をご紹介いたします。今回の例は、データの取り込み〜処理〜BIツールへの出力するワークフローとすると、よくあるファイル構成は下記のようになります。



弊社データマネジメントチームでは、プロジェクト内のファイルは下記のルールに基づいて作成することが多いです。

  • 第一階層に処理に関するdigファイルを入れる
  • 第二階層で処理ごとに区切る(proc_01, proc_02, proc_03など)
  • 処理を順番に記述したdigファイルは、定期実行用(cron_daily_process.dig) / リカバリ用(bulk_process.dig)の2種類作成する

第二階層で処理ごとに区切ることによって、CDPの管理画面でファイルの一覧を見たときに、処理ごろに順番に表示され、探しやすくなっています。

プロジェクトの実行イメージ

このプロジェクトの実行フローとしては下図のようになります。digファイル内をタスクレベルで記述しています(各タスク配下には、行いたい処理に応じてオペレータを記述する必要があります)

定期実行のフロー

定期実行のフローでは、schedule:で指定された頻度で定期的に(毎日朝5時など)一連の処理が実行されます。



スケジュール設定の際によく使うのが下記のような記述で、下記の場合は毎日午前6:00に実行されます。

schedule:
cron>: 0 6 * * *

詳しいスケジュール設定方法についてはdigdagの公式ドキュメンテーションをご参照ください。

一括処理のフロー

一括処理のフローは、過去分データをまとめて取り込む際や、データ処理が一時停止していた場合のリカバリの際に利用します。処理したい日付分を指定して、1日分毎にループ処理するのが典型的なやり方です。

実行フローは下図のようになります。



日次ループ処理の実装方法については過去の記事でも紹介していますので、ぜひご参考ください。

ファイル構成を決めておくメリット

このように、はじめにファイル構成のルールを決めておくと、新規の処理を追加する際や、他のチームメンバーがワークフローを修正する際にも分かりやすく、運用しやすくなります。例えば、今回の例のように取り込み・一次処理・マート作成をそれぞれproc_01, proc_02, proc_03と分けておくと、処理が増えたときには該当のdigファイルにタスクを付け足すだけでよいのです。追加する処理がSQLの実行などであれば、別途/queries/配下にSQLファイルも追加します。

まとめ

このように、ワークフローのファイル構成をある程度一般化しておくことで、ワークフローをすっきりと見やすくし、チームでの運用負荷を下げることができます。この記事が少しでも参考になりましたら幸いです。

藤井 温子

Data Managementチーム

新卒でデジタルマーケティング支援企業に入社し、UXデザインコンサルタントとして大手保険会社、食品メーカー、機器メーカー等に向けたユーザーリサーチ・WebサイトのUX・UI改善等のプロジェクトを担当。その後、同社のデータ分析系SaaSのカスタマーサクセスの立ち上げメンバーとして、トレーニングプログラムの立ち上げやお客様の活用支援に従事。よりテクニカル領域に関わりたいと思い、2020年にトレジャーデータに参画。データマネジメントチームにて、Treasure Data CDPの構築や施策のデータ集計等、データ基盤の設計・開発・運用支援に従事。

得意領域 : データ活用・分析支援、ウェブ解析、ユーザーリサーチ(定性調査)、コンサルティング

Back to top button