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

# إعدادات تنسيق output_format_*

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

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

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

## output\_format\_always\_write\_decimal\_point\_in\_float\_and\_decimal

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "0"},{"label": "إعداد جديد لعرض الفاصلة العشرية دائمًا للأعداد ذات الفاصلة العائمة وأعداد Decimal في التنسيقات النصية، حتى إذا كانت القيمة عددًا صحيحًا."}]}]} />

اعرض الفاصلة العشرية دائمًا للأعداد ذات الفاصلة العائمة وأعداد Decimal في التنسيقات النصية، حتى إذا كانت القيمة عددًا صحيحًا. على سبيل المثال، اعرض `1.` بدلًا من `1`.

مُعطَّل افتراضيًا.

## output\_format\_arrow\_compression\_method

<SettingsInfoBlock type="ArrowCompression" default_value="lz4_frame" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.3"},{"label": "lz4_frame"},{"label": "استخدام ضغط lz4 افتراضيًا في تنسيق إخراج Arrow"}]}]} />

طريقة الضغط لتنسيق إخراج Arrow. خوارزميات الضغط المدعومة: lz4\_frame, zstd, none (غير مضغوط)

## output\_format\_arrow\_date\_as\_uint16

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "تُكتب قيم Date افتراضيًا كنوع Arrow DATE32 بدلًا من UInt16 العادي."}]}]} />

اكتب قيم Date كأرقام عادية من 16 بت (تُقرأ لاحقًا كـ UInt16)، بدلًا من تحويلها إلى النوع Arrow DATE32 ذي 32 بت (تُقرأ لاحقًا كـ Date32).

## output\_format\_arrow\_fixed\_string\_as\_fixed\_byte\_array

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.2"},{"label": "1"},{"label": "استخدام نوع Arrow FIXED_SIZE_BINARY افتراضيًا بدلًا من Binary لأعمدة FixedString"}]}]} />

استخدم نوع Arrow FIXED\_SIZE\_BINARY بدلًا من Binary لأعمدة FixedString.

## output\_format\_arrow\_low\_cardinality\_as\_dictionary

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

تمكين إخراج النوع LowCardinality على أنه النوع Dictionary في Arrow

## output\_format\_arrow\_record\_batch\_size

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "0"},{"label": "إعداد جديد لدمج الكتل الصغيرة في إخراج `Arrow` و`ArrowStream` باستخدام عدد صفوف مستهدف. القيمة الافتراضية `0` تحافظ على دفعة سجلات واحدة لكل كتلة."}]}]} />

العدد المستهدف من الصفوف لكل دفعة سجلات في تنسيقَي الإخراج `Arrow` و`ArrowStream`. يقلل دمج الكتل الصغيرة من العبء الناتج عن البيانات الوصفية وحشو الـ buffer، وخاصة في الاستعلامات ذات عوامل التصفية الانتقائية.

تتراكم الكتل حتى بلوغ هذا الهدف أو [output\_format\_arrow\_record\_batch\_size\_bytes](/ar/reference/settings/formats/output-format#output_format_arrow_record_batch_size_bytes). أما الكتلة التي تستوفي بالفعل هدف الصفوف أو البايتات فتُكتب على حدة دون تقسيم. وإذا حددت هدفًا لعدد الصفوف، فإن الدفعات المدمجة تحتوي على أقل من ضعف ذلك العدد من الصفوف، غير أن كتلة الإدخال الواحدة قد تكون أكبر من ذلك.

قد يؤدي تخزين الكتل مؤقتًا إلى زيادة استهلاك الذاكرة وتأخير الإخراج. وإذا لم تبلغ النتيجة أيًّا من الهدفين، فلن يكتب `ArrowStream` أول دفعة سجلات إلا عند انتهاء الاستعلام، وإن كان بإمكانه كتابة المخطط قبل ذلك. اترك كلا الهدفين عند `0` لكتابة دفعات السجلات فور وصول الكتل.

القيمة `0` (الافتراضية) تعطّل هدف الصفوف. جرّب `65409` كقيمة بدئية.

## output\_format\_arrow\_record\_batch\_size\_bytes

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "0"},{"label": "إعداد جديد لدمج الكتل الصغيرة في مخرجات `Arrow` و`ArrowStream` باستخدام حجم مستهدف بالبايت للبيانات المتراكمة. تحافظ القيمة الافتراضية `0` على دفعة سجلات واحدة لكل كتلة."}]}]} />

حجم دفعة السجلات المستهدف لتنسيقات الإخراج `Arrow` و`ArrowStream`، ويُقاس بالبايت من بيانات الكتل المتراكمة. يستخدم المقياس نفسه المستخدم في [min\_insert\_block\_size\_bytes](/ar/reference/settings/session-settings/min-insert#min_insert_block_size_bytes). تُكتب الدفعة عند بلوغ هذا الهدف أو بلوغ [output\_format\_arrow\_record\_batch\_size](/ar/reference/settings/formats/output-format#output_format_arrow_record_batch_size).

لاحظ أن أعمدة `LowCardinality` قد تنتج دفعات Arrow أكبر أو أصغر بكثير من هذا الهدف بالبايت. تتوسع القيم المتكررة في الإخراج ما لم يكن [output\_format\_arrow\_low\_cardinality\_as\_dictionary](/ar/reference/settings/formats/output-format#output_format_arrow_low_cardinality_as_dictionary) مفعّلًا. وقد تحتفظ الكتل المُرشَّحة أيضًا بقواميس كبيرة، لذا قد تبلغ حتى كتلة تحتوي على عدد قليل جدًا من الصفوف الهدف وتُكتب بصورة منفصلة. بالنسبة إلى هذه الأعمدة، استخدم [output\_format\_arrow\_record\_batch\_size](/ar/reference/settings/formats/output-format#output_format_arrow_record_batch_size) للتحكم في عدد الصفوف، واضبط هدف البايت على `0`.

قد يؤدي تخزين الكتل مؤقتًا إلى زيادة استخدام الذاكرة وتأخير دفعة السجلات الأولى إلى حين انتهاء الاستعلام. اترك الهدفين عند `0` لكتابة دفعات السجلات فور وصول الكتل.

تعطّل القيمة `0` (الافتراضية) هدف البايت. جرّب `1048576` (1 MiB) كقيمة ابتدائية.

## output\_format\_arrow\_string\_as\_string

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "يسمح ClickHouse بتخزين بيانات ثنائية عشوائية في نوع البيانات String، والذي يكون عادةً بترميز UTF-8. ولا تدعم Strings في Parquet\/ORC\/Arrow سوى ترميز UTF-8. لذلك، يمكنك اختيار نوع بيانات Arrow الذي تريد استخدامه مع نوع البيانات String في ClickHouse: String أو Binary. ومع أن Binary أكثر دقةً وتوافقًا، فإن استخدام String افتراضيًا يتوافق مع توقعات المستخدمين في معظم الحالات."}]}]} />

استخدم نوع Arrow String بدلًا من Binary لأعمدة String

## output\_format\_arrow\_unsupported\_types

<SettingsInfoBlock type="ArrowUnsupportedTypes" default_value="binary" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.10"},{"label": "binary"},{"label": "إعداد جديد يحل محل `output_format_arrow_unsupported_types_as_binary` ويضيف وضع `text`. تتطابق قيمته الافتراضية مع السلوك السابق، لذا يجب ألا يغيّرها `compatibility`."}]}]} />

ما يُكتب لعمود لا يملك نوعه تعيينًا أصليًا في Arrow (مثل `JSON` أو `Dynamic` أو `QBit` أو `AggregateFunction`):

* `throw` — رفض الاستعلام؛
* `text` — قيمة واحدة بصيغة نصية لكل صف (ما ينتجه `CAST(col AS String)`)، كعمود Arrow من نوع `Utf8`؛
* `binary` — التمثيل الثنائي لكل قيمة، كعمود Arrow من نوع `Binary` (بالترميز نفسه لكل قيمة كما في `RowBinary`).

يكون عمود `AggregateFunction` من نوع `Binary` في وضع `text` أيضًا، لأن صيغته النصية هي حالة التجميع الخام وليست نصًا، ولأن عمود Arrow من نوع `Utf8` يجب أن يحتوي على UTF-8 صالح. استخدم `finalizeAggregation` للحصول على قيمة قابلة للقراءة.

تُضمن صلاحية UTF-8 للقيمة المكتوبة في عمود `Utf8`، باستبدال كل تسلسل غير صالح بـ U+FFFD. لا يؤثر ذلك إلا في بيانات لم يكن بإمكان القارئ تفسيرها كنص على أي حال، مثل `Dynamic` يحتوي على `String` من بايتات عشوائية. استخدم وضع `binary` عندما يجب الاحتفاظ بالبايتات كما هي تمامًا.

لا ينطبق `output_format_arrow_string_as_string` على هذه الأعمدة، بل على أعمدة `String` و`FixedString` الحقيقية فقط. وهكذا يعبّر نوع Arrow لعمود معتم عن الترميز الذي يحمله: `Utf8` للصيغة النصية و`Binary` للصيغة الثنائية، بغض النظر عما يقوله ذلك الإعداد.

ينطبق الأمر نفسه على حالة تجميع محفوظة في `Dynamic`: فنوع العمود مشتق من `Dynamic`، الذي لا يوضح ما تحتويه صفوفه، كما أن مخطط Arrow يُثبّت قبل رؤية أي قيمة؛ لذلك لا يمكن منح الحالة عمود `Binary` خاصًا بها كما هو الحال مع عمود `AggregateFunction`. ومن ثم تكون البيانات فاقدة للمعلومات في وضع `text`، بينما يحافظ عليها وضع `binary`. لا يتأثر `Variant`، إذ يسرد بدائله، ولذلك يحصل `AggregateFunction` بينها على حقل فرعي `Binary` خاص به.

في وضعي `text` و`binary` كليهما، يُوسم الحقل في مخطط Arrow باسم الامتداد `clickhouse.opaque` واسم نوع ClickHouse الأصلي، ليتمكن القارئ من تمييزه عن عمود نصي أو ثنائي حقيقي.

يعيد ClickHouse قراءة مثل هذا العمود بالنوع الذي يحدده الوسم فقط عندما يكون جانب القراءة يعرف هذا النوع مسبقًا، كأن يصرّح به جدول أو تسميه وسيطة بنية مثل تلك التي تقبلها `file` و`s3`؛ ويطبّق ذلك أيضًا داخل `Array` و`Tuple` و`Map` و`Nullable`. لا يستشير استنتاج المخطط الوسم، لذا يصل العمود المقروء دون تحديد نوع له كـ `String` يحتوي على الحمولة الخام. لا يُعاد قراءة أي بديل من `Variant` مطلقًا، حتى عند تحديد النوع، لأن اتحاد Arrow الذي تشكله بدائله يُفك ترميزه دون الرجوع إلى الوسوم. تكون البيانات المكتوبة سليمة لقراء Arrow الآخرين في جميع الحالات.

له أولوية على `output_format_arrow_unsupported_types_as_binary` الأقدم، الذي لا يُستشار إلا عند ترك هذا الإعداد على قيمته الافتراضية.

## output\_format\_arrow\_unsupported\_types\_as\_binary

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "إعداد جديد لتحويل أنواع CH غير المدعومة إلى بيانات Arrow الثنائية بدلًا من استثناء UNKNOWN_TYPE."}]}]} />

يُخرج الأنواع التي لا يتوفر لها تحويل على شكل بيانات ثنائية خام. إذا كانت القيمة false، فستُطلق هذه الأنواع استثناءً.

تم الاستعاضة عنه بـ `output_format_arrow_unsupported_types`: تعني `0` القيمة `throw` وتعني `1` القيمة `binary`. ولا تتم مراجعته إلا عندما لا يكون `output_format_arrow_unsupported_types` معيّنًا صراحةً.

## output\_format\_arrow\_use\_64\_bit\_indexes\_for\_dictionary

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "0"},{"label": "السماح باستخدام نوع فهارس 64 بت في قواميس Arrow"}]}, {"id": "row-2","items": [{"label": "24.1"},{"label": "0"},{"label": "السماح باستخدام نوع فهارس 64 بت في قواميس Arrow"}]}]} />

استخدم دائمًا أعدادًا صحيحة من 64 بت لفهارس القاموس في تنسيق Arrow

## output\_format\_arrow\_use\_signed\_indexes\_for\_dictionary

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "1"},{"label": "استخدام نوع الفهارس الموقَّعة لقواميس Arrow افتراضيًا لأنه الخيار المُوصى به"}]}]} />

استخدم الأعداد الصحيحة الموقَّعة لفهارس القواميس في تنسيق Arrow

## output\_format\_avro\_codec

برنامج ترميز الضغط المستخدم للإخراج. القيم الممكنة: 'null'، 'deflate'، 'snappy'، 'zstd'.

## output\_format\_avro\_confluent\_subject

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": ""},{"label": "إعداد جديد لتحديد اسم الـsubject من أجل تسجيل المخطط في Confluent Schema Registry عند كتابة مخرجات AvroConfluent."}]}]} />

بالنسبة إلى تنسيق الإخراج AvroConfluent: اسم الـsubject الذي يُسجَّل المخطط تحته في Confluent Schema Registry. وهو مطلوب عند كتابة مخرجات AvroConfluent.

## output\_format\_avro\_rows\_in\_file

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

الحد الأقصى لعدد الصفوف في ملف (إذا سمحت وحدة التخزين بذلك)

## output\_format\_avro\_string\_column\_pattern

لتنسيق Avro: تعبير نمطي لأعمدة String التي تُحدَّد كسلسلة AVRO.

## output\_format\_avro\_sync\_interval

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

فترة المزامنة بالبايت.

## output\_format\_binary\_encode\_types\_in\_binary\_format

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "تمت إضافة إعداد جديد للسماح بكتابة أسماء الأنواع بالتنسيق الثنائي في تنسيق الإخراج RowBinaryWithNamesAndTypes"}]}]} />

كتابة أنواع البيانات بالتنسيق الثنائي بدلًا من أسماء الأنواع في تنسيق الإخراج RowBinaryWithNamesAndTypes

## output\_format\_binary\_write\_json\_as\_string

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "إضافة إعداد جديد لكتابة قيم نوع JSON كسلاسل JSON نصية في تنسيق الإخراج RowBinary"}]}]} />

يكتب قيم نوع البيانات [JSON](/ar/reference/data-types/newjson) كقيم [String](/ar/reference/data-types/string) بتنسيق JSON في تنسيق الإخراج RowBinary.

## output\_format\_bson\_string\_as\_string

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

استخدم النوع BSON String بدلًا من Binary مع الأعمدة من النوع String.

## output\_format\_compression\_level

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "3"},{"label": "السماح بتغيير مستوى الضغط في مخرجات الاستعلام"}]}]} />

مستوى الضغط الافتراضي إذا كانت مخرجات الاستعلام مضغوطة. يُطبَّق هذا الإعداد عندما يتضمن استعلام `SELECT` ‎`INTO OUTFILE` أو عند الكتابة إلى دوال الجدول `file` و`url` و`hdfs` و`s3` و`azureBlobStorage`.

القيم الممكنة: من `1` إلى `22`

## output\_format\_compression\_zstd\_window\_log

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "0"},{"label": "السماح بتغيير zstd window log في ناتج الاستعلام عند استخدام ضغط zstd"}]}]} />

