Saltar al contenido principal
El motor MySQL le permite realizar consultas SELECT e INSERT en datos almacenados en un servidor MySQL remoto.

Crear una tabla

Consulta una descripción detallada de la sentencia CREATE TABLE. La estructura de la tabla puede diferir de la estructura de la tabla MySQL original:
  • Los nombres de las columnas deben ser los mismos que en la tabla MySQL original, pero puedes usar solo algunas de ellas y en cualquier orden.
  • Los tipos de las columnas pueden diferir de los de la tabla MySQL original. ClickHouse intenta convertir los valores a los tipos de datos de ClickHouse.
  • La configuración external_table_functions_use_nulls define cómo manejar las columnas Nullable. Valor predeterminado: 1. Si es 0, la función de tabla no crea columnas Nullable e inserta valores predeterminados en lugar de valores NULL. Esto también se aplica a los valores NULL dentro de arrays.
Parámetros del motor
  • host:port — Dirección del servidor MySQL.
  • database — Nombre de la base de datos remota.
  • table — Nombre de la tabla remota.
  • user — usuario MySQL.
  • password — Contraseña del usuario.
  • replace_query — Indicador que convierte las consultas INSERT INTO en REPLACE INTO. Si replace_query=1, la consulta se sustituye.
  • on_duplicate_clause — La expresión ON DUPLICATE KEY on_duplicate_clause que se añade a la consulta INSERT. Ejemplo: INSERT INTO t (c1,c2) VALUES ('a', 2) ON DUPLICATE KEY UPDATE c2 = c2 + 1, donde on_duplicate_clause es UPDATE c2 = c2 + 1. Consulta la documentación de MySQL para ver qué on_duplicate_clause puedes usar con la cláusula ON DUPLICATE KEY. Para especificar on_duplicate_clause, debes pasar 0 al parámetro replace_query. Si pasas simultáneamente replace_query = 1 y on_duplicate_clause, ClickHouse genera una excepción.
Los argumentos también se pueden pasar mediante colección nombrada. En este caso, host y port deben especificarse por separado. Este enfoque se recomienda para entornos de producción. Las cláusulas WHERE simples, como =, !=, >, >=, <, <=, se ejecutan en el servidor MySQL. El resto de las condiciones y la restricción de muestreo LIMIT se ejecutan en ClickHouse solo después de que finaliza la consulta a MySQL. Admite múltiples réplicas, que deben enumerarse mediante |. Por ejemplo:

Ejemplo de uso

Crear una tabla en MySQL:
Cree una tabla en ClickHouse con argumentos simples:
O bien, usando colecciones nombradas:
Obtención de datos de la tabla de MySQL:

Configuración

La configuración predeterminada no es muy eficiente, ya que ni siquiera reutiliza las conexiones. Estos ajustes permiten aumentar el número de consultas que el servidor ejecuta por segundo.

connection_auto_close

Permite cerrar automáticamente la conexión después de ejecutar la consulta; es decir, desactiva la reutilización de la conexión. Valores posibles:
  • 1 — Se permite el cierre automático de la conexión, por lo que la reutilización de la conexión está desactivada
  • 0 — No se permite el cierre automático de la conexión, por lo que la reutilización de la conexión está activada
Valor predeterminado: 1.

connection_max_tries

Establece el número de reintentos del pool con failover. Valores posibles:
  • Entero positivo.
  • 0 — No hay reintentos para el pool con failover.
Valor predeterminado: 3.

connection_pool_size

Tamaño del pool de conexiones (si todas las conexiones están en uso, la consulta esperará hasta que se libere alguna). Valores posibles:
  • Entero positivo.
Valor predeterminado: 16.

connection_wait_timeout

Tiempo de espera (en segundos) para esperar a que haya una conexión libre (en caso de que ya haya connection_pool_size conexiones activas); 0: no esperar. Valores posibles:
  • Entero positivo.
Valor predeterminado: 5.

connect_timeout

Tiempo de espera de conexión (en segundos). Valores posibles:
  • Entero positivo.
Valor predeterminado: 10.

read_write_timeout

Tiempo de espera de lectura y escritura (en segundos). Posibles valores:
  • Entero positivo.
Valor predeterminado: 300.

enable_compression

Habilita la compresión para la conexión mediante el protocolo MySQL. Valor predeterminado: false. Esta configuración se aplica a:
  • el motor de tabla MySQL;
  • el motor de base de datos MySQL;
  • la función de tabla mysql;
  • las colecciones nombradas utilizadas por las integraciones de MySQL.
Cuando está habilitada, ClickHouse solicita compresión para la conexión. Ejemplo:

Véase también

Última modificación el 1 de julio de 2026