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

> Embeddable هي مجموعة أدوات للمطورين لبناء تجارب تحليلات سريعة وتفاعلية وقابلة للتخصيص بالكامل مباشرةً داخل تطبيقك.

# ربط Embeddable بـ ClickHouse

export const CommunityMaintainedBadge = () => {
  return <div className="CommunityMaintainedBadge">
            <div className="CommunityMaintainedIcon">
            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" viewBox="0 0 256 256">
                <path d="M244.8,150.4a8,8,0,0,1-11.2-1.6A51.6,51.6,0,0,0,192,128a8,8,0,0,1-7.37-4.89,8,8,0,0,1,0-6.22A8,8,0,0,1,192,112a24,24,0,1,0-23.24-30,8,8,0,1,1-15.5-4A40,40,0,1,1,219,117.51a67.94,67.94,0,0,1,27.43,21.68A8,8,0,0,1,244.8,150.4ZM190.92,212a8,8,0,1,1-13.84,8,57,57,0,0,0-98.16,0,8,8,0,1,1-13.84-8,72.06,72.06,0,0,1,33.74-29.92,48,48,0,1,1,58.36,0A72.06,72.06,0,0,1,190.92,212ZM128,176a32,32,0,1,0-32-32A32,32,0,0,0,128,176ZM72,120a8,8,0,0,0-8-8A24,24,0,1,1,87.24,82a8,8,0,1,0,15.5-4A40,40,0,1,0,37,117.51,67.94,67.94,0,0,0,9.6,139.19a8,8,0,1,0,12.8,9.61A51.6,51.6,0,0,1,64,128,8,8,0,0,0,72,120Z"></path>
            </svg>
        </div>
            تتم صيانته من قِبل المجتمع
        </div>;
};

في [Embeddable](https://embeddable.com/) يمكنك تعريف [نماذج البيانات](https://docs.embeddable.com/data-modeling/introduction) و[المكوّنات](https://docs.embeddable.com/development/introduction) برمجيًا (مع تخزينها في مستودع الشيفرة الخاص بك)، ثم استخدام **SDK** الخاص بنا لإتاحتها لفريقك داخل **منشئ** Embeddable القوي **من دون كتابة تعليمات برمجية.**

والنتيجة هي قدرتك على تقديم تحليلات سريعة وتفاعلية موجّهة للعملاء مباشرةً داخل منتجك؛ يصمّمها فريق المنتج لديك؛ ويبنيها فريق الهندسة لديك؛ وتتولى صيانتها الفرق المعنية بالعملاء والبيانات لديك. تمامًا كما ينبغي.

ويعني الأمان المدمج على مستوى الصفوف أن كل مستخدم لا يرى إلا البيانات المصرّح له برؤيتها. كما أن وجود مستويين من التخزين المؤقت القابل للتهيئة بالكامل يتيح لك تقديم تحليلات سريعة وآنية وعلى نطاق واسع.

<div id="1-gather-your-connection-details">
  ## 1. اجمع تفاصيل الاتصال لديك
</div>

للاتصال بـ ClickHouse باستخدام HTTP(S)، تحتاج إلى المعلومات التالية:

| المعلمات                  | الوصف                                                                                         |
| ------------------------- | --------------------------------------------------------------------------------------------- |
| `HOST` and `PORT`         | عادةً ما يكون المنفذ 8443 عند استخدام TLS، أو 8123 عند عدم استخدام TLS.                       |
| `DATABASE NAME`           | افتراضيًا، توجد قاعدة بيانات باسم `default`. استخدم اسم قاعدة البيانات التي تريد الاتصال بها. |
| `USERNAME` and `PASSWORD` | افتراضيًا، يكون اسم المستخدم `default`. استخدم اسم المستخدم المناسب لحالة الاستخدام لديك.     |

تتوفر تفاصيل خدمة ClickHouse Cloud الخاصة بك في ClickHouse Cloud console.
حدِّد خدمة ثم انقر على **Connect**:

<Image img="/images/_snippets/cloud-connect-button.png" size="md" alt="زر Connect لخدمة ClickHouse Cloud" border />

اختر **HTTPS**. ستظهر تفاصيل الاتصال في مثال لأمر `curl`.

<Image img="/images/_snippets/connection-details-https.png" size="md" alt="تفاصيل اتصال HTTPS لخدمة ClickHouse Cloud" border />

إذا كنت تستخدم ClickHouse مُدارًا ذاتيًا، فسيُحدِّد مسؤول ClickHouse لديك تفاصيل الاتصال.

<div id="2-create-a-clickhouse-connection-type">
  ## 2. إنشاء نوع اتصال لـ ClickHouse
</div>

يمكنك إضافة اتصال لقاعدة بيانات باستخدام Embeddable API. يُستخدم هذا اتصال للاتصال بخدمة ClickHouse الخاصة بك. يمكنك إضافة اتصال باستخدام استدعاء API التالي:

```javascript title="Query" theme={null}
// for security reasons, this must *never* be called from your client-side
fetch('https://api.embeddable.com/api/v1/connections', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    Accept: 'application/json',
    Authorization: `Bearer ${apiKey}` /* keep your API Key secure */,
  },
  body: JSON.stringify({
    name: 'my-clickhouse-db',
    type: 'clickhouse',
    credentials: {
      host: 'my.clickhouse.host',
      user: 'clickhouse_user',
      port: 8443,
      password: '*****',
    },
  }),
});
```

```text title="Response" theme={null}
Status 201 { errorMessage: null }
```

يمثّل ما سبق إجراء `CREATE`، ولكن جميع عمليات `CRUD` متاحة.

يمكن العثور على `apiKey` بالنقر على "**Publish**" في إحدى لوحات معلومات Embeddable.

يشير `name` إلى اسم فريد لتحديد هذا الاتصال.

* بشكل افتراضي، ستبحث نماذج البيانات لديك عن اتصال باسم "default"، ولكن يمكنك تزويد نماذجك بأسماء `data_source` مختلفة لدعم ربط نماذج بيانات مختلفة باتصالات مختلفة (ما عليك سوى تحديد اسم data\_source في النموذج)

يحدّد `type` لـ Embeddable برنامج التشغيل الذي يجب استخدامه.

* هنا ستحتاج إلى استخدام `clickhouse`، ولكن يمكنك ربط عدة مصادر بيانات مختلفة بمساحة عمل Embeddable واحدة، لذا قد تستخدم مصادر أخرى مثل: `postgres` و`bigquery` و`mongodb` وما إلى ذلك.

`credentials` هو كائن JavaScript يحتوي على بيانات الاعتماد المطلوبة التي يتوقعها برنامج التشغيل.

* تُشفَّر هذه البيانات بأمان، ولا تُستخدم إلا لاسترداد البيانات التي وصفتها بدقة في نماذج البيانات الخاصة بك.
  وتوصي Embeddable بشدة بإنشاء مستخدم قاعدة بيانات للقراءة فقط لكل اتصال (إذ لن تقوم Embeddable إلا بالقراءة من قاعدة البيانات لديك، ولن تكتب فيها).

لدعم الاتصال بقواعد بيانات مختلفة لبيئات الإنتاج وqa والاختبار وما إلى ذلك (أو لدعم قواعد بيانات مختلفة لعملاء مختلفين)، يمكنك إسناد كل اتصال إلى بيئة (راجع [Environments API](https://docs.embeddable.com/data/environments)).