يمكن استخدامه عندما تكون طريقة ضغط الإخراج هي `zstd`. إذا كانت القيمة أكبر من `0`، فإن هذا الإعداد يحدد صراحةً حجم نافذة الضغط (قوة `2`) ويفعّل وضع المدى الطويل لضغط zstd. وقد يساعد ذلك على تحقيق نسبة ضغط أفضل.

القيم الممكنة: أعداد غير سالبة. لاحظ أنه إذا كانت القيمة صغيرة جدًا أو كبيرة جدًا، فسيؤدي `zstdlib` إلى طرح استثناء. وتتراوح القيم المعتادة من `20` (حجم النافذة = `1MB`) إلى `30` (حجم النافذة = `1GB`).

## output\_format\_csv\_crlf\_end\_of\_line

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

إذا ضُبطت هذه القيمة على true، فستكون نهاية السطر في تنسيق CSV هي \r\n بدلًا من \n.

## output\_format\_csv\_header\_serialize\_tuple\_into\_separate\_columns

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "1"},{"label": "إعداد جديد. عند تمكين output_format_csv_serialize_tuple_into_separate_columns، يُسطِّح ترويس CSVWithNames\/CSVWithNamesAndTypes الآن أعمدة Tuple إلى حقولها الطرفية بحيث يتطابق عدد أعمدة الترويسة مع البيانات. اضبطه على false لاستعادة الترويسة السابقة ذات الاسم الواحد."}]}]} />

عند تمكين [output\_format\_csv\_serialize\_tuple\_into\_separate\_columns](/ar/reference/settings/formats/output-format#output_format_csv_serialize_tuple_into_separate_columns)، تُسطِّح صفوف الترويسة في `CSVWithNames` و`CSVWithNamesAndTypes` كل عمود `Tuple` غير مغلّف إلى حقوله الطرفية (أسماء منقوطة مثل `t.a` و`t.b`، وأسماء الأنواع الطرفية)، بحيث يكون للترويسة العدد نفسه من الأعمدة الموجودة في البيانات. لا يُسطَّح عمود `Nullable(Tuple)` مطلقًا (وتبقى بياناته حقل CSV واحدًا)، لذلك تحتفظ ترويسته باسم العمود ونوعه المفردين على المستوى الأعلى. بالنسبة إلى `CustomSeparated*`، لا ينطبق هذا التسطيح إلا عندما تكون `format_custom_escaping_rule = 'CSV'` و`format_custom_field_delimiter` محرفًا واحدًا يساوي `format_csv_delimiter`؛ وإلا (على سبيل المثال، محدِّد علامة الجدولة الافتراضي أو `format_custom_field_delimiter = '|'`) تبقى الترويسة غير مسطحة حتى تظل مطابقةً للبيانات. اضبطه على `0` للإبقاء على السلوك السابق، حيث تحتفظ الترويسة باسم ونوع Tuple المفردين على المستوى الأعلى.

ملاحظة: لا تُعاد قراءة الترويسة المسطحة إلى Tuple بالاسم عندما تكون `input_format_with_names_use_header = 1`. لقراءة هذه البيانات مرة أخرى إلى Tuple، اضبط هذا الإعداد على `0` عند الإخراج، أو اقرأ باستخدام `input_format_with_names_use_header = 0` (وبالنسبة إلى التنسيقات `*WithNamesAndTypes`، أي `CSVWithNamesAndTypes` و`CustomSeparatedWithNamesAndTypes`، اضبط أيضًا `input_format_with_types_use_header = 0`، لأن صف الأنواع المسطح سيُتحقق منه بخلاف ذلك مقابل حقل الإدخال المفرد لـ Tuple على المستوى الأعلى، وسيُرفض).

## output\_format\_csv\_serialize\_tuple\_into\_separate\_columns

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "1"},{"label": "أُضيفت طريقة جديدة لتفسير Tuples في تنسيق CSV."}]}, {"id": "row-2","items": [{"label": "24.3"},{"label": "1"},{"label": "أُضيفت طريقة جديدة لتفسير Tuples في تنسيق CSV."}]}]} />

إذا ضُبط هذا الإعداد على true، فستُسلسَل أعمدة `Tuple` غير المغلّفة في تنسيق CSV كأعمدة منفصلة (أي يُفقد تداخلها داخل الـ tuple).

ينطبق هذا التسطيح فقط على `Tuple` غير المغلّفة. ويُسلسَل `Nullable(Tuple)` دائمًا كحقل CSV واحد (بحيث تشغل الصفوف NULL وغير NULL العدد نفسه من الحقول)، بغض النظر عن هذا الإعداد.

## output\_format\_decimal\_trailing\_zeros

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.9"},{"label": "0"},{"label": "لا تعرض الأصفار اللاحقة في التمثيل النصي لأنواع Decimal افتراضيًا، للحصول على مخرجات أفضل مظهرًا"}]}]} />

يُخرج الأصفار اللاحقة عند طباعة قيم Decimal. مثال: 1.230000 بدلًا من 1.23.

يكون معطّلًا افتراضيًا.

## output\_format\_float\_precision

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "0"},{"label": "إعداد جديد للتحكم في عدد الخانات العشرية في مخرجات الأعداد ذات الفاصلة العائمة"}]}]} />

عندما تكون القيمة غير صفرية، تُنسَّق مخرجات الأعداد ذات الفاصلة العائمة (`Float32` و`Float64` و`BFloat16`) بحيث لا يزيد عدد الخانات بعد الفاصلة العشرية على هذا العدد (مع إزالة الأصفار اللاحقة).
وعندما تكون القيمة 0 (الافتراضية)، يُستخدم أقصر تمثيل يضمن `round-trip`.

تُخرَج القيم الكبيرة جدًا بالنسبة إلى التدوين الثابت، وكذلك القيم الصغيرة جدًا التي يؤدّي تقريبها إلى الدقة المطلوبة إلى فقدان جميع الخانات الدالة (بحيث تصبح المانتيسا `±0`)، بالتدوين العلمي بدلًا من ذلك. وفي حالات fallback هذه، قد تحتوي المانتيسا على عدد من الخانات الكسرية أكبر من العدد المطلوب.

النطاق الصالح: من 0 إلى 100.

## output\_format\_image\_height

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "1024"},{"label": "إعداد جديد يتحكم في ارتفاع الصورة الناتجة في تنسيقات إخراج الصور مثل PNG."}]}]} />

ارتفاع الصورة الناتجة، بالبكسل، في تنسيقات إخراج الصور مثل `PNG`.

القيمة الافتراضية: 1024.

## output\_format\_image\_streaming\_animation

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "0"},{"label": "إعداد جديد يحدد ما إذا كانت تنسيقات إخراج الصور، مثل `PNG`، تكتب كل إطار من الرسوم المتحركة فور ظهور القيمة التالية لـ `t`، بدلًا من تخزين جميع الإطارات مؤقتًا في الذاكرة."}]}]} />

بالنسبة إلى تنسيقات إخراج الصور، مثل `PNG`، اكتب كل إطار من الرسوم المتحركة فور ظهور القيمة التالية في العمود `t`، بدلًا من تخزين جميع الإطارات مؤقتًا في الذاكرة حتى نهاية الاستعلام.

يُحتفَظ بإطار واحد فقط في الذاكرة، وتُرسَل الإطارات إلى الإخراج بينما لا يزال الاستعلام قيد التنفيذ. وفي المقابل، يجب أن تكون قيم `t` غير متناقصة، وإلا يطرح الاستعلام استثناءً. كذلك، لا يكون عدد الإطارات معروفًا عند كتابة ترويسة الرسوم المتحركة، لذا يكون عدد الإطارات المُعلَن حدًا أعلى وليس القيمة الدقيقة. تشغّل المتصفحات هذا النوع من الملفات، لكن برامج فك الترميز التي تعتمد على العدد المُعلَن تُبلّغ عن خطأ بعد آخر إطار فعلي.

القيمة الافتراضية: `false`.

## output\_format\_image\_terminal\_mode

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": ""},{"label": "إعداد جديد يتحكم في ما إذا كانت تنسيقات إخراج الصور مثل PNG تُعرَض مباشرةً في الطرفية باستخدام بروتوكول صور مضمن."}]}]} />

بالنسبة إلى تنسيقات إخراج الصور مثل `PNG`، أخرج الصورة مباشرةً إلى الطرفية باستخدام بروتوكول صور مضمن بدلًا من كتابة بايتات الصورة الخام.

القيم الممكنة:

* \`\` (فارغ) — اكتب بايتات الصورة الخام (القيمة الافتراضية).
* `iterm` — استخدم بروتوكول الصور المضمّنة في iTerm2.
* `kitty` — استخدم بروتوكول Kitty الرسومي.
* `sixel` — استخدم بروتوكول Sixel.
* `auto` — إذا كان الإخراج موجَّهًا إلى طرفية، فاكتشف إمكاناتها واستخدم `iterm` أو `kitty` أو `sixel` (بهذا الترتيب)؛ وإلا فاكتب بايتات الصورة الخام.

القيمة الافتراضية: \`\` (فارغ).

## output\_format\_image\_time\_divisor\_seconds

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "60"},{"label": "إعداد جديد يتحكم في مقام الوحدة الزمنية للعمود `t`، مما يتيح لتنسيقات إخراج الصور مثل `PNG` إنشاء رسوم متحركة."}]}]} />

مقام الوحدة الزمنية للعمود `t`، بالثواني، لتنسيقات إخراج الصور مثل `PNG`.

راجع [`output_format_image_time_multiplier_seconds`](/ar/reference/settings/formats/output-format#output_format_image_time_multiplier_seconds).

القيمة الافتراضية: 60.

## output\_format\_image\_time\_multiplier\_seconds

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "1"},{"label": "إعداد جديد يتحكم في بسط وحدة الزمن للعمود `t`، مما يتيح لتنسيقات إخراج الصور مثل `PNG` إنتاج رسوم متحركة."}]}]} />

بسط وحدة الزمن للعمود `t`، بالثواني، في تنسيقات إخراج الصور مثل `PNG`.

يؤدي وجود عمود `t` إلى إنتاج التنسيق لرسوم متحركة، حيث يمثل `t` إزاحة الزمن النسبية
للإطار. تقابل وحدة واحدة من `t` عددًا من الثواني يساوي `output_format_image_time_multiplier_seconds / output_format_image_time_divisor_seconds`.
باستخدام القيم الافتراضية (`1` و`60`)، تساوي وحدة واحدة من `t` ‏1/60 من الثانية.

القيمة الافتراضية: 1.

## output\_format\_image\_width

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "1024"},{"label": "إعداد جديد يتحكم في عرض صورة الإخراج لتنسيقات إخراج الصور مثل PNG."}]}]} />

عرض صورة الإخراج بالبكسل لتنسيقات إخراج الصور مثل `PNG`.

القيمة الافتراضية: 1024.

## output\_format\_json\_array\_of\_rows

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

يتيح إخراج جميع الصفوف كمصفوفة JSON بتنسيق [JSONEachRow](/ar/reference/formats/JSON/JSONEachRow).

القيم الممكنة:

* 1 — يُخرج ClickHouse جميع الصفوف كمصفوفة، ويكون كل صف فيها بتنسيق `JSONEachRow`.
* 0 — يُخرج ClickHouse كل صف على حدة بتنسيق `JSONEachRow`.

**مثال على استعلام مع تمكين هذا الإعداد**

الاستعلام:

```sql theme={null}
SET output_format_json_array_of_rows = 1;
SELECT number FROM numbers(3) FORMAT JSONEachRow;
```

النتيجة:

```text theme={null}
[
{"number":"0"},
{"number":"1"},
{"number":"2"}
]
```

**مثال على استعلام مع تعطيل هذا الإعداد**

الاستعلام:

```sql theme={null}
SET output_format_json_array_of_rows = 0;
SELECT number FROM numbers(3) FORMAT JSONEachRow;
```

النتيجة:

```text theme={null}
{"number":"0"}
{"number":"1"}
{"number":"2"}
```

## output\_format\_json\_escape\_forward\_slashes

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

يتحكّم في إفلات الشرطات المائلة الأمامية في مخرجات السلاسل النصية ضمن تنسيق إخراج JSON. والغرض من ذلك هو التوافق مع JavaScript. لا تخلطها مع الخطوط المائلة العكسية التي يُجرى لها الإفلات دائمًا.

مفعّل افتراضيًا.

## output\_format\_json\_map\_as\_array\_of\_tuples

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "0"},{"label": "إعداد جديد"}]}]} />

تُسلسَل أعمدة Map على شكل مصفوفات JSON من Tuples.

يكون معطّلًا افتراضيًا.

## output\_format\_json\_named\_tuples\_as\_objects

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.6"},{"label": "1"},{"label": "السماح، افتراضيًا، بتسلسل أعمدة named tuple ككائنات JSON في تنسيقات JSON"}]}]} />

تُسلسِل أعمدة named tuple ككائنات JSON.

مفعّل افتراضيًا.

## output\_format\_json\_pretty\_print

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "طباعة القيم بتنسيق Pretty في تنسيق إخراج JSON افتراضيًا"}]}]} />

يحدد هذا الإعداد كيفية عرض البنى المتداخلة، مثل Tuples وMaps وArrays، داخل المصفوفة `data` عند استخدام تنسيق إخراج JSON.

على سبيل المثال، بدلًا من هذا الإخراج:

```json theme={null}
"data":
[
  {
    "tuple": {"a":1,"b":2,"c":3},
    "array": [1,2,3],
    "map": {"a":1,"b":2,"c":3}
  }
],
```

سيُنسَّق الإخراج على النحو التالي:

```json theme={null}
"data":
[
    {
        "tuple": {
            "a": 1,
            "b": 2,
            "c": 3
        },
        "array": [
            1,
            2,
            3
        ],
        "map": {
            "a": 1,
            "b": 2,
            "c": 3
        }
    }
],
```

مفعّل افتراضيًا.

## output\_format\_json\_quote\_64bit\_floats

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

يتحكم في وضع علامات اقتباس حول [الأعداد ذات الفاصلة العائمة](/ar/reference/data-types/float) ذات 64 بت عند إخراجها بتنسيقات JSON\*.

يكون معطّلًا افتراضيًا.

## output\_format\_json\_quote\_64bit\_integers

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "تعطيل إحاطة الأعداد الصحيحة ذات 64 بت في JSON بعلامات اقتباس افتراضيًا"}]}]} />

يتحكم هذا الإعداد في إحاطة [الأعداد الصحيحة](/ar/reference/data-types/int-uint) ذات 64 بت أو الأكبر (مثل `UInt64` أو `Int128`) بعلامات اقتباس عند إخراجها بتنسيق [JSON](/ar/reference/formats/JSON/JSON).
تُحاط هذه الأعداد الصحيحة بعلامات اقتباس افتراضيًا. هذا السلوك متوافق مع معظم تطبيقات JavaScript.

القيم الممكنة:

* 0 — تُخرَج الأعداد الصحيحة من دون علامات اقتباس.
* 1 — تُحاط الأعداد الصحيحة بعلامات اقتباس.

## output\_format\_json\_quote\_decimals

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

يتحكم في إحاطة القيم العشرية بعلامات اقتباس في تنسيقات إخراج JSON.

يكون معطّلًا افتراضيًا.

## output\_format\_json\_quote\_denormals

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

يُمكّن إخراج القيم `+nan` و`-nan` و`+inf` و`-inf` في [تنسيق الإخراج JSON](/ar/reference/formats/JSON/JSON).

القيم الممكنة:

* 0 — معطّل.
* 1 — مفعّل.

**مثال**

لننظر إلى الجدول التالي `account_orders`:

```text theme={null}
┌─id─┬─name───┬─duration─┬─period─┬─area─┐
│  1 │ Andrew │       20 │      0 │  400 │
│  2 │ John   │       40 │      0 │    0 │
│  3 │ Bob    │       15 │      0 │ -100 │
└────┴────────┴──────────┴────────┴──────┘
```

عندما تكون القيمة `output_format_json_quote_denormals = 0`، يُرجِع الاستعلام قيم `null` في الإخراج:

```sql theme={null}
SELECT area/period FROM account_orders FORMAT JSON;
```

```json theme={null}
{
        "meta":
        [
                {
                        "name": "divide(area, period)",
                        "type": "Float64"
                }
        ],

        "data":
        [
                {
                        "divide(area, period)": null
                },
                {
                        "divide(area, period)": null
                },
                {
                        "divide(area, period)": null
                }
        ],

        "rows": 3,

        "statistics":
        {
                "elapsed": 0.003648093,
                "rows_read": 3,
                "bytes_read": 24
        }
}
```

عند ضبط `output_format_json_quote_denormals = 1` على 1، يُرجع الاستعلام:

```json theme={null}
{
        "meta":
        [
                {
                        "name": "divide(area, period)",
                        "type": "Float64"
                }
        ],

        "data":
        [
                {
                        "divide(area, period)": "inf"
                },
                {
                        "divide(area, period)": "-nan"
                },
                {
                        "divide(area, period)": "-inf"
                }
        ],

        "rows": 3,

        "statistics":
        {
                "elapsed": 0.000070241,
                "rows_read": 3,
                "bytes_read": 24
        }
}
```

## output\_format\_json\_skip\_null\_value\_in\_named\_tuples

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

تخطّي أزواج المفتاح والقيمة ذات القيمة NULL عند تسلسل أعمدة named tuple ككائنات JSON. لا يكون هذا صالحًا إلا عندما تكون output\_format\_json\_named\_tuples\_as\_objects مضبوطة على true.

## output\_format\_json\_validate\_utf8

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

يتحكّم في التحقّق من صحة تسلسلات UTF-8 في تنسيقات إخراج JSON، ولا يؤثر في التنسيقات JSON/JSONCompact/JSONColumnsWithMetadata، فهي تتحقق دائمًا من UTF-8.

يكون معطلًا بشكل افتراضي.

## output\_format\_markdown\_escape\_special\_characters

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

عند تفعيل هذا الإعداد، تُفلت الأحرف الخاصة في Markdown.

يحدّد [Common Mark](https://spec.commonmark.org/0.30/#example-12) الأحرف الخاصة التالية التي يمكن إفلاتها:

```
! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
```

القيم الممكنة:

* 0 — تعطيل.
* 1 — تفعيل.

## output\_format\_msgpack\_uuid\_representation

<SettingsInfoBlock type="MsgPackUUIDRepresentation" default_value="ext" />

كيفية إخراج معرّف UUID بتنسيق MsgPack.

## output\_format\_native\_encode\_types\_in\_binary\_format

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "أُضيف إعداد جديد يتيح كتابة أسماء الأنواع بالتنسيق الثنائي في تنسيق الإخراج Native"}]}]} />

كتابة أنواع البيانات بالتنسيق الثنائي بدلًا من أسماء الأنواع في تنسيق الإخراج Native

## output\_format\_native\_use\_flattened\_dynamic\_and\_json\_serialization

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "0"},{"label": "إضافة تسلسلات Dynamic\/JSON المسطّحة إلى Native format"}]}]} />

كتابة بيانات أعمدة [JSON](/ar/reference/data-types/newjson) و[Dynamic](/ar/reference/data-types/dynamic) بتنسيق مسطّح (جميع الأنواع/المسارات كأعمدة فرعية منفصلة).

## output\_format\_native\_write\_json\_as\_string

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "إضافة إعداد جديد يتيح كتابة عمود JSON كعمود String واحد في Native format"}]}]} />

كتابة بيانات عمود [JSON](/ar/reference/data-types/newjson) كعمود [String](/ar/reference/data-types/string) يحتوي على سلاسل JSON، بدلًا من تسلسل JSON الأصلي الافتراضي.

## output\_format\_orc\_compression\_block\_size

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "262144"},{"label": "إعداد جديد"}]}]} />

حجم كتلة الضغط، بالبايت، لتنسيق الإخراج ORC.

## output\_format\_orc\_compression\_method

<SettingsInfoBlock type="ORCCompression" default_value="zstd" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "zstd"},{"label": "يدعم Parquet\/ORC\/Arrow العديد من أساليب الضغط، بما في ذلك lz4 وzstd. ويدعم ClickHouse جميع أساليب الضغط هذه. بعض الأدوات الأضعف، مثل 'duckdb'، لا تدعم أسلوب الضغط الأسرع `lz4`، ولذلك نعيّن zstd افتراضيًا."}]}, {"id": "row-2","items": [{"label": "23.3"},{"label": "lz4_frame"},{"label": "استخدام ضغط lz4 في تنسيق الإخراج ORC افتراضيًا"}]}]} />

طريقة الضغط لتنسيق الإخراج ORC. خوارزميات الضغط المدعومة: lz4, snappy, zlib, zstd, none (بدون ضغط)

## output\_format\_orc\_dictionary\_key\_size\_threshold

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "بالنسبة إلى عمود نصي في تنسيق الإخراج ORC، إذا كان عدد القيم المميزة أكبر من هذه النسبة من إجمالي الصفوف غير NULL، فسيتم تعطيل ترميز القاموس. وإلا فسيظل ترميز القاموس مفعّلًا"}]}]} />

بالنسبة إلى عمود نصي في تنسيق الإخراج ORC، إذا كان عدد القيم المميزة أكبر من هذه النسبة من إجمالي الصفوف غير NULL، فسيتم تعطيل ترميز القاموس. وإلا فسيظل ترميز القاموس مفعّلًا

## output\_format\_orc\_row\_index\_stride

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

قيمة stride المستهدفة لمؤشر الصفوف في تنسيق الإخراج ORC

## output\_format\_orc\_string\_as\_string

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "يتيح ClickHouse استخدام بيانات ثنائية عشوائية في نوع البيانات String، والذي يكون عادةً بترميز UTF-8. أما سلاسل Parquet\/ORC\/Arrow فلا تدعم إلا UTF-8. لذلك يمكنك اختيار نوع بيانات Arrow الذي تريد استخدامه مع نوع البيانات String في ClickHouse، سواء String أو Binary. ومع أن Binary أكثر دقةً وتوافقًا، فإن استخدام String افتراضيًا يتوافق مع توقعات المستخدمين في معظم الحالات."}]}]} />

استخدم نوع ORC String بدلًا من Binary للأعمدة من نوع String

## output\_format\_orc\_writer\_time\_zone\_name

<SettingsInfoBlock type="String" default_value="GMT" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "GMT"},{"label": "اسم المنطقة الزمنية لوحدة كتابة ORC، والمنطقة الزمنية الافتراضية لوحدة كتابة ORC هي GMT."}]}]} />

اسم المنطقة الزمنية لوحدة كتابة ORC، والمنطقة الزمنية الافتراضية لوحدة كتابة ORC هي GMT.

## output\_format\_parallel\_formatting

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

يُفعّل أو يعطّل تنسيق صيغ البيانات بالتوازي. وهو مدعوم فقط لصيغ [TSV](/ar/reference/formats/TabSeparated/TabSeparated) و[TSKV](/ar/reference/formats/TabSeparated/TSKV) و[CSV](/ar/reference/formats/CSV/CSV) و[JSONEachRow](/ar/reference/formats/JSON/JSONEachRow).

القيم الممكنة:

* 1 — مفعّل.
* 0 — معطّل.

## output\_format\_parquet\_batch\_size

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

تحقّق من حجم الصفحة كل هذا العدد من الصفوف. يُنصح بتقليل هذه القيمة إذا كان لديك أعمدة يتجاوز متوسط حجم القيم فيها بضعة كيلوبايتات.

## output\_format\_parquet\_bloom\_filter\_bits\_per\_value

<SettingsInfoBlock type="Double" default_value="10.5" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "10.5"},{"label": "إعداد جديد."}]}]} />

العدد التقريبي للبتات التي تُستخدم لكل قيمة مميزة في مرشحات Bloom في Parquet. معدلات الإيجابيات الكاذبة المقدّرة:

* 6   بتات - 10%
* 10.5 بتات -  1%
* 16.9 بتات -  0.1%
* 26.4 بتات -  0.01%
* 41   بتًا -  0.001%

## output\_format\_parquet\_bloom\_filter\_flush\_threshold\_bytes

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "134217728"},{"label": "إعداد جديد."}]}]} />

الموضع داخل ملف Parquet الذي تُوضَع فيه مرشحات bloom. ستُكتب مرشحات bloom في مجموعات بهذا الحجم التقريبي. وعلى وجه التحديد:

* إذا كانت القيمة 0، فستُكتب مرشحات bloom الخاصة بكل مجموعة صفوف مباشرةً بعد مجموعة الصفوف،
  * إذا كانت أكبر من الحجم الإجمالي لجميع مرشحات bloom، فستُجمَّع مرشحات bloom الخاصة بجميع مجموعات الصفوف في الذاكرة، ثم تُكتب معًا بالقرب من نهاية الملف،
  * وإلا، فستُجمَّع مرشحات bloom في الذاكرة وتُكتب كلما تجاوز حجمها الإجمالي هذه القيمة.

## output\_format\_parquet\_compression\_method

<SettingsInfoBlock type="ParquetCompression" default_value="zstd" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "zstd"},{"label": "يدعم Parquet\/ORC\/Arrow العديد من طرق الضغط، بما في ذلك lz4 وzstd. ويدعم ClickHouse جميع طرق الضغط هذه. بعض الأدوات الأقل كفاءة، مثل 'duckdb'، لا تدعم طريقة الضغط `lz4` الأسرع، لذلك نعيّن zstd كخيار افتراضي."}]}, {"id": "row-2","items": [{"label": "23.3"},{"label": "lz4"},{"label": "استخدام ضغط lz4 افتراضيًا في تنسيق إخراج Parquet"}]}]} />

طريقة الضغط لتنسيق إخراج Parquet. خوارزميات الضغط المدعومة: snappy وlz4 وbrotli وzstd وgzip وnone (غير مضغوط)

## output\_format\_parquet\_data\_page\_size

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

حجم الصفحة المستهدف، بالبايت، قبل الضغط.

## output\_format\_parquet\_date\_as\_uint16

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "أُضيف إعداد توافق لمعالجة تغيير طفيف غير متوافق أُدخل سابقًا في 24.12."}]}, {"id": "row-2","items": [{"label": "24.12"},{"label": "0"},{"label": "اكتب Date بصيغة Date32 بدلًا من UInt16 عادي (فهذان هما نوعا Parquet الأقرب إلى Date)."}]}]} />

اكتب قيم Date كأرقام 16-بت عادية (تُقرأ لاحقًا على أنها UInt16)، بدلًا من تحويلها إلى نوع DATE‏ في Parquet بحجم 32 بت (تُقرأ لاحقًا على أنها Date32).

## output\_format\_parquet\_datetime\_as\_uint32

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "0"},{"label": "اكتب قيم DateTime على هيئة DateTime64(3) بدلًا من UInt32 (وهذان هما نوعا Parquet الأقرب إلى DateTime)."}]}]} />

اكتب قيم DateTime كطابع زمني Unix خام (تُقرأ مجددًا كـ UInt32)، بدلًا من تحويلها إلى ميلي ثانية (تُقرأ مجددًا كـ DateTime64(3)).

## output\_format\_parquet\_enum\_as\_byte\_array

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "تمكين كتابة Enum كمصفوفة بايتات في Parquet افتراضيًا"}]}, {"id": "row-2","items": [{"label": "25.7"},{"label": "0"},{"label": "كتابة enum باستخدام النوع الفيزيائي في Parquet: BYTE_ARRAY والنوع المنطقي: ENUM"}]}]} />

كتابة enum باستخدام النوع الفيزيائي في Parquet: BYTE\_ARRAY والنوع المنطقي: ENUM

## output\_format\_parquet\_fixed\_string\_as\_fixed\_byte\_array

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.2"},{"label": "1"},{"label": "استخدام النوع Parquet FIXED_LENGTH_BYTE_ARRAY لـ FixedString بشكل افتراضي"}]}]} />

استخدم النوع Parquet FIXED\_LEN\_BYTE\_ARRAY بدلًا من Binary لأعمدة FixedString.

## output\_format\_parquet\_geometadata

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "1"},{"label": "إعداد جديد يسمح بكتابة معلومات عن الأعمدة الجغرافية في البيانات الوصفية لـ Parquet وترميز الأعمدة بتنسيق WKB."}]}]} />

يسمح بكتابة معلومات عن الأعمدة الجغرافية في البيانات الوصفية لـ Parquet وترميز الأعمدة بتنسيق WKB.

## output\_format\_parquet\_max\_dictionary\_size

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1048576"},{"label": "إعداد جديد"}]}]} />

إذا تجاوز حجم القاموس هذا العدد من البايتات، فسيتم التبديل إلى ترميز من دون قاموس. عيّنه على 0 لتعطيل ترميز القاموس.

## output\_format\_parquet\_parallel\_encoding

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

ينفّذ ترميز Parquet باستخدام عدة خيوط تنفيذ.

## output\_format\_parquet\_row\_group\_size

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

الحجم المستهدف لمجموعة الصفوف، محسوبًا بعدد الصفوف.

## output\_format\_parquet\_row\_group\_size\_bytes

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

الحجم المستهدف لمجموعة الصفوف، بالبايت، قبل الضغط.

## output\_format\_parquet\_string\_as\_string

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "يتيح ClickHouse استخدام بيانات ثنائية عشوائية في نوع البيانات String، والذي يكون عادةً بترميز UTF-8. أما Strings في Parquet\/ORC\/Arrow فلا تدعم إلا UTF-8. لذلك يمكنك اختيار نوع بيانات Arrow الذي سيُستخدم مع نوع البيانات String في ClickHouse، سواءً String أو Binary. ورغم أن Binary أدق وأكثر توافقًا، فإن استخدام String افتراضيًا يتوافق مع توقعات المستخدمين في معظم الحالات."}]}]} />

استخدم نوع Parquet String بدلًا من Binary لأعمدة String.

## output\_format\_parquet\_wide\_integer\_as\_decimal

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "0"},{"label": "إعداد جديد لكتابة قيم `Int128` و`UInt128` و`Int256` و`UInt256` كقيم `DECIMAL` قياسية في Parquet. تحتفظ القيمة السابقة بتمثيل `FIXED_LEN_BYTE_ARRAY` القديم بترتيب البايتات little-endian."}]}]} />

اكتب قيم `Int128` و`UInt128` و`Int256` و`UInt256` كقيم `DECIMAL` في Parquet متوافقة مع المعايير، بترتيب البايتات big-endian. يحتفظ الإعداد الافتراضي بتمثيل `FIXED_LEN_BYTE_ARRAY` القديم غير المرفق بتعليق توضيحي، بترتيب little-endian، للتوافق مع إصدارات ClickHouse الأقدم. يتيح التمثيل العشري إحصاءات رقمية قابلة للتشغيل البيني، لكن بعض قارئات Parquet لا تدعم دقات تتجاوز 38 أو 76.

## output\_format\_parquet\_write\_bloom\_filter

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1"},{"label": "تمت إضافة دعم لكتابة مرشحات bloom في ملفات Parquet."}]}]} />

كتابة مرشحات bloom في ملفات Parquet.

## output\_format\_parquet\_write\_checksums

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1"},{"label": "إعداد جديد."}]}]} />

أضف قيم التحقق crc32 إلى ترويسات صفحات Parquet.

## output\_format\_parquet\_write\_page\_index

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "1"},{"label": "إضافة إمكانية كتابة فهرس الصفحات في ملفات Parquet."}]}]} />

يكتب فهرس الأعمدة وفهرس الإزاحة (أي الإحصاءات الخاصة بكل صفحة بيانات، والتي يمكن استخدامها لدفع عوامل التصفية عند القراءة) في ملفات Parquet.

## output\_format\_pretty\_color

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "auto"},{"label": "تم تغيير الإعداد للسماح أيضًا بالقيمة auto، مع تعطيل تسلسلات الهروب ANSI إذا لم يكن الإخراج على طرفية tty"}]}]} />

استخدم تسلسلات الهروب ANSI في تنسيقات Pretty. 0 - معطّل، 1 - مفعّل، و'auto' - مفعّل إذا كان الإخراج على طرفية.

## output\_format\_pretty\_display\_footer\_column\_names

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "1"},{"label": "إضافة إعداد لعرض أسماء الأعمدة في التذييل عند وجود عدد كبير من الصفوف. وتتحكم القيمة الحدية في ذلك عبر output_format_pretty_display_footer_column_names_min_rows."}]}]} />

يعرض أسماء الأعمدة في التذييل عند وجود عدد كبير من صفوف الجدول.

القيم الممكنة:

* 0 — لا تُعرض أسماء الأعمدة في التذييل.
* 1 — تُعرض أسماء الأعمدة في التذييل إذا كان عدد الصفوف أكبر من أو يساوي القيمة الحدية المحددة بواسطة [output\_format\_pretty\_display\_footer\_column\_names\_min\_rows](/ar/reference/settings/formats/output-format#output_format_pretty_display_footer_column_names_min_rows) (50 افتراضيًا).

**مثال**

الاستعلام:

```sql theme={null}
SELECT *, toTypeName(*) FROM (SELECT * FROM system.numbers LIMIT 1000);
```

النتيجة:

```response theme={null}
      ┌─number─┬─toTypeName(number)─┐
   1. │      0 │ UInt64             │
   2. │      1 │ UInt64             │
   3. │      2 │ UInt64             │
   ...
 999. │    998 │ UInt64             │
