Важно: Данный раздел актуален для Платформы данных On-Premise.
В данном документе описано как можно настроить подключение кластера созданного с помощью плагина RT.WideStore через ODBC к одной из следующих внешних СУБД:
Важно:
Версия пакета WideStore, с помощью которого создан кластер должна быть 24.3.2.23-114 или выше (версия плагина 1.21.9 или выше).
Для подключения RT.WideStore к аналогичной СУБД необходимо выполнить следующие действия:
1. Установите драйвер clickhouse-odbc (rpm для centos). Установка драйвера потребует установку пакета unixODBC.
2. Создайте файл /etc/odbc.ini с параметрами подключения:
[chconn]
DRIVER = /usr/local/lib64/libclickhouseodbc.so
SERVER = other-ch-server
PORT = 8123
DATABASE = test
USERNAME = ch_user
PASSWORD = ch_user
3. На сервере CH, к которому выполняется подключение должен быть создан пользователь с логином и паролем соответствующим указанным в представленном выше в файле. Если нет, необходимо создать (в файле /etc/clickhouse-server/users.xml).
4. Пример таблицы на сервере, к которому подключаемся по ODBC:
CREATE TABLE test.odbc_test ( id UInt64, updated_at DateTime DEFAULT now(),
updated_at_date Date DEFAULT toDate(updated_at) ) ENGINE = MergeTree ORDER BY id;
INSERT INTO test.odbc_test (id) Values (1);
INSERT INTO test.odbc_test (id) Values (2);
5. На сервере, с которого подключаемся, создайте таблицу для ODBC:
CREATE TABLE odbc_ch ( `id` UInt64, `updated_at` DateTime ) ENGINE =
ODBC('DSN=chconn', 'test', 'odbc_test')
В параметрах движка ODBC укажите:
1. DSN=pgconn - имя odbc подключения из /etc/odbc.ini
2. public - имя схемы на сервере, к которому подключаемся,
3. test_table - имя таблицы на сервере, к которому подключаемся.
6. Пробуйте получить информацию:
select * from odbc_ch;
Для подключения RT.WideStore к Postgresql необходимо выполнить следующие действия:
1. Установите драйвер postgresql-odbc, пакет unixODBC:
yum install postgresql-odbc unixODBC
Создайте файл /etc/odbc.ini с параметрами подключения:
[pgconn]
DRIVER = /usr/lib64/psqlodbc.so
SERVERNAME = postgresql-server
PORT = 5432
DATABASE = test
USERNAME = test
PASSWORD = password
2. На сервере, с которого подключаемся, создаем таблицу для ODBC:
CREATE TABLE odbc_pg ( `id` Int8 ) ENGINE = ODBC('DSN=pgconn', 'public', 'test_table')
В параметрах движка ODBC укажите:
1. DSN=pgconn - имя odbc подключения из /etc/odbc.ini
2. public - имя схемы на сервере, к которому подключаемся,
3. test_table - имя таблицы на сервере, к которому подключаемся.
3. Пробуем получить информацию:
select * from odbс_pg;
Для подключения RT.WideStore к Oracle необходимо выполнить следующие действия:
1. Установите пакет unixODBC, клиента Oracle и libnsl
sudo yum install uinxODBC oracle-instantclient12.1-odbc.x86_64
sudo dnf install libnsl
2. Пропишите путь до библиотек в ldconfig
sudo sh -c "echo /usr/lib/oracle/12.1/client64/lib > /etc/ld.^C.conf.d/oracle-instantclient.conf"
sudo ldconfig
3. Сконфигурируйте /etc/odbc.ini
[oraconn]
DRIVER = /usr/lib/oracle/12.1/client64/lib/libsqora.so.12.1
SERVERNAME = oracle-server
USERID = user
PASSWORD = passwd
EnableNcharSupport=1
4. Cоздайте файл /usr/lib/oracle/12.1/client64/network/admin/tnsnames.ora и в нем пропишите
ORACLE_FULL =
(DESCRIPTION =
(CONNECT_TIMEOUT=100)(RETRY_COUNT=3)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = host_ip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORACONN)
)
)
5. Пропишите в переменных сервера CH /etc/default/clickhouse:
ORACLE_SID=asdb
ORACLE_HOME=/usr/lib/oracle/12.1/client64
6. На сервере, с которого подключаемся, создайте таблицу для ODBC:
CREATE TABLE odbc_ora ( `id` Int8 ) ENGINE = ODBC('DSN=oraconn', 'shema',
'test_table')
В параметрах движка ODBC укажите:
1. DSN=oraconn - имя odbc подключения из /etc/odbc.ini
2. schema - имя схемы на сервере, к которому подключаемся,
3. test_table - имя таблицы на сервере, к которому подключаемся.
7. Пробуем получить информацию:
select * from odbс_ora;
Для подключения RT.WideStore к Teradata необходимо выполнить следующие действия:
1. Установите пакет unixODBC
sudo yum install unixODBC
Установите драйвер odbc teradata (скачать можно тут - https://downloads.teradata.com/download/connectivity/odbc-driver/linux, тестировали на версии 15.10).
2. Сконфигурируйте /etc/odbc.ini:
[tdconn]
Driver=/opt/teradata/client/15.10/odbc_64/lib/tdata.so
Description=Teradata database
DBCName=td-server
LastUser=user
Username=user
Password=password
Database=db_name
DefaultDatabase=db_name
3. Пропишите в переменных сервера CH /etc/default/clickhouse:
TTU_PATH=/opt/teradata/client/15.10
TD_HOME=/opt/teradata/client/15.10/odbc_64
ODBCINI=/etc/odbc.ini
4. На сервере, с которого подключаемся, создаем таблицу для ODBC:
CREATE TABLE odbc_td ( `id` Int8 ) ENGINE = ODBC('DSN=tdconn', 'shema', 'test_table')
В параметрах движка ODBC укажите:
1. DSN=oraconn - имя odbc подключения из /etc/odbc.ini
2. schema - имя схемы на сервере, к которому подключаемся,
3. test_table - имя таблицы на сервере, к которому подключаемся.
7. Пробуем получить информацию:
select * from odbс_td;