ΠΠ½Π°Π»ΠΈΡΠΈΡΠ½Π°ΡΠ° Π‘Π£ΠΠ ClickHouse ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½ΠΈΠ·ΠΈ, ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ°ΠΉΠΊΠΈ ΡΠ΅ΡΡΡΡΠΈ. ΠΠ° Π΄Π° ΡΡΠΊΠΎΡΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡ Π½ΠΎΠ²ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ Π½Π° ClickHouse ΠΠΈΠΊΠΎΠ»Π°ΠΉ ΠΠΎΡΠ΅ΡΠΎΠ² ΡΠ°Π·ΠΊΠ°Π·Π²Π° Π·Π° ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ Π΄Π°Π½Π½ΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π½ΠΈΠ·ΠΎΠ²Π΅ΡΠ΅, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π·Π° Π½ΠΎΠ²ΠΈΡ ΡΠΈΠΏ LowCardinality, ΠΈ ΠΎΠ±ΡΡΠ½ΡΠ²Π° ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΠΊΠΎΡΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ Π½ΠΈΠ·ΠΎΠ²Π΅ΡΠ΅.

β ΠΡΡΠ²ΠΎ, Π½Π΅ΠΊΠ° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ Π½ΠΈΠ·ΠΎΠ²Π΅.

ΠΠΌΠ°ΠΌΠ΅ Π½ΠΈΠ·ΠΎΠ²ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ. String Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΡΡΠΈ Π²ΠΈΠ½Π°Π³ΠΈ. ΠΠΌΠ° ΠΌΠ°Π»ΡΠΊ Overhead β 9 Π±Π°ΠΉΡΠ° Π·Π° Π½ΠΈΠ·. ΠΠΊΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡΡ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ΡΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠΈΠΊΡΠΈΡΠ°Π½ ΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½, Π΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ FixedString. Π Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡ Π±ΡΠΎΠΉ Π±Π°ΠΉΡΠΎΠ²Π΅, ΡΠ΄ΠΎΠ±Π΅Π½ Π΅ Π·Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠΈΠΏΠ° IP Π°Π΄ΡΠ΅ΡΠΈ ΠΈΠ»ΠΈ Ρ Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ.

Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° Π½Π΅ΡΠΎ Π·Π°Π±Π°Π²Ρ. ΠΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΠ΅ ΠΏΡΠ°Π²ΠΈΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ ΠΊΡΠΌ ΡΠ°Π±Π»ΠΈΡΠ°. ClickHouse ΡΠ΅ΡΠ΅ Π΄ΠΎΡΡΠ° Π³ΠΎΠ»ΡΠΌΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π°Π½Π½ΠΈ, Π΄Π° ΡΠ΅ΡΠ΅ΠΌ ΡΡΡ ΡΠΊΠΎΡΠΎΡΡ 100 ΠΠ/Ρ, Π΄ΠΎΠΊΠ°ΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Π΅ ΠΌΠ°Π»ΠΊΠ°. ΠΠΌΠ°ΠΌΠ΅ Π΄Π²Π΅ ΡΠ°Π±Π»ΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Ρ ΠΏΠΎΡΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ. ΠΡ Π²ΡΠΎΡΠ°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ClickHouse ΡΠ΅ΡΠ΅ Π΄Π°Π½Π½ΠΈ Ρ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠ° ΡΠΊΠΎΡΠΎΡΡ, Π½ΠΎ Π½ΠΈΠ·ΠΎΠ²Π΅ΡΠ΅ Π² ΡΠ΅ΠΊΡΠ½Π΄Π° ΡΠ΅ ΡΠ΅ΡΠ°Ρ ΡΡΠΈ ΠΏΡΡΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ.

ΠΠΊΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ, ΡΠΎΠΉ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎΡΡΠΈ ΡΠ°Π²Π΅Π½. ΠΡΡΡΠ½ΠΎΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅ ΡΠ° Π·Π°ΠΏΠΈΡΠ°Π½ΠΈ Π΅Π΄Π½ΠΈ ΠΈ ΡΡΡΠΈ Π΄Π°Π½Π½ΠΈ β ΠΏΡΡΠ²ΠΈΡΡ ΠΌΠΈΠ»ΠΈΠ°ΡΠ΄ ΡΠΈΡΠ»Π° β ΡΠ°ΠΌΠΎ ΡΠ΅ Π² ΠΏΡΡΠ²Π°ΡΠ° ΠΊΠΎΠ»ΠΎΠ½Π° ΡΠ΅ ΡΠ° Π·Π°ΠΏΠΈΡΠ°Π½ΠΈ ΠΊΠ°ΡΠΎ UInt64, Π° Π²ΡΠ² Π²ΡΠΎΡΠ°ΡΠ° β ΠΊΠ°ΡΠΎ String. ΠΠ°ΡΠ°Π΄ΠΈ ΡΠΎΠ²Π° Π²ΡΠΎΡΠΎΡΠΎ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ ΠΎΡΠ½Π΅ΠΌΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΎΡ Π΄ΠΈΡΠΊΠ° ΠΈ Π·Π° ΡΠ°Π·Π°ΡΡ
ΠΈΠ²ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΈΠΌ.

ΠΡΠΎ Π΄ΡΡΠ³ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ Π½ΠΈΠ·ΠΎΠ²Π΅, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ Π΄ΠΎ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° 1000 ΠΈΠ»ΠΈ 10 000 ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΡΠΈΠΏΡΡ Π΄Π°Π½Π½ΠΈ Enum Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡ, Π² ClickHouse ΠΈΠΌΠ° Π΄Π²Π΅ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ β Enum8 ΠΈ Enum16. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π² Enum Π½ΠΈΠ΅ Π±ΡΡΠ·ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΠΌΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ.
Π ClickHouse ΠΈΠΌΠ° ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ Π·Π° GROUP BY, IN, DISTINCT ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π·Π° Π½ΡΠΊΠΎΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΡΡΠ°Π²Π½ΡΠ²Π°Π½Π΅ Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ΅Π½ Π½ΠΈΠ·. Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΠΈΡΠ»Π°ΡΠ° Π² Π½ΠΈΠ·Π° Π½Π΅ ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Ρ, Π°, Π½Π°ΠΏΡΠΎΡΠΈΠ², ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΈΡΡ Π½ΠΈΠ· ΡΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄Π΅ ΠΊΡΠΌ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° Enum. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ ΡΡΠ°Π²Π½ΡΠ²Π° Π±ΡΡΠ·ΠΎ.
ΠΠΎ ΠΈΠΌΠ° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ. ΠΠΎΡΠΈ ΠΊΠΎΠ³Π°ΡΠΎ Π·Π½Π°Π΅ΠΌ ΡΠΎΡΠ½ΠΎΡΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΡ Π½ΠΈΠ·ΠΎΠ²Π΅, ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°. ΠΠΎΡΠ²ΡΠ²Π° ΡΠ΅ Π½ΠΎΠ² Π½ΠΈΠ· β ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ALTER.

ALTER Π·Π° Enum Π² ClickHouse Π΅ ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½. ΠΠ΅ ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π΄Π°Π½Π½ΠΈΡΠ΅ Π½Π° Π΄ΠΈΡΠΊΠ°, Π½ΠΎ ALTER ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π±Π°Π²Π΅Π½ Π·Π°ΡΠ°Π΄ΠΈ ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΡΡΡΡΠΊΡΡΡΠΈΡΠ΅ Enum ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Ρ Π² ΡΡ
Π΅ΠΌΠ°ΡΠ° Π½Π° ΡΠ°ΠΌΠ°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ°. ΠΠ°ΡΠΎΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΡΠ°ΠΊΠ°ΠΌΠ΅ Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ ΠΎΡ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ.
ΠΡΠΏΡΠΎΡΡΡ Π΅, ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ Π½Π΅ΡΠ°ΡΠ° ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅? Π‘ΠΈΠ³ΡΡΠ½ΠΎ, ΠΌΠΎΠΆΠ΅. ΠΠΎΠΆΠ΅ Π΄Π° ΡΡΡ ΡΠ°Π½ΠΈΠΌ ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° Enum Π½Π΅ Π² ΡΡ Π΅ΠΌΠ°ΡΠ° Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°, Π° Π² ZooKeeper. ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ ΠΎΠ±Π°ΡΠ΅ Π΄Π° Π²ΡΠ·Π½ΠΈΠΊΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ» Π΄Π°Π½Π½ΠΈ, Π° Π΄ΡΡΠ³ΠΈΡΡ Π½Π΅, ΠΈ Π°ΠΊΠΎ ΡΠΎΠΉ ΠΈΠΌΠ° ΡΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Enum, Π½Π΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΡΠΏΠΈ. (Π ClickHouse ΠΏΠΎΡΡΠΈ Π·Π°Π²ΡΡΡΠΈΡ ΠΌΠ΅ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠΈΡΠ΅ ALTER Π·Π°ΡΠ²ΠΊΠΈ. ΠΠΎΠ³Π°ΡΠΎ Π³ΠΈ Π·Π°Π²ΡΡΡΠΈΠΌ Π½Π°ΠΏΡΠ»Π½ΠΎ, Π½ΡΠΌΠ° Π΄Π° Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° ΡΠ°ΠΊΠ°ΠΌΠ΅ Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅.)

ΠΠ° Π΄Π° Π½Π΅ ΡΠ΅ Π½Π°Π³ΡΡΠ±Π²Π°ΠΌΠ΅ Ρ ALTER Enum, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π²ΡΠ½ΡΠ½ΠΈ ΡΠ΅ΡΠ½ΠΈΡΠΈ Π² ClickHouse. ΠΠ°ΠΏΠΎΠΌΠ½ΡΠΌ, ΡΠ΅ ΡΠΎΠ²Π° Π΅ ΡΡΡΡΠΊΡΡΡΠ° ΠΎΡ ΡΠΈΠΏ ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ Π² ClickHouse, Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π΄Π°Π½Π½ΠΈ ΠΎΡ Π²ΡΠ½ΡΠ½ΠΈ ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ, Π½Π°ΠΏΡ. ΠΎΡ ΡΠ°Π±Π»ΠΈΡΠΈ MySQL.
Π ΡΠ΅ΡΠ½ΠΈΠΊΠ° Π½Π° ClickHouse ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½ΠΈΠ·ΠΎΠ²Π΅, Π° Π² ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° β ΡΠ΅Ρ Π½ΠΈΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΠΈΡΠ»Π°. ΠΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ Π½ΠΈΠ·, ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΠΌΠ΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ° dictGet ΠΈ ΡΠ°Π±ΠΎΡΠΈΠΌ Ρ Π½Π΅Ρ. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΏΡΠ°Π²ΠΈΠΌ ALTER. ΠΠ° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π΅ΡΠΎ Π² Enum, ΠΏΡΠΎΡΡΠΎ Π³ΠΎ Π²ΠΌΡΠΊΠ²Π°ΠΌΠ΅ Π² ΡΡΡΠ°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° MySQL.
ΠΠΎ ΡΡΠΊ Π²ΡΠ·Π½ΠΈΠΊΠ²Π°Ρ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ. ΠΡΡΠ²ΠΎ, Π½Π΅ΡΠ΄ΠΎΠ±Π΅Π½ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ. ΠΠΊΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ Π½ΠΈΠ·, ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΠΌΠ΅ dictGet. ΠΡΠΎΡΠΎ, Π»ΠΈΠΏΡΠ°ΡΠ° Π½Π° Π½ΡΠΊΠΎΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ. Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΡΠΎ Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ΅Π½ Π½ΠΈΠ· Π·Π° ΡΠ΅ΡΠ½ΠΈΡΠΈΡΠ΅ Π½Π΅ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π±ΡΡΠ·ΠΎ.
ΠΠΎΠ³Π°Ρ ΡΡΡΠΎ Π΄Π° Π²ΡΠ·Π½ΠΈΠΊΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΡΠΎ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΠ΅ ΡΠΌΠ΅ ΠΏΠΎΠΈΡΠΊΠ°Π»ΠΈ Π½ΠΈΠ· Π² ΠΊΠ΅Ρ-ΡΠ΅ΡΠ½ΠΈΠΊΠ°, Π° ΡΠΎΠΉ Π½Π΅ Π΅ ΠΏΠΎΠΏΠ°Π΄Π½Π°Π» Π² ΠΊΠ΅ΡΠ°. Π ΡΠ°ΠΊΡΠ² ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°ΠΊΠ°ΠΌΠ΅, Π΄ΠΎΠΊΠ°ΡΠΎ Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΠ΅ Π·Π°ΡΠ΅Π΄ΡΡ ΠΎΡ Π²ΡΠ½ΡΠ΅Π½ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ.

ΠΠ±Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ Π½Π° Π΄Π²Π°ΡΠ° ΠΌΠ΅ΡΠΎΠ΄Π° Π΅, ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈΡΠ΅ ΠΊΠ»ΡΡΠΎΠ²Π΅ Π½Π° Π΅Π΄Π½ΠΎ ΠΌΡΡΡΠΎ ΠΈ Π³ΠΈ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅. Π’Π°ΠΊΠ° ΡΠ΅, Π·Π°ΡΠΎ Π΄Π° Π½Π΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ ΡΠ΅ΡΠ½ΠΈΡΠΈΡΠ΅ Π»ΠΎΠΊΠ°Π»Π½ΠΎ? ΠΡΠΌΠ° ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ β Π½ΡΠΌΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ. ΠΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΡ
ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ ΡΠ΅ΡΠ½ΠΈΠΊΠ° Π»ΠΎΠΊΠ°Π»Π½ΠΎ Π² ΡΠ°ΡΡ Π½Π° Π΄ΠΈΡΠΊΠ°. Π’ΠΎΠ΅ΡΡ, Π½Π°ΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΡΠΌΠ΅ Insert, Π·Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΠΌΠ΅ ΡΠ΅ΡΠ½ΠΈΠΊΠ°. ΠΠΊΠΎ ΡΠ°Π±ΠΎΡΠΈΠΌ Ρ Π΄Π°Π½Π½ΠΈ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠ΅ΡΠ½ΠΈΠΊΠ° ΠΈΠ»ΠΈ Π² Π±Π»ΠΎΠΊ ΠΎΡ Π΄Π°Π½Π½ΠΈ, ΠΈΠ»ΠΈ Π² ΡΠ°ΡΡ ΠΎΡ ΠΊΠΎΠ»ΠΎΠ½Π°, ΠΈΠ»ΠΈ Π² Π½ΡΠΊΠ°ΠΊΡΠ² ΠΊΠ΅Ρ, Π·Π° Π΄Π° ΡΡΠΊΠΎΡΠΈΠΌ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡΡΠ°.
Π Π΅ΡΠ½ΠΈΠΊΠΎΠ²ΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅
Π’Π°ΠΊΠ° ΡΡΠΈΠ³Π½Π°Ρ ΠΌΠ΅ Π΄ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ² ΡΠΈΠΏ Π΄Π°Π½Π½ΠΈ Π² ClickHouse β LowCardinality. Π’ΠΎΠ²Π° Π΅ ΡΠΎΡΠΌΠ°Ρ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ: ΠΊΠ°ΠΊ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Ρ Π½Π° Π΄ΠΈΡΠΊΠ° ΠΈ ΠΊΠ°ΠΊ ΡΠ΅ ΡΠ΅ΡΠ°Ρ, ΠΊΠ°ΠΊ ΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΈ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΡΡ Π΅ΠΌΠ°ΡΠ° Π½Π° ΡΡΡ Π½Π°ΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°.

ΠΠ° ΡΠ»Π°ΠΉΠ΄Π° ΠΈΠΌΠ° Π΄Π²Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ. ΠΡΠ΄ΡΡΠ½ΠΎ, ΡΠ΅Π΄ΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎ, Π² ΡΠΈΠΏ String. Π―ΡΠ½ΠΎ Π΅, ΡΠ΅ ΡΠΎΠ²Π° ΡΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΡΠ΅Π»Π΅ΡΠΎΠ½ΠΈ. ΠΡΠ»ΡΠ²ΠΎ ΠΈΠΌΠ° ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠ°Π²Π° ΠΊΠΎΠ»ΠΎΠ½Π°, ΡΠ°ΠΌΠΎ ΡΠ΅ Π² ΡΠΈΠΏ LowCardinality. Π’Ρ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ ΡΠ΅ΡΠ½ΠΈΠΊ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ (ΡΠ΅Π΄ΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΠΊΠΎΠ»ΠΎΠ½Π°ΡΠ° Π²Π΄ΡΡΠ½ΠΎ) ΠΈ ΡΠΏΠΈΡΡΠΊ Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ (Π½ΠΎΠΌΠ΅ΡΠ° Π½Π° ΡΠ΅Π΄ΠΎΠ²Π΅ΡΠ΅).
Π‘ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ΅Π·ΠΈ Π΄Π²Π΅ ΡΡΡΡΠΊΡΡΡΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΠΈ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½Π°ΡΠ° ΠΊΠΎΠ»ΠΎΠ½Π°. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ ΠΈΠ½Π΄Π΅ΠΊΡ β Ρ Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΠ°, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΠΌ ΠΏΠΎΠ·ΠΈΡΠΈΡΡΠ° Π² ΡΠ΅ΡΠ½ΠΈΠΊΠ° ΠΏΠΎ ΡΠ΅Π΄. Π’Ρ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π·Π° ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ Π½Π° Π½ΡΠΊΠΎΠΈ Π·Π°ΡΠ²ΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΡΡΠ°Π²Π½ΠΈΠΌ, Π΄Π° ΠΏΠΎΡΡΡΡΠΈΠΌ ΡΠ΅Π΄ Π² ΠΊΠΎΠ»ΠΎΠ½Π°ΡΠ° ΠΈΠ»ΠΈ Π΄Π° Π³ΠΈ ΠΎΠ±Π΅Π΄ΠΈΠ½ΠΈΠΌ.
LowCardinality β ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅Π½ ΡΠΈΠΏ Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ»ΠΈ ΡΠΈΡΠ»ΠΎ, ΠΈΠ»ΠΈ Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΠΈΡΠ»ΠΎ, ΠΈΠ»ΠΈ ΡΡΡΠΈΠ½Π³, ΠΈΠ»ΠΈ Nullable ΠΎΡ ΡΡΡ .

Π₯Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π½Π° LowCardinality Π΅, ΡΠ΅ ΡΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠ°Π·ΠΈ Π·Π° Π½ΡΠΊΠΎΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ° ΡΠ»Π°ΠΉΠ΄Π° Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° Π·Π°ΡΠ²ΠΊΠ°. Π ΠΏΡΡΠ²ΠΈΡ ΡΠ΅Π΄ ΡΡΠ·Π΄Π°Π΄ΠΎΡ
ΠΊΠΎΠ»ΠΎΠ½Π° ΠΎΡ ΡΠΈΠΏ LowCardinality ΠΎΡ String, Π½Π°ΡΠ΅ΠΊΠΎΡ
Ρ S. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΠΈΡΠ°Ρ
Π·Π° ΠΈΠΌΠ΅ΡΠΎ Ρ β ClickHouse ΠΊΠ°Π·Π°, ΡΠ΅ Π΅ LowCardinality ΠΎΡ String. ΠΡΠΈΡΠΊΠΎ Π΅ Π²ΡΡΠ½ΠΎ.
Π’ΡΠ΅ΡΠΈΡΡ ΡΠ΅Π΄ Π΅ ΠΏΠΎΡΡΠΈ ΡΡΡΠΈΡΡ, ΡΠ°ΠΌΠΎ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ°Ρ ΠΌΠ΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ° length. Π ClickHouse ΡΡΠ½ΠΊΡΠΈΡΡΠ° length Π²ΡΡΡΠ° ΡΠΈΠΏ Π΄Π°Π½Π½ΠΈ UInt64. ΠΠΎ ΡΠ΅Π³Π° ΠΏΠΎΠ»ΡΡΠΈΡ ΠΌΠ΅ LowCardinality ΠΎΡ UInt64. ΠΠ°ΠΊΡΠ² Π΅ ΡΠΌΠΈΡΡΠ»ΡΡ?

Π ΡΠ΅ΡΠ½ΠΈΠΊΠ° Π±ΡΡ
Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈ ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΡΠ΅Π»Π΅ΡΠΎΠ½ΠΈ, ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡ
ΠΌΠ΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ° length. Π‘Π΅Π³Π° ΠΏΠΎΠ»ΡΡΠΈΡ
ΠΌΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ ΡΠ΅ΡΠ½ΠΈΠΊ, ΡΡΡΡΠΎΡΡ ΡΠ΅ ΡΠ°ΠΌΠΎ ΠΎΡ ΡΠΈΡΠ»Π° β ΡΠΎΠ²Π° ΡΠ° Π΄ΡΠ»ΠΆΠΈΠ½ΠΈΡΠ΅ Π½Π° ΡΠ΅Π΄ΠΎΠ²Π΅ΡΠ΅. ΠΠΎΠ»ΠΎΠ½Π°ΡΠ° Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈΡΠ΅ Π½Π΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ. Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΈΡ
ΠΌΠ΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π΄Π°Π½Π½ΠΈ, ΡΠΏΠ΅ΡΡΠΈΡ
ΠΌΠ΅ Π²ΡΠ΅ΠΌΠ΅ ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡΡΠ°.
ΠΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΏΡΠΎΡΡ ΠΊΠ΅Ρ. ΠΡΠΈ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° ΡΡΠ½ΠΊΡΠΈΡ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Ρ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΈ Π΄Π° Ρ ΠΈΠ·Π³ΡΠ°Π΄ΠΈΠΌ ΠΎΡΠ½ΠΎΠ²ΠΎ, Π±Π΅Π· Π΄Π° Ρ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°ΠΌΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΎ.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° GROUP BY, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½Π°ΡΠ°ΡΠ° ΠΊΠΎΠ»ΠΎΠ½Π° Ρ ΡΠ΅ΡΠ½ΠΈΠΊΠ° Π²Π΅ΡΠ΅ Π΅ ΡΠ°ΡΡΠΈΡΠ½ΠΎ Π°Π³ΡΠ΅Π³ΠΈΡΠ°Π½Π° β ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Ρ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° Ρ Π΅Ρ-ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ ΠΈ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈ bucket, ΠΊΡΠ΄Π΅ΡΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΈ Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅Π΄. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Ρ Π½ΡΠΊΠΎΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ uniq, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π² Π½Π΅Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠΈ ΡΠ°ΠΌΠΎ ΡΠ΅ΡΠ½ΠΈΠΊ, Π° ΠΏΠΎΠ·ΠΈΡΠΈΠΈΡΠ΅ Π΄Π° ΠΎΡΡΠ°Π½Π°Ρ Π½Π΅ΡΡΠΎΠ½Π°ΡΠΈ β ΡΠ°ΠΊΠ° Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ. ΠΡΡΠ²ΠΈΡΠ΅ Π΄Π²Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π²Π΅ΡΠ΅ ΡΠΌΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² ClickHouse.

ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΡΠ°Π½Π΅, Π°ΠΊΠΎ ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΠΊΠΎΠ»ΠΎΠ½Π° Ρ Π½Π°ΡΠΈΡ ΡΠΈΠΏ Π΄Π°Π½Π½ΠΈ ΠΈ Π²ΠΌΡΠΊΠ½Π΅ΠΌ Π² Π½Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π»ΠΎΡΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅? ΠΡΠΌΠ° Π»ΠΈ Π΄Π° ΠΏΡΠ΅Π½Π°ΡΠΈΡΠΈΠΌ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΡΠΈ? ΠΠ΅, Π·Π° ΡΠΎΠ²Π° Π² ClickHouse ΠΈΠΌΠ° Π΄Π²Π΅ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. ΠΡΡΠ²Π°ΡΠ° β low_cardinality_max_dictionary_size. Π’ΠΎΠ²Π° Π΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΡΠ΅ΡΠ½ΠΈΠΊΠ°, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π·Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π΄ΠΈΡΠΊ. ΠΠΌΡΠΊΠ²Π°Π½Π΅ΡΠΎ ΠΏΡΠΎΡΠΈΡΠ° ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½: ΠΊΠΎΠ³Π°ΡΠΎ Π²ΠΌΡΠΊΠ²Π°ΠΌΠ΅ Π΄Π°Π½Π½ΠΈ, ΠΈΠ΄Π²Π° ΠΏΠΎΡΠΎΠΊΡ ΠΎΡ ΡΠ΅Π΄ΠΎΠ²Π΅, ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΡΠΎΡΠΌΠΈΡΠ°ΠΌΠ΅ Π³ΠΎΠ»ΡΠΌ ΠΎΠ±Ρ ΡΠ΅ΡΠ½ΠΈΠΊ. ΠΠΊΠΎ ΡΠ΅ΡΠ½ΠΈΠΊΡΡ ΡΡΠ°Π½Π΅ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌ ΠΎΡ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ°, Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ ΡΠ΅ΠΊΡΡΠΈΡ ΡΠ΅ΡΠ½ΠΈΠΊ Π½Π° Π΄ΠΈΡΠΊ, Π° ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅ β Π½ΡΠΊΡΠ΄Π΅ βΠΎΡΡΡΡΠ°Π½ΠΈβ, Π±Π»ΠΈΠ·ΠΎ Π΄ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ΅. Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° Π½ΠΈΠΊΠΎΠ³Π° Π½ΡΠΌΠ° Π΄Π° ΠΏΡΠ΅ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°ΠΌΠ΅ Π³ΠΎΠ»ΡΠΌ ΡΠ΅ΡΠ½ΠΈΠΊ ΠΈ Π½ΡΠΌΠ° Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ°.
ΠΡΠΎΡΠ°ΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ Π½Π°ΡΠΈΡΠ° low_cardinality_use_single_dictionary_for_part. ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅ΡΠ΅ ΡΠΈ, ΡΠ΅ Π² ΠΏΡΠ΅Π΄Π½Π°ΡΠ° ΡΡ Π΅ΠΌΠ°, ΠΊΠΎΠ³Π°ΡΠΎ Π²ΠΌΡΠΊΠ²Π°Ρ ΠΌΠ΅ Π΄Π°Π½Π½ΠΈ, Π½Π°ΡΠΈΡΡ ΡΠ΅ΡΠ½ΠΈΠΊ Π΅ ΠΏΡΠ΅Π½Π°ΡΠΈΡΠ΅Π½ ΠΈ ΡΠΌΠ΅ Π³ΠΎ Π·Π°ΠΏΠΈΡΠ°Π»ΠΈ Π½Π° Π΄ΠΈΡΠΊ. ΠΡΠ·Π½ΠΈΠΊΠ²Π° Π²ΡΠΏΡΠΎΡΡΡ, Π·Π°ΡΠΎ ΡΠ΅Π³Π° Π΄Π° Π½Π΅ ΡΡΡΡΠ°Π²ΠΈΠΌ ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΡΠ² ΡΠ΅ΡΠ½ΠΈΠΊ?
ΠΠΎΠ³Π°ΡΠΎ ΡΠΎΠΉ ΠΏΡΠ΅Π½Π°ΡΠΈΡΠΈ, ΠΎΡΠ½ΠΎΠ²ΠΎ ΡΠ΅ Π³ΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΌ Π½Π° Π΄ΠΈΡΠΊ ΠΈ ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Π΄Π° ΡΠΎΡΠΌΠΈΡΠ°ΠΌΠ΅ ΡΡΠ΅ΡΠΈ. Π’Π°Π·ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠΎΡΠ½ΠΎ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π° ΡΠ°ΠΊΠ°Π²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅.
ΠΡΡΡΠ½ΠΎΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ½ΠΈΡΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ° ΠΏΠΎΠ»Π΅Π·Π½ΠΈ, Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° Π²ΠΌΡΠΊΠ½Π΅ΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π΄ΠΎΠ²Π΅, Π½ΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠΌΠ΅ Π²ΠΌΡΠΊΠ½Π°Π»ΠΈ βΠ±ΠΎΠΊΠ»ΡΠΊβ. ΠΠ° ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ ΠΏΡΡΠ²ΠΎ ΡΠΌΠ΅ Π²ΠΌΡΠΊΠ½Π°Π»ΠΈ Π»ΠΎΡΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅, Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄ΠΎΠ±ΡΠΈ. Π’ΠΎΠ³Π°Π²Π° ΡΠ΅ΡΠ½ΠΈΠΊΡΡ ΡΠ΅ ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΠΈ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π»ΠΊΠΈ ΡΠ΅ΡΠ½ΠΈΡΠΈ. Π§Π°ΡΡ ΠΎΡ ΡΡΡ ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ°Ρ βΠ±ΠΎΠΊΠ»ΡΠΊβ, Π½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π°Ρ Ρ Π΄ΠΎΠ±ΡΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. Π Π°ΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΠ΅ΠΌ, Π΄Π° ΡΠ΅ΡΠ΅ΠΌ, ΡΠ°ΠΌΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° Π³ΡΠ°Π½ΡΠ»Π°, Π²ΡΠΈΡΠΊΠΎ Π²ΡΠ΅ ΠΏΠ°ΠΊ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Π±ΡΡΠ·ΠΎ.

ΠΡΠ΅Π΄ΠΈ Π΄Π° Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°ΡΠ° Π½Π° LowCardinality, Π²Π΅Π΄Π½Π°Π³Π° ΡΠ΅ ΠΊΠ°ΠΆΠ°, ΡΠ΅ Π²ΡΡΠ΄ Π»ΠΈ ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π΅ΠΌ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π½Π° Π΄ΠΈΡΠΊΠ° (Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ»ΡΡΠΈ), ΡΡΠΉ ΠΊΠ°ΡΠΎ ClickHouse ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ° Π΄Π°Π½Π½ΠΈΡΠ΅. ΠΠΌΠ° ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Ρ ΡΠ΅ Π²Π°ΡΠΈΠ°Π½Ρ β LZ4. ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠΈ ΠΈ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ZSTD. ΠΠΎ ΠΈ Π΄Π²Π°ΡΠ° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° Π²Π΅ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΡΠ΅ΡΠ½ΠΈΠΊΠΎΠ²Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ, Π·Π°ΡΠΎΠ²Π° Π½Π°ΡΠΈΡΡ Π²ΡΠ½ΡΠ΅Π½ ΡΠ΅ΡΠ½ΠΈΠΊ Π² ClickHouse Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π΅Π½.
ΠΠ° Π΄Π° Π½Π΅ Π±ΡΠ΄Π° Π³ΠΎΠ»ΠΎΡΠ»ΠΎΠ²Π΅Π½, Π²Π·Π΅Ρ Π½ΡΠΊΠΎΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΠΌΠ΅ΡΡΠΈΠΊΠ°ΡΠ° β String, LowCardinality(String) ΠΈ Enum β ΠΈ Π³ΠΈ Π·Π°ΠΏΠ°Π·ΠΈΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ. ΠΠΎΠ»ΡΡΠΈΡ Π° ΡΠ΅ ΡΡΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ Ρ Π΅Π΄ΠΈΠ½ ΠΌΠΈΠ»ΠΈΠ°ΡΠ΄ ΡΠ΅Π΄Π°. Π ΠΏΡΡΠ²Π°ΡΠ° ΠΊΠΎΠ»ΠΎΠ½Π°, CodePage, ΠΈΠΌΠ° ΡΠ°ΠΌΠΎ 62 ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ. Π Π΅ Π²ΠΈΠ΄Π½ΠΎ, ΡΠ΅ Π² LowCardinality(String) ΡΠΌΠ΅ Π³ΠΈ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π»ΠΈ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅. String Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Π»ΠΎΡΠΎ, Π½ΠΎ Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π΅ Π·Π°ΡΠ°Π΄ΠΈ ΡΠ°ΠΊΡΠ°, ΡΠ΅ Π½ΠΈΠ·ΠΎΠ²Π΅ΡΠ΅ ΡΠ° ΠΊΡΡΠΈ, ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ Π΄ΡΠ»ΠΆΠΈΠ½ΠΈΡΠ΅ ΠΈΠΌ, Π° ΡΠ΅ Π·Π°Π΅ΠΌΠ°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΡΡΡΠΎ ΠΈ ΡΠ΅ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Ρ ΡΠ»Π°Π±ΠΎ.
ΠΠΊΠΎ Π²Π·Π΅ΠΌΠ΅ΠΌ PhoneModel, ΡΠ΅Ρ Π½ΠΈΡΠ΅ ΡΠ° 48 Ρ ΠΈΠ»ΡΠ΄ΠΈ β Π²Π΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅, ΠΈ ΡΠ°Π·Π»ΠΈΠΊΠΈΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ String ΠΈ LowCardinality(String) ΠΏΠΎΡΡΠΈ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ. ΠΠ° URL ΡΡΡΠΎ ΡΠΏΠ΅ΡΡΠΈΡ ΠΌΠ΅ ΡΠ°ΠΌΠΎ 2 ΠΠ β ΠΌΠΈΡΠ»Ρ, Π½ΡΠΌΠ° Π½ΡΠΆΠ΄Π° Π΄Π° ΡΠ΅ ΡΠ°Π·ΡΠΈΡΠ° Π½Π° ΡΠΎΠ²Π°.
ΠΡΠ΅Π½ΠΊΠ° Π½Π° ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°

