Skip to main content

テーブル内のすべてのカラムにおける空値/ゼロ値の比率を計算する方法

カラムがスパース (空、またはほとんどがゼロ) である場合、ClickHouse はそれをスパースフォーマットでエンコードし、計算を自動的に最適化できます。つまり、クエリ実行時にデータを完全に展開する必要はありません。実際、カラムがどの程度スパースかがわかっていれば、シリアライゼーションを最適化するために ratio_of_defaults_for_sparse_serialization 設定 を使ってその比率を指定できます。 この便利なクエリは実行に少し時間がかかることがありますが、テーブル内のすべての行を分析し、指定したテーブルの各カラムで値がゼロ (またはデフォルト値) である割合を判定します。
例えば、上で実行したクエリは、200億行超・19カラムを持つ、sensors という名前の environmental sensors dataset テーブルに対するものです。
レスポンスは以下のとおりです。
上記の結果から、次のことがわかります。
  • sensor_id カラムはまったくスパースではありません。実際、すべての行で値は 0 ではありません
  • sensor_type はスパースなのが全体の約 15.9% にすぎません
  • P0 カラムは非常にスパースで、値の 99.9% が 0 です
  • pressure カラムは 83% と、かなりスパースです
  • また、temperature カラムでは値の 53.2% が欠損しているか 0 です
前述のとおり、これは ClickHouse テーブル内の各カラムがどの程度スパースかを計算するのに便利なクエリです。
最終更新日 2026年7月3日