Saltar al contenido principal
clickhouse-jdbc-bridge contiene código experimental y ya no es compatible. Puede presentar problemas de fiabilidad y vulnerabilidades de seguridad. Úselo bajo su propia responsabilidad. ClickHouse recomienda usar las funciones de tabla integradas en ClickHouse, que ofrecen una mejor alternativa para escenarios de consultas ad hoc (Postgres, MySQL, MongoDB, etc.).
Permite que ClickHouse se conecte a bases de datos externas mediante JDBC. Para implementar la conexión JDBC, ClickHouse utiliza el programa independiente clickhouse-jdbc-bridge, que debe ejecutarse como un demonio. Este motor admite el tipo de datos Nullable.

Crear una tabla

CREATE TABLE [IF NOT EXISTS] [db.]table_name
(
    columns list...
)
ENGINE = JDBC(datasource, external_database, external_table)
Parámetros del motor
  • datasource — URI o nombre de un SGBD externo. Formato de URI: jdbc:<driver_name>://<host_name>:<port>/?user=<username>&password=<password>. Ejemplo para MySQL: jdbc:mysql://localhost:3306/?user=root&password=root.
  • external_database — Nombre de una base de datos en un SGBD externo o, alternativamente, un esquema de tabla definido explícitamente (consulta los ejemplos).
  • external_table — Nombre de la tabla en una base de datos externa o una consulta como select * from table1 where column1=1.
  • Estos parámetros también se pueden pasar mediante colecciones con nombre.

Ejemplo de uso

Creación de una tabla en el servidor MySQL conectándose directamente con su cliente de consola:
mysql> CREATE TABLE `test`.`test` (
    ->   `int_id` INT NOT NULL AUTO_INCREMENT,
    ->   `int_nullable` INT NULL DEFAULT NULL,
    ->   `float` FLOAT NOT NULL,
    ->   `float_nullable` FLOAT NULL DEFAULT NULL,
    ->   PRIMARY KEY (`int_id`));
Query OK, 0 rows affected (0,09 sec)

mysql> insert into test (`int_id`, `float`) VALUES (1,2);
Query OK, 1 row affected (0,00 sec)

mysql> select * from test;
+------+----------+-----+----------+
| int_id | int_nullable | float | float_nullable |
+------+----------+-----+----------+
|      1 |         NULL |     2 |           NULL |
+------+----------+-----+----------+
1 row in set (0,00 sec)
Creación de una tabla en el servidor ClickHouse y selección de datos de esta:
CREATE TABLE jdbc_table
(
    `int_id` Int32,
    `int_nullable` Nullable(Int32),
    `float` Float32,
    `float_nullable` Nullable(Float32)
)
ENGINE JDBC('jdbc:mysql://localhost:3306/?user=root&password=root', 'test', 'test')
SELECT *
FROM jdbc_table
┌─int_id─┬─int_nullable─┬─float─┬─float_nullable─┐
│      1 │         ᴺᵁᴸᴸ │     2 │           ᴺᵁᴸᴸ │
└────────┴──────────────┴───────┴────────────────┘
INSERT INTO jdbc_table(`int_id`, `float`)
SELECT toInt32(number), toFloat32(number * 1.0)
FROM system.numbers

Ver también

Última modificación el 10 de junio de 2026