Табличная функция ODBC
Возвращает таблицу, подключённую через ODBC.
Синтаксис
Аргументы
| Аргумент | Описание |
|---|---|
datasource | Имя секции с настройками подключения в файле odbc.ini. |
external_database | Имя базы данных во внешней СУБД. |
external_table | Имя таблицы в external_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).
Пример использования
Получение данных из локального экземпляра MySQL через ODBC
Этот пример протестирован в Ubuntu Linux 18.04 и MySQL Server 5.7.
Убедитесь, что установлены unixODBC и MySQL Connector.
По умолчанию (если установлен из пакетов) ClickHouse запускается от имени пользователя clickhouse. Поэтому необходимо создать и настроить этого пользователя на сервере MySQL.
Затем настройте подключение в /etc/odbc.ini.
Вы можете проверить подключение с помощью утилиты isql, входящей в состав unixODBC.
Таблица в MySQL:
Извлечение данных из таблицы MySQL в ClickHouse: