Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

MySQLDump

إدخال إخراج اسم بديل

الوصف

يدعم ClickHouse قراءة ملفات تفريغ الخاصة بـ MySQL.

يقرأ جميع البيانات من استعلامات INSERT التابعة لجدول واحد ضمن ملف التفريغ. إذا كان هناك أكثر من جدول، فسيقرأ البيانات من الجدول الأول افتراضيًا.

مثال للاستخدام

لنفترض وجود ملف تفريغ SQL التالي:

dump.sqlsql
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `test` (
  `x` int DEFAULT NULL,
  `y` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
INSERT INTO `test` VALUES (1,NULL),(2,NULL),(3,NULL),(3,NULL),(4,NULL),(5,NULL),(6,7);
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `test 3` (
  `y` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
INSERT INTO `test 3` VALUES (1);
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `test2` (
  `x` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
INSERT INTO `test2` VALUES (1),(2),(3);

يمكننا تنفيذ الاستعلامات التالية:

Querysql
DESCRIBE TABLE file(dump.sql, MySQLDump) 
SETTINGS input_format_mysql_dump_table_name = 'test2'
Responseresponse
┌─name─┬─type────────────┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┐
│ x    │ Nullable(Int32) │              │                    │         │                  │                │
└──────┴─────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘
Querysql
SELECT *
FROM file(dump.sql, MySQLDump)
SETTINGS input_format_mysql_dump_table_name = 'test2'
Responseresponse
┌─x─┐
│ 1 │
│ 2 │
│ 3 │
└───┘

إعدادات التنسيق

يمكنك تحديد اسم الجدول الذي ستُقرأ منه البيانات باستخدام الإعداد input_format_mysql_dump_table_name. إذا كان الإعداد input_format_mysql_dump_map_columns مضبوطًا على 1 وكان ملف التفريغ يتضمن استعلام CREATE للجدول المحدد أو أسماء أعمدة في استعلام INSERT، فستُطابَق أعمدة بيانات الإدخال مع أعمدة الجدول حسب الاسم. سيتم تخطي الأعمدة ذات الأسماء غير المعروفة إذا كان الإعداد input_format_skip_unknown_fields مضبوطًا على 1.

Navigation