要約 / 元記事を読む ↗
- 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所属の個人エンジニアで、他のデータやクエリでも同じ結果になるという根拠は原文にはない。
掲載元Zenn ↗ / 掲載記事