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

Миграция баз данных ClickHouse® в облачные базы данных ClickHouse®

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

Мы рекомендуем использовать функцию remoteSecure, так как она поддерживает защищенное соединение в отличие от remote.

Подробнее о функциях в инструкции remote, remoteSecure документации ClickHouse®.

Что нужно для миграции

Шаги миграции

  1. Подготовьте исходный кластер ClickHouse®.

  2. Подготовьте целевой кластер ClickHouse®.

  3. Перенесите данные.

1. Подготовить исходный кластер ClickHouse®

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

    CREATE USER <user_name>
    IDENTIFIED WITH SHA256_PASSWORD BY '<password>'
    SETTINGS readonly = 1;

    Укажите:

    • <user_name> — имя пользователя;
    • <password> — пароль пользователя.
  2. Выдайте пользователю права на чтения исходной таблицы:

    GRANT SELECT ON <database_name>.<table_name> TO <user_name>;

    Укажите:

    • <database_name> — имя базы данных;
    • <table_name> — имя таблицы;
    • <user_name> — имя пользователя.
  3. Скопируйте определение исходной таблицы:

    SELECT create_table_query
    FROM system.tables
    WHERE database = '<database_name>' AND table = '<table_name>'

    Укажите:

    • <database_name> — имя базы данных;
    • <table_name> — имя таблицы.

2. Подготовить целевой кластер ClickHouse®

  1. Создайте кластер ClickHouse®.

  2. Чтобы у кластера был доступ в интернет и из интернета, подключите публичный IP-адрес.

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

    CREATE DATABASE <database_name>;

    Укажите <database_name> — имя базы данных.

  4. Создайте таблицу назначения с помощью оператора CREATE TABLE исходной таблицы, который вы скопировали при подготовке исходного кластера ClickHouse® на шаге 3. При выполнении оператора CREATE измените ENGINE на ReplicatedMergeTree без указания параметров. Секции ORDER BY, PRIMARY KEY, PARTITION BY, SAMPLE BY, TTL и SETTINGS оставьте без изменений.

    CREATE TABLE <database_name>.<table_name> ...

    Укажите:

    • <database_name> — имя базы данных;
    • <table_name> — имя таблицы.

3. Перенести данные

к сведению

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

На целевом кластере перенесите данные из исходного с помощью функции remoteSecure:

INSERT INTO <database_name>.<table_name> SELECT * FROM remoteSecure('<host>', <database_name>, <table_name>, '<user_name>', '<password>')

Укажите:

  • <database_name> — имя базы данных;
  • <table_name> — имя таблицы;
  • <host> — IP-адрес или DNS-адрес исходного кластера;
  • <user_name> — имя пользователя;
  • <password> — пароль пользователя.

ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc. https://clickhouse.com.