1. HOME
  2. ブログ
  3. IT技術
  4. AirflowのVariableとXComsを使ってみよう

AirflowのVariableとXComsを使ってみよう

はじめに

新田新田
こんにちは、分析基盤や分析のお仕事をやっている新田です。
Apache Airflowはワークフローを管理するオープンソースのプラットフォームで、分析基盤でよく使われます。
この記事では、少し複雑なタスクを定義するときに必要になるVariableとXComsを使ってみました。
この2つは、公式ドキュメントでもよく似たものとして紹介されています。

Variable

Variableは、Airflowのグローバルなkey/valueストアのようなものです。
使い方はとってもシンプルです。

また、Jinjaテンプレートからも取得することができます。

それだけではありません。AirflowのWebUIからも値を確認、書き換え、追加することができます。便利ですね。
これらのVariableは、どのDAGからも同じようにアクセスできるグローバルなものです。

XComs

Variableがグローバルなkey/valueストアだったのに対して、XComs(Cross Communicationsの略)は同一DAG内のタスク同士でデータをやり取りします。
値のセットと取得をするサンプルコードです。値のセットは、PythonOperatorを利用することが多いと思います。
以下はPythonOperatorで値をセットして、また別のPythonOperatorで値を取得する例です。

もちろん、Jinjaテンプレートからも値を取得することができます。

またAirflowUIからも値を確認することができます。

まとめ

VariableやXComsを利用すれば、条件によってタスクを変化させたり、何かを調べて、その調べた結果を利用してまた何かするといったような複雑なタスクを定義することができます。
Variable、XComs自体はシンプルな機能ですので、試してみてください。

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア