ClickHouse/docs/fr/sql-reference/table-functions/odbc.md
Ivan Blinkov cd14f9ebcb
SQL reference refactoring (#10857)
* split up select.md

* array-join.md basic refactoring

* distinct.md basic refactoring

* format.md basic refactoring

* from.md basic refactoring

* group-by.md basic refactoring

* having.md basic refactoring

* additional index.md refactoring

* into-outfile.md basic refactoring

* join.md basic refactoring

* limit.md basic refactoring

* limit-by.md basic refactoring

* order-by.md basic refactoring

* prewhere.md basic refactoring

* adjust operators/index.md links

* adjust sample.md links

* adjust more links

* adjust operatots links

* fix some links

* adjust aggregate function article titles

* basic refactor of remaining select clauses

* absolute paths in make_links.sh

* run make_links.sh

* remove old select.md locations

* translate docs/es

* translate docs/fr

* translate docs/fa

* remove old operators.md location

* change operators.md links

* adjust links in docs/es

* adjust links in docs/es

* minor texts adjustments

* wip

* update machine translations to use new links

* fix changelog

* es build fixes

* get rid of some select.md links

* temporary adjust ru links

* temporary adjust more ru links

* improve curly brace handling

* adjust ru as well

* fa build fix

* ru link fixes

* zh link fixes

* temporary disable part of anchor checks
2020-05-15 07:34:54 +03:00

3.8 KiB

machine_translated machine_translated_rev toc_priority toc_title
true 72537a2d52 44 ODBC

ODBC

Renvoie la table connectée via ODBC.

odbc(connection_settings, external_database, external_table)

Paramètre:

  • connection_settings — Name of the section with connection settings in the odbc.ini fichier.
  • external_database — Name of a database in an external DBMS.
  • external_table — Name of a table in the external_database.

Pour implémenter en toute sécurité les connexions ODBC, ClickHouse utilise un programme distinct clickhouse-odbc-bridge. Si le pilote ODBC est chargé directement depuis clickhouse-server, les problèmes de pilote peuvent planter le serveur ClickHouse. Clickhouse démarre automatiquement clickhouse-odbc-bridge lorsque cela est nécessaire. Le programme ODBC bridge est installé à partir du même package que clickhouse-server.

Les champs avec l' NULL les valeurs de la table externe sont converties en valeurs par défaut pour le type de données de base. Par exemple, si un champ de table MySQL distant a INT NULL type il est converti en 0 (la valeur par défaut pour ClickHouse Int32 type de données).

Exemple D'Utilisation

Obtenir des données de L'installation MySQL locale via ODBC

Cet exemple est vérifié pour Ubuntu Linux 18.04 et MySQL server 5.7.

Assurez-vous que unixODBC et MySQL Connector sont installés.

Par défaut (si installé à partir de paquets), ClickHouse démarre en tant qu'utilisateur clickhouse. Ainsi, vous devez créer et configurer cet utilisateur dans le serveur MySQL.

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

Puis configurez la connexion dans /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

Vous pouvez vérifier la connexion en utilisant le isql utilitaire de l'installation unixODBC.

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

Table dans 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)

Récupération des données de la table MySQL dans ClickHouse:

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

Voir Aussi

Article Original