> ## 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.

# object_shared_* MergeTree 테이블 설정

> object_shared_* 생성 그룹에 속한 ClickHouse MergeTree 테이블 설정입니다.

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.merge\_tree\_settings](/ko/reference/system-tables/merge_tree_settings)에서 사용할 수 있으며, ClickHouse 소스 코드에서 자동으로 생성됩니다.

## object\_shared\_data\_buckets\_for\_compact\_part

<SettingsInfoBlock type="NonZeroUInt64" default_value="8" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "8"},{"label": "Compact 파트의 JSON 공유 데이터 직렬화에서 버킷 수를 제어하는 설정 추가"}]}]} />

Compact 파트의 JSON 공유 데이터 직렬화에서 사용하는 버킷 수입니다. `map_with_buckets`, `advanced`, `advanced_chunked` 공유 데이터 직렬화와 함께 작동합니다.
허용되는 최대값은 256입니다.

## object\_shared\_data\_buckets\_for\_wide\_part

<SettingsInfoBlock type="NonZeroUInt64" default_value="32" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "32"},{"label": "wide 파트의 JSON 공유 데이터 직렬화에서 버킷 수를 제어하는 설정 추가"}]}]} />

wide 파트의 JSON 공유 데이터 직렬화에 사용되는 버킷 수입니다. `map_with_buckets`, `advanced`, `advanced_chunked` 공유 데이터 직렬화와 함께 사용됩니다.
허용되는 최대값은 256입니다.

## object\_shared\_data\_serialization\_version

<SettingsInfoBlock type="MergeTreeObjectSharedDataSerializationVersion" default_value="advanced" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "map"},{"label": "JSON 직렬화 버전을 제어하는 설정 추가"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "advanced"},{"label": "기본적으로 고급 공유 데이터 직렬화 버전 활성화"}]}]} />

JSON 데이터 타입 내부 공유 데이터의 직렬화 버전입니다.

Possible values:

* `map` - 공유 데이터를 `Map(String, String)`으로 저장합니다
* `map_with_buckets` - 공유 데이터를 여러 개의 개별 `Map(String, String)` 컬럼으로 저장합니다. 버킷을 사용하면 공유 데이터에서 개별 경로를 읽는 성능이 향상됩니다.
* `advanced` - 공유 데이터에서 개별 경로 읽기 성능을 크게 향상하도록 설계된 공유 데이터용 특수 직렬화입니다.
  이 직렬화는 많은 추가 정보를 저장하므로 디스크에서 공유 데이터의 저장 크기가 증가합니다.

- `advanced_chunked` - `advanced`와 동일하지만, 고유 경로가 많은 JSON 컬럼을 머지할 때 피크 메모리를 줄이기 위해 직렬화 중 행을 더 작은 청크로 분할하는 기능을 지원합니다. 청크 크기는 [object\_shared\_data\_target\_chunk\_rows](/ko/reference/settings/merge-tree-settings/object-shared#object_shared_data_target_chunk_rows) 설정으로 제어합니다.

`map_with_buckets`, `advanced` 및 `advanced_chunked` 직렬화의 버킷 수는 다음 설정에 따라 결정됩니다.
[object\_shared\_data\_buckets\_for\_compact\_part](/ko/reference/settings/merge-tree-settings/object-shared#object_shared_data_buckets_for_compact_part)/[object\_shared\_data\_buckets\_for\_wide\_part](/ko/reference/settings/merge-tree-settings/object-shared#object_shared_data_buckets_for_wide_part).

## object\_shared\_data\_serialization\_version\_for\_zero\_level\_parts

<SettingsInfoBlock type="MergeTreeObjectSharedDataSerializationVersion" default_value="map_with_buckets" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "map"},{"label": "0레벨 파트의 JSON 직렬화 버전을 제어하는 설정 추가"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "map_with_buckets"},{"label": "기본적으로 0레벨 파트에 map_with_buckets 공유 데이터 직렬화 버전 활성화"}]}]} />

이 설정을 사용하면 삽입 중 생성되는 0레벨 파트의 JSON 타입 내부 공유 데이터에 대해
서로 다른 직렬화 버전을 지정할 수 있습니다.
`advanced` 또는 `advanced_chunked` 공유 데이터 직렬화는 삽입 시간을 크게 늘릴 수 있으므로 0레벨 파트에는 사용하지 않는 것이 좋습니다.

## object\_shared\_data\_target\_chunk\_rows

<SettingsInfoBlock type="NonZeroUInt64" default_value="8192" />

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

`advanced_chunked` JSON 공유 데이터 직렬화 시 청크당 목표 행 수입니다.
이는 하드 제한이 아닙니다. 마지막 청크가 목표 크기의 절반보다 작으면 이전 청크와 머지되므로
실제 청크 크기는 `target/2`부터 `1.5 * target`까지입니다.
값을 작게 설정하면 청크 수는 늘어나지만, 고유한 경로가 많은 JSON 컬럼을 머지할 때 피크 메모리 사용량은 줄어듭니다.
