Миграция в 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 ниже для получения дополнительной информации.
Управление списком доступа по IP (IP Access List)
В списке сервисов ClickHouse Cloud выберите сервис, с которым вы будете работать, и перейдите в Settings. Если в IP Access List отсутствует IP-адрес или диапазон адресов удалённой системы, которой нужно подключиться к вашему сервису ClickHouse Cloud, вы можете решить эту проблему с помощью Add IPs:

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