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

# iceberg_* セッション設定

> iceberg_* グループに属する ClickHouse のセッション設定。

export const ExperimentalBadge = () => {
  return <a href="https://clickhouse.com/docs/reference/settings/beta-and-experimental-features#experimental-features" 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>
            実験的な機能
        </a>;
};

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](/ja/reference/system-tables/settings) で参照でき、[source](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp) から自動生成されています。

## iceberg\_delete\_data\_on\_drop

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "0"},{"label": "新しい設定"}]}]} />

drop 時に Iceberg のすべてのファイルを削除するかどうか。

## iceberg\_file\_entries\_queue\_size

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "100"},{"label": "従来はハードコードされていた、Iceberg データマニフェストのデコードタスクとクエリの間のキュー容量に対する新しい設定。"}]}]} />

Iceberg データマニフェストのデコードタスクとクエリの間のキュー容量を、データファイルエントリ数で指定します。

キューが満杯になり、クエリ側が消費していない場合、デコードタスクは一時停止します。そのため、この設定は先読み量の上限にもなります。

ゼロより大きい値を指定する必要があります。

## iceberg\_manifest\_decode\_concurrency

**別名**: `iceberg_delete_manifest_decode_concurrency`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "4"},{"label": "削除マニフェストとデータマニフェストのいずれについても、Iceberg のマニフェストファイルを同時実行でデコードする数を制限する新しい設定です。`iceberg_delete_manifest_decode_concurrency`（別名として維持）を置き換えます。`2` は 26.9 より前のデータパスにほぼ相当します。当時は次のマニフェストの fetch を転送中のままにしつつ、マニフェストを 1 つずつデコードしていました。そのため `compatibility` が 26.8 以下の場合、削除マニフェストのデコードもリリース時の既定値 4 ではなく 2 で実行され、削除デコードの並列性が多少犠牲になる代わりに、以前のデータパスにおけるメモリ使用量の範囲が維持されます。"}]}]} />

テーブルの読み取り中に同時実行でデコードされる Iceberg マニフェストファイルの最大数です。

削除マニフェストは、データファイルが 1 つでも読み取られる前にすべてデコードされます。データマニフェストは、クエリ対象のデータファイル一覧が生成される間にデコードされ、クエリがデコード済みのエントリを消費するのに合わせて新たなものがデコードされます。複数のマニフェストを同時にデコードすることで、object storage へのラウンドトリップとエントリごとの pruning 処理を重ね合わせることができます。

Iceberg metadata files cache が無効、または満杯の場合、転送中の各マニフェストがそれぞれデコード済みの内容を保持するため、値を大きくするとピークメモリが増加します。

ゼロより大きい値である必要があります。`1` の場合はマニフェストを 1 つずつデコードします。

## iceberg\_manifest\_min\_count\_to\_compact

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "100"},{"label": "Iceberg テーブルプロパティ `commit.manifest.min-count-to-merge` のドキュメント記載のデフォルト値 (100) に合わせました。https:\/\/iceberg.apache.org\/docs\/1.5.2\/configuration\/ を参照してください。"}]}, {"id": "row-2","items": [{"label": "26.7"},{"label": "30"},{"label": "Iceberg テーブルのマニフェストコンパクションを制御するための新しい設定。"}]}]} />

OPTIMIZE TABLE ... MANIFEST によるマニフェストのみの コンパクション をトリガーするために必要な、最小のマニフェストファイル数です。
現在のマニフェストファイル数がこのしきい値以下の場合、コンパクション はスキップされます。
allow\_experimental\_iceberg\_compaction を有効にする必要があります。

デフォルト値は、Iceberg テーブルプロパティ `commit.manifest.min-count-to-merge` のドキュメント記載のデフォルト値 (100) に準じています。
[https://iceberg.apache.org/docs/1.5.2/configuration/](https://iceberg.apache.org/docs/1.5.2/configuration/) を参照してください。

## iceberg\_max\_number\_datafiles\_to\_compact

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1000"},{"label": "新しい設定"}]}]} />

Iceberg における コンパクション data files のしきい値。

## iceberg\_orphan\_files\_older\_than\_seconds

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "259200"},{"label": "孤立ファイルのデフォルトの経過時間しきい値を指定する新しい設定"}]}]} />

Icebergテーブルで孤立ファイルを削除する際の、デフォルトの経過時間しきい値 (秒) です。これより新しいファイルは孤立ファイルと見なされません。`remove_orphan_files()` プロシージャ呼び出しで `older_than` 引数が省略された場合に使用されます。デフォルトは259200 (3日) です。

## iceberg\_snapshot\_id

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "0"},{"label": "新しい設定"}]}]} />

特定のスナップショット ID を使用して Iceberg テーブルをクエリします。

## iceberg\_timestamp\_ms

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "0"},{"label": "新しい設定"}]}]} />

特定のタイムスタンプ時点で有効だったスナップショットを使用してIcebergテーブルをクエリします。

## iceberg\_tolerate\_conflicting\_manifest\_schemas

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.10"},{"label": "1"},{"label": "新しい設定: Iceberg のマニフェストファイルヘッダーが、metadata.json から同じ schema-id に対して登録されているスキーマと競合するスキーマを持つ場合、クエリを失敗させるのではなく、metadata.json のスキーマを優先して警告をログに出力し、他のクエリエンジンの挙動に合わせます。`compatibility` を 26.10 未満に設定すると、従来の厳格な挙動に戻ります。"}]}]} />

有効な場合、Iceberg のマニフェストファイルヘッダーの `schema` キーが、metadata.json から同じ schema-id に対してすでに登録されているスキーマと異なるスキーマを持つとき、metadata.json のスキーマが使用され、マニフェストヘッダー側のコピーは警告とともに無視されます。無効な場合、このような競合が発生するとクエリは ICEBERG\_SPECIFICATION\_VIOLATION エラーで失敗します。

マニフェストヘッダーのスキーマは、マニフェストが書き込まれた時点のテーブルスキーマのコピーにすぎず、一部の writer (例: AWS S3 Tables のメンテナンスジョブ) がそこに劣化したコピーを保存する事例が確認されています。他のクエリエンジンは metadata.json からスキーマを解決し、内容が食い違うヘッダー側のコピーを無視するため、デフォルトの挙動もそれに倣っています。なお、2 つの metadata.json のスキーマ定義間に競合がある場合は、引き続き常にクエリが失敗します。
