> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> توثيق لإنشاء القواميس وتهيئتها

# CREATE DICTIONARY

export const CloudSupportedBadge = () => <div className="cloudBadge">
    <div className="cloudIcon">
      <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
        <path fillRule="evenodd" clipRule="evenodd" d="M5.33395 12.6667H12.3739C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00004 12.3739 8.00004H12.0839V7.33337C12.0839 5.12671 10.2906 3.33337 8.08395 3.33337C6.09928 3.33337 4.45395 4.78537 4.14195 6.68204C2.55728 6.76271 1.29395 8.06204 1.29395 9.66671C1.29395 11.3234 2.63728 12.6667 4.29395 12.6667H5.33395Z" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
      </svg>
    </div>
    {"متوفر في ClickHouse Cloud"}
  </div>;

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

القاموس هو ربط (`key -> attributes`) مناسب لأنواع مختلفة من القوائم المرجعية.
يدعم ClickHouse دوالًا خاصة للتعامل مع القواميس يمكن استخدامها في الاستعلامات. ويُعد استخدام القواميس مع الدوال أسهل وأكثر كفاءة من استخدام `JOIN` مع الجداول المرجعية.

يمكن إنشاء القواميس بطريقتين:

* [باستخدام استعلام DDL](#creating-a-dictionary-with-a-ddl-query) (موصى به)
* [باستخدام ملف تهيئة](#creating-a-dictionary-with-a-configuration-file)

<div id="creating-a-dictionary-with-a-ddl-query">
  ## إنشاء قاموس باستخدام استعلام DDL
</div>

<CloudSupportedBadge />

يمكن إنشاء القواميس باستخدام استعلامات DDL.
وهذه هي الطريقة الموصى بها، لأنه عند إنشاء القواميس عبر DDL:

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

<div id="syntax">
  ### الصيغة
</div>

```sql theme={null}
CREATE [OR REPLACE] DICTIONARY [IF NOT EXISTS] [db.]dictionary_name [ON CLUSTER cluster]
(
    key1  type1  [DEFAULT | EXPRESSION expr1] [IS_OBJECT_ID],
    key2  type2  [DEFAULT | EXPRESSION expr2],
    attr1 type2  [DEFAULT | EXPRESSION expr3] [HIERARCHICAL|INJECTIVE],
    attr2 type2  [DEFAULT | EXPRESSION expr4] [HIERARCHICAL|INJECTIVE]
)
PRIMARY KEY key1, key2
SOURCE(SOURCE_NAME([param1 value1 ... paramN valueN]))
LAYOUT(LAYOUT_NAME([param_name param_value]))
LIFETIME({MIN min_val MAX max_val | max_val})
SETTINGS(setting_name = setting_value, setting_name = setting_value, ...)
COMMENT 'Comment'
```

| البند                                                                   | الوصف                                                                                                                                  |
| ----------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| [السمات](/ar/reference/statements/create/dictionary/attributes)         | تُحدَّد سمات القاموس بطريقة مماثلة لأعمدة الجدول. والخاصية الوحيدة المطلوبة هي النوع، أما سائر الخصائص فيمكن أن تكون لها قيم افتراضية. |
| PRIMARY KEY                                                             | يحدّد عمود/أعمدة المفتاح لعمليات البحث في القاموس. ووفقًا للبنية، يمكن تحديد سمة واحدة أو أكثر كمفاتيح.                                |
| [`SOURCE`](/ar/reference/statements/create/dictionary/sources/overview) | يحدّد مصدر البيانات للقاموس (مثل جدول ClickHouse أو HTTP أو PostgreSQL).                                                               |
| [`LAYOUT`](/ar/reference/statements/create/dictionary/layouts/overview) | يتحكم في كيفية تخزين القاموس في الذاكرة (مثل `FLAT` و`HASHED` و`CACHE`).                                                               |
| [`LIFETIME`](/ar/reference/statements/create/dictionary/lifetime)       | يضبط الفاصل الزمني لتحديث القاموس.                                                                                                     |
| [`ON CLUSTER`](/ar/reference/statements/distributed-ddl)                | ينشئ القاموس على عنقود. اختياري.                                                                                                       |
| `SETTINGS`                                                              | إعدادات إضافية للقاموس. اختياري.                                                                                                       |
| `COMMENT`                                                               | يضيف تعليقًا نصيًا إلى القاموس. اختياري.                                                                                               |

<div id="creating-a-dictionary-with-a-configuration-file">
  ## إنشاء قاموس باستخدام ملف تهيئة
</div>

<Note>
  لا ينطبق إنشاء قاموس باستخدام ملف تهيئة على ClickHouse Cloud. يُرجى استخدام DDL (انظر أعلاه)، وإنشاء القاموس بصفتك المستخدم `default`.
</Note>

يكون ملف تهيئة القاموس بالتنسيق التالي:

```xml theme={null}
<clickhouse>
    <comment>An optional element with any content. Ignored by the ClickHouse server.</comment>

    <!--Optional element. File name with substitutions-->
    <include_from>/etc/metrika.xml</include_from>

    <dictionary>
        <!-- Dictionary configuration. -->
        <!-- There can be any number of dictionary sections in a configuration file. -->
    </dictionary>

</clickhouse>
```

يمكنك إعداد أي عدد من القواميس في الملف نفسه.

<div id="related-content">
  ## محتوى ذو صلة
</div>

* [البُنى](/ar/reference/statements/create/dictionary/layouts/overview) — كيفية تخزين القواميس في الذاكرة
* [المصادر](/ar/reference/statements/create/dictionary/sources/overview) — الاتصال بمصادر البيانات
* [العمر الافتراضي](/ar/reference/statements/create/dictionary/lifetime) — تهيئة التحديث التلقائي
* [السمات](/ar/reference/statements/create/dictionary/attributes) — تهيئة المفتاح والسمات
* [القواميس المضمّنة](/ar/reference/statements/create/dictionary/embedded) — قواميس geobase المضمّنة
* [system.dictionaries](/ar/reference/system-tables/dictionaries) — جدول نظام يتضمن معلومات عن القواميس
