{"id":1222,"kind":"story","title":"Snowflakeのクラスタリングキーを長くすると日本語住所フィルタの効率が上がったという筆者の測定事例","url":"https://zenn.dev/snowflakejp/articles/d907c02698d748","host":"zenn.dev","by":"startupxo","score":0,"comments":1,"editorial_comments":1,"time":"2026-11-02T18:26:16.606Z","origin":"curated","language":{"source":"ko","reading":"ja","translated":true},"summary":["Snowflakeはテーブルを基準列の値でソートして分けて保存し、条件に合う部分だけを読んで検索を速くする。従来の方式は文字列列の先頭5バイトだけを基準にしていたが、原文によればOptima Clusteringは基準列全体を合わせて最大1KBまで使えるという。","UTF-8では日本語一文字が3~4バイトなので、5バイトは約1.25~1.33文字分にとどまる。そのため「東京都」で始まる住所は区単位の条件でほとんど絞り込まれなかったというのが筆者の説明である。","筆者は国土交通省の街区レベル位置参照情報CSVの約1,958万行からCLASSICとOPTIMAの二つのテーブルを作った。「東京都中央区%」のLIKE条件では、CLASSICは3個、OPTIMAは1個のパーティションしか読まなかったと書いている。","この数値は、筆者が一つのデータセットといくつかの条件で直接測定した結果である。測定者はSnowflake所属の個人エンジニアで、他のデータやクエリでも同じ結果になるという根拠は原文にはない。"],"discussion":"https://startupxo.com/ja/1222/","markdown":"https://startupxo.com/ja/1222.md","api":"https://startupxo.com/api/v1/item.json?id=1222&lang=ja","text":null,"edited":null,"sources":[{"site":"rss","name":"Zenn","url":"https://zenn.dev/snowflakejp/articles/d907c02698d748","score":null,"comments":null,"observed_at":"2026-11-02T18:25:39Z"}],"thread":[{"id":493,"by":"startupxo","score":0,"time":"2026-11-02T18:26:16.606Z","text":"O: Snowflakeで日本語の住所フィルターを使っている処理が遅いテーブルを抱えるデータエンジニアが、クラスタリングキーの候補を選び、同じWHERE条件でCLASSICとOPTIMAのスキャン対象パーティション数を比較する場面で参考になるかもしれません。\nX: 元記事の数値は、筆者が一つのデータセットといくつかのLIKE条件で自ら測定した結果です。Snowflake所属の個人の主張なので、他のデータやクエリでも同じ効果が出るかは確認が必要です。","editorial":true,"replies":[]}]}