allow_nondeterministic_* 세션 설정
allow_nondeterministic_* 세션 설정
이 설정들은 복제 테이블의 mutation과 샤딩 키에서 비결정적(non-deterministic) 함수 사용을 허용할지 제어해요. ClickHouse 소스 코드에서 자동으로 생성된 세션 설정 문서예요.
출처: 문서
본문
이 설정들은 system.settings에서 사용할 수 있으며 소스 코드에서 자동으로 생성돼요.
allow_nondeterministic_mutations
복제 테이블의 mutation이 dictGet 같은 비결정적 함수를 사용할 수 있게 하는 사용자 수준 설정이에요.
예를 들어 사전(dictionary)은 노드 간에 동기화되지 않을 수 있으므로, 사전에서 값을 가져오는 mutation은 기본적으로 복제 테이블에서 허용되지 않아요. 이 설정을 활성화하면 이 동작이 허용되며, 사용된 데이터가 모든 노드에서 동기화되도록 보장하는 것은 사용자의 책임이 돼요.
예시
<profiles>
<default>
<allow_nondeterministic_mutations>1</allow_nondeterministic_mutations>
<!-- ... -->
</default>
<!-- ... -->
</profiles>
allow_nondeterministic_optimize_skip_unused_shards
샤딩 키에서 비결정적 함수(예: rand 또는 dictGet — 후자는 업데이트와 관련해 주의점이 있음)를 허용해요.
가능한 값:
- 0 — 허용되지 않음.
- 1 — 허용됨.