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

# إعدادات format لـ schema_inference_*

> إعدادات format في ClickHouse ضمن المجموعة المُنشأة schema_inference_*.

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

هذه الإعدادات مُولَّدة تلقائيًا من [المصدر](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/FormatFactorySettings.h).

<div id="schema_inference_hints">
  ## schema\_inference\_hints
</div>

قائمة بأسماء الأعمدة والأنواع التي تُستخدم كتلميحات في استدلال المخطط للتنسيقات التي لا تحتوي على مخطط.

مثال:

استعلام:

```sql theme={null}
desc format(JSONEachRow, '{"x" : 1, "y" : "String", "z" : "0.0.0.0" }') settings schema_inference_hints='x UInt8, z IPv4';
```

النتيجة:

```sql theme={null}
x   UInt8
y   Nullable(String)
z   IPv4
```

<Note>
  إذا لم يكن `schema_inference_hints` منسقًا بالشكل الصحيح، أو إذا احتوى على خطأ مطبعي أو نوع بيانات غير صحيح، وما إلى ذلك... فسيتم تجاهل schema\_inference\_hints بالكامل.
</Note>

<div id="schema_inference_make_columns_nullable">
  ## schema\_inference\_make\_columns\_nullable
</div>

<SettingsInfoBlock type="UInt64Auto" default_value="3" />

يتحكم في جعل الأنواع المستنتجة `Nullable` أثناء استدلال المخطط.
القيم الممكنة:

* 0 - لن يكون النوع المستنتج `Nullable` مطلقًا (استخدم input\_format\_null\_as\_default للتحكم في كيفية التعامل مع قيم null في هذه الحالة)،
* 1 - ستكون جميع الأنواع المستنتجة `Nullable`،
* 2 أو `auto` - سيكون النوع المستنتج `Nullable` فقط إذا كان العمود يحتوي على `NULL` في عينة تُحلَّل أثناء استدلال المخطط، أو إذا كانت البيانات الوصفية للملف تتضمن معلومات عن قابلية العمود لأن يكون null،
* 3 - ستتوافق قابلية النوع المستنتج لأن يكون null مع البيانات الوصفية للملف إذا كانت الصيغة تدعم ذلك (مثل Parquet)، وإلا فسيكون `Nullable` دائمًا (مثل CSV).

<div id="schema_inference_make_json_columns_nullable">
  ## schema\_inference\_make\_json\_columns\_nullable
</div>

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

يتحكم هذا الإعداد في جعل أنواع JSON المستنتجة من النوع `Nullable` أثناء استدلال المخطط.
إذا كان هذا الإعداد مفعّلًا مع schema\_inference\_make\_columns\_nullable، فسيكون نوع JSON المستنتج `Nullable`.

<div id="schema_inference_mode">
  ## schema\_inference\_mode
</div>

<SettingsInfoBlock type="SchemaInferenceMode" default_value="default" />

وضع استدلال المخطط. 'default' - يفترض أن جميع الملفات لها المخطط نفسه، ويمكن استدلال المخطط من أي ملف، 'union' - يمكن أن تكون للملفات مخططات مختلفة، ويجب أن يكون المخطط الناتج اتحاد مخططات جميع الملفات
