fuzzJSON 테이블 함수
fuzzJSON 테이블 함수 (fuzzJSON)
JSON 문자열에 무작위 변형을 가해 퍼징(fuzzing)하는 테이블 함수예요.
출처: 문서
본문
JSON 문자열에 무작위 변형을 가합니다.
구문
fuzzJSON({ named_collection [, option=value [,..]] | json_str[, random_seed] })
인자
| 인자 | 설명 |
|---|---|
named_collection |
NAMED COLLECTION. |
option=value |
named collection 선택 파라미터와 그 값. |
json_str (String) |
JSON 형식의 구조적 데이터를 나타내는 원본 문자열. |
random_seed (UInt64) |
안정적인 결과를 만들기 위한 수동 무작위 시드. |
reuse_output (boolean) |
퍼징 과정의 출력을 다음 퍼저의 입력으로 재사용합니다. |
malform_output (boolean) |
JSON 객체로 파싱할 수 없는 문자열을 생성합니다. |
max_output_length (UInt64) |
생성되거나 변형된 JSON 문자열의 최대 허용 길이. |
probability (Float64) |
JSON 필드(키-값 쌍)를 퍼징할 확률. [0, 1] 범위여야 합니다. |
max_nesting_level (UInt64) |
JSON 데이터 내 중첩 구조의 최대 허용 깊이. |
max_array_size (UInt64) |
JSON 배열의 최대 허용 크기. |
max_object_size (UInt64) |
JSON 객체의 단일 레벨에서 허용되는 최대 필드 수. |
max_string_value_length (UInt64) |
String 값의 최대 길이. |
min_key_length (UInt64) |
최소 키 길이. 최소 1이어야 합니다. |
max_key_length (UInt64) |
최대 키 길이. 지정하면 min_key_length보다 크거나 같아야 합니다. |
반환 값
변형된 JSON 문자열을 담은 단일 컬럼을 가진 테이블 객체.
사용 예시
CREATE NAMED COLLECTION json_fuzzer AS json_str='{}';
SELECT * FROM fuzzJSON(json_fuzzer) LIMIT 3;
{"52Xz2Zd4vKNcuP2":true}
{"UPbOhOQAdPKIg91":3405264103600403024}
{"X0QUWu8yT":[]}
SELECT * FROM fuzzJSON(json_fuzzer, json_str='{"name" : "value"}', random_seed=1234) LIMIT 3;
{"key":"value", "mxPG0h1R5":"L-YQLv@9hcZbOIGrAn10%GA"}
{"BRE3":true}
{"key":"value", "SWzJdEJZ04nrpSfy":[{"3Q23y":[]}]}
SELECT * FROM fuzzJSON(json_fuzzer, json_str='{"students" : ["Alice", "Bob"]}', reuse_output=true) LIMIT 3;
{"students":["Alice", "Bob"], "nwALnRMc4pyKD9Krv":[]}
{"students":["1rNY5ZNs0wU&82t_P", "Bob"], "wLNRGzwDiMKdw":[{}]}
{"xeEk":["1rNY5ZNs0wU&82t_P", "Bob"], "wLNRGzwDiMKdw":[{}, {}]}
SELECT * FROM fuzzJSON(json_fuzzer, json_str='{"students" : ["Alice", "Bob"]}', max_output_length=512) LIMIT 3;
{"students":["Alice", "Bob"], "BREhhXj5":true}
{"NyEsSWzJdeJZ04s":["Alice", 5737924650575683711, 5346334167565345826], "BjVO2X9L":true}
{"NyEsSWzJdeJZ04s":["Alice", 5737924650575683711, 5346334167565345826], "BjVO2X9L":true, "k1SXzbSIz":[{}]}
SELECT * FROM fuzzJSON('{"id":1}', 1234) LIMIT 3;
{"id":1, "mxPG0h1R5":"L-YQLv@9hcZbOIGrAn10%GA"}
{"BRjE":16137826149911306846}
{"XjKE":15076727133550123563}
SELECT * FROM fuzzJSON(json_nc, json_str='{"name" : "FuzzJSON"}', random_seed=1337, malform_output=true) LIMIT 3;
U"name":"FuzzJSON*"SpByjZKtr2VAyHCO"falseh
{"name"keFuzzJSON, "g6vVO7TCIk":jTt^
{"DBhz":YFuzzJSON5}