👏
❄️ Snowflakeアップデート:カラムの最大サイズが128MBに!
はじめに
2025年2月予定のアップデート(2025_02バンドル)で、Snowflakeのカラムサイズ上限が大きく変わるようです。
これまでは一部データ型で16MBまたは8MBまでしか保存できなかったのが、今後は128MB/64MBまで拡張される予定です。
以下、背景・課題・対応・結果に加え、具体的なユースケースを交えてわかりやすく解説します。
背景(なにが変わるのか)
これまでVARCHARやVARIANTなどに大きなデータを格納しようとすると、「上限16MB」「8MB」でエラーになっていました。
今回のアップデートで下記のように上限が大きく拡張されます:
データ型 | 旧上限 | 新上限 |
---|---|---|
VARCHAR , VARIANT , ARRAY , OBJECT
|
16MB | 128MB |
BINARY , GEOGRAPHY , GEOMETRY
|
8MB | 64MB |
活用例(ユースケース)
このサイズ拡張により、次のような活用が可能になります。
1. 巨大なJSON・ネストデータの保存(IoT・アプリログなど)
- 想定例:Firebaseログ、センサー情報、GA4のイベントデータ
- 効果:128MBまでのJSONをそのまま格納・クエリ可能
2. チャット履歴やサポートログの保存と分析
- 想定例:カスタマー対応の会話履歴、Slackログ、チャットボット応答
- 効果:1スレッド分の長文でもVARCHARに格納し、NLP/LLM分析が可能
3. 中間データの一時保存(ETL・dbtステージ)
- 想定例:配列集計、VARIANTの保持、複雑なJOIN処理中の中間ステップ
- 効果:中間処理の柔軟性・安定性がアップ
4. ファイルや画像データのBase64格納(BINARY/VARCHAR)
- 想定例:一時的な画像保存、OCR前のPDF保管など
- 効果:BINARY型64MBまで対応。Cloud Storageなしでも処理可能に
5. 地理空間データの高度な保存と分析
- 想定例:複雑な地形・ポリゴン(国境線、地下鉄網など)
- 効果:64MBまでのGEOGRAPHY/GEOMETRYで高精度な地図処理が可能に
期待される効果(アップデートのメリット)
- リッチデータの処理がより柔軟に
- AI/BI/IoTなど多様な分野への応用が可能
- 開発やETLの効率化・クエリの安定性向上
課題(便利になるけど注意点あり)
変更により、便利になる一方で注意点もあります:
- デフォルトのサイズは従来通り(VARCHARは16MB)
- CREATE TABLE AS SELECT(CTAS)でサイズ超過するとエラー
- 古いドライバでは新サイズに非対応
対策(どうすればいいのか)
① 明示的にサイズを指定する
CREATE TABLE my_table (
big_col VARCHAR(134217728) -- 128MBに拡張
);
② CTASではCASTを使ってサイズ指定
CREATE TABLE new_table AS
SELECT CAST(col1 AS VARCHAR(134217728)) FROM large_table;
③ ドライバを最新版に更新
古いクライアントやBIツールでは、以下のようなエラーが発生する場合があります:
100067 (54000): Actual length <X> exceeds supported length of 16777216.
このようなエラーが出た場合は、ドライバを最新版にアップデートしましょう。
まとめ:変更点のポイント
データ型 | 旧上限 | 新上限 |
---|---|---|
VARCHAR, VARIANT, ARRAY, OBJECT | 16MB | 128MB |
BINARY, GEOGRAPHY, GEOMETRY | 8MB | 64MB |
※ VARIANT, ARRAY, OBJECT は新規テーブル作成時のデフォルトが128MBに変更
※ VARCHAR と BINARY は明示的に長さを指定しないと旧サイズのまま
注意:「Pending(保留中)」の状態です
このアップデートは現在「Pending」であり、すぐに有効になっているとは限りません。
- 有効化状況は組織によって異なります
- Snowflakeの管理者に確認するか、Bundle Historyで確認しましょう
参考リンク
Discussion