JSON, Dynamic, Variant, BFloat16, Time y Time64.
Los tipos AggregateFunction, Interval, Nothing y QBit no son compatibles.
Sintaxis
Argumentos
Configuración
SETTINGS es el último argumento de la llamada y controla cómo se generan los valores Nullable, Variant, Dynamic y JSON.
SETTINGS también puede ser el único argumento, en cuyo caso se conserva la estructura de la tabla de inserción:
Valor devuelto
Un objeto de tipo tabla con el esquema solicitado.Ejemplo de uso
structure (en este caso, la estructura es aleatoria):
generateRandom(generateRandomStructure(), [random seed], max_string_length, max_array_length) con un max_array_length lo bastante grande puede generar una salida enorme, debido a la gran profundidad de anidamiento posible (hasta 16) de los tipos complejos (Array, Tuple, Map, Nested).Generación de JSON
Una columnaJSON generada se asemeja a un flujo de documentos con un mismo esquema: el conjunto de claves y el tipo
de cada una se derivan de la semilla aleatoria y se mantienen constantes en toda la columna, mientras que los valores,
las claves ausentes y las longitudes de los arrays varían de una fila a otra. La profundidad de los objetos está limitada por
max_json_depth y el número de claves por nivel, por max_json_keys_per_object. La probabilidad de que una clave
esté ausente en una fila es null_ratio. Los valores terminales tienen los tipos que el analizador de JSON infiere de documentos
reales: Int64, UInt64, Float64, Bool, String, Date, DateTime, arrays de estos tipos, arrays
de objetos y arrays mixtos. Algunas claves tienen un tipo distinto en una pequeña proporción de las filas, como ocurre
con los datos recopilados de una aplicación.
La declaración del tipo determina el esquema generado: las rutas con un tipo declarado siempre están presentes con ese tipo,
las rutas excluidas por SKIP y SKIP REGEXP nunca se generan y se respetan tanto max_dynamic_paths como
max_dynamic_types, por lo que las rutas que superan el límite de max_dynamic_paths acaban en los datos compartidos de
la columna.
JSON, Dynamic o Variant: