Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
    • Cloud Interconnect
    • Cloud Backup
    • Cloud Registry
    • Yandex AI Studio
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Video
    • Stackland
    • Yandex Cloud Router
    • Yandex Managed Service for Trino
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Yandex StoreDoc
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Managed Service for YDB
    • Managed Service for Sharded PostgreSQL
    • Managed Service for YTsaurus
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • SpeechKit
    • DataSphere
    • Vision OCR
    • Translate
    • Yandex Neurosupport
    • VibeCraft
    • Yandex Cloud Detection and Response
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • SmartCaptcha
    • Cloud Desktop
    • GOST Gateway
    • Yandex SIEM
    • SourceCraft Code Assistant
    • Container Registry
    • Managed Service for GitLab
    • SourceCraft
    • Managed Service for Prometheus®
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Message Queue
    • Serverless Integrations
    • IoT Core
    • Data Streams
    • Serverless Containers
    • Cloud Notification Service
    • Yandex Query
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Yandex Cloud Quota Manager
    • Cloud Apps
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Yandex Cloud Trust
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex Data Transfer
  • Доступные трансферы
  • Начало работы
    • Все инструкции
    • Подготовка к трансферу
      • Управление эндпоинтами
      • Миграция эндпоинтов в другую зону доступности
        • Источник
        • Приемник
    • Управление трансфером
    • Работа с базами данных во время трансфера
    • Мониторинг состояния трансфера
  • Решение проблем
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • Обучающие курсы

В этой статье:

  • Сценарии передачи данных в ClickHouse®
  • Настройка источника данных
  • Подготовка базы данных приемника
  • Настройка эндпоинта-приемника ClickHouse®
  • Кластер Managed Service for ClickHouse®
  • Пользовательская инсталляция
  • Дополнительные настройки
  • Рекомендации по настройке эндпоинтов
  • Соответствие типов поддерживаемых данных в СУБД и эндпоинте
  • Решение проблем, возникающих при переносе данных
  • Не добавляются новые таблицы
  • Неподдерживаемый диапазон дат
  • Нехватка ресурсов или растущая задержка передачи данных
  • Превышение количества блоков данных
  1. Пошаговые инструкции
  2. Настройка эндпоинтов
  3. ClickHouse®
  4. Приемник

Передача данных в эндпоинт-приемник ClickHouse®

Статья создана
Yandex Cloud
Улучшена
Alexey K.
Обновлена 21 сентября 2026 г.
Открыть в Markdown
  • Сценарии передачи данных в ClickHouse®
  • Настройка источника данных
  • Подготовка базы данных приемника
  • Настройка эндпоинта-приемника ClickHouse®
    • Кластер Managed Service for ClickHouse®
    • Пользовательская инсталляция
    • Дополнительные настройки
  • Рекомендации по настройке эндпоинтов
  • Соответствие типов поддерживаемых данных в СУБД и эндпоинте
  • Решение проблем, возникающих при переносе данных
    • Не добавляются новые таблицы
    • Неподдерживаемый диапазон дат
    • Нехватка ресурсов или растущая задержка передачи данных
    • Превышение количества блоков данных

С помощью сервиса Yandex Data Transfer вы можете переносить данные в базу ClickHouse® и реализовывать различные сценарии переноса, обработки и трансформации данных. Для реализации трансфера:

  1. Ознакомьтесь с возможными сценариями передачи данных.
  2. Настройте один из поддерживаемых источников данных.
  3. Подготовьте базу данных ClickHouse® к трансферу.
  4. Настройте эндпоинт-приемник в Yandex Data Transfer.
  5. Создайте и запустите трансфер.
  6. Выполняйте необходимые действия по работе с базой и контролируйте трансфер.
  7. При возникновении проблем, воспользуйтесь готовыми решениями по их устранению.

Сценарии передачи данных в ClickHouse®Сценарии передачи данных в ClickHouse®

  1. Миграция — перенос данных из одного хранилища в другое. Часто это перенос базы из устаревших локальных баз в управляемые облачные.

    • Миграция кластера ClickHouse®;
    • Копирование данных из Managed Service for OpenSearch в Managed Service for ClickHouse® с помощью Yandex Data Transfer
  2. Поставка данных — процесс доставки произвольных данных в целевые хранилища. Процесс поставки включает извлечение данных из очереди и их десериализацию с последующей трансформацией данных в формат целевого хранилища.

    • Поставка данных из Apache Kafka® в ClickHouse®;
    • Поставка данных из YDS в ClickHouse®.
  3. Загрузка данных в витрины — процесс трансфера подготовленных данных в хранилища с целью последующей визуализации.

    • Загрузка данных Greenplum® в ClickHouse®;

    • Загрузка данных MySQL® в ClickHouse®;

    • Загрузка данных Яндекс Метрика в ClickHouse®;

    • Загрузка данных Яндекс Директ в ClickHouse®;

    • Загрузка данных PostgreSQL в ClickHouse®;

    • Загрузка данных из Object Storage в ClickHouse®;

    • Загрузка данных из YDB в витрину ClickHouse®.

Подробное описание возможных сценариев передачи данных в Yandex Data Transfer читайте в разделе Практические руководства.

Настройка источника данныхНастройка источника данных

Настройте один из поддерживаемых источников данных:

  • PostgreSQL
  • MySQL®
  • ClickHouse®
  • Greenplum®
  • Apache Kafka®
  • Airbyte®
  • Яндекс Метрика
  • YDS
  • Yandex Object Storage
  • YTsaurus
  • Oracle
  • OpenSearch

Полный список поддерживаемых источников и приемников в Yandex Data Transfer читайте в разделе Доступные трансферы.

Примечание

В ClickHouse® есть ограничения на диапазон дат. Наличие в базе-источнике неподдерживаемых дат может привести к ошибке и остановке трансфера.

Подготовка базы данных приемникаПодготовка базы данных приемника

Managed Service for ClickHouse®
ClickHouse®
  1. Создайте базу-приемник.

    Если нужно перенести несколько баз данных, создайте для каждой из них отдельный трансфер.

  2. Создайте пользователя с доступом к базе приемника.

    После старта трансфер подключится к приемнику от имени этого пользователя.

  3. Если в кластере включено управление пользователями через SQL, выдайте созданному пользователю права:

    GRANT CLUSTER ON *.* TO <имя_пользователя>
    GRANT SELECT, INSERT, ALTER DELETE, CREATE TABLE, CREATE VIEW, DROP TABLE, TRUNCATE, dictGet ON <имя_базы_данных>.* TO <имя_пользователя>
    GRANT SELECT(macro, substitution) ON system.macros TO <имя_пользователя>
    

    Если управление пользователями через SQL выключено, права назначаются через консоль управления и CLI.

  4. Создайте группу безопасности и настройте ее.

  5. Назначьте кластеру Managed Service for ClickHouse® созданную группу безопасности.

  1. Если вы не планируете использовать для подключения к внешнему кластеру сервис Cloud Interconnect или VPN, разрешите подключения к такому кластеру из интернета с IP-адресов, используемых сервисом Data Transfer.

    Подробнее о настройке сети для работы с внешними ресурсами читайте в концепции.

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

  3. Создайте пользователя с доступом к базе приемника.

    После старта трансфер подключится к приемнику от имени этого пользователя.

  4. Выдайте созданному пользователю права:

    GRANT CLUSTER ON *.* TO <имя_пользователя>
    GRANT SELECT, INSERT, ALTER DELETE, CREATE TABLE, CREATE VIEW, DROP TABLE, TRUNCATE, dictGet ON <имя_базы_данных>.* TO <имя_пользователя>
    GRANT SELECT(macro, substitution) ON system.macros TO <имя_пользователя>
    

Настройка эндпоинта-приемника ClickHouse®Настройка эндпоинта-приемника ClickHouse®

При создании или изменении эндпоинта вы можете задать:

  • Настройки подключения к кластеру Yandex Managed Service for ClickHouse® или пользовательской инсталляции, в т. ч. на базе виртуальных машин Yandex Compute Cloud. Эти параметры обязательные.
  • Дополнительные параметры.

Смотрите также рекомендации по настройке эндпоинта при поставке данных в ClickHouse® из очередей.

Кластер Managed Service for ClickHouse®Кластер Managed Service for ClickHouse®

Важно

Для создания или редактирования эндпоинта управляемой базы данных вам потребуется роль managed-clickhouse.viewer или примитивная роль viewer, выданная на каталог кластера этой управляемой базы данных.

Подключение к БД с указанием кластера в Yandex Cloud.

