Help wanted!
The following content of this documentation page has been machine-translated. But unlike other websites, it is not done on the fly. This translated text lives on GitHub repository alongside main ClickHouse codebase and waits for fellow native speakers to make it more human-readable. You can also use the original English version as a reference.
odbc
接続されているテーブルを返します ODBC.
odbc(connection_settings, external_database, external_table)
パラメータ:
connection_settings
— Name of the section with connection settings in theodbc.ini
ファイルexternal_database
— Name of a database in an external DBMS.external_table
— Name of a table in theexternal_database
.
ODBC接続を安全に実装するために、ClickHouseは別のプログラムを使用します clickhouse-odbc-bridge
. ODBCドライバーが直接ロードされる場合 clickhouse-server
ドライバの問題でクラッシュのClickHouseサーバーです。 ClickHouseは自動的に起動します clickhouse-odbc-bridge
それが必要なとき。 ODBC bridgeプログラムは、 clickhouse-server
.
を持つフィールド NULL
外部テーブルの値は、基本データ型の既定値に変換されます。 たとえば、リモートMySQLテーブルフィールドに INT NULL
0に変換される型(ClickHouseのデフォルト値 Int32
データ型)。
使用例
PpsはインタラクティブのMySQLのインストール目盛
この例では、Ubuntu Linux18.04およびMySQL server5.7がチェックされています。
UnixODBCとMySQL Connectorがインストールされていることを確認します。
デフォルトでインストールされた場合、パッケージから),ClickHouse開始してユーザー clickhouse
. したがって、MySQLサーバでこのユーザを作成して構成する必要があります。
$ sudo mysql
mysql> CREATE USER 'clickhouse'@'localhost' IDENTIFIED BY 'clickhouse';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'clickhouse'@'clickhouse' WITH GRANT OPTION;
次に、接続を設定します /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
接続を確認するには isql
unixODBCの取付けからの実用性。
$ isql -v mysqlconn
+-------------------------+
| Connected! |
| |
...
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)
ClickHouseのMySQLテーブルからのデータの取得:
SELECT * FROM odbc('DSN=mysqlconn', 'test', 'test')
┌─int_id─┬─int_nullable─┬─float─┬─float_nullable─┐
│ 1 │ 0 │ 2 │ 0 │
└────────┴──────────────┴───────┴────────────────┘