Типы данных
DataLens работает с различными источниками данных, в которых типы данных полей могут отличаться.
Для более эффективной работы с данными, DataLens конвертирует типы данных полей источника в собственные типы.
Это оптимизирует работу с данными. Подробнее в разделе Таблица соответствий типов данных.
Вы можете изменять тип данных у полей в интерфейсе датасета и в визарде.
Важно
При загрузке CSV-файла в качестве источника данных, DataLens пытается автоматически определить тип данных полей.
Если определить тип данных не удалось, DataLens задает полю тип Строка
.
Вы можете самостоятельно изменить тип данных в интерфейсе датасета или в визарде.
Геоточка
Точка координат, которая состоит из значений широты и долготы. В DataLens задается с помощью функции GEOPOINT.
Функция принимает на вход типы данных Строка
, Геоточка
, или два значения с типом Дробное число
или Строка
.
Если на вход подается одна строка, в ней должен содержаться список из двух чисел в JSON-синтаксисе.
Если в источнике данные записаны в формате следующей строки "[55.75222,37.61556]"
, вы можете изменить тип данных поля в интерфейсе датасета и в визарде без использования формулы.
Пример записи
GEOPOINT("[55.7912,37.6872]")
GEOPOINT("[55.8538,37.6312]")
Геополигон
Несколько точек координат, которые описывают полигон на карте. В DataLens задается с помощью функции GEOPOLYGON.
Для заливки полигона используется алгоритм Even-Odd. Это позволяет создавать полигоны с вырезами.
Функция принимает на вход строку вида "[[[v1,v1], [v2,v2]], ..., [[vN-1,vN-1], [vN,vN]]]"
. Если в источнике данные записаны в таком формате, вы можете изменить тип данных поля в интерфейсе датасета и в визарде без использования формулы.
Пример записи
/* Полигон без выреза */
GEOPOLYGON("[[[55.79421,37.65046],[55.79594,37.6513],[55.79642,37.65133],[55.7969, 37.65114],[55.79783, 37.65098],[55.78871,37.75101]]]")
/* Полигоны с вырезом */
GEOPOLYGON("[[[55.75,37.52],[55.75,37.68],[55.65,37.60]],[[55.79,37.60],[55.76,37.57],[55.76,37.63]]]")
GEOPOLYGON("[[[55.75,37.50],[55.80,37.60],[55.75,37.70],[55.70,37.70],[55.70,37.50]],[[55.75,37.52],[55.75,37.68],[55.65,37.60]],[[55.79,37.60],[55.76,37.57],[55.76,37.63]]]")
Дата
Дата без указанного времени.
При использовании в формулах необходимо задавать дату с помощью знака решетки #
. Например DATETRUNC(#2018-07-12#, "year", 5)
.
Вы можете привести исходный тип данных в тип Дата
с помощью функций DATE и DATE_PARSE.
Пример записи
#2018-01-18#
#2015-01-01#
DATETRUNC(#2018-07-12#, "year", 5)
DATEADD(#2018-01-12#, "day", 6)
Дата и время
Дата с указанным временем.
При использовании в формулах необходимо задавать дату и время с помощью знака решетки #
. Например DATEADD(#2018-01-12 01:02:03#, "second", 6)
.
Вы можете привести исходный тип данных в тип Дата и время
с помощью функций DATETIME и DATETIME_PARSE.
Пример записи
#2018-01-12 01:08:03#
#2018-05-01T#
DATEADD(#2018-01-12 01:02:03#, "second", 6)
DATETRUNC(#2018-07-12 11:07:13#, "month", 4)
Дробное число
Вещественное число. В качестве разделителя используется символ точки.
Вы можете привести исходный тип данных в тип Дробное число
с помощью функции FLOAT.
Важно
При конвертации типа decimal
в Дробное число
возможна потеря точности.
Пример записи
1.47113
0.62024
FLOAT("34.567")
Логический
Логический тип, который принимает только одно из двух значений — TRUE
или FALSE
.
Вы можете привести исходный тип данных в тип Логический
с помощью функции BOOL.
Пример записи
FALSE
Строка
Строка с текстом. Задается с помощью символов одиночных или двойных кавычек.
В случае использования одного вида кавычек, второй вид можно свободно использовать в этой строке без экранирования.
Например, 'Парные кавычки "пример" и одна " кавычка.'
В строках вы можете использовать следующие символы:
\n
- перенос строки (LF);\r
- возврат каретки (CR);\t
- табуляция;\"
- двойная кавычка;\'
- одинарная кавычка;\\
- обратная косая черта.
Вы можете привести исходный тип данных в тип Строка
с помощью функции STR.
Пример записи
"Строка"
'Строка с "подстрокой"'
Целое число
Число, которое не содержит дробной части.
Вы можете привести исходный тип данных в тип Целое число
с помощью функции INT.
Пример записи
42
157
Таблица соответствий типов данных
При создании датасета DataLens приводит данные из источника в свой тип для оптимизации.
Это позволяет DataLens унифицировать работу с данными из разных источников.
Ниже приведена таблица соответствий типов баз данных и внутренних типов DataLens.
DataLens | Материализованный датасет |
ClickHouse | PostgreSQL | MySQL | MS SQL |
---|---|---|---|---|---|
Логический | boolean | boolean | boolean | bit | bit |
Дата | date | date | date | date | date |
Дата и время | datetime | datetime | timestamp | datetime timestamp |
datetime datetime2 smalldatetime datetimeoffset |
Дробное число | float | float float32 float64 decimal* |
real double precision numeric |
float double numeric decimal* |
float real numeric decimal* |
Целое число | int64 | integer int8 int16 int32 int64 uint8 uint16 uint32 uint64 |
smallint integer bigint |
tinyint smallint mediumint integer bigint |
tinyint smallint integer bigint |
Строка | string | string enum8 enum16 |
char varchar text |
tinyblob blob binary varbinary char varchar tinytext text enum |
char varchartext nchar nvarchar ntext |
Геоточка | Задается формулой в DataLens | Задается формулой в DataLens | Задается формулой в DataLens | Задается формулой в DataLens | Задается формулой в DataLens |
Геополигон | Задается формулой в DataLens | Задается формулой в DataLens | Задается формулой в DataLens | Задается формулой в DataLens | Задается формулой в DataLens |
* Возможна потеря точности при конвертации данных.