Консоль управления
CLI
Terraform
API
  • Тип подключения — выберите вариант подключения к базе данных:

    • Ручная настройка — позволяет задать настройки подключения вручную.

      Выберите тип инсталляции Кластер Managed Service for ClickHouse и задайте настройки:

      • Managed кластер — выберите кластер, к которому необходимо подключиться.

      • Группа шардов — укажите группу шардов, в которую будут передаваться данные. Если значение не указано, данные передаются во все шарды.

      • База данных — укажите имя базы данных в выбранном кластере.

      • Пользователь — укажите имя пользователя, под которым сервис Data Transfer будет подключаться к базе данных.

      • Пароль — укажите пароль пользователя для доступа к базе данных.

    • Connection Manager — позволяет подключиться к кластеру через Yandex Connection Manager:

      • Выберите каталог, в котором находится кластер Managed Service for ClickHouse®.

      • Выберите тип инсталляции Кластер управляемой БД и задайте настройки:

        • Кластер управляемой БД — выберите кластер, к которому необходимо подключиться.

        • Подключение — выберите подключение в Connection Manager или создайте его.

        • База данных — укажите имя базы данных в выбранном кластере.

        • Группа шардов — укажите группу шардов, в которую будут передаваться данные. Если значение не указано, данные передаются во все шарды.

      Важно

      Чтобы использовать подключение из Connection Manager, у пользователя должны быть права доступа не ниже connection-manager.user к этому подключению.

  • Группы безопасности — выберите облачную сеть для размещения эндпоинта и группы безопасности для сетевого трафика. Это позволит применить указанные правила групп безопасности к ВМ и кластерам в выбранной сети без изменения их настроек. Подробнее читайте в разделе Сеть в Yandex Data Transfer.

    Убедитесь, что выбранные группы безопасности настроены.

  • Тип эндпоинта — clickhouse-target.
  • --cluster-id — идентификатор кластера, к которому необходимо подключиться.

  • --cluster-name — группа шардов, в которую будут передаваться данные. Если параметр не указан, данные будут размещены во всех шардах.

  • --database — имя базы данных.

  • --user — имя пользователя, под которым сервис Data Transfer будет подключаться к базе данных.

  • --security-group — группы безопасности для сетевого трафика, правила которых применятся к ВМ и кластерам без изменения их настроек. Подробнее читайте в разделе Сеть в Yandex Data Transfer.

    Убедитесь, что указанные группы безопасности настроены.

  • Чтобы задать пароль пользователя для доступа к базе данных, используйте один из параметров:

    • --raw-password — пароль в текстовом виде.

    • --password-file — путь к файлу с паролем.

  • Тип эндпоинта — clickhouse_target.
  • connection.connection_options.mdb_cluster_id — идентификатор кластера, к которому необходимо подключиться.

  • clickhouse_cluster_name — группа шардов, в которую будут передаваться данные. Если параметр не указан, данные будут размещены во всех шардах.

  • subnet_id — идентификатор подсети, в которой находится кластер. Трансфер будет использовать эту подсеть для доступа к кластеру. Если идентификатор не указан, то кластер должен быть доступен из интернета.

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

  • security_groups — группы безопасности для сетевого трафика.

    Правила групп безопасности применяются к трансферу. Они позволяют открыть сетевой доступ с ВМ трансфера к кластеру. Подробнее читайте в разделе Сеть в Yandex Data Transfer.

    Группы безопасности и подсеть subnet_id, если она указана, должны принадлежать той же сети, в которой размещен кластер.

    Примечание

    В Terraform сеть для групп безопасности задавать не нужно.

    Убедитесь, что указанные группы безопасности настроены.

  • connection.connection_options.database — имя базы данных.

  • connection.connection_options.user — имя пользователя, под которым сервис Data Transfer будет подключаться к базе данных.

  • connection.connection_options.password.raw — пароль в текстовом виде.

Пример структуры конфигурационного файла:

resource "yandex_datatransfer_endpoint" "<имя_эндпоинта_в_Terraform>" {
  name = "<имя_эндпоинта>"
  settings {
    clickhouse_target {
      clickhouse_cluster_name="<группа_шардов>"
      security_groups = ["<список_идентификаторов_групп_безопасности>"]
      subnet_id       = "<идентификатор_подсети>"
      connection {
        connection_options {
          mdb_cluster_id = "<идентификатор_кластера>"
          database       = "<имя_переносимой_базы_данных>"
          user           = "<имя_пользователя_для_подключения>"
          password {
            raw = "<пароль_пользователя>"
          }
        }
      }
      <дополнительные_настройки_эндпоинта>
    }
  }
}

Подробнее в документации провайдера Terraform.

  • securityGroups — группы безопасности для сетевого трафика, правила которых применятся к ВМ и кластерам без изменения их настроек. Подробнее читайте в разделе Сеть в Yandex Data Transfer.

    Убедитесь, что указанные группы безопасности настроены.

  • mdbClusterId — идентификатор кластера, к которому необходимо подключиться.

  • clickhouseClusterName — группа шардов, в которую будут передаваться данные. Если параметр не указан, данные будут размещены во всех шардах.

  • database — имя базы данных.

  • user — имя пользователя, под которым сервис Data Transfer будет подключаться к базе данных.

  • password.raw — пароль пользователя для доступа к базе данных (в текстовом виде).

Пользовательская инсталляцияПользовательская инсталляция

Подключение к БД с явным указанием сетевых адресов и портов.