1000. │    999 │ UInt64             │
      └─number─┴─toTypeName(number)─┘
```

## output\_format\_pretty\_display\_footer\_column\_names\_min\_rows

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "50"},{"label": "إضافة إعداد للتحكم في قيمة العتبة للإعداد output_format_pretty_display_footer_column_names_min_rows. القيمة الافتراضية هي 50."}]}]} />

يحدِّد الحد الأدنى لعدد الصفوف الذي عنده يُعرَض تذييل يتضمن أسماء الأعمدة إذا كان الإعداد [output\_format\_pretty\_display\_footer\_column\_names](/ar/reference/settings/formats/output-format#output_format_pretty_display_footer_column_names) مفعّلًا.

## output\_format\_pretty\_fallback\_to\_vertical

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "إعداد جديد"}]}]} />

إذا كان هذا الإعداد مفعّلًا وكان الجدول عريضًا لكنه قصير، فسيعرض تنسيق Pretty الجدول بالطريقة نفسها التي يعرضه بها تنسيق Vertical.
راجع `output_format_pretty_fallback_to_vertical_max_rows_per_chunk` و `output_format_pretty_fallback_to_vertical_min_table_width` لضبط هذا السلوك بمزيد من التفصيل.

## output\_format\_pretty\_fallback\_to\_vertical\_max\_rows\_per\_chunk

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "10"},{"label": "إعداد جديد"}]}]} />

لن يُفعَّل الرجوع إلى تنسيق Vertical (راجع `output_format_pretty_fallback_to_vertical`) إلا إذا كان عدد الصفوف في الجزء لا يتجاوز القيمة المحددة.

## output\_format\_pretty\_fallback\_to\_vertical\_min\_columns

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "5"},{"label": "إعداد جديد"}]}]} />

لن يُفعَّل الرجوع إلى تنسيق Vertical (راجع `output_format_pretty_fallback_to_vertical`) إلا إذا كان عدد الأعمدة أكبر من القيمة المحددة.

## output\_format\_pretty\_fallback\_to\_vertical\_min\_table\_width

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "250"},{"label": "إعداد جديد"}]}]} />

لن يُفعَّل الرجوع إلى تنسيق Vertical (راجع `output_format_pretty_fallback_to_vertical`) إلا إذا كان مجموع أطوال الأعمدة في الجدول يساوي القيمة المحددة على الأقل، أو إذا كانت إحدى القيم تحتوي على محرف سطر جديد.

## output\_format\_pretty\_glue\_chunks

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "auto"},{"label": "إعداد جديد لجعل تنسيقات Pretty أكثر جمالًا."}]}]} />

إذا وصلت البيانات المعروضة بتنسيقات Pretty على عدة أجزاء، حتى مع وجود تأخير، وكان الجزء التالي يستخدم عروض الأعمدة نفسها كالجزء السابق، فاستخدم تسلسلات الهروب ANSI للعودة إلى السطر السابق والكتابة فوق تذييل الجزء السابق لمتابعته ببيانات الجزء الجديد. وهذا يجعل النتيجة أكثر إرضاءً بصريًا.

0 - معطّل، 1 - مفعّل، 'auto' - مفعّل إذا كانت الجلسة في طرفية.

## output\_format\_pretty\_grid\_charset

<SettingsInfoBlock type="String" default_value="UTF-8" />

مجموعة المحارف المستخدمة في طباعة حدود الشبكة. مجموعات المحارف المتاحة: ASCII وUTF-8 (الافتراضي).

في interactive mode، ينتقل `clickhouse-client` تلقائيًا إلى `ASCII` عندما لا تدعم الوحدة الطرفية UTF-8 (كما يتحدد ذلك من خلال متغيرات البيئة `LC_ALL` و`LC_CTYPE` و`LANG`)، ما لم يُحدَّد هذا الإعداد صراحةً.

## output\_format\_pretty\_highlight\_digit\_groups

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "إذا كان مفعّلًا وكان الإخراج يُعرض في طرفية، فستُميَّز كل منزلة رقمية تمثل الآلاف والملايين وما إلى ذلك بوضع خط أسفلها."}]}]} />

إذا كان مفعّلًا وكان الإخراج يُعرض في طرفية، فستُميَّز كل منزلة رقمية تمثل الآلاف والملايين وما إلى ذلك بوضع خط أسفلها.

## output\_format\_pretty\_highlight\_trailing\_spaces

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "إعداد جديد."}]}]} />

إذا كان هذا الخيار مُمكّنًا وكان الإخراج يُعرض في طرفية، فستُميَّز المسافات اللاحقة باللون الرمادي مع تسطيرها.

## output\_format\_pretty\_max\_column\_name\_width\_cut\_to

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "24"},{"label": "إعداد جديد"}]}]} />

إذا كان اسم العمود طويلًا جدًا، فسيُقصّ إلى هذا الطول.
سيُقصّ العمود إذا كان أطول من `output_format_pretty_max_column_name_width_cut_to` مضافًا إليه `output_format_pretty_max_column_name_width_min_chars_to_cut`.

## output\_format\_pretty\_max\_column\_name\_width\_min\_chars\_to\_cut

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "4"},{"label": "إعداد جديد"}]}]} />

الحد الأدنى لعدد الأحرف التي يجب قصّها إذا كان اسم العمود طويلًا جدًا.
سيُقصّ اسم العمود إذا كان أطول من `output_format_pretty_max_column_name_width_cut_to` مضافًا إليه `output_format_pretty_max_column_name_width_min_chars_to_cut`.

## output\_format\_pretty\_max\_column\_pad\_width

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

الحد الأقصى لعرض الحشو لجميع القيم في عمود ضمن تنسيقات Pretty.

## output\_format\_pretty\_max\_rows

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1000"},{"label": "هذا أفضل من ناحية سهولة الاستخدام، إذ يقلّل مقدار التمرير."}]}]} />

الحد الأقصى للصفوف لتنسيقات Pretty.

## output\_format\_pretty\_max\_value\_width

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

الحد الأقصى لعرض القيمة المراد إظهارها في تنسيقات Pretty. وإذا زاد العرض على ذلك، فسيتم اقتطاعها.
وتعني القيمة 0 - عدم الاقتطاع مطلقًا.

## output\_format\_pretty\_max\_value\_width\_apply\_for\_single\_value

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "لن تُقتطع القيم المفردة في Pretty formats."}]}]} />

اقتطع القيم فقط (راجع الإعداد `output_format_pretty_max_value_width`) عندما لا تكون قيمة مفردة ضمن block. وإلا فأخرجها كاملةً، وهذا مفيد للاستعلام `SHOW CREATE TABLE`.

## output\_format\_pretty\_multiline\_fields

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "إعداد جديد"}]}]} />

إذا كان هذا الخيار مُمكّنًا، فستعرض تنسيقات Pretty الحقول متعددة الأسطر داخل خلية الجدول، بحيث يبقى شكل الجدول محفوظًا.
أما إذا لم يكن مُمكّنًا، فستُعرض كما هي، مما قد يؤدي إلى تشوّه الجدول (ومن مزايا إبقائه معطّلًا أن نسخ القيم متعددة الأسطر ولصقها سيكون أسهل).

## output\_format\_pretty\_named\_tuples\_as\_json

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "إعداد جديد للتحكم في ما إذا كانت الـ Tuples المُسمّاة في Pretty format تُنتَج ككائنات JSON"}]}]} />

يحدد ما إذا كانت الـ Tuples المُسمّاة في Pretty format تُنتَج ككائنات JSON منسّقة.

## output\_format\_pretty\_row\_numbers

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "هذا أفضل من حيث سهولة الاستخدام."}]}]} />

أضف أرقام الصفوف قبل كل صف في تنسيق الإخراج Pretty

## output\_format\_pretty\_single\_large\_number\_tip\_threshold

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1000000"},{"label": "اعرض تلميحًا رقميًا سهل القراءة على الجانب الأيمن من الجدول إذا كانت الكتلة تتكوّن من رقم واحد يتجاوز هذه القيمة (باستثناء 0)"}]}]} />

اعرض تلميحًا رقميًا سهل القراءة على الجانب الأيمن من الجدول إذا كانت الكتلة تتكوّن من رقم واحد يتجاوز هذه القيمة (باستثناء 0)

## output\_format\_pretty\_squash\_consecutive\_ms

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "50"},{"label": "إضافة إعداد جديد"}]}]} />

انتظر الكتلة التالية لمدة تصل إلى عدد المللي ثانية المحدد، ثم ادمجها مع الكتلة السابقة قبل الكتابة.
يؤدي ذلك إلى تجنب الإخراج المتكرر لكتل صغيرة جدًا، مع الحفاظ في الوقت نفسه على عرض البيانات بأسلوب التدفق.

## output\_format\_pretty\_squash\_max\_wait\_ms

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1000"},{"label": "إضافة إعداد جديد"}]}]} />

أخرج الكتلة المعلّقة بتنسيقات Pretty إذا انقضى منذ آخر إخراج أكثر من العدد المحدد من المللي ثانية.

## output\_format\_pretty\_use\_nbsp\_for\_padding

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "0"},{"label": "إعداد جديد. عند تمكينه، يُستخدَم `U+00A0` لعرض الحشو في تنسيق الإخراج `Pretty`، بحيث يبقى محفوظًا عند النسخ واللصق عبر الأدوات التي تضغط تتابعات المسافات العادية."}]}]} />

عند تمكينه، يُعرَض الحشو في تنسيقات الإخراج `Pretty` باستخدام `U+00A0` بدلًا من مسافة ASCII.
يبقى الإخراج متماثلًا بصريًا عند استخدام خط أحادي المسافة، لكن الحشو يظل محفوظًا عند المرور عبر الأدوات التي تضغط أو تقتطع تتابعات المسافات العادية.
لا يسري هذا إلا عندما تكون قيمة `output_format_pretty_grid_charset` هي `UTF-8`.

## output\_format\_protobuf\_nullables\_with\_google\_wrappers

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

عند إجراء التسلسل لأعمدة Nullable باستخدام مغلفات Google، تُسلسَل القيم الافتراضية على شكل مغلفات فارغة. وإذا كان هذا الخيار معطّلًا، فلن تُسلسَل القيم الافتراضية ولا قيم NULL

## output\_format\_schema

مسار الملف الذي سيُحفَظ فيه المخطط الذي يُنشأ تلقائيًا بتنسيقَي [Cap'n Proto](/ar/reference/formats/CapnProto) أو [Protobuf](/ar/reference/formats/Protobuf/Protobuf).

## output\_format\_sql\_insert\_include\_column\_names

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

تضمين أسماء الأعمدة في استعلام INSERT

## output\_format\_sql\_insert\_max\_batch\_size

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

الحد الأقصى لعدد الصفوف في تعليمة INSERT واحدة.

## output\_format\_sql\_insert\_quote\_names

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

ضع أسماء الأعمدة بين محرفي '\`'

## output\_format\_sql\_insert\_table\_name

<SettingsInfoBlock type="String" default_value="table" />

اسم الجدول في استعلام INSERT الناتج

## output\_format\_sql\_insert\_use\_replace

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

استخدم عبارة REPLACE بدلًا من عبارة INSERT

## output\_format\_trim\_fixed\_string

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "إعداد جديد لحذف بايتات الصفر اللاحقة من قيم FixedString في تنسيقات الإخراج النصية"}]}]} />

يحذف بايتات الصفر اللاحقة من قيم FixedString في تنسيقات الإخراج النصية. على سبيل المثال، تُطبع `toFixedString('John', 8)` بالشكل `John` بدلًا من `John\0\0\0\0`.

## output\_format\_tsv\_crlf\_end\_of\_line

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

إذا ضُبط هذا الإعداد على true، فستكون نهاية السطر في تنسيق TSV هي \r\n بدلًا من \n.

## output\_format\_values\_escape\_quote\_with\_quote

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "0"},{"label": "إذا كانت القيمة true، فيُفلت الرمز ' باستخدام ''، وإلا فيُقتبس باستخدام \\'"}]}]} />

إذا كانت القيمة true، فيُفلت الرمز ' باستخدام ''، وإلا فيُقتبس باستخدام \\'

## output\_format\_write\_statistics

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

كتابة إحصاءات عن الصفوف المقروءة، والبايتات، والوقت المنقضي في تنسيقات الإخراج المناسبة.

مفعّل افتراضيًا
