ClickHouse/docs/es/query_language/table_functions/odbc.md
Ivan Blinkov 2e1f6bc56d
[experimental] add "es" docs language as machine translated draft (#9787)
* replace exit with assert in test_single_page

* improve save_raw_single_page docs option

* More grammar fixes

* "Built from" link in new tab

* fix mistype

* Example of include in docs

* add anchor to meeting form

* Draft of translation helper

* WIP on translation helper

* Replace some fa docs content with machine translation

* add normalize-en-markdown.sh

* normalize some en markdown

* normalize some en markdown

* admonition support

* normalize

* normalize

* normalize

* support wide tables

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* lightly edited machine translation of introdpection.md

* lightly edited machhine translation of lazy.md

* WIP on translation utils

* Normalize ru docs

* Normalize other languages

* some fixes

* WIP on normalize/translate tools

* add requirements.txt

* [experimental] add es docs language as machine translated draft

* remove duplicate script

* Back to wider tab-stop (narrow renders not so well)
2020-03-21 07:11:51 +03:00

3.7 KiB

Nosotros

Devuelve la tabla que está conectada a través de ODBC.

odbc(connection_settings, external_database, external_table)

Parámetros:

  • connection_settings — Nombre de la sección con ajustes de conexión en el odbc.ini file.
  • external_database — Nombre de una base de datos en un DBMS externo.
  • external_table — Nombre de una tabla en el external_database.

Para implementar con seguridad conexiones ODBC, ClickHouse usa un programa separado clickhouse-odbc-bridge. Si el controlador ODBC se carga directamente desde clickhouse-server, problemas de controlador pueden bloquear el servidor ClickHouse. ClickHouse se inicia automáticamente clickhouse-odbc-bridge cuando se requiere. El programa de puente ODBC se instala desde el mismo paquete que el clickhouse-server.

Los campos con el NULL Los valores de la tabla externa se convierten en los valores predeterminados para el tipo de datos base. Por ejemplo, si un campo de tabla MySQL remoto tiene INT NULL tipo se convierte a 0 (el valor predeterminado para ClickHouse Int32 tipo de datos).

Ejemplo de uso

Obtener datos de la instalación local de MySQL a través de ODBC

Este ejemplo se comprueba para Ubuntu Linux 18.04 y el servidor MySQL 5.7.

Asegúrese de que unixODBC y MySQL Connector están instalados.

De forma predeterminada (si se instala desde paquetes), ClickHouse comienza como usuario clickhouse. Por lo tanto, debe crear y configurar este usuario en el servidor MySQL.

$ sudo mysql
mysql> CREATE USER 'clickhouse'@'localhost' IDENTIFIED BY 'clickhouse';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'clickhouse'@'clickhouse' WITH GRANT OPTION;

A continuación, configure la conexión en /etc/odbc.ini.

$ cat /etc/odbc.ini
[mysqlconn]
DRIVER = /usr/local/lib/libmyodbc5w.so
SERVER = 127.0.0.1
PORT = 3306
DATABASE = test
USERNAME = clickhouse
PASSWORD = clickhouse

Puede verificar la conexión usando el isql utilidad desde la instalación de unixODBC.

$ isql -v mysqlconn
+---------------------------------------+
| Connected!                            |
|                                       |
...

Tabla en MySQL:

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)

Recuperación de datos de la tabla MySQL en ClickHouse:

SELECT * FROM odbc('DSN=mysqlconn', 'test', 'test')
┌─int_id─┬─int_nullable─┬─float─┬─float_nullable─┐
│      1 │            0 │     2 │              0 │
└────────┴──────────────┴───────┴────────────────┘

Ver también

Artículo Original