Консоль управления
CLI
Terraform
API
  • Тип подключения — выберите вариант подключения к базе данных:

    • Ручная настройка — позволяет задать настройки подключения вручную.

      Выберите тип инсталляции Пользовательская инсталляция и задайте настройки:

      • Шарды

        • Шард — укажите строку, которая позволит сервису отличать шарды друг от друга. Если в пользовательской инсталляции шардирование выключено, укажите произвольное имя.
        • Хосты — укажите FQDN или IP-адреса хостов, входящих в шард.
      • Кластер — укажите имя кластера, из которого будут передаваться данные. Если параметр не указан, будут передаваться данные из кластера по умолчанию (макрос {cluster}).

      • HTTP-порт — укажите номер порта, который сервис Data Transfer будет использовать для подключения.

        При подключении через HTTP-порт:

        • Для необязательных полей используются значения по умолчанию, если они заданы.
        • Поддерживается запись сложных типов (array, tuple и т. д.).
      • Нативный порт — укажите номер нативного порта, который сервис Data Transfer будет использовать для подключения.

      • SSL — включите, если кластер поддерживает только шифрованные соединения.

      • Сертификат CA — если требуется шифрование передаваемых данных, например для соответствия требованиям PCI DSS, загрузите файл сертификата или добавьте его содержимое в текстовом виде.

        Важно

        Если не добавить сертификат, трансфер может завершиться ошибкой.

      • База данных — укажите имя базы данных в выбранном кластере.

      • Идентификатор подсети — выберите или создайте подсеть в нужной зоне доступности. Трансфер будет использовать эту подсеть для доступа к кластеру.

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

      • Пользователь — укажите имя пользователя, под которым сервис Data Transfer будет подключаться к базе данных.

      • Пароль — укажите пароль пользователя для доступа к базе данных.

    • Connection Manager — позволяет подключиться к базе данных через Yandex Connection Manager:

      • Выберите каталог, в котором создано подключение Connection Manager.

      • Выберите тип инсталляции Пользовательская инсталляция и задайте настройки:

        • Подключение — выберите подключение в Connection Manager или создайте его.

        • База данных — укажите имя базы данных в выбранном кластере.

        • Идентификатор подсети — выберите или создайте подсеть в нужной зоне доступности. Трансфер будет использовать эту подсеть для доступа к кластеру.

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

        • Группа шардов — укажите группу шардов, в которую будут передаваться данные. Если значение не указано, данные передаются во все шарды.

      Важно

      Чтобы использовать подключение из Connection Manager, у пользователя должны быть права доступа не ниже connection-manager.user к этому подключению.

  • Группы безопасности — выберите облачную сеть для размещения эндпоинта и группы безопасности для сетевого трафика.

    Это позволит применить к ВМ и кластерам в выбранной сети указанные правила групп безопасности без изменения настроек этих ВМ и кластеров. Подробнее читайте в разделе Сеть в Yandex Data Transfer.

  • Тип эндпоинта — clickhouse-target.
  • --cluster-name — имя кластера, в который будут передаваться данные.

  • --host — список IP-адресов или FQDN хостов, к которым необходимо подключиться, в формате {имя_шарда}:{IP-адрес_или_FQDN_хоста}. Если в пользовательской инсталляции шардирование выключено, укажите произвольное имя шарда.

  • http-port — номер порта, который сервис Data Transfer будет использовать для подключения по HTTP.

  • native-port — номер порта, который сервис Data Transfer будет использовать для подключения к нативному интерфейсу ClickHouse®.

  • --ca-certificate — сертификат CA, если требуется шифрование передаваемых данных, например для соответствия требованиям PCI DSS.

    Важно

    Если не добавить сертификат, трансфер может завершиться ошибкой.

  • --subnet-id — идентификатор подсети, в которой находится хост. Трансфер будет использовать эту подсеть для доступа к хосту.

  • --database — имя базы данных.

  • --user — имя пользователя, под которым сервис Data Transfer будет подключаться к базе данных.

  • --security-group — группы безопасности для сетевого трафика, правила которых применятся к ВМ и кластерам без изменения их настроек. Подробнее читайте в разделе Сеть в Yandex Data Transfer.

  • Чтобы задать пароль пользователя для доступа к базе данных, используйте один из параметров:

    • --raw-password — пароль в текстовом виде.

    • --password-file — путь к файлу с паролем.

  • Тип эндпоинта — clickhouse_target.
  • Настройки шардов:

    • connection.connection_options.on_premise.shards.name — имя шарда, с помощью которого сервис сможет отличать шарды друг от друга. Если в пользовательской инсталляции шардирование выключено, укажите произвольное имя.
    • connection.connection_options.on_premise.shards.hosts — укажите FQDN или IP-адреса хостов, входящих в шард.
  • connection.connection_options.on_premise.http_port — номер порта, который сервис Data Transfer будет использовать для подключения по HTTP.

  • connection.connection_options.on_premise.native_port — номер порта, который сервис Data Transfer будет использовать для подключения к нативному интерфейсу ClickHouse®.

  • connection.connection_options.on_premise.tls_mode.enabled.ca_certificate — сертификат CA, если требуется шифрование передаваемых данных, например, для соответствия требованиям PCI DSS.

    Важно

    Если не добавить сертификат, трансфер может завершиться ошибкой.

  • clickhouse_cluster_name — имя кластера, в который будут передаваться данные.
  • subnet_id — идентификатор подсети, в которой находится кластер. Трансфер будет использовать эту подсеть для доступа к кластеру. Если идентификатор не указан, то кластер должен быть доступен из интернета.

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

  • security_groups — группы безопасности для сетевого трафика.

    Правила групп безопасности применяются к трансферу. Они позволяют открыть сетевой доступ с ВМ трансфера к ВМ с базой данных. Подробнее читайте в разделе Сеть в Yandex Data Transfer.

    Группы безопасности должны принадлежать той же сети, что и подсеть subnet_id, если она указана.

    Примечание

    В Terraform сеть для групп безопасности задавать не нужно.

  • connection.connection_options.database — имя базы данных.

  • connection.connection_options.user — имя пользователя, под которым сервис Data Transfer будет подключаться к базе данных.

  • connection.connection_options.password.raw — пароль в текстовом виде.

