JSON, Dynamic, Variant, BFloat16, Time e Time64.
Não há suporte para os tipos AggregateFunction, Interval, Nothing e QBit.
Sintaxe
Argumentos
Configurações
SETTINGS é o último argumento da chamada e controla como são gerados os valores Nullable, Variant, Dynamic e JSON.
SETTINGS também pode ser o único argumento, preservando a estrutura da tabela de inserção:
Valor retornado
Um objeto de tabela com o esquema solicitado.Exemplo de uso
structure (neste caso, a estrutura é aleatória):
generateRandom(generateRandomStructure(), [random seed], max_string_length, max_array_length) com um max_array_length grande o suficiente pode gerar uma saída realmente enorme devido à profundidade potencialmente grande de aninhamento (até 16) de tipos complexos (Array, Tuple, Map, Nested).Gerando JSON
Uma colunaJSON gerada se comporta como um fluxo de documentos com o mesmo schema: o conjunto de chaves e o tipo
de cada chave são determinados pela semente aleatória e permanecem iguais em toda a coluna, enquanto os valores,
as chaves ausentes e os tamanhos dos arrays variam de uma linha para outra. A profundidade dos objetos é limitada por
max_json_depth, o número de chaves por nível por max_json_keys_per_object, e cada chave tem uma probabilidade
null_ratio de estar ausente em uma linha. Os valores nas folhas assumem os tipos que o parser de JSON infere em documentos
reais: Int64, UInt64, Float64, Bool, String, Date, DateTime, arrays desses tipos, arrays
de objetos e arrays mistos; algumas chaves têm um tipo diferente em uma pequena fração das linhas, como
acontece com dados coletados de uma aplicação.
A declaração de tipo determina o schema gerado: os caminhos tipados estão sempre presentes com o tipo
declarado, os caminhos excluídos por SKIP e SKIP REGEXP nunca são gerados, e os limites de max_dynamic_paths e
max_dynamic_types são respeitados. Assim, os caminhos que excedem max_dynamic_paths ficam nos dados compartilhados da
coluna.
JSON, Dynamic ou Variant: