> ## 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.

# Типы столбцов собственного протокола

> Типы столбцов для собственного протокола

См. [Типы данных](/ru/reference/data-types) для общей справки.

<Tip>
  Кодирование числовых типов соответствует их представлению в памяти на процессорах с порядком байтов little-endian, таких как AMD64 и ARM64, что делает кодирование и декодирование очень эффективными.
</Tip>

| Type                                                                             | Encoding                                                                                                                                        |
| -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| **Целые числа** ([Int/UInt](/ru/reference/data-types/int-uint))                  | 8, 16, 32, 64, 128 или 256 бит в формате little-endian                                                                                          |
| **Числа с плавающей точкой** ([Float32/Float64](/ru/reference/data-types/float)) | Двоичное представление IEEE 754                                                                                                                 |
| [String](/ru/reference/data-types/string)                                        | Массив строк в виде (len, value)                                                                                                                |
| [FixedString(N)](/ru/reference/data-types/fixedstring)                           | Массив N-байтовых последовательностей                                                                                                           |
| [IPv4](/ru/reference/data-types/ipv4)                                            | Псевдоним для `UInt32`, представляется как UInt32                                                                                               |
| [IPv6](/ru/reference/data-types/ipv6)                                            | Псевдоним для `FixedString(16)`, представляется в двоичном виде                                                                                 |
| [Tuple](/ru/reference/data-types/tuple)                                          | Массив столбцов, закодированных подряд. Пример: `Tuple(String, UInt8)` = два столбца подряд                                                     |
| [Map](/ru/reference/data-types/map)                                              | `Map(K, V)` = три столбца: `Offsets ColUInt64, Keys K, Values V`. Число строк в Keys/Values = последнее значение Offsets                        |
| [Array](/ru/reference/data-types/array)                                          | `Array(T)` = два столбца: `Offsets ColUInt64, Data T`. Число строк в Data = последнее значение Offsets                                          |
| [Nullable](/ru/reference/data-types/nullable)                                    | `Nullable(T)` = два столбца: `Nulls ColUInt8, Values T` с одинаковым числом строк. Nulls — это маска: 1=null, 0=value                           |
| [UUID](/ru/reference/data-types/uuid)                                            | Псевдоним для `FixedString(16)`, представляется в двоичном виде                                                                                 |
| [Enum](/ru/reference/data-types/enum)                                            | Псевдоним для `Int8` или `Int16`, где каждому целому числу сопоставлено значение String                                                         |
| [LowCardinality](/ru/reference/data-types/lowcardinality)                        | `LowCardinality(T)` = два столбца: `Index T, Keys K`, где K — UInt8/16/32/64. Index содержит уникальные значения, Keys содержит индексы в Index |
| [Bool](/ru/reference/data-types/boolean)                                         | Псевдоним для `UInt8`: 0=false, 1=true                                                                                                          |

**Пример: кодирование Nullable**

```text theme={null}
To encode [null, "", "hello", null, "world"]:
  Values: ["", "", "hello", "", "world"] (len: 5)
  Nulls:  [ 1,  0,       0,  1,       0] (len: 5)
```

**Пример: кодирование LowCardinality**

```text theme={null}
To encode ["Eko", "Eko", "Amadela", "Amadela", "Amadela", "Amadela"]:
  Index: ["Eko", "Amadela"] (String)
  Keys:  [0, 0, 1, 1, 1, 1] (UInt8)
```