Пример структуры конфигурационного файла:

resource "yandex_datatransfer_endpoint" "<имя_эндпоинта_в_Terraform>" {
  name = "<имя_эндпоинта>"
  settings {
    clickhouse_target {
      clickhouse_cluster_name="<имя_кластера>"
      security_groups = ["<список_идентификаторов_групп_безопасности>"]
      subnet_id       = "<идентификатор_подсети>"
      connection {
        connection_options {
          on_premise {
            http_port   = "<порт_для_подключения_по_HTTP>"
            native_port = "<порт_для_подключения_к_нативному_интерфейсу>"
            shards {
              name  = "<имя_шарда>"
              hosts = [ "список IP-адресов или FQDN хостов шарда" ]
            }
            tls_mode {
              enabled {
                ca_certificate = "<сертификат_в_формате_PEM>"
              }
            }
          }
          database = "<имя_переносимой_базы_данных>"
          user     = "<имя_пользователя_для_подключения>"
          password {
            raw = "<пароль_пользователя>"
          }
        }
      }
      <дополнительные_настройки_эндпоинта>
    }
  }
}

Подробнее в документации провайдера Terraform.

  • onPremise — параметры подключения к базе данных:
    • shards – настройки шардов:

      • name — имя шарда, с помощью которого сервис сможет отличать шарды друг от друга. Если в пользовательской инсталляции шардирование выключено, укажите произвольное имя.
      • hosts — укажите FQDN или IP-адреса хостов, входящих в шард.
    • httpPort — номер порта, который сервис Data Transfer будет использовать для подключения по HTTP.

    • nativePort — номер порта, который сервис Data Transfer будет использовать для подключения к нативному интерфейсу ClickHouse®.

    • tlsMode — параметры шифрования передаваемых данных, если оно требуется, например для соответствия требованиям PCI DSS.

      • disabled — отключено.
      • enabled — включено
        • caCertificate — сертификат CA.

          Важно

          Если не добавить сертификат, трансфер может завершиться ошибкой.

    • subnetId — идентификатор подсети, в которой находится хост. Трансфер будет использовать эту подсеть для доступа к хосту.

  • clickhouseClusterName — имя кластера, в который будут передаваться данные.
  • securityGroups — группы безопасности для сетевого трафика, правила которых применятся к ВМ и кластерам без изменения их настроек. Подробнее читайте в разделе Сеть в Yandex Data Transfer.

  • database — имя базы данных.

  • user — имя пользователя, под которым сервис Data Transfer будет подключаться к базе данных.

  • password.raw — пароль пользователя для доступа к базе данных (в текстовом виде).

Дополнительные настройкиДополнительные настройки

