> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Синхронизация с ClickHouse с помощью WalShadow

> Репликация данных Postgres в ClickHouse с помощью WalShadow — нативного движка репликации, который читает данные напрямую из WAL PostgreSQL

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

export const PrivatePreviewBadge = () => {
  return <div className="privatePreviewBadge">
            <div className="privatePreviewIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M5.33301 6.66667V4.66667V4.66667C5.33301 3.194 6.52701 2 7.99967 2V2C9.47234 2 10.6663 3.194 10.6663 4.66667V4.66667V6.66667" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path d="M8.00033 9.33337V11.3334" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path fillRule="evenodd" clipRule="evenodd" d="M11.333 14H4.66634C3.92967 14 3.33301 13.4033 3.33301 12.6666V7.99996C3.33301 7.26329 3.92967 6.66663 4.66634 6.66663H11.333C12.0697 6.66663 12.6663 7.26329 12.6663 7.99996V12.6666C12.6663 13.4033 12.0697 14 11.333 14Z" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            {'Закрытая предварительная версия'}
        </div>;
};

<PrivatePreviewBadge />

`WalShadow` — это нативный движок репликации для ClickHouse Managed Postgres, который читает данные напрямую из журнала предзаписи PostgreSQL (Write-Ahead Log, WAL). Он оптимизирован для рабочих нагрузок с низкой задержкой и высокой пропускной способностью и обеспечивает отставание репликации из Postgres в ClickHouse менее одной секунды. Разработка ведётся открыто в репозитории [ClickHouse/walshadow](https://github.com/ClickHouse/walshadow).

`WalShadow` — один из двух методов репликации, доступных в разделе **Sync to ClickHouse**. Второй, [ClickPipes](/docs/ru/cloud/managed-postgres/clickpipes), представляет собой полностью управляемый конвейер данных. Выбирайте `WalShadow`, если вам нужна минимальная задержка и минимальные накладные расходы на репликацию.

Если `WalShadow` доступен для вашего сервиса, на странице **Overview** отображается баннер **закрытая предварительная версия**. Нажмите **Configure WalShadow**, чтобы начать работу.

<Image img="https://mintcdn.com/private-7c7dfe99/1IUPNo0kgSNuyelj/images/managed-postgres/walshadow/overview-banner.webp?fit=max&auto=format&n=1IUPNo0kgSNuyelj&q=85&s=868266fa6f2514dcdbdaef9696e53327" alt="Страница обзора сервиса Postgres с баннером закрытой предварительной версии WalShadow и ссылками Learn more и Configure WalShadow" size="md" border width="3680" height="2392" data-path="images/managed-postgres/walshadow/overview-banner.webp" />

<Note>
  Прежде чем продолжить, убедитесь, что ваш сервис Postgres доступен для ClickHouse. `WalShadow` подключается к целевому сервису ClickHouse напрямую, поэтому вам понадобятся пользователь ClickHouse и пароль с разрешением на создание баз данных и таблиц.
</Note>

Чтобы настроить репликацию, нажмите **Sync to ClickHouse** на боковой панели вашего экземпляра Postgres, а затем — **Replicate data in ClickHouse**.

<Image img="https://mintcdn.com/private-7c7dfe99/1IUPNo0kgSNuyelj/images/managed-postgres/walshadow/sync-landing.webp?fit=max&auto=format&n=1IUPNo0kgSNuyelj&q=85&s=5932d900f2bd6438fa1ce524a3bc7979" alt="Страница Sync to ClickHouse с методами репликации ClickPipes и WalShadow" size="md" border width="3680" height="2392" data-path="images/managed-postgres/walshadow/sync-landing.webp" />

<Steps>
  <Step title="Выберите движок репликации" id="select-replication-engine">
    Выберите **WalShadow** в качестве движка репликации, затем нажмите **Next**.

    <Image img="https://mintcdn.com/private-7c7dfe99/1IUPNo0kgSNuyelj/images/managed-postgres/walshadow/select-engine.webp?fit=max&auto=format&n=1IUPNo0kgSNuyelj&q=85&s=4c8138e85677394c695cc11a9455730b" alt="Шаг выбора движка репликации с вариантами ClickPipes и WalShadow, выбран WalShadow" size="md" border width="3680" height="2392" data-path="images/managed-postgres/walshadow/select-engine.webp" />
  </Step>

  <Step title="Настройте сервис репликации" id="configure-replication-service">
    Заполните настройки репликации:

    * **ClickHouse service**: выберите существующий сервис ClickHouse или создайте новый
    * **Postgres database**: выберите исходную базу данных, из которой будет выполняться репликация, или создайте новую
    * **Replication method**: выберите один из вариантов:
      * **Initial load + CDC**: импортировать существующие данные и поддерживать таблицы в актуальном состоянии по мере поступления новых изменений (рекомендуется)
      * **Initial load only**: разовый импорт существующих данных без дальнейших обновлений
      * **CDC only**: пропустить первоначальный импорт и фиксировать только новые изменения

    <Image img="https://mintcdn.com/private-7c7dfe99/1IUPNo0kgSNuyelj/images/managed-postgres/walshadow/configure-service.webp?fit=max&auto=format&n=1IUPNo0kgSNuyelj&q=85&s=df2a577cb52e60eefc1fca5f887492f6" alt="Шаг настройки сервиса репликации с параметрами сервиса ClickHouse, базы данных Postgres и метода репликации" size="md" border width="3680" height="2392" data-path="images/managed-postgres/walshadow/configure-service.webp" />

    Нажмите **Next**, чтобы продолжить.
  </Step>

  <Step title="Выберите таблицы для репликации" id="select-tables">
    Выберите целевую базу данных и укажите, какие таблицы репликовать:

    * **Destination database**: выберите существующую базу данных ClickHouse или создайте новую
    * **Tables**: разверните каждую схему и выберите отдельные таблицы либо включите переключатель **Select all tables**. Для каждой таблицы можно задать **Destination table name** и изменить **Column settings**.
    * **ClickHouse user** и **ClickHouse password**: `WalShadow` подключается к целевому сервису ClickHouse напрямую, поэтому ему нужны учётные данные с разрешением на создание целевой базы данных и таблиц.

    <Image img="https://mintcdn.com/private-7c7dfe99/1IUPNo0kgSNuyelj/images/managed-postgres/walshadow/select-tables.webp?fit=max&auto=format&n=1IUPNo0kgSNuyelj&q=85&s=03d6e3f80a706c99f2082408ba3e7832" alt="Шаг выбора таблиц с выбором схемы и таблиц, именами целевых таблиц и учётными данными ClickHouse" size="md" border width="3680" height="2392" data-path="images/managed-postgres/walshadow/select-tables.webp" />

    Нажмите **Replicate data to ClickHouse**, чтобы начать репликацию.
  </Step>

  <Step title="Мониторинг WalShadow" id="monitor-walshadow">
    После запуска репликации `WalShadow` появляется на странице **Sync to ClickHouse**. Пока конвейер разворачивается и готовится первоначальная загрузка, его статус — **Creating**.

    <Image img="https://mintcdn.com/private-7c7dfe99/1IUPNo0kgSNuyelj/images/managed-postgres/walshadow/walshadow-creating.webp?fit=max&auto=format&n=1IUPNo0kgSNuyelj&q=85&s=caead405c1e77d03f529034584be0289" alt="Страница Sync to ClickHouse, на которой WalShadow находится в состоянии Creating" size="md" border width="3680" height="2392" data-path="images/managed-postgres/walshadow/walshadow-creating.webp" />

    После завершения развёртывания статус меняется на **Running**. На странице отображаются актуальные метрики репликации:

    * **Status**: текущее состояние конвейера (например, `Running`)
    * **Rows synced**: общее количество строк, реплицированных в ClickHouse
    * **Backfills pending**: количество таблиц, ожидающих первоначальной загрузки
    * **Lag**: объём данных WAL, которые ещё предстоит применить
    * **Lag time**: насколько пункт назначения сейчас отстаёт от Postgres
    * **Uptime**: как долго работает конвейер
    * **Last updated**: когда метрики обновлялись последний раз

    <Image img="https://mintcdn.com/private-7c7dfe99/1IUPNo0kgSNuyelj/images/managed-postgres/walshadow/walshadow-running.webp?fit=max&auto=format&n=1IUPNo0kgSNuyelj&q=85&s=2bb2a79206e83ac4ef801f944b97602f" alt="Страница Sync to ClickHouse, на которой WalShadow находится в состоянии Running с метриками синхронизированных строк, отставания и времени работы" size="md" border width="3680" height="2392" data-path="images/managed-postgres/walshadow/walshadow-running.webp" />
  </Step>
</Steps>

<h2 id="caveats">
  Ограничения
</h2>

Несколько моментов, которые следует учитывать, пока `WalShadow` находится в статусе закрытой предварительной версии:

* Пока поддерживается только один `WalShadow` на сервис Postgres.
* Операции и более детальные метрики запланированы в roadmap.
