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

Перемещение между самоуправляемым ClickHouse и ClickHouse Cloud

Этот гид покажет, как переместиться с сервера самоуправляемого ClickHouse в ClickHouse Cloud, а также как переместиться между службами ClickHouse Cloud. Функция remoteSecure используется в запросах SELECT и INSERT, чтобы обеспечить доступ к удаленным серверам ClickHouse, что делает перемещение таблиц таким же простым, как написание запроса INSERT INTO с вложенным SELECT.

Перемещение из самоуправляемого ClickHouse в ClickHouse Cloud

примечание

Независимо от того, является ли ваша исходная таблица шардированной и/или реплицированной, в ClickHouse Cloud вы просто создаете целевую таблицу (вы можете опустить параметр Engine для этой таблицы, она автоматически станет таблицей ReplicatedMergeTree), и ClickHouse Cloud автоматически позаботится о вертикальном и горизонтальном масштабировании. Вам не нужно думать о том, как реплицировать и шардировать таблицу.

В этом примере сервер самоуправляемого ClickHouse является исходником, а служба ClickHouse Cloud является назначением.

Обзор

Процесс:

  1. Добавить пользователя только для чтения в исходную службу
  2. Дублировать структуру исходной таблицы в целевой службе
  3. Перенести данные из источника в назначение или отправить данные из источника, в зависимости от доступности сети источника
  4. Удалить сервер источника из списка доступа по IP на назначении (если применимо)
  5. Удалить пользователя только для чтения из исходной службы

Перемещение таблиц из одной системы в другую:

Этот пример перемещает одну таблицу с сервера самоуправляемого ClickHouse в ClickHouse Cloud.

На исходной системе ClickHouse (системе, которая в настоящее время хранит данные)

  • Добавьте пользователя только для чтения, который может читать исходную таблицу (db.table в этом примере)
  • Скопируйте определение таблицы

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

  • Создайте целевую базу данных:
  • Используя оператор CREATE TABLE из источника, создайте назначение.
подсказка

Измените ENGINE на ReplicatedMergeTree без каких-либо параметров, когда вы запускаете оператор CREATE. ClickHouse Cloud всегда реплицирует таблицы и предоставляет правильные параметры. Тем не менее, оставьте в clauses ORDER BY, PRIMARY KEY, PARTITION BY, SAMPLE BY, TTL, и SETTINGS.

  • Используйте функцию remoteSecure для переноса данных из самоуправляемого источника
примечание

Если исходная система недоступна из внешних сетей, то вы можете отправить данные, а не получать, так как функция remoteSecure работает как для выборок, так и для вставок. Смотрите следующий вариант.

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

Перемещение между службами ClickHouse Cloud

Некоторые примеры использования для перемещения данных между службами ClickHouse Cloud:

  • Перемещение данных из восстановленной резервной копии
  • Копирование данных из сервисной разработки на сервис промежуточного тестирования (или с промежуточного тестирования на продакшн)

В этом примере две службы ClickHouse Cloud будут называться исходником и назначением. Данные будут вытянуты из источника в назначение. Хотя вы можете отправить данные, если хотите, показан вариант получения, так как он использует пользователя только для чтения.

Процесс перемещения состоит из нескольких шагов:

  1. Определите одну службу ClickHouse Cloud в качестве исходника, а другую — в качестве назначения
  2. Добавьте пользователя только для чтения в исходную службу
  3. Дублируйте структуру исходной таблицы в целевой службе
  4. Временно разрешите доступ по IP к исходной службе
  5. Скопируйте данные из источника в назначение
  6. Восстановите список доступа по IP на назначении
  7. Удалите пользователя только для чтения из исходной службы

Добавьте пользователя только для чтения в исходную службу

  • Добавьте пользователя только для чтения, который может читать исходную таблицу (db.table в этом примере)

  • Скопируйте определение таблицы

Дублируйте структуру таблицы на целевой службе

На целевой службе создайте базу данных, если ее еще нет:

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

  • Используя оператор CREATE TABLE из источника, создайте назначение.

    На целевой службе создайте таблицу, используя вывод select create_table_query... из источника:

Разрешите удаленный доступ к исходной службе

Чтобы переместить данные из источника в назначение, служба источника должна разрешить подключения. Временно отключите функциональность "Список доступа по IP" на исходной службе.

подсказка

Если вы продолжите использовать исходную службу ClickHouse Cloud, экспортируйте существующий список доступа по IP в файл JSON перед переключением на разрешение доступа отовсюду; это позволит вам импортировать список доступа после миграции данных.

Измените разрешенный список и временно разрешите доступ от Anywhere. См. документацию по Списку доступа по IP для получения подробной информации.

Скопируйте данные из источника в назначение

  • Используйте функцию remoteSecure, чтобы получить данные из службы ClickHouse Cloud источника Подключитесь к назначению. Запустите эту команду на целевой службе ClickHouse Cloud:

  • Проверьте данные в целевой службе

Восстановите список доступа по IP на исходном

Если вы ранее экспортировали список доступа, вы можете повторно импортировать его с помощью Поделиться, в противном случае повторно добавьте свои записи в список доступа.

Удалите пользователя только для чтения exporter

  • Переключите список доступа по IP службы, чтобы ограничить доступ