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

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

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

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

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

Avatar for 金綱 雅也

金綱 雅也

October 31, 2025

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最適化の適用可否を判断されていた )