目次
snowflake-connector-python を 3.16.0 に下げたら起動時間が大幅に改善した
以前、以下の記事で dbt-snowflake 実行時に snowflake-connector-python 由来の WARNING が大量に出力され、起動まで非常に時間がかかる問題 について書きました。
その後、Slack Community などで追加の情報が得られ、実際に検証も行ったため、続報としてまとめます。
「v3.17 で修正済み」という情報について
Slack Community では、次のようなやり取りがありました。
この問題は snowflake-connector-python v3.17 で修正済み
一方で、依存関係を確認すると以下のようになります。
- dbt-snowflake==1.9.2
- snowflake-connector-python==3.18.0 が使用される
そのため、「修正済みとされているバージョンを利用しているはず」という状態でした。
しかし実際には、
- WARNING:snowflake.connector.vendored.urllib3… が継続して出力される
- dbt が動き出すまでに非常に時間がかかる
という状況は改善されませんでした。
別スレッドでの回避策:3.16.0 に下げる
調査を続ける中で、dbt Slack の別スレッドに以下のやり取りがありました。
https://getdbt.slack.com/archives/CJN7XRF1B/p1755575058005029 (communityメンバーのみ閲覧可能)
I imagine this issue will be fixed soon.
The current accepted solution is to lock your requirements version to <= 3.16.0 for the time being.
つまり、現時点では snowflake-connector-python を 3.16.0 以下に固定することで回避できる という整理になります。
ECS 上の Dockerfile での対応
ECS 上で dbt を実行しているため、Dockerfile にて明示的にバージョンを固定しました。
RUN pip install --no-cache-dir \
dbt-snowflake==1.10.2
# snowflake-connector-python の bug 調査のためバージョンを下げる
RUN pip install --no-cache-dir \
"snowflake-connector-python<=3.16.0"実行結果
この対応を行った結果、以下の変化がありました。
- snowflake.connector.vendored.urllib3 に関する WARNING が出力されなくなった
- dbt が実行可能な状態になるまでの時間が 約 4 分 → 約 2 分 に短縮された
マスク済み実行ログ(抜粋)
固有名詞をマスクした実行ログの一部です。
2025-12-10T05:22:26 Running with dbt=1.11.0-rc3
2025-12-10T05:22:27 Installing dbt packages
2025-12-10T05:22:31 Registered adapter: snowflake=1.10.x
2025-12-10T05:22:31 Unable to do partial parsing. Starting full parse.
2025-12-10T05:22:46 Found XXX models, X operations, XXXX sources, XXXX macros
2025-12-10T05:22:46 Concurrency: X threads
2025-12-10T05:24:49 START hookWARNING が出力されていない点と、初期処理が比較的短時間で完了している点が分かります。
まとめ
- snowflake-connector-python v3.17 以降で「修正済み」とされている問題についても、
dbt-snowflake 経由では依然として影響を受けるケースがある - 現時点での実用的な回避策は
snowflake-connector-python を 3.16.0 以下に固定すること - ECS 上の dbt 実行環境では、起動時間の大幅な短縮が確認できた
引き続き upstream 側での修正状況をウォッチしつつ、
本番環境では安定して動作しているバージョンを明示的に固定するのが安全だと考えています。