Консоль управления
CLI
Terraform
API
  • Политика очистки — выберите способ очистки данных в базе-приемнике перед переносом:

    • Не очищать — выберите эту опцию, если будет производиться только репликация без копирования данных.

    • Drop — полное удаление таблиц, участвующих в трансфере (вариант по умолчанию).

      Используйте эту опцию, чтобы при любой активации трансфера в базу-приемник всегда передавалась самая последняя версия схемы таблиц из источника.

    • Truncate — удалить только данные из таблиц, участвующих в трансфере, но оставить схему.

      Используйте эту опцию, если схема в базе-приемнике отличается от той, которая была бы перенесена из источника при трансфере.

  • Настройки шардирования — задайте настройки для шардирования:

    • Без шардирования — шардирование не используется.

    • Шардирование по значению колонки — имя колонки в таблицах, по которой следует шардировать данные. Равномерное распределение по шардам будет определяться хешем значения этой колонки. Укажите имя колонки для шардирования в соответствующем поле.

      Для шардирования по конкретным значениям колонки укажите их в поле Сопоставление. Это поле определяет соответствие значений колонки и индекса шарда (порядковый номер шарда в отсортированном по именам списке шардов) для шардирования по конкретным значениям данных.

    • Шардирование по идентификатору трансфера — данные по шардам будут распределяться на основе значения идентификатора трансфера. При этом трансфер игнорирует настройку Сопоставление и шардирует данные только по идентификатору трансфера.

    • Равномерное случайное шардирование — данные по шардам будут распределяться случайным образом (количество данных на каждом шарде будет примерно одинаковым).

      Для трансферов из ClickHouse® в ClickHouse® шардирование не поддерживается. Возможное обходное решение: создайте на кластере-приемнике распределенную таблицу и выполните трансфер в нее, выбрав политику очистки Truncate или Не очищать.

      Настройки шардирования, включая Равномерное случайное шардирование и Шардирование по значению колонки, игнорируются при репликации из PostgreSQL. Это связано с архитектурными ограничениями: для обеспечения целостности данных при операциях UPDATE и DELETE репликационный поток направляется строго в один шард.

  • Расширенные настройки — задайте расширенные настройки:

    • Переименование таблиц — при необходимости задайте настройки переименования таблиц при трансфере.

    • Интервал записи — укажите задержку, с которой данные должны поступать в кластер-приемник. Увеличьте значение в этом поле, если ClickHouse® не успевает делать слияние кусков данных.

    • Интерпретировать неудачные обновления как последовательность апсёртов — выберите для трансферов из Managed Service for YDB с режимом потока изменений UPDATES и для трансферов типа Increment Only, которые переносят события по документам, не находящимся в приемнике ClickHouse®. Используйте только при необходимости, так как последовательная вставка UPSERT ведет к ухудшению производительности.

    • Не применять изменения схемы — выберите, чтобы не изменять схему данных на приемнике при изменении ее на источнике. По умолчанию при изменении схемы на источнике трансфер будет автоматически применять изменения схемы в приемнике: создавать новые таблицы, добавлять новые колонки, добавлять новые перечисляемые значения и перечисляемые типы. По умолчанию не применяются такие изменения, как удаление таблиц или колонок.

  • --alt-name — правила переименования таблиц базы-источника при переносе в базу-приемник. Значения указываются в формате <имя_таблицы_в_источнике>:<имя_таблицы_в_приемнике>.

  • Настройки шардирования данных:

    • --shard-by-column-hash — имя колонки в таблицах, по которой следует шардировать данные. Равномерное распределение по шардам будет определяться хешем значения этой колонки.

    • --custom-sharding-column-name— имя колонки в таблицах, по которой следует шардировать данные. Шардирование выполняется по значениям колонки, заданным с помощью настройки --custom-sharding-mapping-string.

    • --custom-sharding-mapping-string — сопоставление значений колонки, указанной в настройке --custom-sharding-column-name, и шардов. Значения настройки указываются в формате <значение_колонки>:<имя_шарда>.

    • --shard-by-transfer-id — Данные по шардам будут распределяться на основе значения идентификатора трансфера. Параметр не содержит значения.

    Вы можете указать только один из вариантов шардирования:

    • --shard-by-column-hash;
    • --custom-sharding-column-name и --custom-sharding-mapping-string;
    • --shard-by-transfer-id.
  • cleanup_policy — способ очистки данных в базе-приемнике перед переносом:

    • CLICKHOUSE_CLEANUP_POLICY_DISABLED — не очищать (вариант по умолчанию).

      Выберите эту опцию, если будет производиться только репликация без копирования данных.

    • CLICKHOUSE_CLEANUP_POLICY_DROP — полное удаление таблиц, участвующих в трансфере.

      Используйте эту опцию, чтобы при любой активации трансфера в базу-приемник всегда передавалась самая последняя версия схемы таблиц из источника.

    • CLICKHOUSE_CLEANUP_POLICY_TRUNCATE — удалить только данные из таблиц, участвующих в трансфере, но оставить схему.

      Используйте эту опцию, если схема в базе-приемнике отличается от той, которая была бы перенесена из источника при трансфере.

  • alt_names — правила переименования таблиц базы-источника при переносе в базу-приемник:

    • from_name — имя таблицы в источнике.
    • to_name — имя таблицы в приемнике.
  • Настройки шардирования данных:

    • sharding.column_value_hash.column_name — имя колонки в таблицах, по которой следует шардировать данные. Равномерное распределение по шардам будет определяться хешем значения этой колонки.

    • sharding.transfer_id — данные по шардам распределяются на основе значения идентификатора трансфера. Блок transfer_id не содержит параметров.

    • sharding.custom_mapping — шардирование по значению колонки:

      • column_name — имя колонки в таблицах, по которой следует шардировать данные.

      • mapping — сопоставление значений колонки и шардов:

        • column_value.string_value — значение колонки.
        • shard_name — имя шарда.
    • sharding.round_robin — данные по шардам будут распределяться случайным образом (количество данных на каждом шарде будет примерно одинаковым). Блок round_robin не содержит параметров.

    Вы можете указать только один из вариантов шардирования: sharding.column_value_hash.column_name, sharding.transfer_id, sharding.custom_mapping или sharding.round_robin. Если вариант шардирования не указан, то все данные переносятся в один шард.

  • is_schema_migration_disabled — установите значение true, чтобы не изменять схему данных на приемнике при изменении ее на источнике. По умолчанию при изменении схемы на источнике трансфер будет автоматически применять изменения схемы в приемнике: создавать новые таблицы, добавлять новые колонки, добавлять новые перечисляемые значения и перечисляемые типы. По умолчанию не применяются такие изменения, как удаление таблиц или колонок.

  • altNames — правила переименования таблиц базы-источника при переносе в базу-приемник.

    • fromName — имя таблицы в источнике.
    • toName — имя таблицы в приемнике.
  • cleanupPolicy — способ очистки данных в базе-приемнике перед переносом:

    • CLICKHOUSE_CLEANUP_POLICY_DISABLED — не очищать (вариант по умолчанию).

      Выберите эту опцию, если будет производиться только репликация без копирования данных.

    • CLICKHOUSE_CLEANUP_POLICY_DROP — полное удаление таблиц, участвующих в трансфере.

      Используйте эту опцию, чтобы при любой активации трансфера в базу-приемник всегда передавалась самая последняя версия схемы таблиц из источника.

    • CLICKHOUSE_CLEANUP_POLICY_TRUNCATE — удалить только данные из таблиц, участвующих в трансфере, но оставить схему.

      Используйте эту опцию, если схема в базе-приемнике отличается от той, которая была бы перенесена из источника при трансфере.

  • sharding — настройки для шардирования данных. Вы можете указать только один из вариантов шардирования:

    • columnValueHash.columnName — имя колонки в таблицах, по которой следует шардировать данные. Равномерное распределение по шардам будет определяться хешем значения этой колонки.

    • customMapping — шардирование по значению колонки:

      • columnName — имя колонки в таблицах, по которой следует шардировать данные.

      • mapping — сопоставление значений колонки и шардов:

        • columnValue.stringValue — значение колонки.
        • shardName — имя шарда.
    • transferId — данные по шардам будут распределяться на основе значения идентификатора трансфера. Параметр не содержит значения.

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

    Если вариант шардирования не указан, то все данные переносятся в один шард.

