Airflow で上流の DAG ID を指定するだけで直近の DAG Run を待ち受けるタスク群を作る

前に 記事 を書いた通り、Airflow で DAG 間の依存関係を扱う際は、下流の DAG が ExternalTaskSensor で上流の DAG の完了を待ち受けるのが良いと思っている。

この ExternalTaskSensor では、上流の DAG Run を一意に特定するために、上流の DAG ID と、上流の execution_date を得るための「下流と上流の DAG の execution_date の差(execution_delta)」または「上流の DAG の execution_date を返す関数(execution_date_fn)」を与える必要がある。

ただ、実用上は上流の DAG ID を指定するだけで直近の DAG Run を待ち受けるくらい簡単になってほしいので、次の通り PythonOperator と組み合わせてクラス化なりしておくと、 2 つの DAG の interval の大小関係に関わらず(ここが大事)、DAG からは上流の DAG ID を指定するだけで ExternalTaskSensor を使って依存関係を定義できるようになる。

Airflow で DAG 間の依存関係を扱う際の個人的ベストプラクティス

ワークフローエンジンを運用していると、あるワークフローの完了後に別のワークフローを実行したい、という要求が出てくる。

Airflow では、DAG(ワークフロー)間の依存関係を扱う方法が以下の通り複数あるが、どの方法を選ぶのが良いのか一見分かりづらいように思う。1年くらい Airflow を運用して色々試した結果、自分のユースケースだとこれかなという方法が定まったので書いておく。

Thumbnail image

光るゲーミング PC を組んだ

私物でメインマシンの MacBook Pro が 2012 年モデルで流石に厳しくなってきたのと、PC ゲームでやってみたいタイトルがあったのでゲーミング PC を組んだ。 パーツ構成 光り方を統合して制御するためのソフトウェアが各メーカーから出ていて、今回は ASUS の Aura Sync を使うことにしたので、最初にケースを選んでから Aura Sync 対応と値段と性能のバランスを見ながらパーツを選んだ。最終的な構成は以下で、Fractal Design と ASUS で揃える感じになった。

ネットワーク構造の Assortativity とは何か

研究所の輪読会で以下の論文を読んでいて、ネットワークにおける Assortativity という語句が出てきた。意味を知らなかったのでまとめる。

Qingyun Wu, Zhige Li, Huazheng Wang, Wei Chen, and Hongning Wang. 2019. Factorization Bandits for Online Influence Maximization. In Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining (KDD ’19). Association for Computing Machinery, New York, NY, USA, 636–646.

Cloud Composer に冪等・同期的にワークフローをデプロイする trinity を作った

Cloud Composer へのワークフローのデプロイを簡単に行うために、Go で trinity というツールを作りました。 Cloud Composer とは Apache Airflow を使ったワークフロー実行環境を構築する GCP のサービスです。私が働いているペパボでは DWH のバックエンドを Treasure Data から GCP に移行中で、それに伴いワークフローサービスも Treasure Workflow (マネージドな Digdag) から Cloud Composer に移行しているところです。

続・Treasure Data の job の状態を監視する

オリジンは Treasure Data の job の状態を監視する mackerel plugin 作った – まっしろけっけ です。

Wi-Fiルーターを替えてインターネットが5倍速くなった

自宅のWi-Fiルーターは2009年モデルのApple Time Capsuleを使っていて、回線は光なのに昼間30Mbps/夜間8Mbpsくらいしか出てなくてヤバイなとは思っていたけれど、これまで特に困っていなかったのでそのままだった。

ところが最近在宅勤務でzoomやSkypeがたまに遅延するので対策する必要が出てきて、Buffaloの最新モデルに替えてモデムとの間もちゃんとCat6aにしてみたら、夕方140Mbps/夜間50Mbpsくらい出るようになった。

Thumbnail image

娘が生まれた

先週の金曜日、娘が生まれた。

ブログをロリポップ!マネージドクラウドに移設した

前々からやろうかなと思ってた、このブログのロリポップ!マネージドクラウドへの移設をやった。 マネージドクラウドは勤務先の GMO ペパボが提供しているホスティングサービスで、サーバーの運用保守やスケーリングはお任せで色々なコンテナ環境を簡単に使えるというもの。 アカウント作成から必要なコンテナの立ち上げと WordPress のインストール、独自ドメインの設定と https 化まで、画面の案内に沿ってポチポチやるだけで設定できてしまった。 独自ドメインの向き先の反映とか除けば、作業時間トータル15分くらいで移設出来たと思う。

新卒研修でキャリアキーノートに挑戦しました

社内の新卒研修の一環として、キャリアキーノートに挑戦する機会をいただいたので、新卒8期生と見に来てくださった福岡支社のみなさんに向けておしゃべりしました。 キャリアキーノートとは、2015年からペパボで始まっている取り組みで、「先輩の個人史 (キャリア) を紐解いてもらう中で、その根底に一貫して流れる基本的な考え方 (キーノート) を学ぶ場」です。詳しくは @okkun のブログ キャリアキーノートとはなにか | blog: takahiro okumura にとても分かりやすくまとめられています。 折角なので発表資料はSpeaker Deckにアップロードしました。