LowCardinality(T)
他のデータ型の内部表現を辞書エンコードに変更します。
Syntax
Parameters
data_type
— String、FixedString、Date、DateTime、および Decimal を除く数値。LowCardinality
は一部のデータ型には効率的ではありません。allow_suspicious_low_cardinality_types 設定の説明を参照してください。
Description
LowCardinality
は、データの保存方法とデータ処理のルールを変更するスーパー構造です。ClickHouseはLowCardinality
カラムに辞書コーディングを適用します。辞書エンコードされたデータを扱うことは、多くのアプリケーションにおけるSELECTクエリのパフォーマンスを大幅に向上させます。
LowCardinality
データ型の使用効率は、データの多様性に依存します。辞書に10,000未満の異なる値が含まれている場合、ClickHouseはデータの読み取りと保存の効率が主に高くなります。辞書に100,000を超える異なる値が含まれている場合、ClickHouseは通常のデータ型を使用する場合と比較してパフォーマンスが低下する可能性があります。
文字列を扱う際には、Enumの代わりにLowCardinality
を使用することを検討してください。LowCardinality
は使用時により柔軟性を提供し、同じかそれ以上の効率を示すことがよくあります。
Example
LowCardinality
カラムを持つテーブルを作成します:
Related Settings and Functions
設定:
- 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
関数: