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

# إدراج بيانات SQL وتفريغها في ClickHouse

> تشرح هذه الصفحة كيفية نقل البيانات بين قواعد البيانات الأخرى وClickHouse باستخدام تفريغات SQL.

يمكن دمج ClickHouse بسهولة في البنى التحتية لقواعد بيانات OLTP بطرق عديدة. ومن بين هذه الطرق نقل البيانات بين قواعد البيانات الأخرى وClickHouse باستخدام تفريغات SQL.

<div id="creating-sql-dumps">
  ## إنشاء تفريغ SQL
</div>

يمكن إنشاء تفريغ SQL للبيانات بتنسيق SQL باستخدام [SQLInsert](/ar/reference/formats/SQLInsert). سيكتب ClickHouse البيانات بصيغة `INSERT INTO <table name> VALUES(...` وسيستخدم خيار الإعداد [`output_format_sql_insert_table_name`](/ar/reference/settings/formats#output_format_sql_insert_table_name) كاسمٍ للجدول:

```sql theme={null}
SET output_format_sql_insert_table_name = 'some_table';
SELECT * FROM some_data
INTO OUTFILE 'dump.sql'
FORMAT SQLInsert
```

يمكن الاستغناء عن أسماء الأعمدة بتعطيل الخيار [`output_format_sql_insert_include_column_names`](/ar/reference/settings/formats#output_format_sql_insert_include_column_names):

```sql theme={null}
SET output_format_sql_insert_include_column_names = 0
```

الآن يمكننا إدخال ملف [dump.sql](/ar/assets/dump.sql) إلى قاعدة بيانات OLTP أخرى:

```bash theme={null}
mysql some_db < dump.sql
```

نفترض أن جدول `some_table` موجود في قاعدة بيانات MySQL ‏`some_db`.

قد تفرض بعض نظم إدارة قواعد البيانات حدودًا على عدد القيم التي يمكن معالجتها ضمن دفعة واحدة. افتراضيًا، ينشئ ClickHouse دفعات من 65 ألف قيمة، ولكن يمكن تغيير ذلك باستخدام الخيار [`output_format_sql_insert_max_batch_size`](/ar/reference/settings/formats#output_format_sql_insert_max_batch_size):

```sql theme={null}
SET output_format_sql_insert_max_batch_size = 1000;
```

<div id="exporting-a-set-of-values">
  ### تصدير مجموعة من القيم
</div>

يوفّر ClickHouse تنسيق [Values](/ar/reference/formats/Values)، وهو مشابه لـ SQLInsert، لكنه يحذف الجزء `INSERT INTO table VALUES` ويُرجع القيم فقط:

```sql theme={null}
SELECT * FROM some_data LIMIT 3 FORMAT Values
```

```response theme={null}
('Bangor_City_Forest','2015-07-01',34),('Alireza_Afzal','2017-02-01',24),('Akhaura-Laksam-Chittagong_Line','2015-09-01',30)
```

<div id="inserting-data-from-sql-dumps">
  ## إدراج البيانات من تفريغ SQL
</div>

لقراءة تفريغ SQL، يُستخدم [MySQLDump](/ar/reference/formats/MySQLDump):

```sql theme={null}
SELECT *
FROM file('dump.sql', MySQLDump)
LIMIT 5
```

```response theme={null}
┌─path───────────────────────────┬──────month─┬─hits─┐
│ Bangor_City_Forest             │ 2015-07-01 │   34 │
│ Alireza_Afzal                  │ 2017-02-01 │   24 │
│ Akhaura-Laksam-Chittagong_Line │ 2015-09-01 │   30 │
│ 1973_National_500              │ 2017-10-01 │   80 │
│ Attachment                     │ 2017-09-01 │ 1356 │
└────────────────────────────────┴────────────┴──────┘
```

افتراضيًا، يتخطّى ClickHouse الأعمدة غير المعروفة (ويتحكّم في ذلك الخيار [input\_format\_skip\_unknown\_fields](/ar/reference/settings/formats#input_format_skip_unknown_fields))، ويعالج البيانات لأول جدول يُعثر عليه في ملف تفريغ (إذا جرى تفريغ عدة جداول في ملف واحد). وسيتم تخطّي عبارات DDL. لتحميل البيانات من ملف تفريغ MySQL إلى جدول (ملف [mysql.sql](/ar/assets/mysql.sql)):

```sql theme={null}
INSERT INTO some_data
FROM INFILE 'mysql.sql' FORMAT MySQLDump
```

يمكننا أيضًا إنشاء جدول تلقائيًا من ملف تفريغ MySQL:

```sql theme={null}
CREATE TABLE table_from_mysql
ENGINE = MergeTree
ORDER BY tuple() AS
SELECT *
FROM file('mysql.sql', MySQLDump)
```

أنشأنا هنا جدولًا باسم `table_from_mysql` بالاستناد إلى بنية استنتجها ClickHouse تلقائيًا.  ويحدّد ClickHouse الأنواع إما استنادًا إلى البيانات أو باستخدام DDL عند توفره:

```sql theme={null}
DESCRIBE TABLE table_from_mysql;
```

```response theme={null}
┌─name──┬─type─────────────┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┐
│ path  │ Nullable(String) │              │                    │         │                  │                │
│ month │ Nullable(Date32) │              │                    │         │                  │                │
│ hits  │ Nullable(UInt32) │              │                    │         │                  │                │
└───────┴──────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘
```

<div id="other-formats">
  ## تنسيقات أخرى
</div>

يدعم ClickHouse العديد من التنسيقات، النصية والثنائية، لتلبية سيناريوهات ومنصات متنوعة. استكشف المزيد من التنسيقات وطرق العمل معها في المقالات التالية:

* [تنسيقات CSV وTSV](/ar/guides/clickhouse/data-formats/csv-tsv)
* [Parquet](/ar/guides/clickhouse/data-formats/parquet)
* [تنسيقات JSON](/ar/guides/clickhouse/data-formats/json/intro)
* [Regex وTemplate](/ar/guides/clickhouse/data-formats/templates-regex)
* [التنسيقات الأصلية والثنائية](/ar/guides/clickhouse/data-formats/binary)
* **تنسيقات SQL**

واطّلع أيضًا على [clickhouse-local](https://clickhouse.com/blog/extracting-converting-querying-local-files-with-sql-clickhouse-local) — وهي أداة محمولة كاملة الميزات للعمل مع الملفات المحلية/البعيدة دون الحاجة إلى ClickHouse server.
