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

> توثيق محرك الجدول TinyLog

# محرك الجدول TinyLog

export const CloudNotSupportedBadge = () => {
  return <div className="cloudNotSupportedBadge">
            <div className="cloudNotSupportedIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.5" d="M6.33366 12.6666L12.3739 12.6667C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00003 12.3739 8.00003C12.3739 8.00003 12.3337 7.66659 12.0003 7.33325M10.667 5.33322C8.00033 2.33325 4.45395 4.78537 4.14195 6.68203C2.55728 6.7627 1.29395 8.06203 1.29395 9.6667C1.29395 11.3234 2.66699 12.6666 4.00033 12.6666" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.5" d="M2.66699 14L12.0003 4.66663" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>

        </div>
            غير مدعوم في ClickHouse Cloud
        </div>;
};

<CloudNotSupportedBadge />

ينتمي هذا المحرك إلى عائلة محركات السجل. راجع [عائلة محركات السجل](/docs/ar/reference/engines/table-engines/log-family/index) للاطلاع على الخصائص المشتركة لمحركات السجل والفروق بينها.

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

تُنفَّذ الاستعلامات ضمن تدفق واحد. وبعبارة أخرى، فهذا المحرك مخصص للجداول الصغيرة نسبيًا (حتى نحو 1,000,000 صف). ومن المنطقي استخدام محرك الجدول هذا إذا كان لديك الكثير من الجداول الصغيرة، لأنه أبسط من محرك [Log](/docs/ar/reference/engines/table-engines/log-family/log) (إذ يلزم فتح عدد أقل من الملفات).

<div id="characteristics">
  ## الخصائص
</div>

* **بنية أبسط**: بخلاف محرك Log، لا يستخدم TinyLog ملفات العلامات. يقلّل ذلك من التعقيد، لكنه يحدّ أيضًا من إمكانات تحسين الأداء لمجموعات البيانات الكبيرة.
* **استعلامات أحادية التدفق**: تُنفَّذ الاستعلامات على جداول TinyLog ضمن تدفق واحد، مما يجعله مناسبًا للجداول الصغيرة نسبيًا، عادةً حتى 1,000,000 صف.
* **فعّال للجداول الصغيرة**: تجعل بساطة محرك TinyLog منه خيارًا مناسبًا عند إدارة عدد كبير من الجداول الصغيرة، إذ يتطلّب عمليات ملفات أقل مقارنةً بمحرك Log.

بخلاف محرك Log، لا يستخدم TinyLog ملفات العلامات. يقلّل ذلك من التعقيد، لكنه يحدّ أيضًا من إمكانات تحسين الأداء لمجموعات البيانات الأكبر.

<div id="table_engines-tinylog-creating-a-table">
  ## إنشاء جدول
</div>

```sql theme={null}
CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
    column1_name [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
    column2_name [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
    ...
) ENGINE = TinyLog
```

راجع الوصف التفصيلي لاستعلام [CREATE TABLE](/docs/ar/reference/statements/create/table).

<div id="table_engines-tinylog-writing-the-data">
  ## كتابة البيانات
</div>

يخزّن المحرّك `TinyLog` جميع الأعمدة في ملف واحد. ومع كل استعلام `INSERT`، يُلحق ClickHouse كتلة البيانات بنهاية ملف الجدول، مع كتابة الأعمدة واحدًا تلو الآخر.

لكل جدول، يكتب ClickHouse الملفات التالية:

* `<column>.bin`: ملف بيانات لكل عمود، يحتوي على بيانات مُسلسلة ومضغوطة.

لا يدعم المحرّك `TinyLog` عمليتَي `ALTER UPDATE` و`ALTER DELETE`.

<div id="table_engines-tinylog-example-of-use">
  ## مثال للاستخدام
</div>

إنشاء جدول:

```sql theme={null}
CREATE TABLE tiny_log_table
(
    timestamp DateTime,
    message_type String,
    message String
)
ENGINE = TinyLog
```

إدخال البيانات:

```sql theme={null}
INSERT INTO tiny_log_table VALUES (now(),'REGULAR','The first regular message')
INSERT INTO tiny_log_table VALUES (now(),'REGULAR','The second regular message'),(now(),'WARNING','The first warning message')
```

استخدمنا استعلامين من نوع `INSERT` لإنشاء كتلتين من البيانات داخل ملفات `<column>.bin`.

يستخدم ClickHouse تدفقًا واحدًا عند تحديد البيانات. ونتيجةً لذلك، يتطابق ترتيب كتل الصفوف في الناتج مع ترتيب الكتل نفسها في الإدخال. على سبيل المثال:

```sql theme={null}
SELECT * FROM tiny_log_table
```

```text theme={null}
┌───────────timestamp─┬─message_type─┬─message────────────────────┐
│ 2024-12-10 13:11:58 │ REGULAR      │ The first regular message  │
│ 2024-12-10 13:12:12 │ REGULAR      │ The second regular message │
│ 2024-12-10 13:12:12 │ WARNING      │ The first warning message  │
└─────────────────────┴──────────────┴────────────────────────────┘
```
