> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Correspondance des types

> Correspondance des types entre ClickHouse et Elasticsearch

Elasticsearch et ClickHouse prennent en charge une grande variété de types de données, mais leurs modèles de stockage sous-jacents et leurs modèles de requête sont fondamentalement différents. Cette section établit la correspondance entre les types de champ Elasticsearch couramment utilisés et leurs équivalents dans ClickHouse, lorsqu’ils existent, et fournit le contexte nécessaire pour guider les migrations. Lorsqu’aucun équivalent n’existe, des alternatives ou des remarques sont fournies dans les commentaires.

| **Type dans Elasticsearch**        | **Équivalent ClickHouse**                                                                                                                                                                                                                                                               | **Commentaires**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `boolean`                          | [`UInt8`](/fr/reference/data-types/int-uint)  ou [`Bool`](/fr/reference/data-types/boolean)                                                                                                                                                                                             | ClickHouse prend en charge `Boolean` comme alias de `UInt8` dans les versions récentes.                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `keyword`                          | [`String`](/fr/reference/data-types/string)                                                                                                                                                                                                                                             | Utilisé pour le filtrage par correspondance exacte, le regroupement et le tri.                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `text`                             | [`String`](/fr/reference/data-types/string)                                                                                                                                                                                                                                             | La recherche en texte intégral est limitée dans ClickHouse ; la tokenization nécessite une logique personnalisée à l’aide de fonctions telles que `tokens`, combinées à des array functions.                                                                                                                                                                                                                                                                                                              |
| `long`                             | [`Int64`](/fr/reference/data-types/int-uint)                                                                                                                                                                                                                                            | Entier signé sur 64 bits.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `integer`                          | [`Int32`](/fr/reference/data-types/int-uint)                                                                                                                                                                                                                                            | Entier signé sur 32 bits.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `short`                            | [`Int16`](/fr/reference/data-types/int-uint)                                                                                                                                                                                                                                            | Entier signé sur 16 bits.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `byte`                             | [`Int8`](/fr/reference/data-types/int-uint)                                                                                                                                                                                                                                             | Entier signé sur 8 bits.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `unsigned_long`                    | [`UInt64`](/fr/reference/data-types/int-uint)                                                                                                                                                                                                                                           | Entier non signé sur 64 bits.                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `double`                           | [`Float64`](/fr/reference/data-types/float)                                                                                                                                                                                                                                             | Nombre à virgule flottante sur 64 bits.                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `float`                            | [`Float32`](/fr/reference/data-types/float)                                                                                                                                                                                                                                             | Nombre à virgule flottante sur 32 bits.                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `half_float`                       | [`Float32`](/fr/reference/data-types/float) ou [`BFloat16`](/fr/reference/data-types/float)                                                                                                                                                                                             | Équivalent le plus proche. ClickHouse ne dispose pas de flottant 16 bits. ClickHouse prend en charge `BFloat16` ; ce type diffère du half-float IEEE-754 : le half-float offre une précision plus élevée avec une plage plus réduite, tandis que le bfloat16 sacrifie de la précision au profit d’une plage plus large, ce qui le rend mieux adapté aux charges de travail de machine learning.                                                                                                           |
| `scaled_float`                     | [`Decimal(x, y)`](/fr/reference/data-types/decimal)                                                                                                                                                                                                                                     | Stocke des numeric values à virgule fixe.                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `date`                             | [`DateTime`](/fr/reference/data-types/datetime)                                                                                                                                                                                                                                         | Types de date équivalents avec une précision à la seconde.                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `date_nanos`                       | [`DateTime64`](/fr/reference/data-types/datetime64)                                                                                                                                                                                                                                     | ClickHouse prend en charge une précision à la nanoseconde avec `DateTime64(9)`.                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `binary`                           | [`String`](/fr/reference/data-types/string), [`FixedString(N)`](/fr/reference/data-types/fixedstring)                                                                                                                                                                                   | Nécessite un décodage base64 pour les champs binaires.                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `ip`                               | [`IPv4`](/fr/reference/data-types/ipv4), [`IPv6`](/fr/reference/data-types/ipv6)                                                                                                                                                                                                        | Types `IPv4` et `IPv6` natifs disponibles.                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `object`                           | [`Nested`](/fr/reference/data-types/nested-data-structures/index), [`Map`](/fr/reference/data-types/map), [`Tuple`](/fr/reference/data-types/tuple), [`JSON`](/fr/reference/data-types/newjson)                                                                                         | ClickHouse peut modéliser des objets de type JSON à l’aide de [`Nested`](/fr/reference/data-types/nested-data-structures/index) ou [`JSON`](/fr/reference/data-types/newjson).                                                                                                                                                                                                                                                                                                                            |
| `flattened`                        | [`String`](/fr/reference/data-types/string)                                                                                                                                                                                                                                             | Le type flattened dans Elasticsearch stocke des objets JSON entiers dans un seul champ, ce qui permet un accès flexible et sans schéma aux clés imbriquées sans mappage complet. Dans ClickHouse, une fonctionnalité similaire peut être obtenue à l’aide du type String, mais nécessite un traitement dans des materialized views.                                                                                                                                                                       |
| `nested`                           | [`Nested`](/fr/reference/data-types/nested-data-structures/index)                                                                                                                                                                                                                       | Les colonnes ClickHouse `Nested` offrent une sémantique similaire pour les sous-champs groupés, à condition d’utiliser `flatten_nested=0`.                                                                                                                                                                                                                                                                                                                                                                |
| `join`                             | NA                                                                                                                                                                                                                                                                                      | Il n’existe pas de concept direct de relation parent-enfant. Ce n’est pas nécessaire dans ClickHouse, car les jointures entre tables sont prises en charge.                                                                                                                                                                                                                                                                                                                                               |
| `alias`                            | [`Alias`](/fr/reference/statements/create/table#alias) modificateur de colonne                                                                                                                                                                                                          | Les alias [sont pris en charge](/fr/reference/statements/create/table#alias) via un modificateur de colonne. Des fonctions peuvent être appliquées à ces alias, par exemple `size String ALIAS formatReadableSize(size_bytes)`                                                                                                                                                                                                                                                                            |
| `range` types (`*_range`)          | [`Tuple(start, end)`](/fr/reference/data-types/tuple) ou [`Array(T)`](/fr/reference/data-types/array)                                                                                                                                                                                   | ClickHouse ne dispose pas de type range natif, mais les plages numériques et de dates peuvent être représentées à l’aide de structures [`Tuple(start, end)`](/fr/reference/data-types/tuple) ou [`Array`](/fr/reference/data-types/array). Pour les plages IP (`ip_range`), stockez les valeurs CIDR sous forme de `String` et évaluez-les avec des fonctions comme `isIPAddressInRange()`. Vous pouvez également envisager des dictionnaires de recherche basés sur `ip_trie` pour un filtrage efficace. |
| `aggregate_metric_double`          | [`AggregateFunction(...)`](/fr/reference/data-types/aggregatefunction) et [`SimpleAggregateFunction(...)`](/fr/reference/data-types/simpleaggregatefunction)                                                                                                                            | Utilisez des aggregate function states et des vues matérialisées pour modéliser des métriques préagrégées. Toutes les fonctions d’agrégation prennent en charge les aggregate states.                                                                                                                                                                                                                                                                                                                     |
| `histogram`                        | [`Tuple(Array(Float64), Array(UInt64))`](/fr/reference/data-types/tuple)                                                                                                                                                                                                                | Représentez manuellement les buckets et les comptages à l’aide de tableaux ou de schémas personnalisés.                                                                                                                                                                                                                                                                                                                                                                                                   |
| `annotated-text`                   | [`String`](/fr/reference/data-types/string)                                                                                                                                                                                                                                             | Aucune prise en charge intégrée de la recherche sensible aux entités ou des annotations.                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `completion`, `search_as_you_type` | NA                                                                                                                                                                                                                                                                                      | Aucun moteur natif d’autocomplétion ou de suggestion. Peut être reproduit avec `String` et des [fonctions de recherche](/fr/reference/functions/regular-functions/string-search-functions).                                                                                                                                                                                                                                                                                                               |
| `semantic_text`                    | NA                                                                                                                                                                                                                                                                                      | Aucune recherche sémantique native : générez des embeddings et utilisez la recherche vectorielle.                                                                                                                                                                                                                                                                                                                                                                                                         |
| `token_count`                      | [`Int32`](/fr/reference/data-types/int-uint)                                                                                                                                                                                                                                            | À utiliser lors de l’ingestion pour calculer manuellement le nombre de tokens, par exemple avec la fonction `length(tokens())`, notamment via une colonne matérialisée                                                                                                                                                                                                                                                                                                                                    |
| `dense_vector`                     | [`Array(Float32)`](/fr/reference/data-types/array)                                                                                                                                                                                                                                      | Utilisez des tableaux pour stocker les embeddings                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `sparse_vector`                    | [`Map(UInt32, Float32)`](/fr/reference/data-types/map)                                                                                                                                                                                                                                  | Simulez des vecteurs creux avec des `Map`. Aucune prise en charge native des vecteurs creux.                                                                                                                                                                                                                                                                                                                                                                                                              |
| `rank_feature` / `rank_features`   | [`Float32`](/fr/reference/data-types/float), [`Array(Float32)`](/fr/reference/data-types/array)                                                                                                                                                                                         | Pas de pondération native à l’exécution des requêtes, mais cela peut être modélisé manuellement dans la logique de scoring.                                                                                                                                                                                                                                                                                                                                                                               |
| `geo_point`                        | [`Tuple(Float64, Float64)`](/fr/reference/data-types/tuple) ou [`Point`](/fr/reference/data-types/geo#point)                                                                                                                                                                            | Utilisez un tuple de (latitude, longitude). [`Point`](/fr/reference/data-types/geo#point) est également disponible comme type ClickHouse.                                                                                                                                                                                                                                                                                                                                                                 |
| `geo_shape`, `shape`               | [`Ring`](/fr/reference/data-types/geo#ring), [`LineString`](/fr/reference/data-types/geo#linestring), [`MultiLineString`](/fr/reference/data-types/geo#multilinestring), [`Polygon`](/fr/reference/data-types/geo#polygon), [`MultiPolygon`](/fr/reference/data-types/geo#multipolygon) | Prise en charge native des formes géospatiales et de l’indexation spatiale.                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `percolator`                       | NA                                                                                                                                                                                                                                                                                      | Il n’existe pas de concept d’indexation de requêtes. Utilisez plutôt SQL standard + des vues matérialisées incrémentales.                                                                                                                                                                                                                                                                                                                                                                                 |
| `version`                          | [`String`](/fr/reference/data-types/string)                                                                                                                                                                                                                                             | ClickHouse n’a pas de type de version natif. Stockez les versions sous forme de chaînes et utilisez des UDF personnalisées pour effectuer des comparaisons sémantiques si nécessaire. Envisagez une normalisation vers des formats numériques si des requêtes par plage sont nécessaires.                                                                                                                                                                                                                 |

<div id="notes">
  ### Remarques
</div>

* **Tableaux** : dans Elasticsearch, tous les champs prennent en charge les tableaux de manière native. Dans ClickHouse, les tableaux doivent être définis explicitement (par ex. `Array(String)`), avec l’avantage de pouvoir accéder à des positions spécifiques et les interroger, par ex. `an_array[1]`.
* **Champs multiples** : Elasticsearch permet d’indexer [un même champ de plusieurs façons](https://www.elastic.co/docs/reference/elasticsearch/mapping-reference/multi-fields#_multi_fields_with_multiple_analyzers) (par ex. à la fois comme `text` et comme `keyword`). Dans ClickHouse, ce schéma doit être modélisé à l’aide de colonnes ou de vues distinctes.
* **Types Map et JSON** - Dans ClickHouse, le type [`Map`](/fr/reference/data-types/map) est couramment utilisé pour modéliser des structures dynamiques clé-valeur telles que `resourceAttributes` et `logAttributes`. Ce type permet une ingestion flexible sans schéma en autorisant l’ajout de clés arbitraires à l’exécution — dans un esprit proche des objets JSON d’Elasticsearch. Il existe toutefois des limites importantes à prendre en compte :

  * **Types de valeurs uniformes** : les colonnes [`Map`](/fr/reference/data-types/map) dans ClickHouse doivent avoir un type de valeur cohérent (par ex. `Map(String, String)`). Les valeurs de types mixtes ne sont pas prises en charge sans coercition.
  * **Coût en performances** : l’accès à n’importe quelle clé dans un [`Map`](/fr/reference/data-types/map) nécessite de charger la map entière en mémoire, ce qui peut nuire aux performances.
  * **Pas de sous-colonnes** : contrairement à JSON, les clés d’un [`Map`](/fr/reference/data-types/map) ne sont pas représentées comme de véritables sous-colonnes, ce qui limite la capacité de ClickHouse à indexer, compresser et interroger efficacement.

  En raison de ces limitations, ClickStack abandonne progressivement [`Map`](/fr/reference/data-types/map) au profit du type [`JSON`](/fr/reference/data-types/newjson) amélioré de ClickHouse. Le type [`JSON`](/fr/reference/data-types/newjson) corrige bon nombre des limites de `Map` :

  * **Véritable stockage en colonnes** : chaque chemin JSON est stocké sous forme de sous-colonne, ce qui permet une compression, un filtrage et une exécution vectorisée des requêtes efficaces.
  * **Prise en charge des types mixtes** : différents types de données (par ex. entiers, chaînes, tableaux) peuvent coexister sous le même chemin sans coercition ni unification de type.
  * **Scalabilité du système de fichiers** : des limites internes sur les clés dynamiques (`max_dynamic_paths`) et les types (`max_dynamic_types`) empêchent une explosion du nombre de fichiers de colonnes sur disque, même avec des ensembles de clés à forte cardinalité.
  * **Stockage dense** : les valeurs nulles et les valeurs manquantes sont stockées de manière clairsemée afin d’éviter toute surcharge inutile.

    Le type [`JSON`](/fr/reference/data-types/newjson) est particulièrement bien adapté aux charges de travail d’observabilité, en offrant la flexibilité d’une ingestion sans schéma avec les performances et la scalabilité des types natifs de ClickHouse — ce qui en fait un remplacement idéal de [`Map`](/fr/reference/data-types/map) pour les champs d’attributs dynamiques.

    Pour plus de détails sur le type JSON, nous recommandons le [guide JSON](/fr/guides/clickhouse/data-formats/json/intro) ainsi que ["How we built a new powerful JSON data type for ClickHouse"](https://clickhouse.com/blog/a-new-powerful-json-data-type-for-clickhouse).
