Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Snowflake リリースに注意を払いたくなる話

Snowflake リリースに注意を払いたくなる話

Snowvillage Unconference #7 にてSnowflakeリリース体系とbcr-1995について話しました。

Avatar for 金綱 雅也

金綱 雅也

October 31, 2025
Tweet

Other Decks in Programming

Transcript

  1. 金綱 雅也 (かねつな まさや) 所属 株式会社サイバーエージェント AI事業本部 AIオペレーションテクノロジーカンパニー ソフトウェアエンジニア 経歴

    2025年4月入社 広告事業におけるレポーティングシステムの開発 主にSnowflake、Python、AWSを触っています
  2. 新機能・動作変更・緊急対応を支える 3+1本柱 Full release 新機能追加・改善 Patch release Behavior Change Bundle

    Unbundled Behavior Change 新機能追加・改善 週次リリースで提供される UI/パフォーマンス改善を含む Patch release Full release後に必要に応じて実施される不具合 修正 Behavior Change Bundle 既存機能の挙動が変わる更新 テスト/オプトアウト期間が設けられる Unbundled Behavior Change バンドル外で実施される インフラ・セキュリティ関連の挙動変更
  3. 気にするべきリリースとは 新機能 / Patch release → 習慣的な追跡は不必要 × Unbundled Behavior

    Change → 習慣的な追跡がかなり困難 × Behavior Change Bundle → 習慣的な追跡が必要かつ可能 ⚪ Full release 新機能追加・改善 Patch release Behavior Change Bundle Unbundled Behavior Change
  4. Behavior Change Bundleとは 多くの場合、約8週間かけてステータスを遷移させていく デフォルト無効化 → デフォルト有効化→ 一般有効化 デフォルト無効化期間は有効化可能 (逆も然り)

    一般有効化されたら無効化不可能 デフォルト無効化期間 = テスト期間 デフォルト有効化期間 = オプトアウト期間 既存の振る舞いを変える変更を段階的にリリースするための仕組み →急激な互換性の破壊を避ける
  5. 2025_07 Bundle の例 (「Snowflake Bundle 2025_07」で検索) ⚪ 9.32release(10/13) ~ 10.1release

    (2026年1月): テスト期間 (有効化できる) ⚪ 10.1release ~ 10.6release (2026年2月): オプトアウト期間 (無効化できる) ⚪ 10.6release ~ : 一般有効化 (無効化できなくなる )
  6. bcr-1995の問題 CTE最適化が重複サブクエリを 1つのノードに統合、 左テーブル由来のエイリアスマップで更新 → 右テーブルのエイリアスマップに対して上書きが行われる → 元々付与していた rsuffix が失われる

    → 最終的なSQLで左右の列名が同一になるケースが発生、列名重複エラーを返却される 暫定対応: lsuffixで左テーブルの列名を変えることで衝突回避 (実はcte_optimization_enabledフラグを見てCTE最適化の適用可否を判断されていた )