Passer au contenu principal
EntréeSortieAlias

Description

ClickHouse prend en charge la lecture des dumps MySQL. Il lit toutes les données des requêtes INSERT associées à une seule table dans le dump. S’il y a plusieurs tables, il lit par défaut les données de la première.
Ce format prend en charge l’inférence de schéma : si le dump contient une requête CREATE pour la table spécifiée, la structure est déduite de celle-ci ; sinon, le schéma est déduit à partir des données des requêtes INSERT.

Exemple d’utilisation

Soit le fichier de dump SQL suivant :
dump.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);
Vous pouvez exécuter les requêtes suivantes :
Query
DESCRIBE TABLE file(dump.sql, MySQLDump) 
SETTINGS input_format_mysql_dump_table_name = 'test2'
Response
┌─name─┬─type────────────┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┐
│ x    │ Nullable(Int32) │              │                    │         │                  │                │
└──────┴─────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘
Query
SELECT *
FROM file(dump.sql, MySQLDump)
SETTINGS input_format_mysql_dump_table_name = 'test2'
Response
┌─x─┐
│ 1 │
│ 2 │
│ 3 │
└───┘

Paramètres de format

Vous pouvez spécifier le nom de la table à partir de laquelle lire les données à l’aide du paramètre input_format_mysql_dump_table_name. Si le paramètre input_format_mysql_dump_map_columns vaut 1 et que le dump contient une requête CREATE pour la table spécifiée, ou des noms de colonnes dans la requête INSERT, les colonnes des données d’entrée seront mises en correspondance avec celles de la table par leur nom. Les colonnes dont les noms sont inconnus seront ignorées si le paramètre input_format_skip_unknown_fields vaut 1.
Dernière modification le 25 juin 2026