# Treasure ワークフローによるワークフロー管理

Treasure ワークフローを使用すると、複数のタスクで構成されるワークフローを作成し、そのワークフローを定期的に実行するようにスケジュールできます。
このトピックでは、Treasure コンソールでのワークフローの参照および作成について、最も基本的な内容を説明します。

## ワークフロー一覧の表示

Workflowsページでは、アカウント内にすでに定義されているワークフローを一覧表示することができます。
ワークフローにはユーザー定義ワークフローとシステムワークフローの2種類があります。

* ユーザー定義ワークフロー: ユーザーによって作成・管理されるワークフローです。
ユーザー定義ワークフローはカスタムタスクを実行し、ユーザーの特定のニーズと要件に合わせてカスタマイズが可能です。
ユーザー定義ワークフローの例としては、データをTreasure Dataへ取り込むためのETLワークフローや、
取り込んだデータを前処理するためのワークフローが挙げられます。
* システムワークフロー: Treasure Dataサービスによって自動的に作成されるワークフローです。
ユーザーはこれらのワークフローを作成または変更することはできませんが、ユーザーインターフェースを通じてアクセスできます。
システムワークフローの例としては、マスターセグメントを更新するaudienceワークフローや、
アクティベーションを実行するsyndicationワークフローが挙げられます。


それぞれを表示するには、Workflowsページの上部にあるセレクターで、表示したいワークフローのタイプを選択します。

![](/assets/image2022-7-14_18-16-38.4f6bd7e7418801fd8d6e348a8d4c14a54ad032696d6532de2a37aebe04f4a40a.142841d8.png)

## ワークフローの検索

ワークフローランディングページを最初に開くと、Treasure Data は関連するワークフローを含むプロジェクトをツリー構造で表示します。ワークフローを検索するには、各プロジェクトを開いてワークフローを表示できます。オプションで、ワークフローを検索することもできます。

右上で虫眼鏡アイコンを選択します。

![](/assets/image2022-8-20_14-16-10.a15201fdabda47e7a5f0b876623e1b34a74a752977a653fd236e5b65f79f8922.142841d8.png)

検索する文字列を入力します。

![](/assets/image2022-9-7_16-19-53.2779447a2cd4ea660fe813199c8152b879c5d6690170e4151a4a5ef0576cbe57.142841d8.png)

前の例では、「one」という用語を使用して検索しました。最後のエントリでは、ワークフロー名にその文字を含むネストされたワークフローが表示されています。

## ワークフローのソート

1. **Name** カラムの右にあるソートアイコンを選択します。
2. **Sort workflow across projects by name** を選択します。
3. Sort Ascending または Sort Descending を選択してページを更新します。


![](/assets/image2022-8-20_14-58-56.43f0b62e736946dab43e6d292d09718dae8828d176d29142c242afd17a91ca4a.142841d8.png)

Treasure Data は、プロジェクトと関連づけつつフラットにワークフローを表示します。

![](/assets/image2022-8-20_14-43-28.8ca4408b15315f72a2f4edb0c4558fdb0503d40bede4d5c05294b3bcddec875a.142841d8.png)

## ワークフローの実行状況の確認

![](/assets/image2022-9-7_16-40-11.9ac51379ad0425fae4024049fa02fd6fd0ae7828dce347af2f82de5deb03e7c4.142841d8.png)

| ステータス名 | アクション | 説明例 |
|  --- | --- | --- |
| Update Date | ワークフローが最初に実行された日付を識別します。 | このセグメントは 2019年4月8日午後1時8分に最初に実行されました。 |
| Last 5 Runs | 最後の5回のワークフロー実行試行の成功をすばやく確認します。 | 最後の5回のワークフロー実行はすべて失敗しました。 |
| Last Attempt | 最後に試行されたワークフロー実行を確認します。 | 最後に試行されたワークフロー実行は 2022年7月17日午後5時40分でした。 |
| Schedule | 繰り返しワークフローの場合、スケジュールが表示されます。 | 毎日 UTC タイムゾーンの午前12時。 |
| Next Attempt | Treasure Data が次にワークフローの実行を試行する時間。 | 本日午後5時。 |


## ワークフロー詳細の確認

ワークフロー一覧でワークフローをクリックすると詳細ペインが開き、そのワークフローの詳細を確認できます。
この詳細ペインではRun history（実行履歴）、Project Revisions（リビジョン一覧）とSecrets（シークレット）を表示することが可能です。

![](/assets/image2022-3-29_15-18-25.61e9ad27a54856c763020cccabd24205713c8caaef211e17e905ae14058f4acd.142841d8.png)

### Run Historyタブ

![](/assets/image2022-8-23_13-22-36.612cb4a8656fcf98cca1b9e534d51cfe38d1f725910d0dca258562daa06e1a28.142841d8.png)

デフォルトのタブはRun History（実行履歴）です。
各行に1セッションが表示され、セッションの実行状況（丸アイコン）、セッション情報（Session）、
最後の実行（Last Attempt）、実行時間（Duration）と実行したワークフローのリビジョン（Revision）を確認できます。

各履歴をクリックすると、それぞれの実行の詳細を開くことができます。

### Project Revisionsタブ

![](/assets/image2022-3-29_15-45-45.be0e3f79be1daf2a5640d386f923cbd8606b1f77a39f1299b32426ad20752a3a.142841d8.png)

Project Revisionsタブでは、新しい順にワークフローの変更履歴を確認できます。
変更日時（Revised）、変更者（Editor）、変更後のリビジョン（Revision）が見られます。

リビジョン欄に鉛筆のアイコンがある場合は、そのリビジョンにワークフロー（.digファイル）が含まれることを示します。
虫めがねアイコンがある場合は、ワークフローは含まれません。

### Secretsタブ

![](/assets/image2022-3-29_16-0-15.7722f04d477fae30ff272d0037bf31574fcff15d537c38cae980c71bf3f5bb54.142841d8.png)

Secretタブではそのプロジェクトに紐付けられたシークレット一覧を見ることができます。
シークレットはパスワードやアクセストークンのような秘密の文字列です。
このタブで "+" アイコンをクリックすることで、新しいシークレットを追加することもできます。

## チュートリアル: 初めてのワークフローを作成する

Workflowsページから新しいワークフローを作成することができます。
以下の手順に従って、最初のワークフローを作成、編集、実行してみましょう。
このワークフローはデータをTreasure DataへロードしてSQLで処理するワークフローです。

このワークフローを実行するには、Treasure Data上にデータベースとテーブルが必要です。

まず、Workflowsページで「New User-Defined Workflow」ボタンをクリックします。

![](/assets/image2022-8-20_14-14-37.6defbf61b9df6f18c00dc2d6c5ec774420ad016206fc00ee44af7cb4e03c1f41.142841d8.png)

「Create Workflow」ペインが開くので、Workflow Name欄にワークフロー名を入力します。
このチュートリアルでは「my_first_workflow」としておきましょう。

Project Name欄のプロジェクト名はデフォルトでワークフロー名と同じになります。
そのままにしても構いませんし、別の名前に変更することもできます。
このチュートリアルではワークフロー名と同じにしておきます。

![](/assets/create-workflow.f5a2953f72bc87a3e926e3708049a141bf4e85a290a25db1395416fecd44edff.2e4f387b.png)

「Workflow Template」欄から、ワークフローのテンプレートを選ぶことができます。
このチュートリアルでは "Simple Import and Saved Query" テンプレートを選択してください。
なお、環境によってはわかりにくいですが、このテンプレートリストはスクロールできます。

最後に「New Workflow」ボタンをクリックしてワークフロープロジェクトを作成してください。

### ワークフローの編集

ワークフロープロジェクトを作成すると、プロジェクトを編集するためのエディターが表示されます。

![](/assets/edit-workflow.279f52429e1472246d1403a8f5a7efc4ec4e03e3c6e6119d31e04588a3378719.2e4f387b.png)

このプロジェクトエディターではワークフロー（.digファイル）を含む様々なファイルをプロジェクトに追加し、
編集することができます。

デフォルトではプロジェクト内の最初のファイルが開かれています。
現在はプロジェクトにワークフローファイルmy_first_workflow.digだけが存在するので、そのファイルが開かれているはずです。

各コードセクションには、ハッシュタグ（#）から始まる行で説明が含まれています。
これらの行はすべてコメントで、ワークフローの実行時には無視されます。

### データベースの指定

Workflowコンソールでは、いきなりファイルの内容を変更しはじめることはできません。
ワークフローの編集を開始するには、まず "Edit Files" ボタンをクリックして、プロジェクトエディターを編集モードにします。

最初に、ワークフロー内の `td.database` 欄に記載されている「dbname.table」を自分のデータベース名に書き換えましょう。
`td.database` は、ワークフロー内のクエリーが実行されるときのTDデータベースを指定する変数です。
例えばクエリーをmy_databaseというデータベース内で実行したいならば、次のように記述します。


```
_export:
  td:
    database: my_database
```

編集を終えて変更を保存（コミット）するときは、 "Save & Commit" ボタンをクリックします。
これでワークフロープロジェクトの新しいバージョン（revision）が保存されます。

Treasure ワークフローはYAML構文を使用します。インデントやコロンの使用に十分注意してください。
特に記号はすべて半角文字でなければならず、全角の「：」や「｛」、全角空白などはすべてエラーになります。
全角文字が使える個所を理解するまでは、IMEをオフにしておいたほうが無難です。

### データコネクターをワークフローで使用する

Treasure Dataはtd_loadオペレーターを使用して、ストレージ、他のデータベース、またはサービスからデータを読み込みます。
この例では、データコネクタのUnique IDを参照します。

1. Treasure コンソールで、Integrations Hub > Sourcesに移動します。
2. コネクタを選択し、次にもっと見るメニュー（…）を選択します。
3. "Copy Unique ID" をクリックして、Unique IDをコピーします。


これで使用するUnique IDがわかったので、Workflowsページに戻り、
作成中のワークフローをプロジェクトエディターで開きます。

再度 "Edit Files" を選択し、編集モードにしたら、td_load>: の値をUnique IDの値に置き換えます。
最後に再度 "Save & Commit" ボタンをクリックしてワークフローを保存して完了です。

## ワークフローの実行とモニタリング

ワークフローはすぐに実行することも、スケジュールを作成して定期的に実行することもできます。
すぐワークフローを実行するには、"New Run" ボタンをクリックします。

![](/assets/run-workflow.9794ba6ec3a4d9c4e5ec43e88d8c46171856990cc26a8188b99ecb05798b2eed.2e4f387b.png)

これでワークフローが実行されます。
実行状況をモニタリングしたいときは、Run Historyタブから実行中の行をクリックしてください。
詳細画面が開き、タスク実行の様子をモニタリングできます。