Миграция в ClickHouse с использованием clickhouse-local

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

Обычно ClickHouse запускается в виде кластера, где несколько экземпляров движка базы данных ClickHouse работают в распределённой конфигурации на разных серверах.
На одном сервере движок базы данных ClickHouse запускается как часть программы clickhouse-server. Доступ к базе данных (пути, пользователи, безопасность и т. д.) настраивается с помощью конфигурационного файла сервера.
Инструмент clickhouse-local позволяет использовать движок базы данных ClickHouse изолированно, в виде утилиты командной строки, для сверхбыстрой обработки SQL-данных с большим количеством входных и выходных данных, без необходимости настраивать и запускать сервер ClickHouse.
Установка clickhouse-local
Вам нужна хостовая машина для clickhouse-local, которая имеет сетевой доступ как к вашей текущей исходной системе баз данных, так и к целевому сервису ClickHouse Cloud.
На этой машине загрузите подходящую сборку clickhouse-local в зависимости от операционной системы вашего компьютера:
- Linux
- macOS
- Самый простой способ загрузить
clickhouse-localлокально — выполнить следующую команду:
- Запустите
clickhouse-local(он просто выведет свою версию):
- Самый простой способ загрузить
clickhouse-localлокально — выполнить следующую команду:
- Запустите
clickhouse-local(он просто выведет свою версию):
Во всех примерах в этом руководстве используются Linux-команды для запуска clickhouse-local (./clickhouse-local).
Чтобы запустить clickhouse-local на Mac, используйте ./clickhouse local.
Чтобы функция remoteSecure могла подключиться к вашему сервису ClickHouse Cloud, IP-адрес удалённой системы должен быть разрешён в списке доступа по IP. Разверните раздел Manage your IP Access List ниже для получения дополнительной информации.
Manage your IP Access List
From your ClickHouse Cloud services list choose the service that you will work with and switch to Settings. If the IP Access List does not contain the IP Address or range of the remote system that needs to connect to your ClickHouse Cloud service, then you can resolve the problem with Add IPs:

Add the individual IP Address, or the range of addresses that need to connect to your ClickHouse Cloud service. Modify the form as you see fit and then Save.

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

На целевом сервисе ClickHouse Cloud:
Создайте целевую базу данных:
Создайте целевую таблицу с такой же схемой, как у таблицы MySQL:
Схемы целевой таблицы ClickHouse Cloud и исходной таблицы MySQL должны совпадать (имена и порядок столбцов должны быть одинаковыми, а типы данных столбцов — совместимыми).
На хосте с clickhouse-local:
Запустите clickhouse-local с миграционным запросом:
На хосте clickhouse-local данные локально не сохраняются. Вместо этого данные считываются из исходной таблицы MySQL
и затем сразу же записываются в целевую таблицу в сервисе ClickHouse Cloud.
Пример 2: миграция с MySQL в ClickHouse Cloud с использованием моста JDBC
Мы будем использовать табличный движок интеграции с JDBC (создаваемый на лету с помощью табличной функции JDBC) вместе с ClickHouse JDBC Bridge и драйвером MySQL JDBC для чтения данных из исходной базы данных MySQL, а также табличную функцию remoteSecure для записи данных в целевую таблицу в вашем сервисе ClickHouse Cloud.
