> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# allow_* 세션 설정

> 자동 생성된 allow_* 그룹의 ClickHouse 세션 설정입니다.

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>유형</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>기본값</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          재시작 없이 변경 가능
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

export const BetaBadge = ({link, galaxyTrack, galaxyEvent}) => {
  if (link) {
    return <a href={link} target="_blank" rel="noopener noreferrer" className="betaBadge" onClick={galaxyTrack && galaxyEvent ? galaxyOnClick(galaxyEvent) : undefined}>
                <Icon />
                <span>베타</span>
            </a>;
  }
  return <div className="betaBadge">
            <Icon />
            <span>
                베타 기능. 
                <u>
                    <a href="/docs/docs/beta-and-experimental-features#beta-features">
                        자세히 보기.
                    </a>
                </u>
            </span>
        </div>;
};

export const ExperimentalBadge = () => {
  return <div className="experimentalBadge">
            <div className="experimentalIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.25" d="M5.5 2H10.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M9.50015 2V6.19625L13.4283 12.7425C13.4738 12.8183 13.4985 12.9049 13.4996 12.9934C13.5008 13.0818 13.4785 13.169 13.435 13.246C13.3914 13.323 13.3283 13.3871 13.2519 13.4317C13.1755 13.4764 13.0886 13.4999 13.0002 13.5H3.00015C2.91164 13.5 2.8247 13.4766 2.74822 13.432C2.67174 13.3874 2.60847 13.3233 2.56487 13.2463C2.52126 13.1693 2.49889 13.082 2.50004 12.9935C2.50119 12.905 2.52582 12.8184 2.5714 12.7425L6.50015 6.19625V2" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M4.47656 9.56754C5.30344 9.41254 6.47656 9.47942 7.99969 10.25C10.0153 11.2707 11.4216 11.0569 12.2184 10.7282" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            실험 기능입니다. <u><a href="/docs/docs/beta-and-experimental-features#experimental-features">자세히 알아보세요.</a></u>
        </div>;
};

이 설정은 [system.settings](/docs/ko/reference/system-tables/settings)에서 사용할 수 있으며 [소스](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp)로부터 자동으로 생성됩니다.

<div id="allow_aggregate_partitions_independently">
  ## allow\_aggregate\_partitions\_independently
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "1"},{"label": "파티션 키가 GROUP BY 키에 적합할 때 기본적으로 파티션별 독립 집계를 활성화합니다. `ReadFromMergeTree::requestOutputEachPartitionThroughSeparatePortForAggregation`의 기존 런타임 휴리스틱은 파티션 레이아웃이 바람직하지 않은 경우(파티션이 너무 적거나, 너무 많거나, 파티션 크기 편차가 큰 경우) 이미 이 최적화를 건너뛰므로, 그렇지 않으면 no-op이 되는 경우에도 이 설정을 안전하게 활성화할 수 있습니다."}]}]} />

파티션 키가 GROUP BY 키에 적합할 때 각 파티션을 별도 스레드에서 독립적으로 집계하도록 활성화합니다. 파티션 수가 코어 수에 가깝고 파티션 크기가 대체로 비슷할 때 유리합니다. `ReadFromMergeTree`의 휴리스틱은 레이아웃이 바람직하지 않은 경우(파티션이 너무 적거나, 너무 많거나, 파티션 크기 편차가 큰 경우) 이 최적화를 자동으로 비활성화합니다. 이러한 검사를 우회하려면 `force_aggregate_partitions_independently`를 참조하십시오.

<div id="allow_archive_path_syntax">
  ## allow\_archive\_path\_syntax
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "1"},{"label": "아카이브 경로 구문을 비활성화할 수 있는 새로운 설정이 추가되었습니다."}]}, {"id": "row-2","items": [{"label": "24.5"},{"label": "1"},{"label": "아카이브 경로 구문을 비활성화할 수 있는 새로운 설정이 추가되었습니다."}]}]} />

File/S3 엔진/테이블 함수는 아카이브에 올바른 확장자가 있으면 '::'가 포함된 경로를 `<archive> :: <file>`로 해석합니다.

<div id="allow_asynchronous_read_from_io_pool_for_merge_tree">
  ## allow\_asynchronous\_read\_from\_io\_pool\_for\_merge\_tree
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

백그라운드 I/O 풀을 사용해 MergeTree 테이블에서 읽습니다. 이 설정을 사용하면 I/O 병목이 있는 쿼리의 성능이 향상될 수 있습니다.

<div id="allow_calculating_subcolumns_sizes_for_merge_tree_reading">
  ## allow\_calculating\_subcolumns\_sizes\_for\_merge\_tree\_reading
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "1"},{"label": "읽기 작업 분할을 개선하기 위해 MergeTree 읽기 시 서브컬럼 크기 계산 허용"}]}]} />

활성화하면 ClickHouse는 작업 및 블록 크기를 더 적절하게 계산할 수 있도록 각 서브컬럼을 읽는 데 필요한 파일 크기를 계산합니다.

<div id="allow_changing_replica_until_first_data_packet">
  ## allow\_changing\_replica\_until\_first\_data\_packet
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

활성화하면 hedged request에서 이미 일부 Progress가 있었더라도 첫 번째 데이터 패킷을 받을 때까지 새 연결을 시작할 수 있습니다
(단, `receive_data_timeout` timeout 동안 Progress가 갱신되지 않은 경우). 그렇지 않으면 처음 Progress가 발생한 이후에는 레플리카 변경을 비활성화합니다.

<div id="allow_create_index_without_type">
  ## allow\_create\_index\_without\_type
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

TYPE 없이 CREATE INDEX 쿼리를 허용합니다. 이 쿼리는 무시됩니다. SQL compatibility 테스트용으로 만들어졌습니다.

<div id="allow_custom_error_code_in_throwif">
  ## allow\_custom\_error\_code\_in\_throwif
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

함수 throwIf()에서 사용자 지정 오류 코드를 사용할 수 있도록 합니다. true이면 발생하는 예외에 예상치 못한 오류 코드가 사용될 수 있습니다.

<div id="allow_ddl">
  ## allow\_ddl
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

true로 설정하면 사용자가 DDL 쿼리를 실행할 수 있습니다.

<div id="allow_distributed_ddl">
  ## allow\_distributed\_ddl
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

true로 설정하면 사용자가 분산 DDL 쿼리를 실행할 수 있도록 허용됩니다.

<div id="allow_drop_detached">
  ## allow\_drop\_detached
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

ALTER TABLE ... DROP DETACHED PART\[ITION] ... 쿼리 실행을 허용합니다

<div id="allow_dynamic_type_in_join_keys">
  ## allow\_dynamic\_type\_in\_join\_keys
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "0"},{"label": "기본적으로 JOIN 키에서 Dynamic 타입 사용을 허용하지 않음"}]}]} />

JOIN 키에서 Dynamic 타입을 사용할 수 있습니다. 호환성을 위해 추가되었습니다. 다른 타입과 비교할 때 예기치 않은 결과가 발생할 수 있으므로 JOIN 키에서 Dynamic 타입을 사용하는 것은 권장되지 않습니다.

<div id="allow_execute_multiif_columnar">
  ## allow\_execute\_multiif\_columnar
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

multiIf 함수를 열 지향으로 실행할 수 있도록 허용합니다

<div id="allow_fuzz_query_functions">
  ## allow\_fuzz\_query\_functions
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "fuzzQuery 함수를 활성화하는 새로운 설정입니다."}]}]} />

쿼리 문자열에 무작위 AST 뮤테이션을 적용하는 `fuzzQuery` 함수를 활성화합니다.

<div id="allow_general_join_planning">
  ## allow\_general\_join\_planning
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "해시 조인 알고리즘이 활성화된 경우, 더 범용적인 조인 계획 알고리즘을 사용할 수 있습니다."}]}]} />

더 복잡한 조건을 처리할 수 있는 더 범용적인 조인 계획 알고리즘을 사용할 수 있도록 허용하지만, 해시 조인에서만 동작합니다. 해시 조인이 활성화되지 않은 경우에는 이 설정값과 관계없이 기본 조인 계획 알고리즘이 사용됩니다.

<div id="allow_get_client_http_header">
  ## allow\_get\_client\_http\_header
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "새 함수가 도입되었습니다."}]}]} />

현재 HTTP request의 header 값을 가져오는 `getClientHTTPHeader` 함수를 사용할 수 있도록 허용합니다. `Cookie`와 같은 일부 header에는 민감한 정보가 포함될 수 있으므로, 보안상의 이유로 기본적으로는 활성화되어 있지 않습니다. `X-ClickHouse-*`, `Authentication`, `Authorization` headers는 항상 제한되므로 이 함수로 가져올 수 없습니다.

<div id="allow_hyperscan">
  ## allow\_hyperscan
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Hyperscan library를 사용하는 함수를 허용합니다. 컴파일 시간이 지나치게 길어지거나 리소스를 과도하게 사용하는 것을 방지하려면 비활성화하십시오.

<div id="allow_iceberg_remove_orphan_files">
  ## allow\_iceberg\_remove\_orphan\_files
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Iceberg 고아 파일 제거를 제어하는 새로운 설정"}]}]} />

Iceberg 테이블에서 'ALTER TABLE ... EXECUTE remove\_orphan\_files()'를 사용할 수 있도록 허용합니다.

<div id="allow_insert_into_iceberg">
  ## allow\_insert\_into\_iceberg
</div>

<BetaBadge />

**별칭**: `allow_experimental_insert_into_iceberg`

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "Iceberg에 대한 삽입이 베타로 전환되었습니다"}]}, {"id": "row-2","items": [{"label": "25.7"},{"label": "0"},{"label": "새 설정입니다."}]}]} />

Iceberg에 `insert` 쿼리를 실행할 수 있도록 허용합니다.

<div id="allow_introspection_functions">
  ## allow\_introspection\_functions
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

쿼리 프로파일링에 사용할 [인트로스펙션 함수](/docs/ko/reference/functions/regular-functions/introspection)를 활성화하거나 비활성화합니다.

가능한 값:

* 1 — 인트로스펙션 함수가 활성화됩니다.
* 0 — 인트로스펙션 함수가 비활성화됩니다.

**관련 항목**

* [샘플링 쿼리 프로파일러](/docs/ko/concepts/features/performance/troubleshoot/sampling-query-profiler)
* 시스템 테이블 [trace\_log](/docs/ko/reference/system-tables/trace_log)

<div id="allow_key_condition_coalesce_rewrite">
  ## allow\_key\_condition\_coalesce\_rewrite
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "`coalesce(a_1, ..., a_N) <op> const` 형태의 프레디케이트(및 이에 해당하는 `ifNull`, 또는 상수가 왼쪽에 있는 동일한 형태)를 인덱스 분석 전에 논리합으로 재작성하여 각 `a_i`에 대한 컬럼별 프라이머리 키와 스킵 인덱스를 사용할 수 있게 하는 새로운 설정입니다. `coalesce(a, 42, b)` 및 `coalesce(a, b, 42)`와 같은 일부 상수 형태도 처리합니다."}]}]} />

`coalesce` 또는 `ifNull`이 포함된 `WHERE`/`PREWHERE` 프레디케이트에서 MergeTree 프라이머리 키(primary key)와 스킵 인덱스가 그래뉼을 프루닝할 수 있도록 합니다. 이 설정이 없으면 이러한 프레디케이트는 인덱스 분석에서 해석되지 않아 프루닝이 수행되지 않으므로, 일치할 수 없는 그래뉼도 읽게 됩니다. 이 설정은 어떤 그래뉼을 읽을지에만 영향을 주며, 행은 여전히 원래 프레디케이트로 필터링되므로 쿼리 결과는 변경되지 않습니다.

인덱스 분석 전에 다음 2가지 프레디케이트 형태를 재작성합니다:

* `coalesce(a, b) = 5`와 같이 `coalesce`/`ifNull`에 비교를 적용한 형태는 각 인수의 인덱스로 프루닝할 수 있도록 논리합으로 변환됩니다: `a = 5 OR (a IS NULL AND b = 5)`. 인수가 더 많아도 같은 방식으로 확장됩니다.
* `ifNull(a = 5, 0)` 또는 `coalesce(a = 5, 0)`처럼 거짓으로 평가되는(0) 상수 기본값을 조건으로 직접 사용하는 `coalesce`/`ifNull`은 내부 프레디케이트 `a = 5`로 풀어집니다. 이러한 래퍼는 내부 프레디케이트의 3값 결과를 확정적인 불리언 값으로 축약합니다(`NULL`을 `false`로 매핑).

<div id="allow_limit_by_partitions_independently">
  ## allow\_limit\_by\_partitions\_independently
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "1"},{"label": "파티션 표현식이 `LIMIT BY` 컬럼의 결정론적 함수일 때 파티션별 `LIMIT BY` 평가를 독립적으로 수행할 수 있게 하는 새로운 설정"}]}]} />

파티션 표현식이 `LIMIT BY` 컬럼의 결정론적 함수인 경우, 별도 스레드에서 파티션별로 `LIMIT BY`를 독립적으로 평가할 수 있게 합니다.

<div id="allow_materialized_view_with_bad_select">
  ## allow\_materialized\_view\_with\_bad\_select
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "0"},{"label": "존재하지 않는 컬럼 또는 테이블을 참조하는 MV는 생성할 수 없음"}]}, {"id": "row-2","items": [{"label": "24.9"},{"label": "1"},{"label": "CREATE MATERIALIZED VIEW에서 더 엄격한 검증 지원(아직 활성화되지는 않음)"}]}]} />

존재하지 않는 테이블이나 컬럼을 참조하는 SELECT 쿼리가 있는 CREATE MATERIALIZED VIEW를 허용합니다. 다만 구문적으로는 여전히 유효해야 합니다. 갱신 가능한 MV에는 적용되지 않습니다. 또한 SELECT 쿼리에서 MV 스키마를 추론해야 하는 경우에는 적용되지 않습니다(즉, CREATE에 컬럼 목록이 없고 TO 테이블도 없는 경우). 원본 테이블보다 먼저 MV를 생성할 때 사용할 수 있습니다.

<div id="allow_minmax_index_for_json">
  ## allow\_minmax\_index\_for\_json
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "0"},{"label": "인덱스 직렬화가 JSON 컬럼에 포함될 수 있는 이기종 Field 값을 처리할 수 없으므로, 기본적으로 JSON 컬럼에 minmax 스킵 인덱스를 생성하지 못하도록 합니다"}]}]} />

JSON (Object) 컬럼에 minmax 스킵 인덱스를 생성할 수 있도록 허용합니다. JSON 컬럼에는 이기종 Field 값이 포함될 수 있는데, minmax
인덱스 직렬화 경로가 이를 처리할 수 없기 때문에 기본적으로 비활성화되어 있습니다.

<div id="allow_named_collection_override_by_default">
  ## allow\_named\_collection\_override\_by\_default
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

기본적으로 이름이 지정된 컬렉션의 필드를 재정의할 수 있도록 허용합니다.

<div id="allow_non_metadata_alters">
  ## allow\_non\_metadata\_alters
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

테이블 메타데이터뿐만 아니라 디스크의 데이터에도 영향을 미치는 alter의 실행을 허용합니다

<div id="allow_nonconst_timezone_arguments">
  ## allow\_nonconst\_timezone\_arguments
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.4"},{"label": "0"},{"label": "toTimeZone(), fromUnixTimestamp*(), snowflakeToDateTime*()와 같은 특정 시간 관련 함수에서 상수가 아닌 시간대 인수를 허용합니다."}]}]} />

toTimeZone(), fromUnixTimestamp\*(), snowflakeIDToDateTime\*()와 같은 특정 시간 관련 함수에서 상수가 아닌 시간대 인수를 허용합니다.
이 설정은 호환성 유지를 위해서만 존재합니다. ClickHouse에서 시간대는 데이터 타입(data type), 정확히는 컬럼의 속성입니다.
이 설정을 활성화하면 하나의 컬럼 안에서 서로 다른 값이 서로 다른 시간대를 가질 수 있다는 잘못된 인상을 줄 수 있습니다.
따라서 이 설정은 활성화하지 마십시오.

<div id="allow_nullable_tuple_in_extracted_subcolumns">
  ## allow\_nullable\_tuple\_in\_extracted\_subcolumns
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "추출된 Tuple 서브컬럼을 널 허용으로 지정할 수 있는지 제어하는 새로운 설정입니다."}]}]} />

`Tuple(...)` 타입의 추출된 서브컬럼을 `Nullable(Tuple(...))`로 지정할 수 있는지 제어합니다.

* `false`: `Tuple(...)`를 반환하고, 서브컬럼이 없는 행에는 기본 Tuple 값을 사용합니다.
* `true`: `Nullable(Tuple(...))`를 반환하고, 서브컬럼이 없는 행에는 `NULL`을 사용합니다.

이 설정은 추출된 서브컬럼의 동작만 제어합니다.
테이블에서 `Nullable(Tuple(...))` 컬럼을 생성할 수 있는지는 제어하지 않으며, 이는 `enable_nullable_tuple_type`에서 제어됩니다.

ClickHouse는 서버 시작 시 로드된 이 설정 값을 사용합니다.
`SET` 또는 쿼리 수준 `SETTINGS`로 변경해도 추출된 서브컬럼의 동작은 바뀌지 않습니다.
추출된 서브컬럼의 동작을 변경하려면 시작 프로필 구성(예: users.xml)에서 `allow_nullable_tuple_in_extracted_subcolumns` 값을 수정한 뒤 서버를 재시작하십시오.

<div id="allow_rank_dense_rank_arguments">
  ## allow\_rank\_dense\_rank\_arguments
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "새 설정입니다. 26.5 이전에는 `RANK` 및 `DENSE_RANK` 윈도우 함수에 전달된 인수가 있더라도 이를 조용히 무시했습니다(`allow_rank_dense_rank_arguments = 1`과 동일). 26.5부터는 SQL 표준에 따라 이 함수들이 인수를 받지 않으므로, 기본적으로 `NUMBER_OF_ARGUMENTS_DOESNT_MATCH`와 함께 인수를 거부합니다. 기존 동작을 복원하려면 이 값을 `1`로 설정하십시오."}]}]} />

이전 버전과의 호환성을 위해 `RANK` 및 `DENSE_RANK` 윈도우 함수에 인수를 전달할 수 있도록 합니다.

SQL 표준에 따르면 `RANK` 및 `DENSE_RANK`는 인수를 받지 않으며, 순위는
`OVER (ORDER BY ...)` 윈도우만을 기준으로 매겨집니다. ClickHouse 26.5 이전 버전에서는
`RANK(x) OVER (...)`와 같은 쿼리에서 인수를 전달해도 조용히 받아들인 뒤 무시했기 때문에 사용자 혼란이 발생했습니다
(겉으로 보이는 인수는 순위 계산에 영향을 주는 것처럼 보이지만 실제로는 그렇지 않았습니다).

이 설정이 `false`이면(기본값) `RANK` 및 `DENSE_RANK`는 모든 인수를 거부하고
`NUMBER_OF_ARGUMENTS_DOESNT_MATCH`를 발생시킵니다. `true`로 설정하면 기존의 느슨한 동작이
복원되며, 인수는 조용히 무시되어 26.5 이전 동작과 동일하게 처리됩니다.

<div id="allow_reorder_prewhere_conditions">
  ## allow\_reorder\_prewhere\_conditions
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "1"},{"label": "새로운 설정"}]}]} />

WHERE에서 PREWHERE로 조건을 이동할 때 필터링을 최적화할 수 있도록 조건 순서 재정렬을 허용합니다

<div id="allow_replace_partition_from_empty_source">
  ## allow\_replace\_partition\_from\_empty\_source
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "0"},{"label": "새로운 안전 검사: 이제 `ALTER TABLE ... REPLACE PARTITION ... FROM ...`은 원본 테이블의 요청한 파티션에 파트가 없으면 예외를 발생시킵니다([#23727](https:\/\/github.com\/ClickHouse\/ClickHouse\/issues\/23727)에서의 무음 데이터 손실 문제 수정). 기존 동작인 대상 파티션을 조용히 삭제하는 방식은 `allow_replace_partition_from_empty_source = 1`을 설정하면 유지됩니다."}]}]} />

