Teradata Vantage で Apache Airflow を使用する
概要
このチュートリアルでは、Teradata Vantage で Airflow を使用する方法を説明します。Airflow は Ubuntu システムにインストールされます。
前提条件
- Ubuntu22.x
- Teradata Vantageインスタンスへのアクセス。
注記
Vantage のテストインスタンスが必要な場合は、 https://clearscape.teradata.com で無料でプロビジョニングできます
- Python 3.8、3.9、3.10、または 3.11 がインストールされていること。
- ピップ
Apache Airflowをインストールする
-
AIRFLOW_HOME 環境変数を設定します。Airflow にはホーム ディレクトリが必要で、デフォルトでは ~/airflow を使用しますが、必要に応じて別の場所を設定することもできます。AIRFLOW_HOME 環境変数は、Airflow に必要な場所を通知するために使用されます。
-
PyPIリポジトリから
apache-airflow
の安定版バージョン2. 8.1をインストールします。 -
Airflow Teradataプロバイダの安定バージョンをPyPIリポジトリからインストールします。
注記セキュリティ上の理由から、Airflow UI、API、CLI 全体でテスト接続機能はデフォルトで無効になっています。 この機能の可用性は、Airflow 構成のコア セクション ($AIRFLOW_HOME/airflow.cfg) の test_connection フラグによって制御するか、Airflow サーバーを起動する前に以下の環境変数を定義することで制御できます。 エクスポート AIRFLOW__CORE__TEST_CONNECTION=有効
Airflow をスタンドアロンで開始する
- Airflow をスタンドアロンで実行します。
- Airflow UI にアクセスします。ブラウザで https://localhost:8080 にアクセスし、ターミナルに表示される管理者アカウントの詳細を使用してログインします。
Teradata 接続は、Airflow で次の方法で定義できます。
- Airflow Web UIの使用
- 環境変数の使用
Airflow Web UIでTeradata接続を定義する
-
UI の「管理」->「接続」セクションを開きます。「作成」リンクをクリックして、新しい接続を作成します。
-
新しい接続ページに入力の詳細を入力します。
- 接続ID: Teradata接続の一意のID。
- 接続タイプ: システムのタイプ。Teradata を選択します。
- データベース サーバー URL (必須): 接続する Teradata インスタンスのホスト名。
- データベース(オプション): 接続するデータベースの名前を指定します。
- ログイン(必須): 接続するユーザー名を指定します。
- パスワード(必須): 接続するためのパスワードを指定します。
- 「Test and Save」をクリックします。
環境変数でTeradata接続を定義する
Airflow 接続は、以下のいずれかの形式で環境変数に定義できます。
-
JSON形式
-
URI 形式
注記命名規則は AIRFLOW_CONN_CONN_ID で、すべて大文字です (CONN を囲む単一のアンダースコアに注意してください)。 したがって、接続IDがteradata_conn_idの場合、変数名はAIRFLOW_CONN_TERADATA_CONN_IDになります。
JSON形式の例
URI 形式の例
Airflow での Teradata 接続の詳細については Teradata Hook 、を参照してください。
AirflowでDAGを定義する
- Airflow では、DAG は Python コードとして定義されます。
- DAG_FOLDER - $AIRFLOW_HOME/files/dags ディレクトリの下に、sample.py のような Python ファイルとして DAG を作成します。
DAGをロードする
Airflowは、PythonソースファイルからDAGをロードし、設定されたDAG_FOLDER-$AIRFLOW_HOME/files/DAGsディレクトリ内で検索されます。
DAGを実行する
DAG は次の 2 つの方法のいずれかで実行されます。
- 手動または API 経由でトリガーされた場合
- DAGの一部として定義されたスケジュールに従って
example_teradata_operator
は手動でトリガーするように定義されています。スケジュールを定義するには、有効な Crontab スケジュール値をスケジュール引数に渡すことができます。
まとめ
このチュートリアルでは、Airflow と Airflow Teradata プロバイダを Teradata Vantage インスタンスで使用する方法を説明しました。提供されているサンプル DAG は、接続 UI で定義された Teradata Vantage インスタンスに my_users
テーブルを作成します。
さらに詳しく
ご質問がある場合やさらにサポートが必要な場合は、 コミュニティフォーラム にアクセスしてサポートを受けたり、他のコミュニティ メンバーと交流したりしてください。