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

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

Миграция самостоятельно управляемого ClickHouse

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

Мы иногда называем этот метод миграции "методом поворота", потому что он использует промежуточную точку поворота или переход для перемещения данных из исходной базы данных в целевую базу данных. Например, этот метод может быть необходим, если в частной или внутренней сети разрешены только исходящие соединения из-за требований безопасности, и поэтому вам нужно извлечь данные из исходной базы данных с помощью clickhouse-local, а затем загрузить данные в целевую базу данных ClickHouse, где clickhouse-local выступает в роли точки поворота.

ClickHouse предоставляет интеграционные движки и функции таблиц (которые создают интеграционные движки по запросу) для MySQL, PostgreSQL, MongoDB и SQLite. Для всех других популярных систем баз данных доступен JDBC-драйвер или ODBC-драйвер от поставщика системы.

Что такое clickhouse-local?

Миграция самостоятельно управляемого ClickHouse

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

title: 'Управление списком разрешенных IP' sidebar_label: 'Управление списком разрешенных IP' keywords: ['ClickHouse', 'IP Access List', 'cloud services'] description: 'Управление доступом к вашим ClickHouse Cloud сервисам через список разрешенных IP.'

Пример 1: Миграция из MySQL в ClickHouse Cloud с помощью интеграционного движка

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

Миграция самостоятельно управляемого ClickHouse

На целевой службе ClickHouse Cloud:

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

Создайте целевую таблицу, которая имеет схему, эквивалентную таблице MySQL:

примечание

Схема таблицы ClickHouse Cloud и схема исходной таблицы MySQL должны совпадать (имена колонок и порядок должны быть одинаковыми, а типы данных колонок должны быть совместимыми).

На хост-машине clickhouse-local:

Запустите clickhouse-local с запросом миграции:

примечание

Данные не хранятся локально на хост-машине clickhouse-local. Вместо этого данные считываются из исходной таблицы MySQL и затем немедленно записываются в целевую таблицу на службе ClickHouse Cloud.

Пример 2: Миграция из MySQL в ClickHouse Cloud с помощью JDBC моста

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

Миграция самостоятельно управляемого ClickHouse

На целевой службе ClickHouse Cloud:

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

Создайте целевую таблицу, которая имеет схему, эквивалентную таблице MySQL:

примечание

Схема таблицы ClickHouse Cloud и схема исходной таблицы MySQL должны совпадать, например, имена колонок и порядок должны быть одинаковыми, а типы данных колонок должны быть совместимыми.

На хост-машине clickhouse-local:

Установите, настройте и запустите JDBC мост ClickHouse локально:

Следуйте инструкциям из руководства. Руководство также содержит шаги по настройке источника данных из MySQL.

Запустите clickhouse-local с запросом миграции:

примечание

Данные не хранятся локально на хост-машине clickhouse-local. Вместо этого данные считываются из исходной таблицы MySQL и затем немедленно записываются в целевую таблицу на службе ClickHouse Cloud.