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

Миграция в 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 ниже этого совета для получения дополнительной информации.

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 сервисе.

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

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