Π‘Π΅Π³Π° ΡΠ΅ ΠΎΡΠ΅Π½ΠΈΠΌ ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°. ΠΠ° Π΄Π° Ρ ΠΎΡΠ΅Π½Ρ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π½Π°Π±ΠΎΡ ΠΎΡ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π° ΡΠ°ΠΊΡΠΈΡΠ° Π² ΠΡ ΠΠΎΡΠΊ. Π’ΠΎΠΉ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π½Π° GitHub. Π Π½Π΅Π³ΠΎ ΠΈΠΌΠ° ΠΌΠ°Π»ΠΊΠΎ Π½Π°Π΄ Π΅Π΄ΠΈΠ½ ΠΌΠΈΠ»ΠΈΠ°ΡΠ΄ ΠΏΠΎΠ΅Π·Π΄ΠΊΠΈ. Π’Π°ΠΌ ΡΠ° ΠΎΡΡΠ°Π·Π΅Π½ΠΈ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π½Π°ΡΠ°Π»ΠΎ ΠΈ ΠΊΡΠ°ΠΉ Π½Π° ΠΏΡΡΡΠ²Π°Π½Π΅ΡΠΎ, ΠΌΠ΅ΡΠΎΠ΄ Π½Π° ΠΏΠ»Π°ΡΠ°Π½Π΅, Π±ΡΠΎΠΉ ΠΏΡΡΠ½ΠΈΡΠΈ ΠΈ Π΄ΠΎΡΠΈ Π²ΠΈΠ΄ ΡΠ°ΠΊΡΠΈ β Π·Π΅Π»Π΅Π½, ΠΆΡΠ»Ρ ΠΈ Uber.

ΠΡΡΠ²ΠΈΡ Π·Π°ΠΏΠΈΡ Π½Π°ΠΏΡΠ°Π²ΠΈΡ
Π΄ΠΎΡΡΠ° ΠΏΡΠΎΡΡ β ΠΏΠΎΠΏΠΈΡΠ°Ρ
ΠΊΡΠ΄Π΅ Π½Π°ΠΉ-ΡΠ΅ΡΡΠΎ ΡΠ΅ ΠΏΠΎΡΡΡΠ²Π°Ρ ΡΠ°ΠΊΡΠΈΡΠ°. ΠΠ° ΡΠΎΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° Π²Π·Π΅ΠΌΠ° ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΎΡΠΊΡΠ΄Π΅ΡΠΎ Π΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½Π° ΠΏΠΎΡΡΡΠΊΠ°ΡΠ°, Π΄Π° Π½Π°ΠΏΡΠ°Π²Ρ GROUP BY ΠΏΠΎ Π½Π΅Π³ΠΎ ΠΈ Π΄Π° ΠΏΡΠ΅Π±ΡΠΎΡ ΡΡΠ½ΠΊΡΠΈΡΡΠ° count. ΠΡΠΎ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΠ·Π΄Π°Π²Π° ClickHouse.

ΠΠ° Π΄Π° ΠΈΠ·ΠΌΠ΅ΡΡ ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ, ΡΡΠ·Π΄Π°Π΄ΠΎΡ
ΡΡΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ, Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ
ΡΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΠΈ Π·Π° Π½Π°ΡΠ°ΡΠ° ΡΡΠ°ΡΡΠΎΠ²Π° Π»ΠΎΠΊΠ°ΡΠΈΡ β String, LowCardinality ΠΈ Enum. LowCardinality ΠΈ Enum ΡΠ΅ ΠΎΠΊΠ°Π·Π°Ρ
Π° ΠΏΠ΅Ρ ΠΏΡΡΠΈ ΠΏΠΎ-Π±ΡΡΠ·ΠΈ ΠΎΡ String. Enum Π΅ ΠΏΠΎ-Π±ΡΡΠ·, Π·Π°ΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Ρ ΡΠΈΡΠ»Π°. LowCardinality β Π·Π°ΡΠΎΡΠΎ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π·Π° GROUP BY.

