ApsaraDB for ClickHouse prend en charge les types de données répertoriés dans cette rubrique. Pour consulter le système de types complet, reportez-vous à la section Types de données de la documentation open source de ClickHouse.
Types de données pris en charge
Entiers
Entiers signés. Privilégiez le type le plus petit couvrant votre plage de valeurs afin de minimiser l'espace de stockage.
| Mot-clé | Plage |
|---|---|
Int8 |
–128 à 127 |
Int16 |
–32 768 à 32 767 |
Int32 |
–2 147 483 648 à 2 147 483 647 |
Int64 |
–9 223 372 036 854 775 808 à 9 223 372 036 854 775 807 |
Pour les entiers non signés (UInt8, UInt16, UInt32, UInt64), consultez la section Types d'entiers de la documentation ClickHouse.
Virgule flottante
| Mot-clé | Description |
|---|---|
Float32 |
Virgule flottante simple précision. Équivalent au type FLOAT en C++. Occupe 4 octets ; binaire 32 bits. |
Float64 |
Virgule flottante double précision. Équivalent au type DOUBLE en C++. Occupe 8 octets ; binaire 64 bits. |
Pour les données financières ou commerciales nécessitant des calculs exacts, privilégiez le typeDecimalplutôt queFloat32ouFloat64. L'arithmétique en virgule flottante peut introduire des erreurs d'arrondi.
Décimal
Nombres à virgule fixe signés qui conservent leur précision lors des opérations d'addition, de soustraction et de multiplication.
Formats pris en charge : Decimal(P, S), Decimal32(S), Decimal64(S), Decimal128(S).
Chaîne
| Mot-clé | Description |
|---|---|
String |
Chaîne de longueur variable de toute taille, y compris les octets nuls. Équivalent aux types VARCHAR, BLOB et CLOB dans d'autres systèmes de base de données. |
FixedString(N) |
Chaîne de longueur fixe composée exactement de N octets. Plus efficace que le type String lorsque toutes les valeurs possèdent la même longueur en octets. |
Cas d'utilisation optimaux pour le type FixedString :
Représentation binaire des adresses IPv6 :
FixedString(16)Codes de langue tels que
ru_RUeten_USCodes de devise tels que
USDetRUBValeurs de hachage MD5 :
FixedString(16)Valeurs de hachage SHA-256 :
FixedString(32)
Date et heure
| Mot-clé | Description |
|---|---|
Date |
Stocke une date sous forme du nombre de jours écoulés depuis le 01/01/1970. Occupe 2 octets. Non signé. Stocké sans fuseau horaire. |
DateTime |
Stocke une date et une heure sous forme du nombre de secondes écoulées depuis le 01/01/1970 00:00:00. Occupe 4 octets. Non signé. La plage de valeurs du type DateTime est identique à celle du type Date. La valeur minimale est 1970-01-01 00:00:00. Précision à la seconde près ; les secondes intercalaires ne sont pas prises en charge. Le fuseau horaire correspond au fuseau horaire système du client ou du serveur. |
DateTime64 |
Stocke à la fois la date et l'heure d'un instant précis. |
Le typeDateest plus rapide que le typeDateTimedans la plupart des cas et nécessite moitié moins d'espace de stockage (2 octets contre 4 octets). La différence de taille devient plus significative après compression.
Booléen
ClickHouse ne dispose pas de type booléen natif. Utilisez le type UInt8 pour les valeurs booléennes : 0 pour faux, 1 pour vrai.
Tableau
Array(T) — collection d'éléments du même type T. Le type d'élément peut être n'importe quel type ClickHouse, y compris le type Array.
Évitez les tableaux multidimensionnels. ClickHouse ne les prend en charge que partiellement : il est impossible de stocker des tableaux multidimensionnels dans les tables MergeTree.
N-uplet (Tuple)
Tuple(T1, T2, ...) — collection d'éléments de types différents.
Les n-uplets ne peuvent pas être stockés dans des tables, sauf dans les tables en mémoire. Utilisez-les pour regrouper des colonnes temporaires dans des requêtes avec des expressions IN ou des fonctions lambda.
Domaine
Le type Domain stocke les adresses IP au format binaire avec une saisie et une sortie lisibles par l'homme :
Adresses IPv4 : compatibles au niveau binaire avec le type
UInt32.Adresses IPv6 : compatibles au niveau binaire avec le type
FixedString(16).
Énumération
| Mot-clé | Plage | Notes |
|---|---|---|
Enum8 |
–128 à 127 | — |
Enum16 |
–32 768 à 32 767 | Les valeurs peuvent être vides |
Nullable
Nullable(T) — encapsule n'importe quel type de base T pour autoriser les valeurs NULL. La valeur par défaut est NULL sauf si la configuration du serveur ClickHouse spécifie le contraire.
Contraintes :
Les colonnes
Nullablene peuvent pas être incluses dans les index de table.
Nested
Nested — structure de données imbriquée, semblable à une table intégrée dans une cellule. Définissez-la avec des noms de champs et des types, en utilisant la même syntaxe que pour l'instruction CREATE TABLE. Chaque ligne de la table externe peut correspondre à un nombre quelconque de lignes dans la structure imbriquée.