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

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

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

export const Image = ({img, alt, size = "lg"}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} />
      </Frame>
    </div>;
};

<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`](/docs/ar/products/cloud/features/infrastructure/shared-merge-tree).

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

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

<Steps>
  <Step title="استخدم S3 كقرص لـ ClickHouse" id="1-use-s3-as-a-clickhouse-disk">
    ### إنشاء قرص

    أنشئ ملفًا جديدًا في الدليل `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` — فيمكنك العثور على قائمة الإعدادات ذات الصلة [هنا](/docs/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
    ```
  </Step>

  <Step title="إنشاء جدول يعتمد على S3" id="2-create-a-table-backed-by-s3">
    لاختبار أن قرص S3 قد أُعدّ على نحو صحيح، يمكننا محاولة إنشاء جدول وتنفيذ query عليه.

    أنشئ جدولًا مع تحديد storage policy الجديدة الخاصة بـ 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 أنشأ ملفات جديدة في الحاوية التي حددتها.

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

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

  <Step title="إعداد النسخ المتماثل لتحمّل الأعطال (اختياري)" id="3-implementing-replication-for-fault-tolerance-optional">
    <Warning>
      لا تُعدّ أي سياسة دورة حياة لـ AWS/GCS. هذا غير مدعوم وقد يؤدي إلى تلف الجداول.
    </Warning>

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

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

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

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

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