ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

clickhouse で特定のカラムを探す方法について

テーブルがたくさんある中で、特定のカラムを探したい場合があります。
そんな時は、system.columns から検索する方法があります。
このテーブルを使用して、DESCRIBE TABLEクエリと同様の情報を取得できますが、一度に複数のテーブルから検索することができます。

以下のようなクエリでカラムの検索が行えます。

SELECT
  table,
  name 
FROM 
  system.columns 
WHERE 
  (database = '{{データベース名}}') 
  AND (name = '{{カラム名}}') 
LIMIT 10;

system.columnsは次の列が含まれています。

カラム 情報
database (文字列) データベース名
table (文字列) テーブル名
name (文字列) 列名
type (文字列) 列タイプ
position (Ulnt64) 1で始まるテーブル内の列の序数位置
default_kind (文字列) デフォルト値の式タイプ
default_expression (文字列) デフォルト値の式
data_compressed_bytes (Ulnt64) 圧縮データのサイズ
data_uncompressed_bytes (Ulnt64) 解凍されたデータのサイズ
marks_bytes (UInt64) マークのサイズ(バイト単位)
comment (文字列) 列のコメント
is_in_partition_key (UInt8) 列パーティションフラグ
is_in_sorting_key (UInt8) 列ソートフラグ
is_in_sampling_key (UInt8) 列サンプリングキーフラグ
compression_codec (文字列) 圧縮コーデック名
character_octet_length (UInt64) -
numeric_precision (UInt64) -
numeric_precision_radix (UInt64) -
numeric_scale (UInt64) 近似数値データ
datetime_precision (UInt64) データ型の10進精度