SELECT e INSERT sobre datos almacenados en un servidor MySQL remoto.
Sintaxis
Argumentos
Los argumentos también pueden pasarse mediante colecciones con nombre. 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 actualmente 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 termina la consulta a MySQL.
Pasar una consulta en lugar del nombre de una tabla
SELECT que se pasa a MySQL tal cual. La estructura de la tabla resultante se infiere del resultado de la consulta. La consulta puede escribirse como una subconsulta o ir envuelta en la función query:
INSERT en ella. La misma sintaxis es compatible con el motor de tabla MySQL.
La forma de subconsulta
(SELECT ...) es analizada por ClickHouse y serializada de nuevo en el dialecto de MySQL (comillas invertidas para los identificadores) antes de enviarse al servidor. Por lo tanto, debe ser SQL válido de ClickHouse. Para pasar sintaxis específica de MySQL que ClickHouse no analiza, use la forma query('...'), cuyo texto se envía a MySQL literalmente.Cualquier WHERE, LIMIT, agregación, etc. externo de la consulta de ClickHouse que la contiene no se hace pushdown a la consulta proporcionada; se aplica en ClickHouse después de recuperar el resultado completo de la consulta. Para restringir los datos leídos desde MySQL, coloque el filtro dentro de la consulta proporcionada. Con external_table_strict_query = 1, un filtro externo al que no pueda hacerse pushdown se rechaza con una excepción en lugar de aplicarse localmente.|. Por ejemplo:
Valor devuelto
Algunos tipos de datos de MySQL pueden asignarse a distintos tipos de ClickHouse; esto se resuelve mediante la configuración a nivel de consulta mysql_datatypes_support_level
En la consulta
INSERT, para distinguir la función de tabla mysql(...) del nombre de tabla con la lista de nombres de columnas, debe usar las palabras clave FUNCTION o TABLE FUNCTION. Vea los ejemplos a continuación.Ejemplos
enable_compression
false.
Esta configuración se aplica a:
- la función de tabla
mysql; - el motor de tabla
MySQL; - el engine de base de datos
MySQL; - las colecciones con nombre usadas por las integraciones de MySQL.