0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Airflow資料抄訳(17):コネクションとフック(Connections & Hooks)

Last updated at Posted at 2022-07-28

恥ずかしながら最近になって知ったワークフローエンジン Apache Airflow。日本語の紹介記事もちらほら出てきていますが、公式ドキュメントをちょっとずつ抄訳しながら読んでいこうと思います。

17目の今回はコネクションとフック(Connections & Hooks)。
バージョン2.3.3時点のものです。


コネクションとフック(Connections & Hooks)

ワークフローはしばしば他システムとデータのやり取りをします。そのためAirflowは外部異ステムとやり取りするときに使用する認証情報の保管をする重要なオブジェクトとしてコネクション(Connection)を用意しています。

コネクションは、ユーザー名やパスワード、そしてホスト名といった、接続先システムによりさまざまなパラメーターのセットです。一意性のある名前、conn_idを持ちます。

コネクションはWeb UIないしCLIで管理できます。コネクションを作成したり、編集したり、管理する方法については、コネクションを管理するを参照ください。コネクションの情報を保管する方法には複数の選択肢があり、カスタマイズもできます。

コネクションは、Pythonコードで直接利用したり、フックを通じて利用したり、テンプレートから利用したりできます。

echo {{ conn.<conn_id>.host }}

フック

フックは外部プラットフォームに接続するための高水準なインターフェースを提供します。フックのおかげでクイックかつ容易に外部とのやり取りが可能になります。低水準のコードで外部APIを呼び出したり特殊なライブラリを使用したりする必要はありません。フックはまたしばしばオペレーターの構成部品として利用されています。

これらのフックは認証方法を集約するためにコネクションを統合しており、しばしばデフォルトのconn_idを持ちます。例えば、PostgresHook はとくに指定されていない場合、postgres_default というconn_id を持つコネクションを参照します。

APIドキュメントでAirflowが提供するすべてのフックの一覧をご覧になれます。

カスタム・コネクション

独自のコネクション型を定義することもできます。これについてはプロバイダー・パッケージのページで詳細に説明されています。プロバイダーはあなたが独自のコネクションを定義するのを助けてくれます。コネクションのカスタマイズはいずれのプロバイダーでも可能ですが、コミュニティにより管理されているプロバイダーの多くが独自のコネクション型を定義しています。Airflowコミュニティが管理するすべてのプロバイダーの一覧はコネクションのページで確認できます。


コネクションを使ってごりごりコードを書くよりも、フックを使ってスマートに構築・保守できるDAGを書くようにすべし、と。
これまで見てきたタスクやオペレーターに関する説明の中でしばしばフックが登場するので気になっていました。それで今回このセクションを訳出してみました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?