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

# Tipos de mapeo

> Tipos de mapeo en ClickHouse y Elasticsearch

Elasticsearch y ClickHouse admiten una amplia variedad de tipos de datos, pero su almacenamiento subyacente y sus modelos de consulta son fundamentalmente distintos. En esta sección se muestran las correspondencias entre los tipos de campo de Elasticsearch más utilizados y sus equivalentes en ClickHouse, cuando existen, y se ofrece contexto para orientar las migraciones. Cuando no existe un equivalente, se incluyen alternativas o notas en los comentarios.

| **Tipo de Elasticsearch**          | **Equivalente en ClickHouse**                                                                                                                                                                                                                                                           | **Comentarios**                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `boolean`                          | [`UInt8`](/es/reference/data-types/int-uint)  o [`Bool`](/es/reference/data-types/boolean)                                                                                                                                                                                              | ClickHouse admite `Boolean` como alias de `UInt8` en las versiones más recientes.                                                                                                                                                                                                                                                                                                                                                                             |
| `keyword`                          | [`String`](/es/reference/data-types/string)                                                                                                                                                                                                                                             | Se usa para filtrado por coincidencia exacta, agrupación y ordenación.                                                                                                                                                                                                                                                                                                                                                                                        |
| `text`                             | [`String`](/es/reference/data-types/string)                                                                                                                                                                                                                                             | La búsqueda de texto completo es limitada en ClickHouse; la tokenización requiere lógica personalizada mediante funciones como `tokens` combinadas con funciones de arrays.                                                                                                                                                                                                                                                                                   |
| `long`                             | [`Int64`](/es/reference/data-types/int-uint)                                                                                                                                                                                                                                            | Entero con signo de 64 bits.                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `integer`                          | [`Int32`](/es/reference/data-types/int-uint)                                                                                                                                                                                                                                            | Entero con signo de 32 bits.                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `short`                            | [`Int16`](/es/reference/data-types/int-uint)                                                                                                                                                                                                                                            | Entero con signo de 16 bits.                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `byte`                             | [`Int8`](/es/reference/data-types/int-uint)                                                                                                                                                                                                                                             | Entero con signo de 8 bits.                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `unsigned_long`                    | [`UInt64`](/es/reference/data-types/int-uint)                                                                                                                                                                                                                                           | Entero sin signo de 64 bits.                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `double`                           | [`Float64`](/es/reference/data-types/float)                                                                                                                                                                                                                                             | Coma flotante de 64 bits.                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `float`                            | [`Float32`](/es/reference/data-types/float)                                                                                                                                                                                                                                             | Coma flotante de 32 bits.                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `half_float`                       | [`Float32`](/es/reference/data-types/float) o [`BFloat16`](/es/reference/data-types/float)                                                                                                                                                                                              | Equivalente más cercano. ClickHouse no tiene un tipo de coma flotante de 16 bits. ClickHouse tiene `BFloat16`; este es distinto de Half-float IEE-754: half-float ofrece mayor precisión con un rango menor, mientras que bfloat16 sacrifica precisión a cambio de un rango más amplio, lo que lo hace más adecuado para cargas de trabajo de aprendizaje automático.                                                                                         |
| `scaled_float`                     | [`Decimal(x, y)`](/es/reference/data-types/decimal)                                                                                                                                                                                                                                     | Almacena valores numéricos de punto fijo.                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `date`                             | [`DateTime`](/es/reference/data-types/datetime)                                                                                                                                                                                                                                         | Tipos de fecha equivalentes con precisión de segundos.                                                                                                                                                                                                                                                                                                                                                                                                        |
| `date_nanos`                       | [`DateTime64`](/es/reference/data-types/datetime64)                                                                                                                                                                                                                                     | ClickHouse admite precisión de nanosegundos con `DateTime64(9)`.                                                                                                                                                                                                                                                                                                                                                                                              |
| `binary`                           | [`String`](/es/reference/data-types/string), [`FixedString(N)`](/es/reference/data-types/fixedstring)                                                                                                                                                                                   | Requiere decodificación Base64 para los campos binarios.                                                                                                                                                                                                                                                                                                                                                                                                      |
| `ip`                               | [`IPv4`](/es/reference/data-types/ipv4), [`IPv6`](/es/reference/data-types/ipv6)                                                                                                                                                                                                        | Tipos nativos `IPv4` y `IPv6` disponibles.                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `object`                           | [`Nested`](/es/reference/data-types/nested-data-structures), [`Map`](/es/reference/data-types/map), [`Tuple`](/es/reference/data-types/tuple), [`JSON`](/es/reference/data-types/newjson)                                                                                               | ClickHouse puede modelar objetos similares a JSON usando [`Nested`](/es/reference/data-types/nested-data-structures) o [`JSON`](/es/reference/data-types/newjson).                                                                                                                                                                                                                                                                                            |
| `flattened`                        | [`String`](/es/reference/data-types/string)                                                                                                                                                                                                                                             | El tipo flattened en Elasticsearch almacena objetos JSON completos como campos únicos, lo que permite acceso flexible y sin esquema a claves anidadas sin necesidad de un mapeo completo. En ClickHouse, puede lograrse una funcionalidad similar usando el tipo String, pero requiere que el procesamiento se realice en vistas materializadas.                                                                                                              |
| `nested`                           | [`Nested`](/es/reference/data-types/nested-data-structures)                                                                                                                                                                                                                             | Las columnas `Nested` de ClickHouse proporcionan una semántica similar para subcampos agrupados, siempre que los usuarios usen `flatten_nested=0`.                                                                                                                                                                                                                                                                                                            |
| `join`                             | NA                                                                                                                                                                                                                                                                                      | No existe un concepto directo de relaciones padre-hijo. No es necesario en ClickHouse, ya que se admiten JOIN entre tablas.                                                                                                                                                                                                                                                                                                                                   |
| `alias`                            | [`Alias`](/es/reference/statements/create/table#alias) modificador de columna                                                                                                                                                                                                           | Los alias [son compatibles](/es/reference/statements/create/table#alias) mediante un modificador de campo. Se pueden aplicar funciones a este alias, por ejemplo `size String ALIAS formatReadableSize(size_bytes)`                                                                                                                                                                                                                                           |
| `range` types (`*_range`)          | [`Tuple(start, end)`](/es/reference/data-types/tuple) o [`Array(T)`](/es/reference/data-types/array)                                                                                                                                                                                    | ClickHouse no tiene un tipo range nativo, pero los rangos numéricos y de fecha pueden representarse mediante estructuras [`Tuple(start, end)`](/es/reference/data-types/tuple) o [`Array`](/es/reference/data-types/array). Para rangos IP (`ip_range`), almacene los valores CIDR como `String` y evalúelos con funciones como `isIPAddressInRange()`. Como alternativa, considere diccionarios de búsqueda basados en `ip_trie` para un filtrado eficiente. |
| `aggregate_metric_double`          | [`AggregateFunction(...)`](/es/reference/data-types/aggregatefunction) y [`SimpleAggregateFunction(...)`](/es/reference/data-types/simpleaggregatefunction)                                                                                                                             | Use estados de funciones de agregación y vistas materializadas para modelar métricas preagregadas. Todas las funciones de agregación admiten estados de agregación.                                                                                                                                                                                                                                                                                           |
| `histogram`                        | [`Tuple(Array(Float64), Array(UInt64))`](/es/reference/data-types/tuple)                                                                                                                                                                                                                | Represente manualmente buckets y recuentos usando arrays o esquemas personalizados.                                                                                                                                                                                                                                                                                                                                                                           |
| `annotated-text`                   | [`String`](/es/reference/data-types/string)                                                                                                                                                                                                                                             | No hay soporte integrado para búsqueda con reconocimiento de entidades ni anotaciones.                                                                                                                                                                                                                                                                                                                                                                        |
| `completion`, `search_as_you_type` | NA                                                                                                                                                                                                                                                                                      | No existe un motor nativo de autocompletado o sugerencias. Puede reproducirse con `String` y [funciones de búsqueda](/es/reference/functions/regular-functions/string-search-functions).                                                                                                                                                                                                                                                                      |
| `semantic_text`                    | NA                                                                                                                                                                                                                                                                                      | No hay búsqueda semántica nativa; genere embeddings y use búsqueda vectorial.                                                                                                                                                                                                                                                                                                                                                                                 |
| `token_count`                      | [`Int32`](/es/reference/data-types/int-uint)                                                                                                                                                                                                                                            | Úselo durante la ingestión para calcular manualmente el recuento de tokens, por ejemplo con la función `length(tokens())`, por ejemplo con una columna materializada                                                                                                                                                                                                                                                                                          |
| `dense_vector`                     | [`Array(Float32)`](/es/reference/data-types/array)                                                                                                                                                                                                                                      | Use arrays para almacenar embeddings                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `sparse_vector`                    | [`Map(UInt32, Float32)`](/es/reference/data-types/map)                                                                                                                                                                                                                                  | Simule vectores dispersos con maps. No hay soporte nativo para vectores dispersos.                                                                                                                                                                                                                                                                                                                                                                            |
| `rank_feature` / `rank_features`   | [`Float32`](/es/reference/data-types/float), [`Array(Float32)`](/es/reference/data-types/array)                                                                                                                                                                                         | No hay refuerzo nativo en tiempo de consulta, pero puede modelarse manualmente en la lógica de puntuación.                                                                                                                                                                                                                                                                                                                                                    |
| `geo_point`                        | [`Tuple(Float64, Float64)`](/es/reference/data-types/tuple) o [`Point`](/es/reference/data-types/geo#point)                                                                                                                                                                             | Use una tupla de (latitud, longitud). [`Point`](/es/reference/data-types/geo#point) está disponible como tipo de ClickHouse.                                                                                                                                                                                                                                                                                                                                  |
| `geo_shape`, `shape`               | [`Ring`](/es/reference/data-types/geo#ring), [`LineString`](/es/reference/data-types/geo#linestring), [`MultiLineString`](/es/reference/data-types/geo#multilinestring), [`Polygon`](/es/reference/data-types/geo#polygon), [`MultiPolygon`](/es/reference/data-types/geo#multipolygon) | Soporte nativo para formas geoespaciales e indexación espacial.                                                                                                                                                                                                                                                                                                                                                                                               |
| `percolator`                       | NA                                                                                                                                                                                                                                                                                      | No existe el concepto de indexación de consultas. Use SQL estándar + vistas materializadas incrementales en su lugar.                                                                                                                                                                                                                                                                                                                                         |
| `version`                          | [`String`](/es/reference/data-types/string)                                                                                                                                                                                                                                             | ClickHouse no tiene un tipo de versión nativo. Almacene las versiones como cadenas y use funciones UDF personalizadas para realizar comparaciones semánticas si es necesario. Considere normalizarlas a formatos numéricos si se requieren consultas de rango.                                                                                                                                                                                                |

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

* **Arrays**: En Elasticsearch, todos los campos admiten arrays de forma nativa. En ClickHouse, los arrays deben definirse explícitamente (p. ej., `Array(String)`), con la ventaja de que se puede acceder a posiciones específicas y consultarlas, p. ej. `an_array[1]`.
* **Campos múltiples**: Elasticsearch permite indexar el [mismo campo de varias formas](https://www.elastic.co/docs/reference/elasticsearch/mapping-reference/multi-fields#_multi_fields_with_multiple_analyzers) (p. ej., tanto como `text` y como `keyword`). En ClickHouse, este patrón debe modelarse mediante columnas o vistas independientes.
* **Tipos Map y JSON** - En ClickHouse, el tipo [`Map`](/es/reference/data-types/map) se usa habitualmente para modelar estructuras dinámicas de clave-valor, como `resourceAttributes` y `logAttributes`. Este tipo permite una ingestión flexible y sin esquema al admitir claves arbitrarias en tiempo de ejecución, de forma similar a los objetos JSON de Elasticsearch. Sin embargo, hay limitaciones importantes que conviene tener en cuenta:

  * **Tipos de valor uniformes**: las columnas [`Map`](/es/reference/data-types/map) de ClickHouse deben tener un tipo de valor coherente (p. ej., `Map(String, String)`). Los valores de tipos mixtos no se admiten sin coerción.
  * **Coste en rendimiento**: acceder a cualquier clave de un [`Map`](/es/reference/data-types/map) requiere cargar el mapa completo en memoria, lo que puede penalizar el rendimiento.
  * **Sin subcolumnas**: a diferencia de JSON, las claves de un [`Map`](/es/reference/data-types/map) no se representan como subcolumnas reales, lo que limita la capacidad de ClickHouse para indexar, comprimir y consultar de forma eficiente.

  Debido a estas limitaciones, ClickStack está dejando atrás [`Map`](/es/reference/data-types/map) en favor del tipo [`JSON`](/es/reference/data-types/newjson) mejorado de ClickHouse. El tipo [`JSON`](/es/reference/data-types/newjson) resuelve muchas de las limitaciones de `Map`:

  * **Almacenamiento columnar real**: cada ruta JSON se almacena como una subcolumna, lo que permite compresión, filtrado y ejecución vectorizada de consultas de forma eficiente.
  * **Soporte para tipos mixtos**: distintos tipos de datos (p. ej., enteros, cadenas y arrays) pueden coexistir bajo la misma ruta sin coerción ni unificación de tipos.
  * **Escalabilidad del sistema de archivos**: los límites internos sobre claves dinámicas (`max_dynamic_paths`) y tipos (`max_dynamic_types`) evitan una explosión de archivos de columna en disco, incluso con conjuntos de claves de alta cardinalidad.
  * **Almacenamiento denso**: los valores nulos y ausentes se almacenan de forma dispersa para evitar una sobrecarga innecesaria.

    El tipo [`JSON`](/es/reference/data-types/newjson) es especialmente adecuado para cargas de trabajo de observabilidad, ya que ofrece la flexibilidad de la ingestión sin esquema junto con el rendimiento y la escalabilidad de los tipos nativos de ClickHouse, lo que lo convierte en un reemplazo ideal para [`Map`](/es/reference/data-types/map) en campos de atributos dinámicos.

    Para obtener más información sobre el tipo JSON, recomendamos la [guía de JSON](/es/guides/clickhouse/data-formats/json/intro) y ["How we built a new powerful JSON data type for ClickHouse"](https://clickhouse.com/blog/a-new-powerful-json-data-type-for-clickhouse).