ΠΠ΅ΠΊΠ° Π΄Π° ΡΡΠ»ΠΎΠΆΠ½ΠΈΠΌ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ β Π΄Π° ΠΏΠΎΠΏΠΈΡΠ°ΠΌΠ΅ ΠΊΡΠ΄Π΅ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π½Π°ΠΉ-ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈΡΡ ΠΏΠ°ΡΠΊ Π² ΠΡ ΠΠΎΡΠΊ. ΠΡΠ½ΠΎΠ²ΠΎ ΡΠ΅ ΠΈΠ·ΠΌΠ΅ΡΠΈΠΌ ΡΠΎΠ²Π° ΠΏΠΎ ΠΌΠ΅ΡΡΠ°ΡΠ°, ΠΊΡΠ΄Π΅ΡΠΎ Π½Π°ΠΉ-ΡΠ΅ΡΡΠΎ ΡΠ΅ ΠΏΠΎΡΡΡΠ²Π°Ρ ΡΠ°ΠΊΡΠΈΡΠ°, Π½ΠΎ ΡΠ΅ ΡΠΈΠ»ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΠ°ΠΌΠΎ ΡΠ΅Π·ΠΈ Π»ΠΎΠΊΠ°ΡΠΈΠΈ, ΠΊΡΠ΄Π΅ΡΠΎ ΠΈΠΌΠ° Π΄ΡΠΌΠ°ΡΠ° βΠΏΠ°ΡΠΊβ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡΡΠ° like.

ΠΠΎΠ³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ β Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ Enum Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ Π·Π°ΠΏΠΎΡΠ½Π° Π΄Π° Π·Π°Π±Π°Π²Ρ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΡΠ°Π±ΠΎΡΠΈ ΠΎΡΠ΅ ΠΏΠΎ-Π±Π°Π²Π½ΠΎ ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡ ΡΠΈΠΏ Π΄Π°Π½Π½ΠΈ String. Π’ΠΎΠ²Π° ΡΡΠ°Π²Π°, Π·Π°ΡΠΎΡΠΎ ΡΡΠ½ΠΊΡΠΈΡΡΠ° like ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π° Π·Π° Enum. ΠΠ°Π»Π°Π³Π° ΡΠ΅ Π΄Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°ΠΌΠ΅ Π½Π°ΡΠΈΡΠ΅ Π½ΠΈΠ·ΠΎΠ²Π΅ ΠΎΡ Enum Π² ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ Π½ΠΈΠ·ΠΎΠ²Π΅ β ΠΏΡΠ°Π²ΠΈΠΌ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°. LowCardinality(String) ΡΡΡΠΎ Π½Π΅ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅, Π½ΠΎ ΡΠ°ΠΌ like ΡΠ°Π±ΠΎΡΠΈ Π²ΡΡΡ
Ρ ΡΠ΅ΡΠ½ΠΈΠΊ, ΠΏΠΎΡΠ°Π΄ΠΈ ΠΊΠΎΠ΅ΡΠΎ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ ΡΠ΅ ΡΡΠΊΠΎΡΡΠ²Π° Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΡ String.
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Enum ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΠΏΠΎ-Π³Π»ΠΎΠ±Π°Π»Π΅Π½ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠΊΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°ΠΌΠ΅, ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΡΠΎΠ²Π° Π½Π° Π²ΡΡΠΊΠΎ ΠΌΡΡΡΠΎ Π² ΠΊΠΎΠ΄Π°. ΠΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΠ΅ ΡΠΌΠ΅ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ Π½ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΡ β Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ Π΅ Π΄Π° ΠΈΠ·ΠΌΠΈΡΠ»ΠΈΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π·Π° Enum. Π ΠΏΡΠΈ LowCardinality Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅.

ΠΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π·Π°ΠΏΠΈΡ, ΠΏΠΎ-ΠΈΠ·ΠΊΡΡΡΠ²Π΅Π½. ΠΡΠΎΡΡΠΎ ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΠΈΠΌ Ρ
Π΅Ρ-ΡΡΠ½ΠΊΡΠΈΡ Π·Π° Π½Π°ΡΠ΅ΡΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π₯Π΅Ρ-ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π΅ Π΄ΠΎΡΡΠ° Π±Π°Π²Π΅Π½ Π·Π°ΠΏΠΈΡ, ΠΎΡΠ½Π΅ΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅, Π·Π°ΡΠΎΠ²Π° Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ ΡΠ΅ Π·Π°Π±Π°Π²ΠΈ ΡΡΠΈ ΠΏΡΡΠΈ.

LowCardinality Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Π½ΡΠΌΠ° ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅. Π’ΠΎΠ²Π° ΡΠ΅ ΡΠ»ΡΡΠ²Π°, Π·Π°ΡΠΎΡΠΎ Π½Π°ΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡΡ ΡΠ°ΠΌΠΎ Ρ ΡΠ΅ΡΠ½ΠΈΠΊΠ°. Π₯Π΅Ρ-ΡΡΠ½ΠΊΡΠΈΡΡΠ° ΠΈΠΌΠ° Π΅Π΄ΠΈΠ½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ β ΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΌΠΎΠΆΠ΅ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° Π²ΡΡΠ½Π΅ LowCardinality.

ΠΠ°ΡΠΈΡΡ Π³Π»ΠΎΠ±Π°Π»Π΅Π½ ΠΏΠ»Π°Π½ Π΅ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ΠΌ ΡΠΊΠΎΡΠΎΡΡ Π½Π° ΡΠ°Π±ΠΎΡΠ°, Π½Π΅ ΠΏΠΎ-Π½ΠΈΡΠΊΠ° ΠΎΡ ΡΠ°Π·ΠΈ Π½Π° String ΠΏΡΠΈ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΠ²Π°, ΠΈ Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈΠΌ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ΡΠΎ. Π ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π½ΡΠΊΠΎΠ³Π° ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ String Ρ LowCardinality, Π²ΠΈΠ΅ ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ClickHouse ΠΈ Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
