このチュートリアルでは、コマンドラインインターフェースを使用して、2つのTreasure Data Prestoジョブを順番に実行する最初のワークフローを実行します。
TD Toolbeltを使用して、Treasure Dataの多くのサービスと対話できます。まだインストールおよび設定されていない場合は、ターミナルから以下のコマンドを完了してください。
- TD ToolbeltとTreasure Agentのインストールと更新の手順を確認して完了します。
Treasure Dataアカウントに以下のデータベースを作成します。
- TD Toolbeltを使用してこのコマンドを実行します。
$ td db:create workflow_tempworkflow_tempデータベースが作成されます。
最初のワークフロープロジェクトディレクトリをダウンロードします。ダウンロードには、サンプルワークフローとPresto SQLコマンドが含まれています。
- ダウンロードディレクトリに移動します。
cd /Downloads- 以下のコードをコピーして貼り付け、サンプルワークフロープロジェクトをダウンロードします。
curl -o nasdaq_analysis.zip -L \
https://gist.github.com/danielnorberg/f839e5f2fd0d1a27d63001f4fd19b947/raw/d2d6dd0e3d419ea5d18b1c1e7ded9ec106c775d4/nasdaq_analysis.zip- サンプルワークフロープロジェクトはzipファイルに圧縮されています。以下のコードを使用してプロジェクトを展開します。
unzip nasdaq_analysis.zip- ワークフロープロジェクトディレクトリに移動します。
cd nasdaq_analysis- ワークフローファイルの内容を確認します。
cat nasdaq_analysis.dig- ワークフローにtimezone、export、およびtasksの3つのセクションが含まれていることを確認します。
- ワークフローが実行されるタイムゾーンとスケジュールを確認します。
timezone: UTC
schedule:
daily>: 07:00:00ワークフローデータがエクスポートされる場所を定義するコードを確認します。
_export:
td:
database: workflow_tempワークフローには2つのタスクがあります:
- daily_openという名前のテーブルを作成する日次クエリを実行します。
- monthly_openという名前のテーブルを作成する月次クエリを実行します。
+task1:
td>: queries/daily_open.sql
create_table: daily_open
+task2:
td>: queries/monthly_open.sql
create_table: monthly_open+は新しいタスクを示します。:の前に続くテキストは、タスクに付ける名前です。
td>は、続くクエリがTreasure Dataに対して実行されることを示します。これはPrestoクエリを実行するように自動的に設定されます。>は、タスクの「アクション」部分(実行する特定の処理)が定義される場所であることを示します。
create_table:パラメータは、テーブルが存在する場合は削除し、タスクのクエリの出力に基づいて新しいテーブルを作成します。
通常、ワークフローを開発する際は、ローカルマシンからワークフローを編集することから始めます。ワークフロー定義と実行パターンをローカルで作成しながら、TD環境内で発生するワークフローステップを実行して反復できます。
このワークフローは、workflow_tempデータベースに2つのテーブルを作成します:
daily_open
monthly_open
オプションで、最初のワークフローを実行する前に、TDコンソールのJob Activitiesページを開いて、実行時に確認できるようにします。
ローカルマシンからサンプルワークフローを1回実行します。
td wf run nasdaq_analysisTDコンソールのJob Activitiesページでnasdaq_analysisを確認します。
コマンドラインを使用して、daily_openテーブルが期待どおりに作成されたことを確認します:
td table:show workflow_temp daily_open- コマンドラインを使用して、monthly_openテーブルが期待どおりに作成されたことを確認します:
td table:show workflow_temp monthly_openワークフローを定期的に実行するようにスケジュールすることは一般的なタスクです。ワークフローにはすでにスケジュール定義が含まれています。
- ワークフロー内のスケジュール構文を確認します:
timezone: UTC
schedule:
daily>: 07:00:00- Treasure Dataにワークフローを登録します。
td wf push nasdaq_analysisワークフローは毎日UTC午前7時に実行されます。
コマンドラインから、Treasure Data環境で定義されているすべてのワークフローをリストできます。workflowまたはwdを同じ意味で使用できます。
- プロジェクトとワークフローのリストを取得するには、以下を入力します:
td wf push nasdaq_analysis- 以下の構文を使用して、送信したワークフローの定義を確認します:
td workflow workflows <project-name> <name>例:
td wf workflows nasdaq_analysis nasdaq_analysis