デジタル トランスフォーメーションを加速 お客様がデジタル トランスフォーメーションに乗り出したばかりでも、あるいはすでに進めている場合でも、Google Cloud は困難な課題の解決を支援します。
![Airflow DAG のテスト | Cloud Composer | Google Cloud](https://cdn-ak-scissors.b.st-hatena.com/image/square/c89db55604b10609fc306beb52444f728fbdbdb6/height=288;version=1;width=512/https%3A%2F%2Fcloud.google.com%2F_static%2Fcloud%2Fimages%2Fsocial-icon-google-cloud-1200-630.png%3Fhl%3Dja)
恥ずかしながら最近になって知ったワークフローエンジン Apache Airflow。日本語の紹介記事もちらほら出てきていますが、公式ドキュメントをちょっとずつ抄訳しながら読んでいこうと思います。 5回目の今回は制御フロー(Control Flow)。 バージョン2.3.3時点のものです。 制御フロー デフォルトでは、あるタスクはそれが依存するタスクがすべて成功したときのみ実行されます。この挙動を変えるための方法はいくつか存在します: 分岐(Branching)、任意の条件に基づき実行するタスクを選択します。 最新日時でのみ実行(Latest Only)、分岐の特殊形態で、タスクを含むDAGが現在時刻で実行中の場合のみ当該タスクを実行します。 過去に依存(Depends On Past)、タスクの実行を当該タスクの前回の実行記録に依拠して決定します。 トリガールール(Trigger Rule
はじめに こんにちは。ジールの@________________-_です。 airflow2系になってからDAG間の依存関係が、依存関係を定義しているtaskとともに表示されるようになりました。 分かりやすくなってめちゃくちゃいいと思います! そういうこともあり、DAG間の依存関係を作成できるoperatorを纏めてみました。 環境 airflow breeze:v2.3.0.dev0 デフォルト設定で利用 依存関係を定義するオペレーター達 ExternalTaskSensor 外部のDAG(task)の完了ステータスをポーリングしてくれるsensorです。 sensor対象のDAGが(設定したステータスで)完了したら成功となり後続タスクを実行できます。 複数DAG(task)を親としたDAGを実行したい場合、ExternalTaskSensorを利用すると良いです。 from airfl
概要 Airflowのタスクが失敗した際にSlackにメッセージを送るようにする。 トークン等はVariablesに保存して扱う。 バージョン情報 Python 3.6.7 apache-airflow==1.10.1 slackclient==1.3.0 導入 slackclientが必要になるので入れておく。 $ pip install slackclient Variablesの設定 下記あたりを参考にSlackのトークンを取得しておく。 https://api.slack.com/incoming-webhooks AirflowのWebサーバーを立ち上げる $ airflow webserver -p8080 Admin → Variablesを選択。 CreateタブからVariableを生成する。 公式ドキュメントによるとVariableのキー名がパスワードっぽいものについて
概要Airflow 利用にあたって知っておいたほうが良いんじゃないかなと思う情報をまとめました。いわゆるハマりどころです。 Airflow 自体の基本的な説明(用語,DAG 定義方法,etc..) は省略しています。 基礎参照先 公式 Tutorial Dockerfile バージョン Airflow 1.10.4 Postgres 10.7 Tips 11 選 1. 日時 2. リトライ 3. start_date の変更ができない 4. 開始日時を過去日時にすると過去ジョブが自動実行される 5. context の活用 6. Macros 7. Task 間で値を受け渡す方法 8. dags ディレクトリ以下のディレクトリの切り方 9. UI の表示が UTC 固定 10. Web UI 上からジョブのパラメータを渡せない 11. DAG/Task の同時実行数制御 1. 日時Airf
cronと月末 AirflowのDAGスケジュールにおいて、 1/31 0:00 2/28 0:00 3/31 0:00 4/30 0:00 ... 12/31 0:00 のように毎月の月末に実行したい場合、標準のcron式だと設定がちょっと厄介です。 30日の月もあれば31日の月もありますし、2月にいたってはうるう年のことも考えなければなりません。 Airflowではcron式の日フィールドに L が使える 幸いなことに、Airflowが使っているcronモジュール croniter はいくつかの非標準のcron式もサポートしています。 その中には L があります。 Airflow(croniter)において L は日フィールドにのみ使える特殊な文字で、指定すると その月の最後の日 を意味することになります。 したがって、 のように書けば毎月の月末に実行することができます。 おまけ: A
個人的な勉強でAirflowを実装したので、その時に気づいたことを書きます1。 同じような問題ではまった人が減れば幸いです。 前提 LocalExecutorを使う MySQLコンテナーとAirflowコンテナー AirflowからRedshiftにアクセス Dockerイメージ python:3.7.7ベースでairflow==1.10.10をインストール Dockerfileを自分で書いてみるため ついでにentrypoint.shも 学習目的なので、puckel/docker-airflowは遠慮したい めちゃくちゃ参考にはする 公式Dockerイメージのmasterやlatestはバージョンが2.0で開発版2 AIRFLOW_EXTRAS airflowを拡張するためのプラグインで、MySQLなどのDB系からGCPへのアクセスなどがある。 公式のDockerfileでは以下の通り、
if you are not careful your shortcuts will cost you a lot afterwardsAirflow permissive approach will let you schedule any custom code (jobs) but you will create a spaghetti stack if you do not follow very strict SEPARATION OF CONCERN design between the airflow dags and your jobs. Airflow allow you to run your jobs without isolation with the framework itselfAt the origin Airflow was sort of a “supe
こんにちは、みかみです。 Python で実装されている Job 管理ツール Apache Airflow。 WebUI のJob 管理画面で直感的に分かりやすい操作が可能で、エラー発生時などの通知機能もあり、スケールアウトにも対応していて複数サーバで分散実行もできます。 Python でバッチ Job 開発経験のある方には多分おなじみの Airflow、私も存在は知っていましたが、実際使ったことはありませんでした。 やりたいこと Airflow の構成(アーキテクチャ)を知りたい Airflow の使い方(Job 作成&実行方法)を知りたい Airflow のアーキテクチャ Airflowは、 管理画面表示部の Webserver と、Job実行のスケジュール管理部の Scheduler 、Job実行部の Worker(Executer) から成り立っているようです。 各モジュールは管理
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く