メインコンテンツへジャンプ

Databricksワークフローにおけるコントロールフロー強化のお知らせ!

条件付き実行とジョブレベルのパラメータが一般的に利用できるようになりました。
Ori Zohar
ガボール・ラトキー
ヤン・ファン・デル・ヴェグト
Share this post

多段階のデータやAIプロセス、パイプラインをオーケストレーションする上で重要な要素は、制御フローの管理です。 このため、Databricks Workflowsのコントロールフロー機能に投資を続けています。この機能により、お客様は複雑なワークフローをより適切に制御し、高度なオーケストレーションシナリオを実装することができます。 数ヶ月前、私たちはワークフローにモジュール式のオーケストレーションを定義する機能を導入しました。これにより、お客様は複雑なDAGを分解して、より良いワークフロー管理、再利用性、チーム間でのパイプラインの連鎖を実現することができます。 本日、Lakehouseのオーケストレーションにおける次のイノベーションを発表できることを嬉しく思います。

タスクの条件付き実行

条件実行は、"If/else 条件タスクタイプ" と、"Run if dependencies" の2つの機能に分けることができます。これらを組み合わせることで、ユーザーはワークフローで分岐ロジックを作成し、パイプライン内のタスク間でより洗練された依存関係を作成し、ワークフローに柔軟性を導入することができます。

新しい条件付きタスクタイプ

この機能には、If/else条件という新しいタスクタイプの追加が含まれます。 このタスク・タイプでは、制御フローに分岐条件を作成することができます。つまり、条件が真なら特定の分岐が実行され、条件が偽なら別の分岐が実行されます。 ユーザーはさまざまな条件を定義し、実行時に設定される動的な値を使用することができます。 以下の例では、予測に進む前に機械モデルの採点がチェックされます:

特定のタスクの実行をレビューする場合、ユーザーは、実行中に実行された条件の結果とどのブランチが実行されたかを簡単に確認することができます。

If/else条件は、より洗練されたユースケースを可能にするために、さまざまな方法で使用することができます。 いくつか例を挙げます:

  • 毎日実行するようにスケジュールされているパイプラインで、週末に追加タスクを実行することができます。
  • パイプラインの前のステップで新しいデータが処理されなかった場合、タスクを除外することができます。

依存関係がある場合に実行

Run if dependenciesは新しいタスクレベルの設定で、タスクの依存関係をより柔軟に定義できます。 タスクが複数のタスクに依存する場合、ユーザーは依存タスクの実行を決定する条件を定義できるようになりました。 これらの条件は"Run if dependencies" と呼ばれ、すべての依存関係が成功した場合、少なくとも1つが成功した場合、ステータスに関係なくすべてが終了した場合など、タスクが実行されることを定義することができます(完全なリストと各オプションの詳細についてはドキュメントを参照)。

Databricks Workflows UI では、ユーザーはタスクレベルのフィールドで依存関係のタイプを選択できます

依存関係が複数のユースケースの実装に有用である場合は実行します。 例えば、グローバルな販売データを取り込むパイプラインを実装する場合、国別のビジネスロジックを持つ個別のタスクで各国のデータを処理し、その後、すべての異なる国のデータセットを1つのテーブルに集約することができます。 この場合、1つの国の処理タスクが失敗しても、集計を進め、部分的なデータしか含まれていなくても出力テーブルを作成し、問題が解決するまで下流のコンシューマーが使用できるようにすることができます。 Databricks Workflowsには、修復実行機能があり、国の1つが失敗する原因となった問題を修正した後、すべてのデータを意図した通りに取得することができます。 このシナリオで修復実行が開始された場合、失敗した国タスクと集約タスクのみが再実行されます。

"If/else条件" タスクタイプおよび"Run if依存関係" の両方が、すべてのユーザーで一般的に利用できるようになりました。 これらの機能の詳細については、このドキュメントを参照してください。

ジョブパラメーター