После настройки источника и приемника данных создайте и запустите трансфер.

Рекомендации по настройке эндпоинтовРекомендации по настройке эндпоинтов

Для ускорения поставки большого объема данных в ClickHouse® из очередей Data Streams или Managed Service for Apache Kafka® укажите специальные настройки эндпоинтов:

Консоль управления
CLI
Terraform
API
  • Если в кластере-приемнике ClickHouse® включено шардирование и перенос выполняется в шардированную таблицу, записывайте данные в локальные таблицы, а не в распределенную таблицу. При этом выполняйте выборку перенесенных данных в приемнике из распределенной таблицы. Чтобы переопределить таблицу для записи, укажите ее в настройке приемника Переименование таблиц → Имя таблицы приёмника.
  • Если в источнике вы выбрали формат JSON в опции Правила конвертации → Формат данных, то в схеме данных для строковых типов указывайте UTF-8 вместо STRING.
  • При выборе опции Добавить неразмеченные столбцы учитывайте, что это может привести к снижению скорости трансфера.
  • Если нужно перенести несколько топиков, укажите в настройке приемника Переименование таблиц для всех имен топиков источника одинаковое имя таблицы ClickHouse®.
  • Если в кластере-приемнике ClickHouse® включено шардирование и перенос выполняется в шардированную таблицу, записывайте данные в локальные таблицы, а не в распределенную таблицу. При этом выполняйте выборку перенесенных данных в приемнике из распределенной таблицы. Чтобы переопределить таблицу для записи, укажите ее в настройке приемника --alt-name.
  • Если нужно перенести несколько топиков, укажите в атрибуте --alt-name эндпоинта-приемника для всех топиков источника одно и то же имя таблицы ClickHouse® приемника.
  • Если в кластере-приемнике ClickHouse® включено шардирование и перенос выполняется в шардированную таблицу, записывайте данные в локальные таблицы, а не в распределенную таблицу. При этом выполняйте выборку перенесенных данных в приемнике из распределенной таблицы. Чтобы переопределить таблицу для записи, укажите ее в настройке приемника alt_names.to_name.
  • Если в источнике вы выбрали формат JSON в блоке parser.json_parser:
    • В схеме данных parser.json_parser.data_schema для строковых типов указывайте UTF-8 вместо STRING.
    • В случае атрибута parser.json_parser.add_rest_column=true скорость трансфера может снизиться.
  • Если нужно перенести несколько топиков, укажите в атрибуте alt_names эндпоинта-приемника для всех топиков в alt_names.from_name одно и то же имя таблицы ClickHouse® в alt_names.to_name.
  • Если в кластере-приемнике ClickHouse® включено шардирование и перенос выполняется в шардированную таблицу, используйте для записи данных нижележащую таблицу на движке ReplicatedMergeTree, а не распределенную таблицу на движке Distributed. При этом выполняйте выборку перенесенных данных в приемнике из распределенной таблицы. Чтобы переопределить таблицу для записи, укажите ее в настройке приемника altNames.toName.
  • Если в источнике вы выбрали формат JSON в блоке parser.jsonParser:
    • В схеме данных parser.jsonParser.dataSchema для строковых типов указывайте UTF-8 вместо STRING.
    • В случае параметра parser.jsonParser.addRestColumn=true скорость трансфера может снизиться.
  • Если нужно перенести несколько топиков, укажите в параметре altNames эндпоинта-приемника для всех топиков в altNames.fromName одно и то же имя таблицы ClickHouse® в altNames.toName.

Соответствие типов поддерживаемых данных в СУБД и эндпоинтеСоответствие типов поддерживаемых данных в СУБД и эндпоинте

Тип ClickHouse®

Тип эндпоинта

Int64

int64

Int32

int32

Int16

int16

Int8

int8

UInt64

uint64

UInt32

uint32

UInt16

uint16

UInt8

uint8

Float64

float

Float64

double

String

string

String

utf8

UInt8

