Follow-up: Improving dbt-snowflake Startup Time by Downgrading snowflake-connector-python to 3.16.0

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 hook

WARNING が出力されていない点と、初期処理が比較的短時間で完了している点が分かります。


まとめ

  • snowflake-connector-python v3.17 以降で「修正済み」とされている問題についても、
    dbt-snowflake 経由では依然として影響を受けるケースがある
  • 現時点での実用的な回避策は
    snowflake-connector-python を 3.16.0 以下に固定すること
  • ECS 上の dbt 実行環境では、起動時間の大幅な短縮が確認できた

引き続き upstream 側での修正状況をウォッチしつつ、
本番環境では安定して動作しているバージョンを明示的に固定するのが安全だと考えています。