Основные типы данных в ClickHouse
Содержание
Целочисленные типы
Int8, TINYINT, BOOL, BOOLEAN или INT1
Целое число со знаком с возможными значениями от -128 до 127.
Int16, SMALLINT или INT2
Целое число со знаком с возможными значениями от -32768 до 32767.
Int32, INT, INT4 или INTEGER
Целое число со знаком с возможными значениями от -2147483648 до 2147483647.
Int64 или BIGINT
Целое число со знаком с возможными значениями от -9223372036854775808 до 9223372036854775807.
Int128
Целое число со знаком с возможными значениями от -170141183460469231731687303715884105728 до 170141183460469231731687303715884105727.
Int256
Целое число со знаком с возможными значениями от -57896044618658097711785492504343953926634992332820282019728792003956564819968 до 57896044618658097711785492504343953926634992332820282019728792003956564819967.
UInt8
Целое число без знака с возможными значениями от 0 до 255.
UInt16
Целое число без знака с возможными значениями от 0 до 65535.
UInt32
Целое число без знака с возможными значениями от 0 до 4294967295.
UInt64
Целое число без знака с возможными значениями от 0 до 18446744073709551615.
UInt128
Целое число без знака с возможными значениями от 0 до 340282366920938463463374607431768211455.
UInt256
Целое число без знака с возможными значениями от 0 до 115792089237316195423570985008687907853269984665640564039457584007913129639935.
Типы с фиксированной запятой
Decimal32
Число с фиксированной запятой. Максимальное количество цифр в числе - от 1 до 9. В круглых скобках после типа указывается количество цифр после запятой D.
Decimal64
Число с фиксированной запятой. Максимальное количество цифр в числе - от 1 до 18. В круглых скобках после типа указывается количество цифр после запятой D.
Decimal128
Число с фиксированной запятой. Максимальное количество цифр в числе - от 1 до 38. В круглых скобках после типа указывается количество цифр после запятой D.
Decimal256
Число с фиксированной запятой. Максимальное количество цифр в числе - от 1 до 76. В круглых скобках после типа указывается количество цифр после запятой D.
Decimal
Число с фиксированной запятой. В круглых скобках вслед за типом через запятую указываются общее количество цифр M и количество цифр после запятой D. М может принимать значения от 1 до 76, а D может принимать значения от 0 до M.
Этот тип, в зависимости от значения M, является синонимом для одного из описанных выше типов:
- От 1 до 9 -
Decimal32(D)
, - От 10 до 18 -
Decimal64(D)
, - От 19 до 38 -
Decimal128(D)
, - От 39 до 76 -
Decimal256(D)
,
Типы с плавающей запятой
Float32 или FLOAT
32-битное число с плавающей запятой, хранятся в формате IEEE 754.
Float64 или DOUBLE
64-битное число с плавающей запятой, хранятся в формате IEEE 754.
Типы для дат и времени
Date
Дата хранится в виде Uint16
, содержит число дней, прошедших от 1 января 1970 года. Максимальное значение - до 2105 года включительно.
Date32
Дата хранится в виде Int32
, содержит число дней, прошедших от 1 января 1970 года. Отрицательные значения представляют даты до 1 января 1970 года.
DateTime
Отметка времени. Отметка времени сохраняется всегда в часовом поясе, который был указан в круглых скобках после типа, а если он не был указан - в часовом поясе, настроенном на сервере. Может принимать значения от 1970-01-01 00:00:00 до 2106-02-07 06:28:15 с точностью в 1 секунду.
DateTime64
Отметка времени с указанной точностью. В круглых скобках после типа можно указать количеством цифр после запятой в секундах D от 0 до 9, а через запятую от значения D можно также указать часовой пояс. По умолчанию, если точность не указана, используется значение 3 - сохранение с точностью до миллисекунд. Отметка времени сохраняется всегда в часовом поясе, который был указан в круглых скобках после типа, а если он не был указан - в часовом поясе, настроенном на сервере. Может принимать значения от 1900-01-01 00:00:00 до 2299-12-31 23:59:59.99999999 (для максимального значения точность не больше 8 цифр после запятой).
При вставке числового значения оно интерпретируется, как отметка времени в часовом поясе UTC. При извлечении будет интерпретировано с учётом часового пояса поля или сервера.
Двоичные типы
String
Последовательность байт произвольной длины. Для измерения длины последовательности в байтах предназначена функция length
.
FixedString
Последовательность байт фиксированной длины. При попытке записать в поле с таким типом последовательность байт короче указанной, вставляемая последовательность байт дополнятеся до необходимой длины нулевыми байтами справа. При сравнении дополнять значения короче нужно добавлять нулевые байты самостоятельно.
Текстовые типы
В ClickHouse нет текстовых полей. Для хранения строк используются поля типа String
. Для измерения длины строки в кодировке UTF8 предназначена функция lengthUTF8
.
Другие типы
bool
Хранится на диске как UInt8
, для значений 1 и 0 предусмотрены псевдонимы true
и false
соответственно.
Enum8('value1', 'value2', ...)
Одно из перечисленных значений: value1
, value2
. Хранится как Int8
. Числовые значения можно указывать явным образом:
Enum8('value1' = 1, 'value2' = 2)
Enum16('value1', 'value2', ...)
Одно из перечисленных значений: value1
, value2
. Хранится как Int16
. Числовые значения можно указывать явным образом:
Enum16('value1' = 1, 'value2' = 2)
Enum('value1', 'value2', ...)
Одно из перечисленных значений: value1
, value2
. В зависимости от количества значений, хранится либо как Enum8
, либо как Enum16
. Числовые значения можно указывать явным образом:
Enum('value1' = 1, 'value2' = 2)
Использованные материалы
- ClickHouse / Справка по SQL / Типы данных / UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64
- ClickHouse / Справка по SQL / Типы данных / Decimal
- ClickHouse / Справка по SQL / Типы данных / Float32, Float64
- ClickHouse / Справка по SQL / Типы данных / Date
- ClickHouse / Справка по SQL / Типы данных / Date32
- ClickHouse / Справка по SQL / Типы данных / DateTime
- ClickHouse / Справка по SQL / Типы данных / DateTime64
- ClickHouse / Справка по SQL / Типы данных / String
- ClickHouse / Справка по SQL / Типы данных / FixedString(N)
- ClickHouse / Справка по SQL / Типы данных / Булевы значения
- ClickHouse / Справка по SQL / Типы данных / Enum