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

Миграция между self-managed ClickHouse и ClickHouse Cloud

Миграция Self-managed ClickHouse

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

Миграция с Self-managed ClickHouse в ClickHouse Cloud

Миграция Self-managed ClickHouse
примечание

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

В этом примере сервер self-managed ClickHouse является источником, а сервис ClickHouse Cloud — назначением.

Обзор

Процесс включает в себя:

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

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

Этот пример иллюстрирует миграцию одной таблицы с сервера self-managed ClickHouse в ClickHouse Cloud.

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

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

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

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

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

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

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

  • Используйте функцию remoteSecure для отправки данных на сервис ClickHouse Cloud
Миграция Self-managed ClickHouse
Добавьте удаленную систему в свой список IP Access List ClickHouse Cloud

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

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

Миграция между сервисами ClickHouse Cloud

Миграция Self-managed ClickHouse

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

  • Миграция данных из восстановленной резервной копии
  • Копирование данных из сервиса разработки в сервис тестирования (или из тестирования на производственный)

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

Миграция Self-managed ClickHouse

В процессе миграции несколько шагов:

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

Добавьте пользователя только для чтения на исходный сервис

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

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

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

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

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

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

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

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

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

подсказка

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

Измените список разрешенных и временно разрешите доступ от Любого места. См. документацию IP Access List для получения дополнительных сведений.

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

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

  • Проверьте данные в целевом сервисе

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

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

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

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