ワークフローに柔軟性とコントロールを加えるもうひとつの方法は、ジョブ・パラメーターの導入です。 これらは、実行時にジョブ内のすべてのタスクが利用できるキーと値のペアです。 ジョブパラメータは、パイプラインにきめ細かい設定を追加する簡単な方法を提供し、異なるユースケース、異なる入力セット、異なる環境での同じジョブの実行のためにジョブを再利用するのに便利です(例 開発環境とステージング環境)。

ジョブパラメータは、ジョブ設定ボタン「パラメータの編集」で定義できます。 1つのジョブに対して複数のパラメーターを定義し、システムから提供される動的な値を活用することができます。 ジョブパラメータについては、このドキュメントで詳しく説明しています。

ジョブの実行を手動でインスタンス化する場合、"Run now with different parameters" " Run now" ドロップダウンでRun now with different parameters を選択することで、異なるパラメータを指定することができます。 これは、問題を修正したり、同じワークフローを別のテーブルで実行したり、特定のエンティティを処理したりするのに便利です。

ジョブパラメータは、ジョブのフローを制御するための"If/else 条件" タスクの入力として使用することができます。 これにより、ユーザーは、ユーザーが提供した値に従って特定の実行でのみ実行される複数のブランチを持つワークフローを作成することができます。 こうすることで、特定のシナリオでパイプラインを実行したいユーザーは、そのパイプラインのフローを簡単に制御することができ、タスクをスキップしたり、特定の処理ステップを有効にしたりすることができます。

無料トライアル

私たちは、ワークフローにさらなるコントロールを加え、新しいユースケースに取り組むために、これらの新機能をどのように使っていただけるか、とても楽しみにしています!

Databricks 無料トライアル

関連記事

Databricksワークフローによるデータ分析のオーケストレーション

October 17, 2023 Matthew Kuehn による投稿 in
翻訳:Saki Kitaoka. - Original Blog Link データドリブンな企業にとって、データアナリストはデータから洞察を引き出し、それを意味のある形で提示する上で重要な役割を担っています。しかし、多くのアナリストは、本番用のワークロードを自動化するために必要なデータオーケストレーションに精通していない可能性があります。アドホックなクエリをいくつか実行すれば、直前のレポート用に適切なデータを迅速に作成できますが、データチームは、さまざまな処理、変換、検証タスクを適切な順序で確実に実行する必要があります。適切なオーケストレーションが行われないと、データチームはパイプラインの監視、障害のトラブルシューティング、依存関係の管理ができなくなります。その結果、当初は即効性のある価値をビジネスにもたらしたアドホックなクエリセットが、それらを構築したアナリストにとって長期的な頭痛の種になってしまいます。 パイプラインの自動化とオーケストレーションは、データの規模が大きくなり、パイプラインの複雑さが増すにつれて

Modular Orchestration with Databricks Workflows

Thousands of Databricks customers use Databricks Workflows every day to orchestrate business critical workloads on the Databricks Lakehouse Platform. As is often the...

Databricksのワークフローを利用したLakehouseのオーケストレーション

Original: Lakehouse Orchestration with Databricks Workflows 翻訳: junichi.maruyama 業界を問わず、組織はレイクハウス・アーキテクチャを採用し、すべてのデータ、アナリティクス、AIのワークロードに統一プラットフォームを使用しています。ワークロードを本番環境に移行する際、組織はワークロードのオーケストレーションの方法が、データとAIソリューションから引き出すことのできる価値にとって重要であることに気づいています。オーケストレーションが正しく行われれば、データチームの生産性を向上させ、イノベーションを加速させることができ、より良いインサイトと観測性を提供でき、最後にパイプラインの信頼性とリソース利用を改善することができる。 Databricks Lakehouse Platformの活用を選択したお客様にとって、オーケストレーションがもたらすこれらの潜在的なメリットはすべて手の届くところにありますが、Lakehouseとうまく統合されたオーケ
業界一覧へ