Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Ингестия данных из Postgres в ClickHouse (с использованием CDC)

Вы можете использовать ClickPipes для ингестии данных из исходной базы данных Postgres в ClickHouse Cloud. Исходная база данных Postgres может размещаться в собственной инфраструктуре или в облаке, включая Amazon RDS, Google Cloud SQL, Azure Database for Postgres, Supabase и другие сервисы.

ClickPipes для Postgres можно развертывать и настраивать вручную через интерфейс ClickPipes, а также программно с помощью OpenAPI и Terraform.

Предварительные требования

Для начала убедитесь, что ваша база данных Postgres настроена правильно. В зависимости от используемого исходного экземпляра Postgres вы можете воспользоваться одним из следующих руководств:

  1. Amazon RDS Postgres

  2. Amazon Aurora Postgres

  3. Supabase Postgres

  4. Google Cloud SQL Postgres

  5. Azure Flexible Server for Postgres

  6. Neon Postgres

  7. Crunchy Bridge Postgres

  8. Generic Postgres Source, если вы используете любого другого провайдера Postgres или самоуправляемый экземпляр.

  9. TimescaleDB, если вы используете расширение TimescaleDB в управляемом сервисе или самоуправляемом экземпляре.

После настройки исходной базы данных Postgres вы можете перейти к созданию ClickPipe.

Создание ClickPipe

Убедитесь, что вы вошли в свою учётную запись ClickHouse Cloud. Если у вас ещё нет учётной записи, вы можете зарегистрироваться здесь.

  1. В консоли ClickHouse Cloud перейдите в свой сервис ClickHouse Cloud.
Сервис ClickPipes
  1. Выберите кнопку Data Sources в меню слева и нажмите "Set up a ClickPipe"
Выбор импортов
  1. Выберите плитку Postgres CDC

    Выбор Postgres

Добавление подключения к исходной базе данных Postgres

  1. Заполните сведения о подключении к исходной базе данных Postgres, которую вы настроили на этапе предварительной подготовки.
Заполните сведения о подключении

Вы можете использовать AWS Private Link для подключения к исходной базе данных Postgres, если она размещена в AWS. Это полезно, если вы хотите, чтобы передача данных оставалась закрытой. Вы можете воспользоваться руководством по настройке подключения.

(Необязательно) Изменение настроек TLS

По умолчанию ваш ClickPipe создаётся с включённым TLS и проверкой сертификата. Эти параметры можно изменить при создании ClickPipe:

Настройки TLS

Или отредактировать в разделе Connection settings на вкладке Settings приостановленного ClickPipe:

Connection settings -> Edit Connection
Edit Connection

Где:

  • Disable TLS включает или отключает TLS для соединения. Если TLS отключён, данные передаются по сети в открытом виде, включая потенциально учётные данные и другую конфиденциальную информацию.
  • Skip certificate verification включает или отключает проверку сертификата, предоставленного исходной базой данных. Учитывайте риски для безопасности при отключении проверки сертификата.
  • TLS Host (необязательно; по умолчанию используется исходный Host) — это hostname, с которым должен совпадать CN сертификата, если включена проверка сертификата.
  • Upload CA используется для загрузки CA, который применяется при включённой проверке сертификата.

(Необязательно) Настройка SSH-туннелирования

Вы можете указать параметры SSH-туннеля, если ваша исходная база данных Postgres недоступна из интернета.

  1. Включите переключатель "Use SSH Tunnelling".

  2. Заполните сведения об SSH-подключении.

    SSH-туннелирование
  3. Чтобы использовать аутентификацию по ключу, нажмите "Revoke and generate key pair", чтобы сгенерировать новую пару ключей, затем скопируйте созданный открытый ключ на SSH-сервер в ~/.ssh/authorized_keys.

  4. Нажмите "Verify Connection", чтобы проверить подключение.

После заполнения сведений о подключении нажмите "Next".

Настройка параметров репликации

  1. Убедитесь, что вы выбрали слот репликации в раскрывающемся списке, созданном на этапе предварительной подготовки.

    Выберите слот репликации

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

При необходимости вы можете настроить дополнительные параметры. Ниже приведено краткое описание каждого из них:

  • Sync interval: Интервал, с которым ClickPipes будет опрашивать исходную базу данных на наличие изменений. Он влияет на целевой сервис ClickHouse, поэтому, если для вас важна стоимость, рекомендуем установить большее значение (свыше 3600).
  • Parallel threads for initial load: Количество параллельных воркеров, которые будут использоваться для получения начального снимка. Это полезно, если у вас много таблиц и вы хотите контролировать число параллельных воркеров для получения начального снимка. Этот параметр задается отдельно для каждой таблицы.
  • Pull batch size: Количество строк, извлекаемых за один батч. Это параметр типа best effort, поэтому он может соблюдаться не во всех случаях.
  • Snapshot number of rows per partition: Количество строк, извлекаемых в каждой партиции при создании начального снимка. Это полезно, если в ваших таблицах много строк и вы хотите контролировать, сколько строк извлекается в каждой партиции.
  • Snapshot number of tables in parallel: Количество таблиц, которые будут извлекаться параллельно при создании начального снимка. Это полезно, если у вас много таблиц и вы хотите контролировать число таблиц, извлекаемых параллельно.

Настройка таблиц

  1. Здесь можно выбрать целевую базу данных для вашего ClickPipe. Вы можете выбрать существующую базу данных или создать новую.

    Выбор целевой базы данных
  2. Вы можете выбрать таблицы, которые хотите реплицировать из исходной базы данных Postgres. При выборе таблиц можно также переименовать их в целевой базе данных ClickHouse и исключить отдельные столбцы.

  1. Кроме того, вы можете задать пользовательское выражение PARTITION BY <expr> для управления партиционированием целевой таблицы ClickHouse.

    Разбиение на партиции

Проверьте разрешения и запустите ClickPipe

  1. Выберите роль "Full access" в раскрывающемся списке разрешений и нажмите "Complete Setup".

    Проверка разрешений

Что дальше?

После того как вы настроите ClickPipe для репликации данных из PostgreSQL в ClickHouse Cloud, можно сосредоточиться на том, как запрашивать и моделировать данные для достижения оптимальной производительности. См. руководство по миграции, чтобы оценить, какая стратегия лучше всего соответствует вашим требованиям, а также страницы Стратегии дедупликации (с использованием CDC) и Ключи упорядочивания с рекомендациями по работе с CDC-нагрузками.

Ответы на распространённые вопросы о CDC в PostgreSQL и устранении неполадок см. на странице FAQ по Postgres.

Navigation