Pular para o conteúdo principal
EntradaSaídaAlias

Descrição

O ClickHouse oferece suporte à leitura de dumps do MySQL. Ele lê todos os dados das consultas INSERT referentes a uma única tabela no dump. Se houver mais de uma tabela, por padrão, ele lê os dados da primeira.
Este formato oferece suporte à inferência de esquema: se o dump contiver uma consulta CREATE para a tabela especificada, a estrutura será inferida a partir dela; caso contrário, o esquema será inferido com base nos dados das consultas INSERT.

Exemplo de uso

Considere o seguinte arquivo de dump SQL:
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);
Podemos executar as consultas a seguir:
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 │
└───┘

Configurações de formato

Você pode especificar o nome da tabela de onde os dados serão lidos usando a configuração input_format_mysql_dump_table_name. Se a configuração input_format_mysql_dump_map_columns estiver definida como 1 e o dump contiver uma consulta CREATE para a tabela especificada ou nomes de colunas na consulta INSERT, as colunas dos dados de entrada serão mapeadas para as colunas da tabela pelo nome. Colunas com nomes desconhecidos serão ignoradas se a configuração input_format_skip_unknown_fields estiver definida como 1.
Última modificação em 10 de junho de 2026