
Вы можете использовать ClickHouse, а точнее clickhouse-local
как ETL-инструмент для миграции данных из вашей текущей системы баз данных в ClickHouse Cloud, если для этой системы баз данных доступен либо
предоставляемый ClickHouse движок интеграции, либо табличная функция,
либо JDBC driver или ODBC driver от поставщика системы.
Иногда мы называем этот метод миграции методом "pivot", поскольку он использует промежуточную точку для переноса данных из исходной базы данных в целевую. Например, этот метод может потребоваться, если по требованиям безопасности из частной или внутренней сети разрешены только исходящие соединения. В таком случае нужно сначала извлечь данные из исходной базы данных с помощью clickhouse-local, а затем отправить их в целевую базу данных ClickHouse, где clickhouse-local выступает в роли промежуточного звена.
ClickHouse предоставляет движки интеграции и табличные функции (которые на лету создают движки интеграции) для MySQL, PostgreSQL, MongoDB и SQLite. Для всех остальных популярных систем баз данных у их поставщиков доступны JDBC driver или ODBC driver.
Что такое clickhouse-local?

Обычно ClickHouse запускается в виде кластера, где несколько экземпляров движка базы данных ClickHouse работают в распределённом режиме на разных серверах.
На одном сервере движок базы данных ClickHouse запускается как часть программы clickhouse-server. Доступ к базе данных (пути, пользователи, параметры безопасности, …) настраивается в файле конфигурации сервера.
Инструмент clickhouse-local позволяет использовать движок базы данных ClickHouse изолированно как утилиту командной строки для сверхбыстрой обработки SQL-данных с большим объёмом входных и выходных данных без необходимости настраивать и запускать сервер ClickHouse.
Установка clickhouse-local
Вам понадобится хост для clickhouse-local с сетевым доступом как к вашей текущей исходной базе данных, так и к целевому сервису ClickHouse Cloud.
На этом хосте загрузите подходящую сборку clickhouse-local в зависимости от операционной системы вашего компьютера:
- Самый простой способ загрузить
clickhouse-local— выполнить следующую команду:
curl https://clickhouse.com/ | sh- Запустите
clickhouse-local(он просто выведет свою версию):
./clickhouse-local- Самый простой способ загрузить
clickhouse-local— выполнить следующую команду:
curl https://clickhouse.com/ | sh- Запустите
clickhouse-local(он просто выведет свою версию):
./clickhouse localУправление IP Access List
В списке сервисов ClickHouse Cloud выберите сервис, с которым будете работать, и перейдите в раздел Settings. Если в IP Access List нет IP-адреса или диапазона IP-адресов удалённой системы, которой нужно подключиться к вашему сервису ClickHouse Cloud, это можно исправить с помощью Add IPs:

Добавьте отдельный IP-адрес или диапазон адресов, которым нужно подключаться к вашему сервису ClickHouse Cloud. При необходимости измените поля формы, а затем нажмите Save.

Пример: миграция из MySQL в ClickHouse Cloud с использованием движка Integration
Мы будем использовать движок интеграции (динамически создаваемый с помощью табличной функции mysql) для чтения данных из исходной базы данных MySQL, а табличную функцию remoteSecure — для записи данных в целевую таблицу в вашем сервисе ClickHouse Cloud.

На целевом сервисе ClickHouse Cloud:
Создайте базу данных в пункте назначения:
CREATE DATABASE dbСоздайте целевую таблицу со схемой, соответствующей таблице MySQL:
CREATE TABLE db.table ...На хост-машине с clickhouse-local:
Запустите clickhouse-local с запросом для миграции:
./clickhouse-local --query "
INSERT INTO FUNCTION
remoteSecure('HOSTNAME.clickhouse.cloud:9440', 'db.table', 'default', 'PASS')
SELECT * FROM mysql('host:port', 'database', 'table', 'user', 'password');"