> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-vortex-format.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Легко подключите Postgres к ClickHouse Cloud.

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

export const Image = ({img, alt, size = "lg"}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} />
      </Frame>
    </div>;
};

export const BetaBadge = ({link, galaxyTrack, galaxyEvent}) => {
  if (link) {
    return <a href={link} target="_blank" rel="noopener noreferrer" className="betaBadge" onClick={galaxyTrack && galaxyEvent ? galaxyOnClick(galaxyEvent) : undefined}>
                <span>Бета</span>
            </a>;
  }
  return <a href="/ru/reference/settings/beta-and-experimental-features#beta-features" className="betaBadge">
            <span>Возможность в статусе бета</span>
        </a>;
};

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

ClickPipes для Postgres можно развертывать и настраивать вручную через интерфейс ClickPipes, а также программно с помощью [OpenAPI](/ru/integrations/clickpipes/programmatic-access/openapi) и [Terraform](/ru/integrations/clickpipes/programmatic-access/terraform).

<div id="prerequisites">
  ## Предварительные требования
</div>

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

1. [Amazon RDS Postgres](/ru/integrations/clickpipes/postgres/source/rds)

2. [Amazon Aurora Postgres](/ru/integrations/clickpipes/postgres/source/aurora)

3. [Supabase Postgres](/ru/integrations/clickpipes/postgres/source/supabase)

4. [Google Cloud SQL Postgres](/ru/integrations/clickpipes/postgres/source/google-cloudsql)

5. [Azure Flexible Server for Postgres](/ru/integrations/clickpipes/postgres/source/azure-flexible-server-postgres)

6. [Neon Postgres](/ru/integrations/clickpipes/postgres/source/neon-postgres)

7. [Crunchy Bridge Postgres](/ru/integrations/clickpipes/postgres/source/crunchy-postgres)

8. [Generic Postgres Source](/ru/integrations/clickpipes/postgres/source/generic), если вы используете любого другого провайдера Postgres или самоуправляемый экземпляр.

9. [TimescaleDB](/ru/integrations/clickpipes/postgres/source/timescale), если вы используете расширение TimescaleDB в управляемом сервисе или самоуправляемом экземпляре.

<Warning>
  Postgres-прокси, такие как PgBouncer, RDS Proxy, Supabase Pooler и т. д., не поддерживаются для репликации на основе CDC. Не используйте их при настройке ClickPipes; вместо этого укажите сведения о подключении к самой базе данных Postgres.
</Warning>

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

<div id="creating-your-clickpipe">
  ## Создание ClickPipe
</div>