boolean

Date

date

DateTime

datetime

DateTime64(9)

timestamp

String

any

Решение проблем, возникающих при переносе данныхРешение проблем, возникающих при переносе данных

  • Не добавляются новые таблицы
  • Не переносятся данные
  • Неподдерживаемый диапазон дат
  • Нехватка ресурсов или растущая задержка передачи данных
  • Превышение количества блоков данных

Смотрите полный список рекомендаций в разделе Решение проблем.

Не добавляются новые таблицыНе добавляются новые таблицы

В трансфер типа Копирование и репликация не добавляются новые таблицы.

Решение:

  1. Создайте таблицы в базе-приемнике вручную. Чтобы трансфер работал, при создании таблицы:

    1. Добавьте в нее служебные поля трансфера:

      __data_transfer_commit_time timestamp,
      __data_transfer_delete_time timestamp
      
    2. Используйте движок ReplacingMergeTree:

      ENGINE = ReplacingMergeTree
      
  2. Создайте отдельный трансфер типа Копирование и репликация и добавьте в список объектов для переноса только новые таблицы. При этом исходный трансфер типа Копирование и репликация можно не деактивировать. Активируйте новый трансфер, а после перехода в статус Реплицируется деактивируйте его.

    Чтобы добавить другие таблицы, замените ими список объектов для переноса в созданном отдельном трансфере, вновь активируйте его, а после перехода в статус Реплицируется деактивируйте.

    Примечание

    Так как два трансфера одновременно переносили данные, то в новых таблицах на приемнике присутствуют дубликаты записей. Чтобы скрыть их, выполните запрос SELECT * from TABLE <имя_таблицы> FINAL, а чтобы удалить — запрос OPTIMIZE TABLE <имя_таблицы>.

Неподдерживаемый диапазон датНеподдерживаемый диапазон дат

Если в переносимых данных есть даты вне поддерживаемых диапазонов, ClickHouse® возвращает ошибку:

TYPE_ERROR [target]: failed to run (abstract1 source): failed to push items from 0 to 1 in batch:
Push failed: failed to push 1 rows to ClickHouse shard 0:
ClickHouse Push failed: Unable to exec changeItem: clickhouse:
dateTime <имя_поля> must be between 1900-01-01 00:00:00 and 2262-04-11 23:47:16

Поддерживаемые диапазоны дат в ClickHouse®:

  • Для полей с типом DateTime64 — с 1900-01-01 по 2299-12-31. Подробнее в документации ClickHouse®.
  • Для полей с типом DateTime — с 1970-01-01 по 2106-02-07. Подробнее в документации ClickHouse®.

Решение: используйте один из вариантов:

  • Приведите все даты в базе-источнике к поддерживаемому в ClickHouse® диапазону.
  • В параметрах эндпоинта-источника исключите таблицу с некорректными датами из трансфера.
  • В параметрах трансфера укажите трансформер Преобразовать значения в строки. В этом случае при трансфере изменится тип поля.

Нехватка ресурсов или растущая задержка передачи данныхНехватка ресурсов или растущая задержка передачи данных

При переносе данных в приемник ClickHouse® могут возникнуть следующие проблемы:

  1. Трансфер прерывается с ошибкой. Текст ошибки:

    pod instance restarted
    
  2. В мониторинге состояния трансфера наблюдается растущая задержка передачи данных (разница между временем появления записей на приемнике и временем их появления на источнике).

Возможная причина:

Слишком большой интервал записи в настройках эндпоинта-приемника, что вызывает нехватку оперативной памяти (OOM) на ВМ трансфера.

Решение:

Установите в консоли управления значение настройки эндпоинта-приемника Интервал записи равным 10 секунд или меньше.

Дополнительно в случае трансфера типа Копирование активируйте его повторно. Трансферы других типов перезапустятся автоматически.

Превышение количества блоков данныхПревышение количества блоков данных

При переносе данных в приемник ClickHouse® трансфер прерывается с ошибкой. Текст ошибки:

ERROR Unable to Activate ... 
unable to upload tables: unable to upload data objects: unable upload part <имя таблицы> (): 
unable to start \*clickhouse.HTTPSource event source: failed to push events to destination: 
unable to push http batch: <имя таблицы>: failed: INSERT INTO ...

Дополнительно может выводиться ошибка:

pod instance restarted

Ошибки возникают при попытке вставить в базу-приемник ClickHouse® больше блоков данных, чем позволяет настройка max_partitions_per_insert_block.

Решение: увеличьте параметр max_partitions_per_insert_block для учетной записи, под которой трансфер подключается к приемнику. Для приемника Managed Service for ClickHouse® параметр можно изменить в настройках пользователя. Для пользовательской инсталляции ClickHouse® можно создать профиль настроек и назначить его учетной записи:

CREATE SETTINGS PROFILE max_partitions
SETTINGS max_partitions_per_insert_block = <значение_настройки>

ALTER USER <имя_пользователя> PROFILE 'max_partitions'

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

Была ли статья полезна?

Предыдущая
Источник
Следующая
Источник
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»