난수 생성 함수
이 섹션의 모든 함수는 0개 또는 1개의 인수만 받습니다. 인수(제공된 경우)의 유일한 목적은 공통 부분식 제거를 방지하여, 한 행 내에서 동일한 난수 함수를 두 번 실행하더라도 서로 다른 난수 값을 반환하도록 하는 것입니다.
관련 콘텐츠
난수는 비암호학적(non-cryptographic) 알고리즘으로 생성됩니다.
아래 문서는 system.functions 시스템 테이블에서 자동 생성되었습니다.
fuzzBits
도입된 버전: v20.5
입력 문자열 s의 각 비트를 확률 p로 뒤집습니다.
구문
인수
s— 비트 퍼징을 수행할String또는FixedString형식의 문자열p— 각 비트가 뒤집힐 확률로,0.0과1.0사이의 숫자Float*
반환 값
s와 동일한 타입의 퍼징된 문자열을 반환합니다. String 또는 FixedString
예시
사용 예시
rand
도입된 버전: v1.1
균등 분포를 따르는 임의의 UInt32 정수를 반환합니다.
초기 상태를 시스템에서 가져오는 선형 합동 생성기(linear congruential generator)를 사용합니다. 이는 겉보기에는 무작위처럼 보이지만, 초기 상태를 알고 있으면 예측이 가능할 수 있어 진정한 의미의 난수는 아닙니다. 진정한 난수성이 중요한 시나리오에서는 시스템 수준 호출이나 외부 라이브러리 연동과 같은 대체 방법 사용을 고려하십시오.
구문
별칭: rand32
인자
반환 값
UInt32 타입의 난수를 반환합니다. UInt32
예시
사용 예시
rand64
도입 버전: v1.1
균등 분포를 따르는 난수 UInt64 값을 반환합니다.
초기 상태(시드)를 시스템에서 가져오는 선형 합동 생성기(linear congruential generator)를 사용합니다. 따라서 겉보기에는 무작위처럼 보이지만, 실제로는 진정한 난수가 아니며 초기 상태를 알고 있으면 예측이 가능할 수 있습니다. 진정한 무작위성이 중요한 시나리오에서는 시스템 호출을 사용하거나 외부 라이브러리와 연동하는 등의 다른 방법을 사용하는 것이 좋습니다.
구문
인수
반환 값
균일 분포를 따르는 임의의 UInt64 값을 반환합니다. UInt64
예시
사용 예
randBernoulli
도입: v22.10
베르누이 분포(Bernoulli distribution)에서 추출한 Float64 난수를 반환합니다.
구문
인수
probability— 성공 확률을0과1사이 값으로 지정합니다.Float64x— 선택적이며 무시됩니다. 이 인수는 동일한 함수 호출이 쿼리에서 여러 번 사용될 때 공통 부분식 제거가 수행되지 않도록 하기 위한 것입니다.Any
반환 값
지정된 베르누이 분포에서 추출한 임의의 Float64 값을 반환합니다. UInt64
예시
사용 예시
randBinomial
도입 버전: v22.10
이항 분포에서 추출한 임의의 Float64 값을 반환합니다.
구문
인수
experiments— 시행 횟수UInt64probability— 각 시행에서의 성공 확률로,0이상1이하의 값Float64x— 선택적 인수이며 값은 사용되지 않습니다. 이 인수의 유일한 목적은 동일한 함수 호출이 쿼리에서 여러 번 사용될 때 공통 부분식 제거가 수행되지 않도록 하는 것입니다.Any
반환 값
지정된 이항 분포에서 추출한 임의의 Float64 값을 반환합니다. UInt64
예시
사용 예시
randCanonical
도입된 버전: v22.11
0(포함) 이상 1(미포함) 구간에서 균일 분포를 따르는 Float64 형 난수를 반환합니다.
구문
인자(Arguments)
x— 선택적이며 사용되지 않습니다. 이 인자의 유일한 목적은 동일한 함수 호출이 쿼리에서 여러 번 사용될 때 common subexpression elimination을 방지하는 것입니다.Any
반환 값
임의의 Float64 값을 반환합니다. Float64
예시
사용 예시
randChiSquared
도입 버전: v22.10
카이제곱 분포를 따르는 무작위 Float64 값을 반환합니다.
구문
인수
degree_of_freedom— 자유도.Float64x— 선택적 인수이며 무시됩니다. 이 인수의 목적은 동일한 함수 호출이 쿼리에서 여러 번 사용될 때 공통 부분식 제거를 방지하는 것입니다.Any
반환 값
지정된 카이제곱 분포에서 추출한 무작위 Float64 값을 반환합니다. Float64
예시
사용 예시
randConstant
도입 버전: v1.1
현재 쿼리 실행에서 모든 행에 대해 동일하게 유지되는 단일 난수 값을 생성합니다.
이 함수는 다음과 같은 특성이 있습니다:
- 하나의 쿼리 내에서 모든 행에 대해 동일한 난수 값을 반환합니다.
- 서로 다른 쿼리 실행 간에는 서로 다른 값을 생성합니다.
데이터 세트의 모든 행에 일관된 난수 시드나 식별자를 적용하는 데 유용합니다.
구문
인수(Arguments)
x— 선택적이며, 실제로는 사용되지 않습니다. 이 인수의 유일한 목적은 동일한 함수 호출이 쿼리에서 여러 번 사용될 때 공통 부분식 제거(common subexpression elimination)를 방지하는 데 있습니다.Any
반환 값
각 행마다 동일한 난수 값을 가지는 UInt32 타입의 컬럼을 반환합니다. UInt32
예시(Examples)
기본 사용법
매개변수 사용
randExponential
도입된 버전: v22.10
지수 분포에서 생성된 임의의 Float64 난수를 반환합니다.
구문
인수
lambda— 분포의 레이트(rate) 매개변수 또는 람다 값.Float64x— 선택적 인수이며 값은 사용되지 않습니다. 동일한 함수 호출이 쿼리에서 여러 번 사용될 때 공통 부분식 제거를 방지하는 것이 이 인수의 유일한 목적입니다.Any
반환 값
지정된 지수 분포에서 추출한 임의의 Float64 값을 반환합니다. Float64
예시
사용 예시
randFisherF
도입 버전: v22.10
F-분포에서 생성된 난수(Float64)를 반환합니다.
구문
인수
d1—X = (S1 / d1) / (S2 / d2)에서의 자유도 d1.Float64d2—X = (S1 / d1) / (S2 / d2)에서의 자유도 d2.Float64x— 선택적 인수이며 무시됩니다. 이 인수의 유일한 목적은 동일한 함수 호출이 쿼리에서 여러 번 사용될 때 공통 부분식 제거를 방지하는 것입니다.Any
반환 값
지정된 F-분포에서 추출된 임의의 Float64 값을 반환합니다. Float64
예시
사용 예시
randLogNormal
도입된 버전: v22.10
로그 정규 분포에서 추출된 임의의 Float64 값을 반환합니다.
구문
인수
mean— 분포의 평균값입니다.Float64stddev— 분포의 표준편차입니다.Float64x— 선택적 인수이며, 실제로는 사용되지 않습니다. 동일한 함수 호출이 쿼리에서 여러 번 사용될 때 공통 부분식 제거를 방지하는 것이 이 인수의 유일한 목적입니다.Any
반환 값
지정된 로그 정규 분포에서 추출한 임의의 Float64 숫자를 반환합니다. Float64
예시
사용 예시
randNegativeBinomial
도입 버전: v22.10
음이항 분포에서 추출한 임의의 Float64 난수를 반환합니다.
구문
인수
experiments— 실험 횟수.UInt64probability— 각 실험에서 실패할 확률로,0과1사이의 값입니다.Float64x— 선택적 인수이며, 실제 연산에는 사용되지 않습니다. 이 인수의 목적은 동일한 함수 호출이 쿼리에서 여러 번 사용될 때 공통 부분식 제거를 방지하는 데 있습니다.Any
반환 값
지정된 음의 이항 분포에서 추출된 임의의 Float64 값을 반환합니다. UInt64
예시
사용 예시
randNormal
도입된 버전: v22.10
정규 분포로부터 추출된 난수인 Float64 값을 반환합니다.
구문
인자
mean— 분포의 평균값.Float64stddev— 분포의 표준편차.Float64x— 선택적 인자로, 무시됩니다. 동일한 함수 호출이 쿼리에서 여러 번 사용될 때 공통 부분식 제거를 방지하는 것이 이 인자의 유일한 목적입니다.Any
반환 값
지정된 정규 분포에서 추출한 랜덤한 Float64 값을 반환합니다. Float64
예시
사용 예시
randPoisson
도입 버전: v22.10
Poisson distribution에서 추출한 난수(Float64)를 반환합니다.
구문
인수
n— 평균 발생 횟수.UInt64x— 선택적 인수이며 사용되지 않습니다. 동일한 함수 호출이 하나의 쿼리 내에서 여러 번 사용될 때 공통 부분식 제거를 방지하는 것이 이 인수의 유일한 목적입니다.Any
반환 값
지정된 포아송 분포에서 추출된 임의의 Float64 값을 반환합니다. UInt64
예시
사용 예시
randStudentT
도입 버전: v22.10
Student's t-분포를 따르는 난수(Float64)를 반환합니다.
구문
인수
degree_of_freedom— 자유도.Float64x— 선택적이며 무시됩니다. 이 인수의 유일한 목적은 동일한 함수 호출이 하나의 쿼리에서 여러 번 사용될 때 common subexpression elimination을 방지하는 것입니다.Any
반환 값
지정된 Student t-분포에서 추출된 무작위 Float64 값을 반환합니다. Float64
예시
사용 예시
randUniform
도입된 버전: v22.10
구간 에서 균등 분포로 추출된 임의의 Float64 값을 반환합니다.
구문
인수
min— 구간의 왼쪽 경계값(포함).Float64max— 구간의 오른쪽 경계값(포함).Float64x— 선택적 인수이며 값은 사용되지 않습니다. 동일한 함수 호출이 쿼리에서 여러 번 사용될 때 공통 부분식 제거를 방지하는 것만이 이 인수의 목적입니다.Any
반환 값
min과 max로 정의되는 구간에서 균등 분포를 따르도록 선택된 임의의 숫자를 반환합니다. Float64
예시
사용 예시
randomFixedString
도입 버전: v20.5
지정된 문자 개수의 고정 길이 임의 문자열을 생성합니다. 반환되는 문자는 반드시 ASCII 문자일 필요는 없으며, 따라서 출력할 수 없는 문자일 수도 있습니다.
구문
인수
length— 문자열의 길이(바이트 단위).UInt*
반환 값
임의의 바이트로 채워진 문자열을 반환합니다. FixedString
예시
사용 예시
randomPrintableASCII
도입된 버전: v20.1
지정한 길이의 무작위 ASCII 문자열을 생성합니다.
length < 0 값을 전달하면 함수의 동작이 정의되지 않습니다.
구문
인수
length— 문자열 길이(바이트 단위).(U)Int*x— 선택 인수이며 실제 연산에서는 사용되지 않습니다. 이 인수의 유일한 목적은 동일한 함수 호출이 쿼리에서 여러 번 사용될 때 공통 부분식 제거를 방지하는 것입니다.Any
반환 값
ASCII 출력 가능 문자로 구성된 무작위 문자열을 반환합니다. String
예시
사용 예시
randomString
도입 버전: v20.5
지정한 길이(문자 수)의 임의 문자열을 생성합니다. 반환되는 문자는 반드시 ASCII 문자일 필요는 없으므로, 출력할 수 없는 문자일 수도 있습니다.
구문
인수
length— 문자열의 길이(바이트 단위).(U)Int*x— 선택적 인수이며 사용되지 않습니다. 이 인수의 유일한 목적은 동일한 함수 호출이 쿼리에서 여러 번 사용될 때 공통 부분식 제거를 방지하는 것입니다.Any
반환 값
임의의 바이트로 채워진 문자열을 반환합니다. String
예시
사용 예시
randomStringUTF8
도입 버전: v20.5
지정한 코드 포인트 개수를 갖는 무작위 UTF-8 문자열을 생성합니다. 할당되지 않은 플레인(플레인 4부터 13까지)의 코드 포인트는 반환되지 않습니다. ClickHouse 서버와 통신하는 클라이언트가 생성된 UTF-8 문자열을 올바르게 표시하지 못할 수도 있습니다.
구문
인수
length— 문자열의 코드 포인트 개수.(U)Int*
반환 값
무작위 UTF-8 코드 포인트로 채워진 문자열을 반환합니다. String
예시
사용 예시