LowCardinality(T)
他のデータ型の内部表現を辞書エンコードされた形式に変更します。
構文
パラメータ
data_type— String、FixedString、Date、DateTime、および Decimal 以外の数値型。LowCardinalityは一部のデータ型では効率的ではありません。詳細は allow_suspicious_low_cardinality_types 設定の説明を参照してください。
説明
LowCardinality は、データの格納方式とデータ処理規則を変更するための上位構造です。ClickHouse は LowCardinality 列に対して dictionary coding を適用します。辞書エンコードされたデータを扱うことで、多くのアプリケーションにおいて SELECT クエリのパフォーマンスが大幅に向上します。
LowCardinality データ型の有効性は、データの多様性に依存します。辞書に含まれる異なる値が 10,000 未満である場合、ClickHouse は一般的にデータの読み取りおよび保存の効率が高くなります。辞書に 100,000 を超える異なる値が含まれている場合、通常のデータ型を使用した場合と比較して、ClickHouse のパフォーマンスが低下することがあります。
文字列を扱う際は、Enum の代わりに LowCardinality の使用を検討してください。LowCardinality は利用時の柔軟性が高く、多くの場合、同等またはそれ以上の効率を発揮します。
例
LowCardinality 列を持つテーブルを作成します。
関連設定と関数
設定:
- low_cardinality_max_dictionary_size
- low_cardinality_use_single_dictionary_for_part
- low_cardinality_allow_in_native_format
- allow_suspicious_low_cardinality_types
- output_format_arrow_low_cardinality_as_dictionary
関数: