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

# فصل التخزين والحوسبة

> يوضح هذا الدليل كيفية استخدام ClickHouse وS3 لتنفيذ معمارية تفصل بين التخزين والحوسبة.

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

<div id="overview">
  ## نظرة عامة
</div>

يشرح هذا الدليل كيف يمكنك استخدام ClickHouse وS3 لتنفيذ معمارية تفصل بين التخزين والحوسبة.

يعني فصل التخزين والحوسبة أن موارد الحوسبة وموارد التخزين تُدار بشكل مستقل. في ClickHouse، يتيح ذلك قابلية توسّع أفضل، وكفاءة أعلى من حيث التكلفة، ومرونة أكبر. ويمكنك توسيع موارد التخزين وموارد الحوسبة كلًّا على حدة حسب الحاجة، بما يحسّن الأداء والتكاليف.

ويكون استخدام ClickHouse المعتمد على S3 مفيدًا بشكل خاص في حالات الاستخدام التي تكون فيها أهمية أداء الاستعلامات على البيانات "الباردة" أقل. يوفّر ClickHouse دعمًا لاستخدام S3 بوصفه طبقة التخزين لمحرك `MergeTree` من خلال `S3BackedMergeTree`. ويتيح لك محرك الجداول هذا الاستفادة من مزايا قابلية التوسّع والتكلفة التي يوفّرها S3، مع الحفاظ على أداء `insert` و`query` لمحرك `MergeTree`.

يرجى ملاحظة أن تنفيذ وإدارة معمارية فصل التخزين والحوسبة أكثر تعقيدًا مقارنةً بعمليات نشر ClickHouse القياسية. وبينما يتيح Self-managed ClickHouse فصل التخزين والحوسبة كما هو موضّح في هذا الدليل، فإننا نوصي باستخدام [ClickHouse Cloud](https://clickhouse.com/cloud)، الذي يتيح لك استخدام ClickHouse بهذه المعمارية من دون أي تهيئة، وذلك باستخدام [محرك الجداول `SharedMergeTree`](/ar/products/cloud/features/infrastructure/shared-merge-tree).

*يفترض هذا الدليل أنك تستخدم ClickHouse الإصدار 22.8 أو أحدث.*

<Warning>
  لا تُعِد أي سياسة دورة حياة لـ AWS/GCS. هذا غير مدعوم وقد يؤدي إلى تلف الجداول.
</Warning>

<div id="1-use-s3-as-a-clickhouse-disk">
  ## 1. استخدم S3 كقرص في ClickHouse
</div>

<div id="creating-a-disk">
  ### إنشاء قرص
</div>

أنشئ ملفًا جديدًا في الدليل `config.d` الخاص بـ ClickHouse لتخزين تهيئة التخزين:

```bash theme={null}
vim /etc/clickhouse-server/config.d/storage_config.xml
```

انسخ محتوى XML التالي إلى الملف الذي أُنشئ حديثًا، مع استبدال `BUCKET` و`ACCESS_KEY_ID` و`SECRET_ACCESS_KEY` بتفاصيل حاوية AWS التي تريد تخزين بياناتك فيها:

```xml theme={null}
<clickhouse>
  <storage_configuration>
    <disks>
      <s3_disk>
        <type>s3</type>
        <endpoint>$BUCKET</endpoint>
        <access_key_id>$ACCESS_KEY_ID</access_key_id>
        <secret_access_key>$SECRET_ACCESS_KEY</secret_access_key>
        <metadata_path>/var/lib/clickhouse/disks/s3_disk/</metadata_path>
      </s3_disk>
      <s3_cache>
        <type>cache</type>
        <disk>s3_disk</disk>
        <path>/var/lib/clickhouse/disks/s3_cache/</path>
        <max_size>10Gi</max_size>
      </s3_cache>
    </disks>
    <policies>
      <s3_main>
        <volumes>
          <main>
            <disk>s3_disk</disk>
          </main>
        </volumes>
      </s3_main>
    </policies>
  </storage_configuration>
</clickhouse>
```

إذا كنت بحاجة إلى تحديد إعدادات إضافية لقرص S3 — مثل تحديد `region` أو إرسال ترويسة HTTP مخصّصة `header` — فيمكنك العثور على قائمة الإعدادات ذات الصلة [هنا](/ar/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-s3).

يمكنك أيضًا استبدال `access_key_id` و`secret_access_key` بما يلي، والذي سيحاول الحصول على بيانات الاعتماد من متغيرات البيئة وبيانات Amazon EC2 الوصفية:

```bash theme={null}
<use_environment_credentials>true</use_environment_credentials>
```

بعد إنشاء ملف الإعداد، تحتاج إلى تغيير ملكية الملف إلى المستخدم والمجموعة `clickhouse`:

```bash theme={null}
chown clickhouse:clickhouse /etc/clickhouse-server/config.d/storage_config.xml
```

يمكنك الآن إعادة تشغيل خادم ClickHouse حتى تدخل التغييرات حيّز التنفيذ:

```bash theme={null}
service clickhouse-server restart
```

<div id="2-create-a-table-backed-by-s3">
  ## 2. إنشاء جدول يعتمد على S3
</div>

لاختبار أننا هيّأنا قرص S3 بشكل صحيح، يمكننا محاولة إنشاء جدول وإجراء استعلام عليه.

أنشئ جدولًا مع تحديد سياسة التخزين الجديدة لـ S3:

```sql theme={null}
CREATE TABLE my_s3_table
  (
    `id` UInt64,
    `column1` String
  )
ENGINE = MergeTree
ORDER BY id
SETTINGS storage_policy = 's3_main';
```

لاحظ أننا لم نكن بحاجة إلى تحديد المحرّك على أنه `S3BackedMergeTree`. إذ يحوّل ClickHouse نوع المحرّك تلقائيًا داخليًا إذا اكتشف أن الجدول يستخدم S3 للتخزين.

تأكّد من أن الجدول قد أُنشئ باستخدام السياسة الصحيحة:

```sql theme={null}
SHOW CREATE TABLE my_s3_table;
```

من المفترض أن تظهر لك النتيجة التالية:

```response theme={null}
┌─statement────────────────────────────────────────────────────
│ CREATE TABLE default.my_s3_table
(
  `id` UInt64,
  `column1` String
)
ENGINE = MergeTree
ORDER BY id
SETTINGS storage_policy = 's3_main', index_granularity = 8192
└──────────────────────────────────────────────────────────────
```

لنُدرِج الآن بعض الصفوف في جدولنا الجديد:

```sql theme={null}
INSERT INTO my_s3_table (id, column1)
  VALUES (1, 'abc'), (2, 'xyz');
```

لنتحقق من أنه تم إدراج صفوفنا:

```sql theme={null}
SELECT * FROM my_s3_table;
```

```response theme={null}
┌─id─┬─column1─┐
│  1 │ abc     │
│  2 │ xyz     │
└────┴─────────┘

2 rows in set. Elapsed: 0.284 sec.
```

في وحدة تحكم AWS، إذا أُدرِجت بياناتك بنجاح في S3، فمن المفترض أن ترى أن ClickHouse قد أنشأ ملفات جديدة في حاوية S3 التي حددتها.

إذا سار كل شيء بنجاح، فأنت الآن تستخدم ClickHouse مع فصل التخزين والحوسبة!

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/9LRtNO40yOWFMtMV/images/guides/s3_bucket_example.png?fit=max&auto=format&n=9LRtNO40yOWFMtMV&q=85&s=0302e5aaebcdf20b4842f7d0bb06736a" size="md" alt="مثال على حاوية S3 باستخدام فصل التخزين والحوسبة" border width="1208" height="736" data-path="images/guides/s3_bucket_example.png" />

<div id="3-implementing-replication-for-fault-tolerance-optional">
  ## 3. تنفيذ النسخ المتماثل لتحقيق تحمّل الأعطال (اختياري)
</div>

<Warning>
  لا تقم بتهيئة أي سياسة دورة حياة في AWS/GCS. هذا غير مدعوم وقد يؤدي إلى تلف الجداول.
</Warning>

لتحقيق تحمّل الأعطال، يمكنك استخدام عدة عُقد لخوادم ClickHouse موزعة على عدة مناطق AWS، مع حاوية S3 لكل عقدة.

يمكن تنفيذ النسخ المتماثل باستخدام أقراص S3 عبر محرك الجداول `ReplicatedMergeTree`. راجع الدليل التالي لمزيد من التفاصيل:

* [نسخ شظية واحدة متماثلًا عبر منطقتين من AWS باستخدام تخزين الكائنات في S3](/ar/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse#s3-multi-region).

<div id="further-reading">
  ## للمزيد من القراءة
</div>

* [محرك الجداول SharedMergeTree](/ar/products/cloud/features/infrastructure/shared-merge-tree)
* [مقالة إعلان SharedMergeTree على المدونة](https://clickhouse.com/blog/clickhouse-cloud-boosts-performance-with-sharedmergetree-and-lightweight-updates)