원본의 해당 파티션에 파트가 없을 때 `ALTER TABLE ... REPLACE PARTITION ... FROM ...`이 대상 파티션을 조용히 삭제하도록 허용합니다.

기본적으로는 허용되지 않습니다. 요청한 파티션에 데이터가 없는 원본에서 `REPLACE PARTITION`을 수행하면 예외가 발생합니다. 이 경우 이 작업은 사실상 대상에 대해 조용히 `DROP PARTITION`을 수행하는 것과 같기 때문입니다(대상의 데이터는 삭제되고 이를 대체할 데이터는 없음). 이는 실수로 인한 데이터 손실의 흔한 원인입니다([#23727](https://github.com/ClickHouse/ClickHouse/issues/23727) 참조).

예를 들어 비어 있는 원본 파티션을 의도적으로 사용해 대상의 데이터를 비우려는 경우, 이전 동작을 복원하려면 이 설정을 활성화하십시오. 무조건 삭제하려면 대신 `ALTER TABLE ... DROP PARTITION ...`을 사용하는 것이 좋습니다.

<div id="allow_settings_after_format_in_insert">
  ## allow\_settings\_after\_format\_in\_insert
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.4"},{"label": "0"},{"label": "ClickHouse가 `SETTINGS`를 일부 값으로 해석해 혼동을 일으킬 수 있으므로 `INSERT` 쿼리에서 `FORMAT` 뒤의 `SETTINGS`를 허용하지 않습니다"}]}]} />

`INSERT` 쿼리에서 `FORMAT` 뒤에 `SETTINGS`를 허용할지 여부를 제어합니다. `SETTINGS`의 일부가 값으로 해석될 수 있으므로 사용은 권장되지 않습니다.

예시:

```sql theme={null}
INSERT INTO FUNCTION null('foo String') SETTINGS max_threads=1 VALUES ('bar');
```

하지만 다음 쿼리는 `allow_settings_after_format_in_insert`를 활성화한 경우에만 작동합니다:

```sql theme={null}
SET allow_settings_after_format_in_insert=1;
INSERT INTO FUNCTION null('foo String') VALUES ('bar') SETTINGS max_threads=1;
```

가능한 값:

* 0 — 허용하지 않습니다.
* 1 — 허용합니다.

<Note>
  사용 사례가 이전 구문에 의존하는 경우에만 이전 버전과의 호환성을 위해 이 설정을 사용하십시오.
</Note>

<div id="allow_simdjson">
  ## allow\_simdjson
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

AVX2 명령어를 사용할 수 있으면 'JSON\*' 함수에서 simdjson 라이브러리를 사용할 수 있도록 허용합니다. 비활성화하면 rapidjson이 사용됩니다.

<div id="allow_special_serialization_kinds_in_output_formats">
  ## allow\_special\_serialization\_kinds\_in\_output\_formats
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1"},{"label": "일부 출력 형식에서 Sparse/Replicated와 같은 특수 컬럼 표현을 직접 출력하도록 활성화합니다"}]}, {"id": "row-2","items": [{"label": "25.10"},{"label": "0"},{"label": "Sparse/Replicated와 같은 특수 컬럼 표현을 full column으로 변환하지 않고 출력할 수 있도록 하는 설정을 추가합니다"}]}]} />

Sparse 및 Replicated와 같은 특수 serialization kind를 사용하는 컬럼을 full column 표현으로 변환하지 않고 출력할 수 있습니다.
포맷팅 중 불필요한 데이터 복사를 줄이는 데 도움이 됩니다.

<div id="allow_unrestricted_reads_from_keeper">
  ## allow\_unrestricted\_reads\_from\_keeper
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

system.zookeeper 테이블에서 제한 없이(경로 조건 없이) 읽을 수 있도록 허용합니다. 편리할 수는 있지만 ZooKeeper에는 안전하지 않습니다.
