> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# s3_* 세션 설정

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

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["버전", "기본값", "설명"];
  const border = "1px solid rgba(128, 128, 128, 0.3)";
  const cell = {
    border,
    padding: "0.25rem 0.5rem",
    textAlign: "start",
    verticalAlign: "top"
  };
  return <details className="not-prose" style={{
    border,
    borderRadius: "0.5rem",
    margin: "0.5rem 0",
    padding: "0.5rem 0.75rem",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <summary style={{
    cursor: "pointer",
    fontWeight: 600,
    opacity: 0.72
  }}>
        버전 이력
      </summary>
      <table style={{
    borderCollapse: "collapse",
    width: "100%",
    margin: "0.5rem 0 0"
  }}>
        <thead>
          <tr>
            {headers.map(header => <th key={header} style={{
    ...cell,
    fontWeight: 600,
    opacity: 0.72
  }}>
                {header}
              </th>)}
          </tr>
        </thead>
        <tbody>
          {rows.map((row, row_index) => <tr key={row.id ?? row_index}>
              {(row.items ?? []).map((item, item_index) => <td key={item_index} style={{
    ...cell,
    overflowWrap: "anywhere"
  }}>
                  {item?.label}
                </td>)}
            </tr>)}
        </tbody>
      </table>
    </details>;
};

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>;
};

이러한 설정은 [system.settings](/ko/reference/system-tables/settings)에서 확인할 수 있으며, [소스](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp)를 기반으로 자동 생성됩니다.

## s3\_base

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": ""},{"label": "s3 테이블 함수 및 S3 테이블 엔진에서 상대 URL을 해석할 기준 URL을 지정하는 새로운 설정입니다."}]}]} />

[s3](/ko/reference/functions/table-functions/s3) 테이블 함수와 [S3](/ko/reference/engines/table-engines/integrations/s3) 테이블 엔진, 그리고 이들과 구성을 공유하는 테이블 함수(`s3Cluster`, `gcs`, `oss`)에서 상대 URL을 해석하는 데 사용하는 기준 URL입니다.

설정하면 스킴이 없는 URL은 [url\_base](/ko/reference/settings/session-settings/url#url_base)와 동일한 규칙에 따라 RFC 3986에 따라 `s3_base`를 기준으로 해석됩니다. 이미 스킴이 포함된 URL은 그대로 사용됩니다.

예를 들어 `s3_base`가 `s3://clickhouse-public-datasets/`이면 `s3('hits_compatible/hits.csv')`는 `s3://clickhouse-public-datasets/hits_compatible/hits.csv`를 읽습니다.

기준 URL에는 `s3` 테이블 함수가 허용하는 모든 형식을 사용할 수 있습니다. 예: `s3://bucket/`, `https://bucket.s3.amazonaws.com/` 또는 `https://endpoint/bucket/`.

## s3\_check\_objects\_after\_upload

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

업로드 성공 여부를 확인하기 위해 S3에 업로드된 각 객체에 대해 HEAD 요청을 수행합니다

## s3\_connect\_timeout\_ms

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1000"},{"label": "s3 연결 타임아웃을 위한 새로운 전용 설정 추가"}]}]} />

S3 디스크의 호스트에 대한 연결 타임아웃입니다.

## s3\_create\_new\_file\_on\_insert

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

S3 엔진 테이블에서 각 삽입 시 새 파일을 생성할지 여부를 설정합니다. 활성화하면 각 삽입마다 key를 사용해 다음 패턴과 유사한 새 S3 객체가 생성됩니다.

initial: `data.Parquet.gz` -> `data.1.Parquet.gz` -> `data.2.Parquet.gz` 등

가능한 값:

* 0 — `INSERT` 쿼리는 새 파일을 생성하며, 파일이 이미 존재하고 s3\_truncate\_on\_insert가 설정되지 않은 경우 실패합니다.
* 1 — `INSERT` 쿼리는 s3\_truncate\_on\_insert가 설정되지 않은 경우 각 삽입마다 suffix를 사용해(두 번째 파일부터) 새 파일을 생성합니다.

자세한 내용은 [여기](/ko/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse#inserting-data)를 참조하십시오.

## s3\_ignore\_file\_doesnt\_exist

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "0"},{"label": "S3 table engine에서 요청한 파일이 존재하지 않을 때 예외를 발생시키는 대신 0개의 행을 반환하도록 허용합니다"}]}]} />

특정 키를 읽을 때 파일이 존재하지 않으면 해당 파일의 부재를 무시합니다.

가능한 값:

* 1 — `SELECT`는 빈 결과를 반환합니다.
* 0 — `SELECT`는 예외를 발생시킵니다.

## s3\_list\_object\_keys\_size

<SettingsInfoBlock type="UInt64" default_value="1000" />

ListObject 요청으로 한 번에 반환할 수 있는 최대 파일 수

## s3\_min\_upload\_part\_size

<SettingsInfoBlock type="UInt64" default_value="16777216" />

S3에 멀티파트 업로드를 수행할 때 업로드할 파트의 최소 크기입니다.

## s3\_path\_filter\_limit

<SettingsInfoBlock type="UInt64" default_value="1000" />

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

글롭 목록 조회 대신 파일 반복 처리에 사용하기 위해 쿼리 필터에서 추출할 수 있는 `_path` 값의 최대 개수입니다.
0은 비활성화를 의미합니다.

## s3\_request\_timeout\_ms

<SettingsInfoBlock type="UInt64" default_value="30000" />

S3로 데이터를 송수신할 때의 유휴 상태 타임아웃입니다. 단일 TCP read 또는 write 호출이 이 시간 동안 블로킹되면 실패합니다.

## s3\_skip\_empty\_files

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "1"},{"label": "더 나은 UX를 제공할 수 있기를 바랍니다"}]}]} />

[S3](/ko/reference/engines/table-engines/integrations/s3) 엔진 테이블에서 빈 파일을 건너뛸지 여부를 설정합니다.

가능한 값:

* 0 — 빈 파일이 요청한 포맷과 호환되지 않으면 `SELECT`가 예외를 발생시킵니다.
* 1 — 빈 파일에 대해 `SELECT`는 빈 결과를 반환합니다.

## s3\_slow\_all\_threads\_after\_network\_error

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

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

`true`로 설정하면 동일한 백업 엔드포인트로 S3 요청을 수행하는 스레드 중 하나에서
socket timeout과 같은 재시도 가능한 네트워크 오류가 발생한 후,
해당 엔드포인트로 S3 요청을 수행하는 모든 스레드의 처리가 느려집니다.
`false`로 설정하면 각 스레드는 다른 스레드와 관계없이 S3 요청의 백오프를 개별적으로 처리합니다.

## s3\_strict\_upload\_part\_size

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

S3에 멀티파트 업로드를 수행할 때 업로드할 파트의 정확한 크기입니다(일부 구현은 가변 크기의 파트를 지원하지 않습니다).

## s3\_throw\_on\_zero\_files\_match

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

ListObjects 요청으로 일치하는 파일을 하나도 찾지 못하면 오류를 발생시킵니다

## s3\_truncate\_on\_insert

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

S3 엔진 테이블에서 삽입 전에 truncate를 수행할지 설정합니다. 비활성화하면 S3 객체가 이미 존재할 경우 삽입을 시도할 때 예외가 발생합니다.

가능한 값:

* 0 — `INSERT` 쿼리는 새 파일을 생성하거나, 파일이 이미 존재하고 s3\_create\_new\_file\_on\_insert가 설정되어 있지 않으면 실패합니다.
* 1 — `INSERT` 쿼리는 파일의 기존 내용을 새 데이터로 대체합니다.

자세한 내용은 [여기](/ko/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse#inserting-data)를 참조하십시오.

## s3\_uri\_style

<SettingsInfoBlock type="S3UriStyle" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "auto"},{"label": "새 설정입니다."}]}]} />

S3 endpoint 스타일을 강제로 지정합니다. 가능한 값: auto, virtual\_hosted, path.

## s3\_use\_adaptive\_timeouts

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

`true`로 설정하면 모든 S3 요청에 대해 처음 두 번의 시도는 낮은 송신 및 수신 타임아웃으로 수행됩니다.
`false`로 설정하면 모든 시도가 동일한 타임아웃으로 수행됩니다.
