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 — 허용됨.

더 알아보기 (Learn more)