JDBC 

Permite que ClickHouse se conecte a bases de datos externas a través de JDBC.

Para implementar la conexión JDBC, ClickHouse utiliza el programa independiente Sistema abierto. que debería ejecutarse como un demonio.

Este motor soporta el NULL tipo de datos.

Creación de una tabla 

CREATE TABLE [IF NOT EXISTS] [db.]table_name
(
    columns list...
)
ENGINE = JDBC(dbms_uri, external_database, external_table)

Parámetros del motor

  • dbms_uri — URI of an external DBMS.

    Formato: jdbc:<driver_name>://<host_name>:<port>/?user=<username>&password=<password>.
    Ejemplo para MySQL: jdbc:mysql://localhost:3306/?user=root&password=root.

  • external_database — Database in an external DBMS.

  • external_table — Name of the table in external_database.

Ejemplo de uso 

Crear 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 ella:

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 │           ᴺᵁᴸᴸ │
└────────┴──────────────┴───────┴────────────────┘

Ver también 

Clasificación: 4 - 1 voto

¿Este contenido fue útil?
★★★★☆