Skip to content

Типы данных полей ​

Платформа не работает с типами источника напрямую: при подключении таблицы каждый столбец получает один из пяти типов платформы. От него зависит всё дальнейшее — какие функции примет формула, какие настройки формата покажет окно поля, можно ли положить поле в иерархию и что предложит фильтр.

Пять типов ​

ТипЧто этоЗначок в списке полей
numberЦелое число123
floatДробное число1.23
stringСтрокаAa
dateДата, время или дата со временемкалендарь
boolЛогическое значениегалочка

Исходное имя типа при этом не теряется: рядом платформа хранит то, как столбец называется в источнике — UInt32, Decimal(12, 2), String. Оно видно в описании датасета и помогает понять, откуда взялся тот или иной тип платформы.

Как тип источника превращается в тип платформы ​

Для баз данных сопоставление идёт по типу JDBC, а не по названию в конкретной СУБД — поэтому правило одинаково для PostgreSQL, ClickHouse, Oracle и всех остальных:

Тип платформыЧто в него попадает
numberTINYINT, SMALLINT, INTEGER, BIGINT, а также NUMERIC без дробной части
floatFLOAT, REAL, DOUBLE, NUMERIC, DECIMAL
dateDATE, TIME, TIMESTAMP и их варианты с часовым поясом
boolBOOLEAN, BIT
stringвсё остальное — включая то, чего платформа не знает

Примеры с демо-витрины ClickHouse:

СтолбецТип в источникеТип платформы
order_idUInt32number
quantityUInt8number
amountDecimal(12, 2)float
order_dateDatedate
statusStringstring

Незнакомый тип становится строкой

Массивы, JSON, geometry, enum, UUID и прочая экзотика приходит как string: платформа не отбрасывает такой столбец, но и не понимает его содержимое. Считать по нему нельзя, сортировка будет лексикографической, а фильтр — текстовым. Если такой столбец нужен как число или дата, приведите его на стороне источника — представлением или начальным SQL, а не в датасете.

Для файлов (CSV, XLSX) действует то же правило, только исходные типы определяет разбор файла: целые → number, дробные → float, даты и метки времени → date, логические → bool, остальное → string — Файлы и объектные хранилища.

Что зависит от типа ​

ТипАгрегация по умолчаниюФормат значенияИерархияФильтр
number, floatSUM при переносе в меруРазряды, знаки после запятой, префикс и постфикс, сокращение крупных чиселДа, кроме floatДиапазон и сравнение
stringНет; доступны COUNT, COUNTD, MIN, MAXПрефикс, постфикс, подпись пустого значенияДаСписок значений, поиск, шаблон
dateНет; доступны COUNT, COUNTD, MIN, MAXШаблон вывода датыДаПериод, в том числе относительный
boolНет; доступны COUNT, COUNTDПодписи значенийДаСписок из двух значений

Дробное число не кладётся в иерархию

Уровнем иерархии может стать поле любого типа, кроме float: непрерывная величина не даёт уровней, по которым имеет смысл проваливаться. Нужна группировка по числу — сделайте корзины: они дают строковое поле с интервалами, и оно в иерархию годится.

Тип вычисляемого поля ​

У поля с формулой тип не берётся из источника — его определяет само выражение: COUNT() даёт number, AVG() — float, CONCAT() — string, DATETRUNC() — date. Поэтому поле, посчитанное от целых, может оказаться дробным, и это нормально.

Проверить, что вышло, проще всего в окне настройки полей: тип показан рядом с именем — Настройка полей.

Тип не приводится молча

Если формула складывает строку с числом, платформа не догадается, что имелось в виду: источник ответит ошибкой, а виджет — «Внутренней ошибкой сервера». Приводите тип явно — INT(), FLOAT(), STR(), DATE() — функции преобразования.

Тип значения параметра ​

У параметров датасета словарь свой и чуть другой: число, строка, дата, дата и время, логическое. Отдельного дробного типа у параметра нет — дробное значение задаётся числовым параметром.

Что дальше ​