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

Вы можете использовать ClickHouse или, точнее, clickhouse-local
как ETL инструмент для миграции данных из вашей текущей системы баз данных в ClickHouse Cloud, если для вашей текущей системы баз данных существует либо предоставляемый ClickHouse интеграционный движок, либо табличная функция, или доступен JDBC драйвер или ODBC драйвер от поставщика.
Мы иногда называем этот метод миграции «pivot» методом, потому что он использует промежуточную опорную точку или переход для перемещения данных из исходной базы данных в целевую базу данных. Например, этот метод может быть необходим, если внутри частной или внутренней сети разрешены только исходящие соединения из соображений безопасности, и поэтому вам необходимо извлечь данные из исходной базы данных с помощью clickhouse-local, а затем перенести данные в целевую базу данных ClickHouse, где clickhouse-local выступает в качестве опорной точки.
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-доступа. Разверните Управление списком IP-доступа ниже этого совета для получения дополнительной информации.
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, и будем использовать табличную функцию remoteSecure для записи данных в целевую таблицу на вашем ClickHouse Cloud сервисе.

На целевом 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 сервисе.
