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

# Tipos de mapeamento

> Tipos de mapeamento no ClickHouse e no Elasticsearch

Elasticsearch e ClickHouse oferecem suporte a uma grande variedade de tipos de dados, mas seus modelos subjacentes de armazenamento e consulta são fundamentalmente diferentes. Esta seção relaciona os tipos de campo do Elasticsearch mais usados aos seus equivalentes no ClickHouse, quando disponíveis, e fornece contexto para orientar migrações. Quando não houver equivalente, são fornecidas alternativas ou observações nos comentários.

| **Tipo do Elasticsearch**          | **Equivalente no ClickHouse**                                                                                                                                                                                                                                                                          | **Observações**                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `boolean`                          | [`UInt8`](/pt-BR/reference/data-types/int-uint)  ou [`Bool`](/pt-BR/reference/data-types/boolean)                                                                                                                                                                                                      | O ClickHouse oferece suporte a `Boolean` como alias de `UInt8` nas versões mais recentes.                                                                                                                                                                                                                                                                                                                                                                            |
| `keyword`                          | [`String`](/pt-BR/reference/data-types/string)                                                                                                                                                                                                                                                         | Usado para filtragem por correspondência exata, agrupamento e ordenação.                                                                                                                                                                                                                                                                                                                                                                                             |
| `text`                             | [`String`](/pt-BR/reference/data-types/string)                                                                                                                                                                                                                                                         | A busca em texto completo é limitada no ClickHouse; a tokenização exige lógica personalizada usando funções como `tokens`, combinadas com funções de array.                                                                                                                                                                                                                                                                                                          |
| `long`                             | [`Int64`](/pt-BR/reference/data-types/int-uint)                                                                                                                                                                                                                                                        | Inteiro com sinal de 64 bits.                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `integer`                          | [`Int32`](/pt-BR/reference/data-types/int-uint)                                                                                                                                                                                                                                                        | Inteiro com sinal de 32 bits.                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `short`                            | [`Int16`](/pt-BR/reference/data-types/int-uint)                                                                                                                                                                                                                                                        | Inteiro com sinal de 16 bits.                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `byte`                             | [`Int8`](/pt-BR/reference/data-types/int-uint)                                                                                                                                                                                                                                                         | Inteiro com sinal de 8 bits.                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `unsigned_long`                    | [`UInt64`](/pt-BR/reference/data-types/int-uint)                                                                                                                                                                                                                                                       | Inteiro sem sinal de 64 bits.                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `double`                           | [`Float64`](/pt-BR/reference/data-types/float)                                                                                                                                                                                                                                                         | Ponto flutuante de 64 bits.                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `float`                            | [`Float32`](/pt-BR/reference/data-types/float)                                                                                                                                                                                                                                                         | Ponto flutuante de 32 bits.                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `half_float`                       | [`Float32`](/pt-BR/reference/data-types/float) ou [`BFloat16`](/pt-BR/reference/data-types/float)                                                                                                                                                                                                      | Equivalente mais próximo. O ClickHouse não tem um float de 16 bits. O ClickHouse tem `BFloat16` — ele é diferente de half-float IEEE-754: o half-float oferece maior precisão com um intervalo menor, enquanto o bfloat16 sacrifica precisão em troca de um intervalo maior, o que o torna mais adequado para workloads de machine learning.                                                                                                                         |
| `scaled_float`                     | [`Decimal(x, y)`](/pt-BR/reference/data-types/decimal)                                                                                                                                                                                                                                                 | Armazena valores numéricos de ponto fixo.                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `date`                             | [`DateTime`](/pt-BR/reference/data-types/datetime)                                                                                                                                                                                                                                                     | Tipos de data equivalentes com precisão de segundos.                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `date_nanos`                       | [`DateTime64`](/pt-BR/reference/data-types/datetime64)                                                                                                                                                                                                                                                 | O ClickHouse oferece suporte a precisão de nanossegundos com `DateTime64(9)`.                                                                                                                                                                                                                                                                                                                                                                                        |
| `binary`                           | [`String`](/pt-BR/reference/data-types/string), [`FixedString(N)`](/pt-BR/reference/data-types/fixedstring)                                                                                                                                                                                            | Requer decodificação em base64 para campos binários.                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `ip`                               | [`IPv4`](/pt-BR/reference/data-types/ipv4), [`IPv6`](/pt-BR/reference/data-types/ipv6)                                                                                                                                                                                                                 | Tipos nativos `IPv4` e `IPv6` disponíveis.                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `object`                           | [`Nested`](/pt-BR/reference/data-types/nested-data-structures), [`Map`](/pt-BR/reference/data-types/map), [`Tuple`](/pt-BR/reference/data-types/tuple), [`JSON`](/pt-BR/reference/data-types/newjson)                                                                                                  | O ClickHouse pode modelar objetos semelhantes a JSON usando [`Nested`](/pt-BR/reference/data-types/nested-data-structures) ou [`JSON`](/pt-BR/reference/data-types/newjson).                                                                                                                                                                                                                                                                                         |
| `flattened`                        | [`String`](/pt-BR/reference/data-types/string)                                                                                                                                                                                                                                                         | O tipo flattened no Elasticsearch armazena objetos JSON inteiros como campos únicos, permitindo acesso flexível e sem esquema a chaves aninhadas sem mapeamento completo. No ClickHouse, funcionalidade semelhante pode ser obtida usando o tipo String, mas o processamento precisa ser feito em visões materializadas.                                                                                                                                             |
| `nested`                           | [`Nested`](/pt-BR/reference/data-types/nested-data-structures)                                                                                                                                                                                                                                         | As colunas `Nested` do ClickHouse fornecem semântica semelhante para subcampos agrupados, desde que os usuários usem `flatten_nested=0`.                                                                                                                                                                                                                                                                                                                             |
| `join`                             | NA                                                                                                                                                                                                                                                                                                     | Não há um conceito direto de relacionamentos pai-filho. Isso não é necessário no ClickHouse, já que junções entre tabelas são suportadas.                                                                                                                                                                                                                                                                                                                            |
| `alias`                            | modificador de coluna [`Alias`](/pt-BR/reference/statements/create/table#alias)                                                                                                                                                                                                                        | Aliases [são suportados](/pt-BR/reference/statements/create/table#alias) por meio de um modificador de campo. Funções podem ser aplicadas a esses aliases, por exemplo `size String ALIAS formatReadableSize(size_bytes)`                                                                                                                                                                                                                                            |
| `range` types (`*_range`)          | [`Tuple(start, end)`](/pt-BR/reference/data-types/tuple) ou [`Array(T)`](/pt-BR/reference/data-types/array)                                                                                                                                                                                            | O ClickHouse não tem um tipo de intervalo nativo, mas intervalos numéricos e de data podem ser representados usando estruturas [`Tuple(start, end)`](/pt-BR/reference/data-types/tuple) ou [`Array`](/pt-BR/reference/data-types/array). Para intervalos de IP (`ip_range`), armazene valores CIDR como `String` e avalie com funções como `isIPAddressInRange()`. Como alternativa, considere dicionários de lookup baseados em `ip_trie` para filtragem eficiente. |
| `aggregate_metric_double`          | [`AggregateFunction(...)`](/pt-BR/reference/data-types/aggregatefunction) e [`SimpleAggregateFunction(...)`](/pt-BR/reference/data-types/simpleaggregatefunction)                                                                                                                                      | Use estados de função de agregação e visões materializadas para modelar métricas pré-agregadas. Todas as funções de agregação oferecem suporte a estados agregados.                                                                                                                                                                                                                                                                                                  |
| `histogram`                        | [`Tuple(Array(Float64), Array(UInt64))`](/pt-BR/reference/data-types/tuple)                                                                                                                                                                                                                            | Represente manualmente buckets e contagens usando arrays ou esquemas personalizados.                                                                                                                                                                                                                                                                                                                                                                                 |
| `annotated-text`                   | [`String`](/pt-BR/reference/data-types/string)                                                                                                                                                                                                                                                         | Não há suporte nativo para busca com reconhecimento de entidades ou anotações.                                                                                                                                                                                                                                                                                                                                                                                       |
| `completion`, `search_as_you_type` | NA                                                                                                                                                                                                                                                                                                     | Não há mecanismo nativo de preenchimento automático ou sugestões. Pode ser reproduzido com `String` e [funções de busca](/pt-BR/reference/functions/regular-functions/string-search-functions).                                                                                                                                                                                                                                                                      |
| `semantic_text`                    | NA                                                                                                                                                                                                                                                                                                     | Não há busca semântica nativa — gere embeddings e use busca vetorial.                                                                                                                                                                                                                                                                                                                                                                                                |
| `token_count`                      | [`Int32`](/pt-BR/reference/data-types/int-uint)                                                                                                                                                                                                                                                        | Use durante a ingestão para calcular manualmente a contagem de tokens, por exemplo com a função `length(tokens())`, como em uma coluna Materialized                                                                                                                                                                                                                                                                                                                  |
| `dense_vector`                     | [`Array(Float32)`](/pt-BR/reference/data-types/array)                                                                                                                                                                                                                                                  | Use arrays para armazenar embeddings                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `sparse_vector`                    | [`Map(UInt32, Float32)`](/pt-BR/reference/data-types/map)                                                                                                                                                                                                                                              | Simule vetores esparsos com maps. Não há suporte nativo a vetores esparsos.                                                                                                                                                                                                                                                                                                                                                                                          |
| `rank_feature` / `rank_features`   | [`Float32`](/pt-BR/reference/data-types/float), [`Array(Float32)`](/pt-BR/reference/data-types/array)                                                                                                                                                                                                  | Sem boosting nativo no momento da consulta, mas isso pode ser modelado manualmente na lógica de pontuação.                                                                                                                                                                                                                                                                                                                                                           |
| `geo_point`                        | [`Tuple(Float64, Float64)`](/pt-BR/reference/data-types/tuple) ou [`Point`](/pt-BR/reference/data-types/geo#point)                                                                                                                                                                                     | Use uma tupla de (latitude, longitude). [`Point`](/pt-BR/reference/data-types/geo#point) está disponível como um tipo do ClickHouse.                                                                                                                                                                                                                                                                                                                                 |
| `geo_shape`, `shape`               | [`Ring`](/pt-BR/reference/data-types/geo#ring), [`LineString`](/pt-BR/reference/data-types/geo#linestring), [`MultiLineString`](/pt-BR/reference/data-types/geo#multilinestring), [`Polygon`](/pt-BR/reference/data-types/geo#polygon), [`MultiPolygon`](/pt-BR/reference/data-types/geo#multipolygon) | Suporte nativo a formas geoespaciais e indexação espacial.                                                                                                                                                                                                                                                                                                                                                                                                           |
| `percolator`                       | NA                                                                                                                                                                                                                                                                                                     | Não há o conceito de indexar consultas. Use SQL padrão + views materializadas incrementais em vez disso.                                                                                                                                                                                                                                                                                                                                                             |
| `version`                          | [`String`](/pt-BR/reference/data-types/string)                                                                                                                                                                                                                                                         | O ClickHouse não tem um tipo nativo para versão. Armazene versões como strings e use funções UDF personalizadas para fazer comparações semânticas, se necessário. Considere normalizar para formatos numéricos se forem necessárias consultas por intervalo.                                                                                                                                                                                                         |

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

* **Arrays**: No Elasticsearch, todos os campos oferecem suporte nativo a arrays. No ClickHouse, arrays precisam ser definidos explicitamente (por exemplo, `Array(String)`), com a vantagem de ser possível acessar e consultar posições específicas, por exemplo `an_array[1]`.
* **Multi-fields**: O Elasticsearch permite indexar o [mesmo campo de várias formas](https://www.elastic.co/docs/reference/elasticsearch/mapping-reference/multi-fields#_multi_fields_with_multiple_analyzers) (por exemplo, como `text` e `keyword`). No ClickHouse, esse padrão precisa ser modelado usando colunas ou views separadas.
* **Tipos Map e JSON** - No ClickHouse, o tipo [`Map`](/pt-BR/reference/data-types/map) é comumente usado para modelar estruturas dinâmicas de chave-valor, como `resourceAttributes` e `logAttributes`. Esse tipo permite uma ingestão flexível sem esquema ao possibilitar a adição de chaves arbitrárias em tempo de execução — conceitualmente semelhante a objetos JSON no Elasticsearch. No entanto, há limitações importantes a considerar:

  * **Tipos de valor uniformes**: colunas [`Map`](/pt-BR/reference/data-types/map) no ClickHouse precisam ter um tipo de valor consistente (por exemplo, `Map(String, String)`). Valores de tipos mistos não são suportados sem coerção.
  * **Custo de desempenho**: acessar qualquer chave em um [`Map`](/pt-BR/reference/data-types/map) exige carregar o `Map` inteiro na memória, o que pode não ser ideal em termos de desempenho.
  * **Sem subcolunas**: diferentemente de JSON, chaves em um [`Map`](/pt-BR/reference/data-types/map) não são representadas como subcolunas reais, o que limita a capacidade do ClickHouse de indexar, comprimir e consultar com eficiência.

  Por causa dessas limitações, o ClickStack está migrando do [`Map`](/pt-BR/reference/data-types/map) para o tipo [`JSON`](/pt-BR/reference/data-types/newjson) aprimorado do ClickHouse. O tipo [`JSON`](/pt-BR/reference/data-types/newjson) resolve muitas das limitações do `Map`:

  * **Armazenamento verdadeiramente colunar**: cada caminho JSON é armazenado como uma subcoluna, permitindo compressão, filtragem e execução vetorizada de consultas de forma eficiente.
  * **Suporte a tipos mistos**: diferentes tipos de dados (por exemplo, inteiros, strings, arrays) podem coexistir no mesmo caminho sem coerção nem unificação de tipos.
  * **Escalabilidade do sistema de arquivos**: limites internos para chaves dinâmicas (`max_dynamic_paths`) e tipos (`max_dynamic_types`) evitam uma explosão de arquivos de coluna em disco, mesmo com conjuntos de chaves de alta cardinalidade.
  * **Armazenamento denso**: valores nulos e ausentes são armazenados de forma esparsa para evitar sobrecarga desnecessária.

    O tipo [`JSON`](/pt-BR/reference/data-types/newjson) é especialmente adequado para cargas de trabalho de observabilidade, oferecendo a flexibilidade da ingestão sem esquema com o desempenho e a escalabilidade dos tipos nativos do ClickHouse — o que o torna um substituto ideal para [`Map`](/pt-BR/reference/data-types/map) em campos de atributos dinâmicos.

    Para mais detalhes sobre o tipo JSON, recomendamos o [guia de JSON](/pt-BR/guides/clickhouse/data-formats/json/intro) e ["How we built a new powerful JSON data type for ClickHouse"](https://clickhouse.com/blog/a-new-powerful-json-data-type-for-clickhouse).