Убедитесь, что вы вошли в свою учётную запись ClickHouse Cloud. Если у вас ещё нет учётной записи, вы можете зарегистрироваться [здесь](https://cloud.clickhouse.com/).

[//]: # "   TODO update image here"

1. В консоли ClickHouse Cloud перейдите в свой сервис ClickHouse Cloud.

<Image img="https://mintcdn.com/private-7c7dfe99-vortex-format/Kj4wT80mHNH7Aczn/images/integrations/data-ingestion/clickpipes/cp_service.webp?fit=max&auto=format&n=Kj4wT80mHNH7Aczn&q=85&s=28f21bdc220ebac1a2802365b87fb78c" alt="Сервис ClickPipes" size="lg" border width="1184" height="482" data-path="images/integrations/data-ingestion/clickpipes/cp_service.webp" />

2. Выберите кнопку `Data Sources` в меню слева и нажмите "Set up a ClickPipe"

<Image img="https://mintcdn.com/private-7c7dfe99-vortex-format/Kj4wT80mHNH7Aczn/images/integrations/data-ingestion/clickpipes/cp_step0.webp?fit=max&auto=format&n=Kj4wT80mHNH7Aczn&q=85&s=275437c400afd56e6808a20a266c9d7a" alt="Выбор импортов" size="lg" border width="2606" height="790" data-path="images/integrations/data-ingestion/clickpipes/cp_step0.webp" />

3. Выберите плитку `Postgres CDC`

   <Image img="https://mintcdn.com/private-7c7dfe99-vortex-format/mRaTj__cZTg8Xed9/images/integrations/data-ingestion/clickpipes/postgres/postgres-tile.webp?fit=max&auto=format&n=mRaTj__cZTg8Xed9&q=85&s=504892c7252852e609adb16aac090786" alt="Выбор Postgres" size="lg" border width="2612" height="892" data-path="images/integrations/data-ingestion/clickpipes/postgres/postgres-tile.webp" />

<div id="adding-your-source-postgres-database-connection">
  ### Добавление подключения к исходной базе данных Postgres
</div>

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

<Info>
  Прежде чем вводить сведения о подключении, убедитесь, что IP-адреса ClickPipes добавлены в белый список в правилах вашего межсетевого экрана. Список IP-адресов ClickPipes можно найти [здесь](/ru/integrations/clickpipes/home#list-of-static-ips).
  Дополнительные сведения см. в руководствах по настройке исходной базы данных Postgres, ссылки на которые приведены [в верхней части этой страницы](#prerequisites).
</Info>

<Image img="https://mintcdn.com/private-7c7dfe99-vortex-format/mRaTj__cZTg8Xed9/images/integrations/data-ingestion/clickpipes/postgres/postgres-connection-details.jpg?fit=max&auto=format&n=mRaTj__cZTg8Xed9&q=85&s=052c2a7e35b3ab1a0c659f9410720a28" alt="Заполните сведения о подключении" size="lg" border width="1862" height="1628" data-path="images/integrations/data-ingestion/clickpipes/postgres/postgres-connection-details.jpg" />

<div id="optional-setting-up-aws-private-link">
  #### (Необязательно) Настройка AWS Private Link
</div>

Вы можете использовать AWS Private Link для подключения к исходной базе данных Postgres, если она размещена в AWS. Это полезно, если вы
хотите, чтобы передача данных оставалась закрытой.
Вы можете воспользоваться [руководством по настройке подключения](/ru/integrations/clickpipes/aws-privatelink).

<div id="optional-changing-tls-settings">
  #### (Необязательно) Изменение настроек TLS
</div>

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

<Frame>
  <img src="https://mintcdn.com/private-7c7dfe99-vortex-format/mRaTj__cZTg8Xed9/images/integrations/data-ingestion/clickpipes/postgres/tls-settings.webp?fit=max&auto=format&n=mRaTj__cZTg8Xed9&q=85&s=09e4c6fcf1d5eb91edd27fab3f37ba87" alt="Настройки TLS" width="1113" height="688" data-path="images/integrations/data-ingestion/clickpipes/postgres/tls-settings.webp" />
</Frame>

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

<Frame>
  <img src="https://mintcdn.com/private-7c7dfe99-vortex-format/mRaTj__cZTg8Xed9/images/integrations/data-ingestion/clickpipes/postgres/pipe-connection-settings.webp?fit=max&auto=format&n=mRaTj__cZTg8Xed9&q=85&s=a5fb793fa33061a8a5b5cc29afc177e2" alt="Connection settings -> Edit Connection" data-og-width="1035" width="1035" data-og-height="312" height="312" data-path="images/integrations/data-ingestion/clickpipes/postgres/pipe-connection-settings.webp" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/private-7c7dfe99-vortex-format/mRaTj__cZTg8Xed9/images/integrations/data-ingestion/clickpipes/postgres/pipe-connection-settings.webp?w=280&fit=max&auto=format&n=mRaTj__cZTg8Xed9&q=85&s=f02d7d8ed28e30f4f74283f26462940c 280w, https://mintcdn.com/private-7c7dfe99-vortex-format/mRaTj__cZTg8Xed9/images/integrations/data-ingestion/clickpipes/postgres/pipe-connection-settings.webp?w=560&fit=max&auto=format&n=mRaTj__cZTg8Xed9&q=85&s=e0f2378d6a9156fe9bba5bfe4c725d75 560w, https://mintcdn.com/private-7c7dfe99-vortex-format/mRaTj__cZTg8Xed9/images/integrations/data-ingestion/clickpipes/postgres/pipe-connection-settings.webp?w=840&fit=max&auto=format&n=mRaTj__cZTg8Xed9&q=85&s=9ee6080b1119329406295925082e87dc 840w, https://mintcdn.com/private-7c7dfe99-vortex-format/mRaTj__cZTg8Xed9/images/integrations/data-ingestion/clickpipes/postgres/pipe-connection-settings.webp?w=1100&fit=max&auto=format&n=mRaTj__cZTg8Xed9&q=85&s=d10290c7c1f6cd643effd802ca5be674 1100w, https://mintcdn.com/private-7c7dfe99-vortex-format/mRaTj__cZTg8Xed9/images/integrations/data-ingestion/clickpipes/postgres/pipe-connection-settings.webp?w=1650&fit=max&auto=format&n=mRaTj__cZTg8Xed9&q=85&s=11fde8f4e6d917311d538e8bd78ed5bc 1650w, https://mintcdn.com/private-7c7dfe99-vortex-format/mRaTj__cZTg8Xed9/images/integrations/data-ingestion/clickpipes/postgres/pipe-connection-settings.webp?w=2500&fit=max&auto=format&n=mRaTj__cZTg8Xed9&q=85&s=16a53007292d2e8563474e630804f600 2500w" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/private-7c7dfe99-vortex-format/mRaTj__cZTg8Xed9/images/integrations/data-ingestion/clickpipes/postgres/pipe-edit-connection.webp?fit=max&auto=format&n=mRaTj__cZTg8Xed9&q=85&s=01b9f1a5c007555a6f096ffe7357d11b" alt="Edit Connection" width="703" height="542" data-path="images/integrations/data-ingestion/clickpipes/postgres/pipe-edit-connection.webp" />
</Frame>

Где:

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

<div id="optional-setting-up-ssh-tunneling">
  #### (Необязательно) Настройка SSH-туннелирования
</div>

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

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

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

   <Image img="https://mintcdn.com/private-7c7dfe99-vortex-format/mRaTj__cZTg8Xed9/images/integrations/data-ingestion/clickpipes/postgres/ssh-tunnel.jpg?fit=max&auto=format&n=mRaTj__cZTg8Xed9&q=85&s=32246dd5b821da001d89a9825ae2e5b4" alt="SSH-туннелирование" size="lg" border width="1780" height="1342" data-path="images/integrations/data-ingestion/clickpipes/postgres/ssh-tunnel.jpg" />

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

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

<Note>
  Убедитесь, что [IP-адреса ClickPipes](/ru/integrations/clickpipes/home#list-of-static-ips) добавлены в список разрешённых в правилах межсетевого экрана для SSH-бастиона, чтобы ClickPipes мог установить SSH-туннель.
</Note>

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

<div id="configuring-the-replication-settings">
  ### Настройка параметров репликации
</div>

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

   <Image img="https://mintcdn.com/private-7c7dfe99-vortex-format/mRaTj__cZTg8Xed9/images/integrations/data-ingestion/clickpipes/postgres/select-replication-slot.jpg?fit=max&auto=format&n=mRaTj__cZTg8Xed9&q=85&s=902b6a4c741f1742962215d6d63d9d9e" alt="Выберите слот репликации" size="lg" border width="1900" height="640" data-path="images/integrations/data-ingestion/clickpipes/postgres/select-replication-slot.jpg" />

<div id="advanced-settings">
  #### Дополнительные настройки
</div>

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

* **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**: Количество таблиц, которые будут извлекаться параллельно при создании начального снимка. Это полезно, если у вас много таблиц и вы хотите контролировать число таблиц, извлекаемых параллельно.

<div id="configuring-the-tables">
  ### Настройка таблиц
</div>

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

   <Image img="https://mintcdn.com/private-7c7dfe99-vortex-format/mRaTj__cZTg8Xed9/images/integrations/data-ingestion/clickpipes/postgres/select-destination-db.jpg?fit=max&auto=format&n=mRaTj__cZTg8Xed9&q=85&s=25f3785b960a73d544e1b8c189e53d33" alt="Выбор целевой базы данных" size="lg" border width="2528" height="546" data-path="images/integrations/data-ingestion/clickpipes/postgres/select-destination-db.jpg" />

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

<Warning>
  Если вы задаёте ключ сортировки в ClickHouse иначе, чем на основе первичного ключа в Postgres, не забудьте ознакомиться со всеми [особенностями](/ru/integrations/clickpipes/postgres/ordering-keys), связанными с этим.
</Warning>

8. Кроме того, вы можете указать собственное выражение `PARTITION BY <expr>` для управления [партиционированием таблиц ClickHouse](/ru/partitions).

<Image img="https://mintcdn.com/private-7c7dfe99-vortex-format/mRaTj__cZTg8Xed9/images/integrations/data-ingestion/clickpipes/postgres/partition-by.png?fit=max&auto=format&n=mRaTj__cZTg8Xed9&q=85&s=9cfddaa57fa68c14e7fbffadaa60d490" alt="Partition by" size="lg" border width="897" height="635" data-path="images/integrations/data-ingestion/clickpipes/postgres/partition-by.png" />

<div id="review-permissions-and-start-the-clickpipe">
  ### Проверьте разрешения и запустите ClickPipe
</div>

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

   <Image img="https://mintcdn.com/private-7c7dfe99-vortex-format/mRaTj__cZTg8Xed9/images/integrations/data-ingestion/clickpipes/postgres/ch-permissions.jpg?fit=max&auto=format&n=mRaTj__cZTg8Xed9&q=85&s=a2662830bd8009b779cf6fe6fc55d183" alt="Проверка разрешений" size="lg" border width="1844" height="716" data-path="images/integrations/data-ingestion/clickpipes/postgres/ch-permissions.jpg" />

<div id="whats-next">
  ## Что дальше?
</div>

После того как вы настроите ClickPipe для репликации данных из PostgreSQL в ClickHouse Cloud, можно сосредоточиться на том, как запрашивать и моделировать данные для достижения оптимальной производительности. См. [руководство по миграции](/ru/get-started/migrate/postgres/overview), чтобы оценить, какая стратегия лучше всего соответствует вашим требованиям, а также страницы [Стратегии дедупликации (с использованием CDC)](/ru/integrations/clickpipes/postgres/deduplication) и [Ключи упорядочивания](/ru/integrations/clickpipes/postgres/ordering-keys) с рекомендациями по работе с CDC-нагрузками.

Ответы на распространённые вопросы о CDC в PostgreSQL и устранении неполадок см. на [странице FAQ по Postgres](/ru/integrations/clickpipes/postgres/faq).
