Types de données
SUPER), ce qui est une source fréquente de frustration pour les utilisateurs. ClickHouse permet aussi
de conserver des états d’agrégation, soit au moment de la requête, soit même dans une table.
Cela permet de préagréger les données, généralement
à l’aide d’une vue matérialisée, et peut considérablement améliorer les performances des requêtes
courantes.
Ci-dessous, nous indiquons le type ClickHouse équivalent pour chaque type Redshift :
| Redshift | ClickHouse |
|---|---|
SMALLINT | Int8 * |
INTEGER | Int32 * |
BIGINT | Int64 * |
DECIMAL | UInt128, UInt256, Int128, Int256, Decimal(P, S), Decimal32(S), Decimal64(S), Decimal128(S), Decimal256(S) - (haute précision et plages de valeurs étendues) |
REAL | Float32 |
DOUBLE PRECISION | Float64 |
BOOLEAN | Bool |
CHAR | String, FixedString |
VARCHAR ** | String |
DATE | Date32 |
TIMESTAMP | DateTime, DateTime64 |
TIMESTAMPTZ | DateTime, DateTime64 |
GEOMETRY | Types de données géo |
GEOGRAPHY | Types de données Geo (moins aboutis, p. ex. sans systèmes de coordonnées - cela peut être émulé avec des fonctions) |
HLLSKETCH | AggregateFunction(uniqHLL12, X) |
SUPER | Tuple, Nested, Array, JSON, Map |
TIME | DateTime, DateTime64 |
TIMETZ | DateTime, DateTime64 |
VARBYTE ** | String associé aux fonctions Bit et d’encodage |
UInt8, UInt32, UInt32 et UInt64.
**Le type String de ClickHouse n’est pas limité par défaut, mais il peut être restreint à des longueurs spécifiques à l’aide de contraintes.
Syntaxe DDL
Clés de tri
SORTKEY :
ORDER BY pour définir l’ordre de tri :
COMPOUND par défaut. Lorsque des données sont ajoutées à Redshift, vous devez exécuter les commandes VACUUM et ANALYZE pour réordonner les données nouvellement ajoutées et mettre à jour les statistiques du planificateur de requêtes ; sinon, l’espace non trié augmente. Aucun processus de ce type n’est nécessaire dans ClickHouse.
Redshift prend en charge quelques fonctionnalités pratiques pour les clés de tri. La première concerne les clés de tri automatiques (avec SORTKEY AUTO). Bien que cela puisse convenir pour démarrer, des clés de tri explicites garantissent les meilleures performances et la meilleure efficacité de stockage lorsque la clé de tri est optimale. La seconde est la clé de tri INTERLEAVED,
qui accorde le même poids à un sous-ensemble de colonnes de la clé de tri afin d’améliorer
les performances lorsqu’une requête utilise une ou plusieurs colonnes de tri secondaires. ClickHouse
prend en charge des projections explicites, qui permettent d’obtenir le
même résultat final avec une configuration légèrement différente.
Vous devez savoir que le concept de « clé primaire » recouvre des réalités différentes
dans ClickHouse et Redshift. Dans Redshift, la clé primaire se rapproche du concept traditionnel
des SGBDR, destiné à imposer des contraintes. Cependant, celles-ci ne sont pas strictement
appliquées dans Redshift et servent plutôt d’indications pour le planificateur de requêtes et la
distribution des données entre les nœuds. Dans ClickHouse, la clé primaire désigne les colonnes utilisées
pour construire l’index primaire sparse, qui sert à garantir que les données sont ordonnées sur
le disque, afin de maximiser la compression tout en évitant de surcharger l’index primaire et de
gaspiller de la mémoire.