Перейти к основному содержимому
Перейти к основному содержимому

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

Вы можете использовать ClickHouse, или, точнее, clickhouse-local в качестве инструмента ETL для миграции данных из вашей текущей базы данных в ClickHouse Cloud, при условии, что для вашей текущей системы базы данных имеется либо интеграционный движок, предоставленный ClickHouse, либо табличная функция, соответственно, или доступен драйвер JDBC или ODBC от поставщика.

Мы иногда называем этот метод миграции методом "пивотирования", потому что он использует промежуточную точку или переход для перемещения данных из исходной базы данных в целевую базу данных. Например, этот метод может быть необходим, если из внутренней или частной сети разрешены только исходящие соединения по соображениям безопасности, и поэтому вам нужно извлекать данные из исходной базы данных с помощью 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 в зависимости от операционной системы вашего компьютера:

  1. Самый простой способ загрузить clickhouse-local локально — выполнить следующую команду:
  1. Запустите clickhouse-local (он просто выведет свою версию):
Важно

Примеры в этом руководстве используют команды Linux для запуска clickhouse-local (./clickhouse-local). Для запуска clickhouse-local на Mac используйте ./clickhouse local.

Добавьте удаленную систему в свой список IP-адресов доступа ClickHouse Cloud

Для того чтобы функция remoteSecure смогла подключиться к вашему сервису ClickHouse Cloud, IP-адрес удаленной системы должен быть разрешен в списке IP-адресов доступа. Разверните Управление вашим списком IP-адресов доступа ниже этого совета для получения дополнительной информации.

Управление списком доступа по IP

Из списка ваших услуг ClickHouse Cloud выберите ту, с которой вы будете работать, и перейдите в Настройки. Если список доступа по IP не содержит IP-адрес или диапазон удаленной системы, который должен подключиться к вашему сервису ClickHouse Cloud, вы можете решить эту проблему с помощью Добавить IP:

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

Пример 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.

На целевом сервисе ClickHouse Cloud:

Создайте целевую базу данных: