JSON, Dynamic, Variant, BFloat16, Time и Time64.
Типы AggregateFunction, Interval, Nothing и QBit не поддерживаются.
Синтаксис
Аргументы
Настройки
SETTINGS — последний аргумент вызова. Он определяет, как генерируются значения Nullable, Variant, Dynamic и JSON.
SETTINGS также может быть единственным аргументом. В этом случае сохраняется структура таблицы, в которую выполняется вставка:
Возвращаемое значение
Объект таблица с запрошенной схемой.Пример использования
structure не указан (в этом случае структура произвольная):
generateRandom(generateRandomStructure(), [начальное значение генератора случайных чисел], max_string_length, max_array_length) при достаточно большом max_array_length может сгенерировать по-настоящему огромный объём данных из-за возможной большой глубины вложенности (до 16) сложных типов (Array, Tuple, Map, Nested).Генерация JSON
Сгенерированный столбецJSON представляет собой поток документов с единой схемой: набор ключей и тип
каждого ключа определяются начальным значением генератора случайных чисел и остаются неизменными для всего столбца, а значения,
наличие ключей и длина массивов меняются от строки к строке. Глубина объектов ограничена параметром
max_json_depth, число ключей на одном уровне — параметром max_json_keys_per_object, а вероятность отсутствия ключа
в строке задаётся параметром null_ratio. Конечные значения имеют типы, которые JSON-парсер определяет для реальных
документов: Int64, UInt64, Float64, Bool, String, Date, DateTime, массивы значений этих типов, массивы
объектов и массивы со значениями разных типов; у некоторых ключей тип отличается в небольшой доле строк, как это
бывает в данных, полученных из приложения.
Объявление типа задаёт схему генерируемых данных: пути с явно заданным типом всегда присутствуют и имеют объявленный
тип, пути, исключённые с помощью SKIP и SKIP REGEXP, никогда не генерируются, а ограничения max_dynamic_paths и
max_dynamic_types соблюдаются, поэтому пути сверх лимита max_dynamic_paths попадают в общие данные
столбца.
JSON, Dynamic или Variant: