ClickHouse поддерживает чтение MySQL дампов.
Он считывает все данные из запросов INSERT, относящихся к одной таблице в дампе.
Если таблиц больше одной, по умолчанию считываются данные из первой.
Этот формат поддерживает автоматическое определение схемы: если дамп содержит запрос CREATE для указанной таблицы, структура определяется на его основе, в противном случае схема определяется по данным из запросов INSERT.
Рассмотрим следующий файл SQL-дампа:
/*!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);
Можно выполнить следующие запросы:
DESCRIBE TABLE file(dump.sql, MySQLDump)
SETTINGS input_format_mysql_dump_table_name = 'test2'
┌─name─┬─type────────────┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┐
│ x │ Nullable(Int32) │ │ │ │ │ │
└──────┴─────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘
SELECT *
FROM file(dump.sql, MySQLDump)
SETTINGS input_format_mysql_dump_table_name = 'test2'
┌─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. Последнее изменение 10 июня 2026 г.