> ## 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 Cloud

# Запланированное масштабирование

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 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>
            {'Закрытая предварительная версия в ClickHouse Cloud'}
        </div>;
};

<PrivatePreviewBadge />

Сервисы ClickHouse Cloud автоматически масштабируются в зависимости от загрузки CPU и памяти, но для многих рабочих нагрузок характерны предсказуемые паттерны — ежедневные всплески ингестии, батч-задачи, выполняемые по ночам, или резкое падение трафика по выходным. Для таких сценариев запланированное масштабирование позволяет точно определить, когда ваш сервис должен масштабироваться вверх или вниз, независимо от метрик в реальном времени.

С помощью запланированного масштабирования вы настраиваете набор правил по времени прямо в консоли ClickHouse Cloud. Каждое правило задаёт время, периодичность (ежедневно, еженедельно или по пользовательскому расписанию) и целевой размер — либо число реплик (горизонтальное масштабирование), либо уровень памяти (вертикальное масштабирование). В назначенное время ClickHouse Cloud автоматически применяет изменение, чтобы сервис был масштабирован должным образом ещё до роста нагрузки, а не реагировал на неё постфактум.

Это отличается от автомасштабирования на основе метрик, которое динамически реагирует на нагрузку CPU и памяти. Запланированное масштабирование детерминировано: вы точно знаете, когда произойдёт масштабирование и до какого размера. Эти два подхода дополняют друг друга — у сервиса может быть базовое расписание масштабирования, и при этом он всё равно может выигрывать от автомасштабирования в этих рамках, если рабочая нагрузка неожиданно меняется.

Сейчас запланированное масштабирование доступно в **закрытой предварительной версии**. Чтобы включить эту возможность для вашей организации, свяжитесь с командой поддержки ClickHouse.

<div id="setting-up-a-scaling-schedule">
  ## Настройка расписания масштабирования
</div>

Чтобы настроить расписание, перейдите к своему сервису в консоли ClickHouse Cloud и откройте настройки. Затем выберите **Schedule Override** и добавьте новое правило.

<Image img="https://mintcdn.com/private-7c7dfe99/A68-kVUDkVcT2W3b/images/cloud/features/autoscaling/scheduled-scaling-1.webp?fit=max&auto=format&n=A68-kVUDkVcT2W3b&q=85&s=43502e6f556d61f68ff3ae611e307f2d" size="md" alt="Интерфейс Scaling Schedules в консоли ClickHouse Cloud с правилами масштабирования по времени" border width="748" height="1606" data-path="images/cloud/features/autoscaling/scheduled-scaling-1.webp" />

<Image img="https://mintcdn.com/private-7c7dfe99/A68-kVUDkVcT2W3b/images/cloud/features/autoscaling/scheduled-scaling-2.webp?fit=max&auto=format&n=A68-kVUDkVcT2W3b&q=85&s=dccf2cb765b3abb93d4e0da2e12ace95" size="md" alt="Настройка правила запланированного масштабирования в консоли ClickHouse Cloud" border width="938" height="534" data-path="images/cloud/features/autoscaling/scheduled-scaling-2.webp" />

Для каждого правила нужно указать:

* **Время:** когда должно выполняться действие масштабирования (в вашем местном часовом поясе)
* **Повторение:** как часто повторяется правило (например, каждый будний день или каждое воскресенье)
* **Целевой размер:** количество реплик или объём памяти, до которого нужно масштабировать

Несколько правил можно объединить в полное недельное расписание. Например, можно увеличивать число реплик до 5 каждый будний день в 6:00 утра, а в 20:00 уменьшать его обратно до 2.

<div id="use-cases">
  ## Сценарии использования
</div>

**Батч- и ETL-нагрузки:** Увеличивайте масштаб перед запуском ночной задачи по приёму данных и уменьшайте его после её завершения, чтобы избежать избыточного выделения ресурсов в дневные часы простоя.

**Предсказуемые паттерны трафика:** Сервисы со стабильными периодами пиковой нагрузки (например, с трафиком запросов в рабочие часы) можно заранее масштабировать под ожидаемую нагрузку, а не ждать, пока среагирует автомасштабирование.

**Уменьшение масштаба на выходных:** Снижайте число реплик или уровень памяти на выходных, когда спрос ниже, а затем восстанавливайте ресурсы перед утренним всплеском в понедельник.

**Контроль затрат:** Для команд, контролирующих затраты на ClickHouse Cloud, запланированное уменьшение масштаба в периоды заведомо низкой нагрузки может заметно сократить потребление ресурсов без какого-либо ручного вмешательства.

<Note>
  Действие запланированного масштабирования и одновременная рекомендация по автомасштабированию могут взаимодействовать — в момент срабатывания приоритет у расписания.
</Note>

<div id="handling-bursty-workloads">
  ## Обработка всплесков рабочей нагрузки
</div>

Если вы ожидаете всплеск рабочей нагрузки, можно использовать
[ClickHouse Cloud API](/docs/ru/products/cloud/features/admin-features/api/api-overview), чтобы
заранее увеличить масштаб сервиса, а после снижения нагрузки — уменьшить его.

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

```sql theme={null}
SELECT *
FROM clusterAllReplicas('default', view(
    SELECT
        hostname() AS server,
        anyIf(value, metric = 'CGroupMaxCPU') AS cpu_cores,
        formatReadableSize(anyIf(value, metric = 'CGroupMemoryTotal')) AS memory
    FROM system.asynchronous_metrics
))
ORDER BY server ASC
SETTINGS skip_unavailable_shards = 1
```
