このエントリでは、
Pythonのプロファイラをつかって、
Airflowのloadに時間がかかっているDAGを調べる方法を示します。
AirflowのBestPracticeにも、
(解析に時間がかかるので)DAGに不要な処理を書かないように言及されていますが、
既に時間がかかる状態になってしまっている場合に、
該当処理がどこなのかを探す方法も知っていると便利かと思います。
Top level Python Code | Best Practices …
この記事は、GitHub Advent Calendar 2024 の24日目の記事です。
GitHub Advent Calendar 2024
https://qiita.com/advent-calendar/2024/github
このエントリでは、
GitHubで自分が担当するIssueやPullRequestを一覧表示する方法を示します。
チームのタスク・課題をIssueTrackerで管理しているのであれば、
自分がすべき仕事の一覧を機械的に出せるようにしておきたいものです。
個人的には、
次 …
この記事は、ソフトウェアテストの小ネタ Advent Calendar 2024 の18日目の記事です。
ソフトウェアテストの小ネタ Advent Calendar 2024
https://qiita.com/advent-calendar/2024/software-testing-koneta
このエントリでは、
AirflowのOperatorに対する単体テストの書き方について記載します。
基本的には、次のドキュメントに記載されている内容です。
Unit test | Best Practices …
この記事は、GitHub Actions Advent Calendar 2024 の14日目の記事です。
GitHub Actions Advent Calendar 2024
https://qiita.com/advent-calendar/2024/github-actions
様々なlinter/formatterをpre-commitで動かし、
また、GitHubActions(pre-commit/actionを使う)でもチェックさせると、
linter/formatterを一箇所で管理できま …
この記事は、dbt Advent Calendar 2024 シリーズ2 の11日目の記事です。
dbt Advent Calendar 2024
https://qiita.com/advent-calendar/2024/dbt
dbt(Data Build Tool)の自動検証ツールに、
dbt-scoreというものがあり、試してみたので導入手順メモを残しておきます。
dbt-score
https://dbt-score.picnic.tech/
dbt-checkpointよりも用意されているルー …
この記事は、GitHub Advent Calendar 2024 の7日目の記事です。
GitHub Advent Calendar 2024
https://qiita.com/advent-calendar/2024/github
GitリポジトリをGitHubにpushした時に、
稀に、拡張子が無いファイルなどでファイル形式が認識されずに、
GitHubのUI上でSyntaxHighlightが効かないなど、
ちょっと悲しい感じになる事があります。
このエントリでは、そのような場合の対処方法を示しま …
この記事は、dbt Advent Calendar 2024 シリーズ2 の3日目の記事です。
dbt Advent Calendar 2024
https://qiita.com/advent-calendar/2024/dbt
dbt(Data Build Tool)の自動検証ツールに、
dbt-checkpointというものがあり、試してみたので導入手順メモを残しておきます。
dbt-checkpoint/dbt-checkpoint | GitHub …
このエントリでは、PytestのWarning表示から、
依存ライブラリで出力されるものを非表示にする手順を示します。
結論から言うと、次のようにpytest.iniの設定で、
filterwarningsに無視したいライブラリを指定することで対応できます。
pytest.ini
[pytest]
testpaths = tests
pythonpath = .
filterwarnings =
ignore::DeprecationWarning:flask.* …このエントリでは、vscodeのTask機能を使って、
LinterやUnitTestを少しの手間で動かせるようにする設定手順を示します。
Pythonのプロジェクトに、
ruff(formatter), flake8(linter), pytest(unittest)
を導入する流れを説明しますが、他の言語でも同じような流れになると思います。
作業ディレクトリの準備
対象プロジェクトの作業ディレクトリを用意します。
(この項目はvscode関係ありません)
Python用のリポジトリを作る
ディレクトリを …
このエントリは、AirflowをSupervisorで動かす手順のメモです。
Apache Airflow
https://airflow.apache.org/
Supervisor
http://supervisord.org/
Airflowは、公式でDockerで動かす方法が用意されています。
Running Airflow in Docker …
このエントリでは、
AirflowのDAG単体テストを行う時に、
外部システムに依存するtaskがあり、その結果に後続処理が影響を受ける場合、
どのように単体テストを書けば良いかを考えたいと思います。
以下のエントリで書いたとおり、
taskを成功させる場合は、mark_success_patternにtaskを指定するだけで対応できます。
しかし、失敗時のdownstreamののタスクの挙動を確認したい場合に対応できません。
dag.test()によるAirflowのDAGの単体テストの書き方 | …
AirflowのDAG単体テストについて、
かなり前にimportのテストのやり方は書いたのですが、
DAGの実行をともなう単体テストに触れていなかったので、
このエントリに記載することにします。
AirflowのDAG単体テストの事始め | takemikami.com
https://takemikami.com/2021/1205-airflowdag.html
環境の準備
リポジトリ・Python仮想環境を作成します。
$ mkdir airflow-unittest && cd …現時点(2024年9月)では、dbt-coreのunittestではsql_headerが使えないので、
その課題に対するmonkeypatchを当ててみました。
[Feature] Make sql_header configuration available on tests | dbt-labs/dbt-core | GitHub
https://github.com/dbt-labs/dbt-core/issues/9775
特にBigQueryを使っている場合は、
sql_headerに一時UDF …
dbt-coreでBigQueryを使う時、
BigQuery Emulatorが使えると便利なのですが、
次のPullRequestにあるように利用することができません。(2024年9月時点では)
Allow Bigquery Emulator settings to be set | dbt-labs/dbt-bigquery | GitHub
https://github.com/dbt-labs/dbt-bigquery/pull/1017
BigQuery Emulator | GitHub …
pre-commitでGitのhookを管理しておくと、
commit時にいろいろなチェックを行ってくれるので、
チェック漏れを事前に防げ便利なのですが、
プロジェクト毎に「.pre-commit-config.yaml」を用意するのも面倒なので、
設定ファイルを書かなくても、有効にできないかを検討してみました。
pre-commit
https://pre-commit.com/



