ΠΠ½Π°Π»ΠΈΡΠΈΡΠ½Π°ΡΠ° Π‘Π£ΠΠ 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 GB β ΠΌΠΈΡΠ»Ρ, Π½Π΅ ΡΠΈ ΡΡΡΡΠ²Π° Π΄Π° ΡΠ΅ ΡΠ°Π·ΡΠΈΡΠ° Π½Π° ΡΠΎΠ²Π°.
ΠΡΠ΅Π½ΠΊΠ° Π½Π° ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°

Π‘Π΅Π³Π° ΡΠ΅ ΠΎΡΠ΅Π½ΠΈΠΌ ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°. ΠΠ° Π΄Π° Ρ ΠΎΡΠ΅Π½Ρ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π΄Π°ΡΠ°ΡΠ΅Ρ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ°ΠΊΡΠΈΠΌΠ΅ΡΡΠΎΠ²ΠΈ ΠΏΡΡΡΠ²Π°Π½ΠΈΡ Π² ΠΡ ΠΠΎΡΠΊ. Π’ΠΎΠΉ Π΅ Π½Π° 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
