次の方法で共有


Lakeflow 職務

Lakeflow ジョブは Azure Databricks のワークフロー自動化であり、大規模なワークフローの一部として複数のタスクを調整して実行できるように、データ処理ワークロードのオーケストレーションを提供します。 繰り返し可能な頻繁なタスクの実行を最適化してスケジュール設定し、複雑なワークフローを管理できます。

この記事では、Lakeflow ジョブを使用した運用ワークロードの管理に関連する概念と選択肢について説明します。

ジョブとは何ですか?

Databricks では、ワークフロー内の Databricks でタスクをスケジュールおよび調整するためにジョブが使用されます。 一般的なデータ処理ワークフローには、ETL ワークフロー、ノートブックの実行、機械学習 (ML) ワークフローのほか、dbt や Azure Data Factory (ADF) などの外部システムとの統合が含まれます。

ジョブは 1 つ以上のタスクで構成され、ビジュアル作成 UI を使用した分岐 (if/else ステートメント) やループ (ステートメントごとに) などのカスタム制御フロー ロジックをサポートします。 タスクでは、ETL ワークフロー内のデータを読み込んだり変換したり、機械学習パイプラインの一部として制御された反復可能な方法で ML モデルを構築、トレーニング、デプロイしたりできます。

例: 毎日のデータ処理と検証ジョブ

次の例は、Azure Databricks のジョブを示しています。

4 つのタスクと毎日実行するトリガーを含む Azure Databricks インターフェイスのジョブを示す例。

このジョブ例には、次の特性があります。

  1. 最初のタスクでは、収益データが取り込まれます。
  2. 2 番目のタスクは、null をチェックする if/else です。
  3. そうでない場合は、変換タスクが実行されます。
  4. それ以外の場合は、データ品質検証を使用してノートブック タスクを実行します。
  5. 毎日午前 11 時 29 分に実行される予定です。

独自のジョブの作成の概要については、「 Lakeflow ジョブを使用して最初のワークフローを作成する」を参照してください。

一般的なユース ケース

基本的なデータ エンジニアリングの原則から高度な機械学習とシームレスなツール統合まで、これらの一般的なユース ケースでは、最新の分析、ワークフロー自動化、インフラストラクチャのスケーラビリティを促進する機能の幅を示します。

オーケストレーションの概念

Azure Databricks でオーケストレーションに Lakeflow ジョブを使用する場合の主な概念は、ジョブ、タスク、トリガーの 3 つです。

ジョブ - ジョブは、操作の調整、スケジュール設定、実行のための主要なリソースです。 ジョブは、Azure Databricks ノートブックを実行する 1 つのタスクから、条件付きロジックと依存関係を持つ数百のタスクまで、複雑さが異なる場合があります。 ジョブ内のタスクは、有向非循環グラフ (DAG) によって視覚的に表されます。 ジョブのプロパティは、次のように指定できます。

  • トリガー - ジョブを実行するタイミングを定義します。
  • パラメーター - ジョブ内のタスクに自動的にプッシュされる実行時パラメーター。
  • 通知 - ジョブが失敗したとき、または所要時間が長すぎるときに送信されるメールまたはWebhook。
  • Git - ジョブ タスクのソース管理設定。

タスク - タスクは、ジョブ内の特定の作業単位です。 各タスクは、次のようなさまざまな操作を実行できます。

  • ノートブック タスクは、Databricks ノートブックを実行します。 ノートブックへのパスと必要なパラメーターを指定します。
  • パイプライン タスクはパイプラインを走らせます。 具体化されたビューやストリーミング テーブルなど、既存の Lakeflow 宣言パイプラインを指定できます。
  • Python スクリプト タスクは、Python ファイルを実行します。 ファイルへのパスと必要なパラメーターを指定します。

タスクにはさまざまな種類があります。 完全な一覧については、「 タスクの種類」を参照してください。 タスクは、他のタスクに依存したり、条件付きで他のタスクを実行したりできるため、条件付きロジックと依存関係を持つ複雑なワークフローを作成できます。

トリガー - トリガーは、特定の条件またはイベントに基づいてジョブの実行を開始するメカニズムです。 トリガーには、スケジュールされた時刻にジョブを実行する (たとえば、午前 2 時まで) などの時間ベースのトリガーや、クラウド ストレージに新しいデータが到着したときにジョブを実行するなど、イベントベースを使用できます。

監視と可観測性

ジョブには、監視と可観測性のサポートが組み込まれています。 次のトピックでは、このサポートの概要について説明します。 ジョブとオーケストレーションの監視の詳細については、「Lakeflow ジョブの監視と可観測性」を参照してください。

UI でのジョブの監視と監視 - Azure Databricks UI では、ジョブの所有者や前回の実行の結果などの詳細を含むジョブを表示し、ジョブのプロパティでフィルター処理できます。 ジョブの実行履歴を表示し、ジョブ内の各タスクに関する詳細情報を取得できます。

ジョブ実行の状態とメトリック - Databricks は、ジョブの実行の成功を報告し、ジョブ実行内の各タスクのログとメトリックを報告して、問題を診断し、パフォーマンスを把握します。

通知とアラート - メール、Slack、カスタム Webhook、その他のオプションのホストを使用して、ジョブ イベントの通知を設定できます。

システム テーブルを介したカスタム クエリ - Azure Databricks には、アカウント全体のジョブの実行とタスクを記録するシステム テーブルが用意されています。 これらのテーブルを使用して、ジョブのパフォーマンスとコストのクエリと分析を行うことができます。 ダッシュボードを作成してジョブのメトリックと傾向を視覚化し、ワークフローの正常性とパフォーマンスを監視できます。

制限事項

次の制限があります。

  • 1 つのワークスペースでのタスクの同時実行は、2000 に制限されています。 すぐに開始できない実行を要求した場合は、429 Too Many Requests 応答が返されます。
  • 1 時間に 1 つのワークスペースで作成できるジョブの数は、10000 に制限されます ("実行の送信" を含む)。 この制限は、REST API およびノートブック ワークフローによって作成されるジョブにも影響します。
  • ワークスペースには、最大 12,000 個の保存済みジョブを含めることができます。
  • ジョブには、最大 1,000 個のタスクを含めることができます。

ワークフローをプログラムで管理するには

Databricks には、ワークフローをプログラムでスケジュールおよび調整できるようにする、次のようなツールと API があります。

ツールと API を使用してジョブを作成および管理する例については、「ジョブの作成と管理の自動化」を参照してください。 使用可能なすべての開発者ツールのドキュメントについては、 ローカル開発ツールを参照してください。

外部ツールでは、Databricks ツールと API を使用して、プログラムによってワークフローをスケジュールします。 Azure Data Factory や Apache AirFlow などのツールを使用して、ジョブのスケジュールを設定できます。

Apache AirFlow を使用したワークフロー オーケストレーション

Apache Airflow を使用すると、データ ワークフローを管理およびスケジュールできます。 Airflow では、Python ファイルにワークフローを定義すると、Airflow でワークフローのスケジュールと実行が管理されます。 Apache エアフローを使用した Lakeflow ジョブの調整に関する説明を参照してください。

Azure Data Factory を使用したワークフロー オーケストレーション

Azure Data Factory (ADF) は、データの保管、移行、処理のサービスを自動化されたデータ パイプラインにまとめることができるクラウド データ統合サービスです。 ADF を使用すると、ADF パイプラインの一部として Azure Databricks ジョブを調整できます。

ADF にはまた、ADF パイプラインで Databricks ノートブック、Python スクリプト、または JAR にパッケージ化されたコードを実行するためのビルトインのサポートがあります。

ADF パイプラインで Databricks ノートブックを実行する方法については、「Azure Data Factory で Databricks Notebook アクティビティを使用して Databricks ノートブックを実行する」と、次に「Databricks Notebook を実行してデータを変換する」を参照してください。

ADF パイプラインで Python スクリプトを実行する方法については、「Azure Databricks で Python アクティビティを実行してデータを変換する」を参照してください。

ADF パイプラインで JAR にパッケージ化されたコードを実行する方法については、「Azure Databricks で JAR アクティビティを実行してデータを変換する」を参照してください。