# Apache Airflow

> Apache Airflow - Apache Airflow用のDataRobotプロバイダーを使用して、エンドツーエンドのDataRobot
> AIパイプラインを編成する、基本的なDAGを実装する方法。

This Markdown file sits beside the HTML page at the same path (with a `.md` suffix). It summarizes the topic and lists links for tools and LLM context.

Companion generated at `2026-07-15T05:55:44.592947+00:00` (UTC).

## Primary page

- [Apache Airflow](https://docs.datarobot.com/ja/docs/api/code-first-tools/apache-airflow.html.md): Full documentation for this topic (Markdown sidecar).

## Sections on this page

- [必須コンポーネントのインストール](https://docs.datarobot.com/ja/docs/api/code-first-tools/apache-airflow.html.md#install-the-prerequisites): In-page section heading.
- [ローカルAirflowプロジェクトの初期化](https://docs.datarobot.com/ja/docs/api/code-first-tools/apache-airflow.html.md#initialize-a-local-airflow-project): In-page section heading.
- [サンプルDAGをAirflowに読み込む](https://docs.datarobot.com/ja/docs/api/code-first-tools/apache-airflow.html.md#load-example-dags-into-airflow): In-page section heading.
- [AirflowからDataRobotへの接続の作成](https://docs.datarobot.com/ja/docs/api/code-first-tools/apache-airflow.html.md#create-a-connection-from-airflow-to-datarobot): In-page section heading.
- [DataRobotパイプラインDAGの設定](https://docs.datarobot.com/ja/docs/api/code-first-tools/apache-airflow.html.md#configure-the-datarobot-pipeline-dag): In-page section heading.
- [DataRobotパイプラインDAGの実行](https://docs.datarobot.com/ja/docs/api/code-first-tools/apache-airflow.html.md#run-the-datarobot-pipeline-dag): In-page section heading.

## Documentation content

[DataRobot MLOps](https://docs.datarobot.com/ja/docs/api/dev-learning/python/mlops/index.html.md) と [Apache Airflow](https://airflow.apache.org/docs/) の機能を組み合わせることで、モデルの再トレーニングと再デプロイに信頼性の高いソリューションが提供されます。 たとえば、スケジュール、モデルのパフォーマンス低下、または新しいデータがあるときにパイプラインをトリガーするセンサーを使用して、モデルを再トレーニングおよび再デプロイできます。 Apache Airflow用のDataRobotプロバイダーに関するこのクイックスタートガイドでは、基本的な [Apache Airflow DAG（有向非巡回グラフ）](https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/dags.html) を実装して、エンドツーエンドのDataRobot AIパイプラインを調整することによるセットアップと設定のプロセスを説明します。 このパイプラインには、プロジェクトの作成、モデルのトレーニング、モデルのデプロイ、予測のスコアリング、ターゲットと特徴量ドリフトデータを返すことなどが含まれます。 さらに、このガイドでは、さまざまなDataRobotパイプラインを迅速に実装できるように、 `airflow-provider-datarobot` リポジトリから [サンプルDAGファイル](https://github.com/datarobot/airflow-provider-datarobot/tree/main/datarobot_provider/example_dags) をインポートする方法も説明します。

Apache Airflow用のDataRobotプロバイダーは、 [GitHubのパブリックリポジトリで利用可能なソースコード](https://github.com/datarobot/airflow-provider-datarobot) から構築されたPythonパッケージであり、 [PyPI（Pythonパッケージインデックス）で公開](https://pypi.org/project/airflow-provider-datarobot/) されています。 これは、 [Astronomerレジストリ](https://registry.astronomer.io/providers/datarobot/versions/latest) にも一覧表示されています。 プロバイダーパッケージの使用と開発の詳細については、 [Apache Airflowのドキュメント](https://airflow.apache.org/docs/apache-airflow-providers/index.html) を参照してください。 この連携では、REST APIを介してDataRobotインスタンスと通信する [DataRobot Python APIクライアント](https://pypi.org/project/datarobot/) が使用されます。 詳細については、 [DataRobot Pythonパッケージのドキュメント](https://datarobot-public-api-client.readthedocs-hosted.com/en/latest-release/) を参照してください。

## 必須コンポーネントのインストール

Apache Airflow用のDataRobotプロバイダーには、以下の依存関係がインストールされた環境が必要です。

- Apache Airflow>=2.6.0, <3.0
- DataRobot Python APIクライアント>=3.8.0rc1

DataRobotプロバイダーをインストールするには、次のコマンドを実行します。

```
pip install airflow-provider-datarobot 
```

開始する前に、ローカルのAirflowインスタンスを管理するための、 [Astronomerコマンドラインインターフェイス（CLI）ツール](https://github.com/astronomer/astro-cli#readme) をインストールします。

**MacOS:**
まず、 [MacOS](https://docs.docker.com/desktop/install/mac-install/) 用のDocker Desktopをインストールします。

次に、以下のコマンドを実行します。

```
brew install astro 
```

**Linux:**
まず、 [Linux](https://docs.docker.com/desktop/install/linux-install/) 用のDocker Desktopをインストールします。

次に、以下のコマンドを実行します。

```
curl -sSL https://install.astronomer.io | sudo bash 
```

**Windows:**
まず、 [Windows](https://docs.docker.com/desktop/install/windows-install/) 用のDocker Desktopをインストールします。

次に、 [Astro CLI README](https://github.com/astronomer/astro-cli#windows) を参照してください。


次に、 [pyenv](https://github.com/pyenv/pyenv#simple-python-version-management-pyenv) または他のPythonバージョンマネージャーをインストールします。

## ローカルAirflowプロジェクトの初期化

インストールの前提条件が完了したら、新しいディレクトリを作成し、 [AstroCLI](https://github.com/astronomer/astro-cli#get-started) を使用してローカルのAirflowプロジェクトを初期化できます。

1. 新しいディレクトリを作成し、そのディレクトリに移動します。 mkdirairflow-provider-datarobot&&cdairflow-provider-datarobot
2. 新しいディレクトリ内で次のコマンドを実行し、必要なファイルを含む新しいプロジェクトを初期化します。 astrodevinit
3. requirements.txtファイルに移動し、次のコンテンツを追加します。 airflow-provider-datarobot
4. 次のコマンドを実行して、DockerコンテナでローカルのAirflowインスタンスを開始します。 astrodevstart
5. インストールが完了し、Webサーバーが起動すると（約1分後）、http://localhost:8080/でAirflowにアクセスできるようになります。
6. Airflowにサインインします。 AirflowDAGページが表示されます。

## サンプルDAGをAirflowに読み込む

DAGの例は、デフォルトでは****DAGページには表示 されません 。 Apache AirflowのサンプルDAG用のDataRobotプロバイダーを使用できるようにするには：

1. DAGファイルをairflow-provider-datarobotリポジトリからダウンロードします。
2. datarobot_pipeline_dag.pyAirflow DAG（またはdatarobot_provider/example_dagsディレクトリ全体）をプロジェクトにコピーします。
3. 1～2分待ってページを更新します。 サンプルDAGは、datarobot_pipelineDAGを含むDAGページに表示されます。

## AirflowからDataRobotへの接続の作成

次のステップでは、AirflowからDataRobotへの接続を作成します。

1. 管理 > 接続をクリックして、Airflow接続を追加します。
2. リスト接続ページで、+ 新しいレコードを追加をクリックします。
3. 接続を追加ダイアログボックスで、次のフィールドを設定します。 フィールド説明接続IDdatarobot_default（すべての演算子でこの名前をデフォルトで使用）接続タイプDataRobotAPIキーDataRobot APIトークン（APIのキーとツールでAPIキーを配置または作成）DataRobotエンドポイントのURLデフォルトではhttps://app.datarobot.com/api/v2
4. テストをクリックして、AirflowとDataRobotの間にテスト接続を確立します。
5. 接続テストが成功したら、保存をクリックします。

## DataRobotパイプラインDAGの設定

[datarobot_pipeline Airflow DAG](https://github.com/datarobot/airflow-provider-datarobot/blob/main/datarobot_provider/example_dags/datarobot_pipeline_dag.py) には、DataRobotパイプラインのステップを自動化する演算子とセンサーが含まれています。 各演算子は特定のジョブを開始し、各センサーは所定のアクションが完了するまで待機します。

| オペレーター | ジョブ |
| --- | --- |
| CreateProjectOperator | DataRobotプロジェクトを作成し、そのIDを返します |
| TrainModelsOperator | DataRobotのオートパイロットを起動して、モデルをトレーニングします |
| DeployModelOperator | 指定モデルをデプロイし、デプロイIDを返します |
| DeployRecommendedModelOperator | 推奨モデルをデプロイし、デプロイIDを返します |
| ScorePredictionsOperator | デプロイに対して予測をスコアリングし、バッチ予測ジョブIDを返します |
| AutopilotCompleteSensor | オートパイロットが完了したかどうかを感知します |
| ScoringCompleteSensor | バッチスコアリングが完了したかどうかを感知します |
| GetTargetDriftOperator | デプロイからターゲットドリフトを返します |
| GetFeatureDriftOperator | デプロイから特徴量ドリフトを返します |

> [!NOTE] 備考
> このパイプラインの例では、使用可能なすべての演算子またはセンサーが使用されるわけではありません。詳細については、プロジェクトの `README` [演算子](https://github.com/datarobot/airflow-provider-datarobot/tree/main#operators) と [センサー](https://github.com/datarobot/airflow-provider-datarobot/tree/main#sensors) のドキュメントを参照してください。

DataRobotパイプラインの各演算子には、特定のパラメーターが必要です。 これらのパラメーターを設定JSONファイルで定義し、DAGの実行時にJSONを指定します。

```
{
    "training_data": "local-path-to-training-data-or-s3-presigned-url-",
    "project_name": "Project created from Airflow",
    "autopilot_settings": {
        "target": "readmitted",
        "mode": "quick",
        "max_wait": 3600
    },
    "deployment_label": "Deployment created from Airflow",
    "score_settings": {}
} 
```

`autopilot_settings` のパラメーターは [Project.set_target()](https://datarobot-public-api-client.readthedocs-hosted.com/en/v2.28.0/autodoc/api_reference.html#datarobot.models.Project.set_target) メソッドに直接渡されます。このメソッドで使用可能なパラメーターは、設定JSONファイルを通じて設定することができます。

`training_data` および `score_settings` の値は、入力/出力タイプによって異なります。 `score_settings` のパラメーターは [BatchPredictionJob.score()](https://datarobot-public-api-client.readthedocs-hosted.com/en/v2.28.0/autodoc/api_reference.html#datarobot.models.BatchPredictionJob.score) メソッドに直接渡されます。このメソッドで使用可能なパラメーターは、設定JSONファイルを通じて設定することができます。

たとえば、以下のローカルファイル入出力およびAmazon AWS S3入出力JSON設定のサンプルを参照してください。

**ローカルファイルの例:**
`training_data` の定義

ローカルファイル入力の場合、 `training_data` へのローカルパスを指定する必要があります。

1
2
3
4
5
6
7
8
9
10
11

`score_settings` の定義

スコアリング `intake_settings` および `output_settings` では、 `type` を定義し、ローカル `path` を入出力データの場所に指定します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

> [!NOTE] 備考
> Astro CLIツールを使用してAirflowを実行する場合、ローカル入力ファイルを `include/` ディレクトリに配置できます。 この場所は、Dockerコンテナ内のAirflowアプリケーションからアクセスできます。

**Amazon AWS S3の例:**
`training_data` の定義

Amazon AWS S3入力の場合、S3のトレーニングデータファイル用の事前署名済みURLを生成できます。

S3バケットでCSVファイルをクリックします。
画面の右上にある
オブジェクトアクション
をクリックし、
事前署名済みURLで共有
をクリックします。
有効期限の間隔を設定し、
事前署名済みURLを作成
をクリックします。 URLはクリップボードに保存されます。
URLをJSON設定ファイルに
training_data
値として貼り付けます。

1
2
3
4
5
6
7
8
9
10
11
12

`datarobot_aws_credentials` と `score_settings` の定義

Amazon AWS S3でのスコアリングデータの場合、DataRobot AWSの資格情報をAirflowに追加できます。

管理 > 接続
をクリックして、
Airflow接続を追加
します。
リスト接続
ページで、
+ 新しいレコードを追加
をクリックします。
接続タイプ
リストで、
DataRobot AWSの資格情報
をクリックします。
接続ID
を定義し、Amazon AWS S3の資格情報を入力します。
テスト
をクリックして、AirflowとAmazon AWS S3の間にテスト接続を確立します。
接続テストが成功したら、
保存
をクリックします。
リスト接続
ページに戻って、
接続ID
をコピーする必要があります。

[DAGの実行](https://docs.datarobot.com/ja/docs/api/code-first-tools/apache-airflow.html.md#run-the-datarobot-pipeline-dag) 時に、 接続ID / 接続ID 値（この例では `connection-id` で表示）を、 `datarobot_aws_credentials` フィールドに追加できるようになりました。

スコアリング `intake_settings` および `output_settings` では、 `type` を定義し、AWS S3入出力データの場所に `url` を指定します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

> [!NOTE] 備考
> このパイプラインはデプロイを作成するので、デプロイ作成ステップの出力により、スコアリングに必要な `deployment_id` が提供されます。


## DataRobotパイプラインDAGの実行

上記の設定手順を完了すると、組み立てた設定JSONを使用して、AirflowでDataRobotプロバイダーDAGを実行できます。

1. AirflowDAGページで、実行するDAGパイプラインを見つけます。
2. そのDAGの実行アイコンをクリックし、設定でDAGをトリガーをクリックします。
3. DAG confパラメーターページで、DAGに必要なJSON設定データを入力します。 この例では、前の手順で組み立てたJSONになります。
4. トリガー時にDAGの一時停止を解除を選択し、トリガーをクリックします。 DAGが実行を開始します。

> [!NOTE] 備考
> DockerコンテナでAirflowを実行している間（Astro CLIツールを使用する場合など）、コンテナ内で予測ファイルが作成されることが予想されます。 ホストマシンで予測を使用できるようにするには、 `include/` ディレクトリ内の出力場所を指定します。
