JSON, Dynamic, Variant, BFloat16, Time, Time64를 포함하여 테이블에 저장할 수 있는 모든 데이터 타입을 지원합니다.
AggregateFunction, Interval, Nothing, QBit 타입은 지원하지 않습니다.
구문
인수
설정
SETTINGS는 호출의 마지막 인수로, Nullable, Variant, Dynamic, JSON 값이 생성되는 방식을 제어합니다.
SETTINGS만 인수로 지정하면 삽입 테이블의 구조가 유지됩니다.
반환 값
요청한 스키마의 테이블 객체입니다.사용 예시
structure 인수가 없으면(이 경우 구조는 임의로 정해집니다):
충분히 큰
max_array_length를 사용하는 generateRandom(generateRandomStructure(), [random seed], max_string_length, max_array_length)는 복합 타입(Array, Tuple, Map, Nested)의 중첩 깊이가 커질 수 있어(최대 16) 매우 큰 출력을 생성할 수 있습니다.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 컬럼이 있는 테이블에
데이터를 삽입할 때 유용합니다.