ALTER TOPIC

С помощью оператора ALTER TOPIC можно изменить настройки топика, а также добавить, изменить или удалить читателя.

Общий вид команды:

ALTER TOPIC topic_path action1, action2, ..., actionN;
  • action — действие по изменению. Возможные действия описаны ниже.

Работа с топиком

Задать параметры топика

SET (option = value[, ...]) — действие задает параметры топика.

Общий вид команды:

ALTER TOPIC topic_path SET (option = value[, ...]);
  • option и value — параметр топика и его значение.

Параметры топика:

  • metering_mode — способ метеринга ресурсов (RESERVED_CAPACITY - по выделенным ресурсам или REQUEST_UNITS - по фактическому использованию). Актуально для топиков в serverless базах данных. Тип значения - String.
  • min_active_partitions — минимальное количество активных партиций топика. Автопартиционирование не будет уменьшать количество активных партиций ниже этого значения. Тип — integer, значение по умолчанию — 1.
  • max_active_partitions — максимальное количество активных партиций топика. Автопартиционирование не будет увеличивать количество активных партиций выше этого значения. Тип — integer, по умолчанию равно min_active_partitions.
  • retention_period — время хранения данных в топике. Тип значения — Interval, значение по умолчанию — 18h.
  • retention_storage_mb — ограничение на максимальное место на диске, занимаемое данными топика. При превышении этого значения старые данные будут удаляться, как по retention. Тип значения — integer, значение по умолчанию — 0 (не ограничено).
  • partition_write_burst_bytes — размер запаса квоты на запись в партицию на случай всплесков записи. При выставлении в 0 фактическое значение write_burst принимается равным значению квоты (что позволяет всплески записи длительностью до 1 секунды). Тип значения — integer, значение по умолчанию: 0.
  • partition_write_speed_bytes_per_second — максимальная разрешенная скорость записи в 1 партицию. Если поток записи в партицию превысит это значение, запись будет квотироваться. Тип значения — integer, значение по умолчанию — 2097152 (2 МБ).
  • auto_partitioning_strategyрежим автопартиционирования.
    Допустимые значения: paused, scale_up, значение по умолчанию — disabled.
  • auto_partitioning_up_utilization_percent — определяет порог загрузки партиции в процентах от максимальной скорости записи, при достижении которого будет инициировано автоматическое увеличение числа партиций. Тип значения — integer, значение по умолчанию — 80.
  • auto_partitioning_stabilization_window — определяет временной интервал, в течение которого уровень нагрузки должен оставаться выше установленного порога (auto_partitioning_up_utilization_percent), прежде чем будет выполнено автоматическое увеличение количества партиций. Тип значения — Interval, значение по умолчанию — 5m.

Следующая команда изменит время хранения данных в топике и квоту на скорость записи в 1 партицию:

ALTER TOPIC `my_topic` SET (
    retention_period = Interval('PT36H'),
    partition_write_speed_bytes_per_second = 3000000
);

Включение и приостановка автопартиционирования

Следующая команда включает автопартиционирование:

ALTER TOPIC `my_topic` SET (
    min_active_partitions = 1,
    max_active_partitions = 5,
    auto_partitioning_strategy = 'scale_up'
);

Следующая команда ставит автопартиционирование на паузу:

ALTER TOPIC `my_topic` SET (
    auto_partitioning_strategy = 'paused'
);

Следующая команда снимает автопартиционирование с паузы:

ALTER TOPIC `my_topic` SET (
    auto_partitioning_strategy = 'scale_up'
);

Работа с читателем

Добавить читателя

ADD CONSUMER — действие добавляет читателей для топика.

Общий вид команды:

ALTER TOPIC topic_path ADD CONSUMER consumer_name [WITH (option = value[, ...])];
  • option и value — параметр читателя и его значение.

Параметры читателя:

  • important— определяет важного читателя. Никакие данные из топика не будут удалены, пока все важные читатели их не прочитали. Тип значения — boolean, значение по умолчанию: false.
  • read_from— определяет момент времени записи сообщений, начиная с которого читатель будет получать данные. Данные, записанные ранее этого момента, прочитаны не будут. Тип значения: Datetime ИЛИ Timestamp или integer (unix-timestamp в виде числа). Значение по умолчанию — now

Следующая команда добавит к топику читателя с настройками по умолчанию:

ALTER TOPIC `my_topic` ADD CONSUMER my_consumer;

Следующая команда добавит к топику важного читателя:

ALTER TOPIC `my_topic` ADD CONSUMER my_consumer2 WITH (important = true);

Задать параметры читателя

ALTER CONSUMER consumer_name SET (option = value[, ...]) — действие задает параметры читателя топика.

Общий вид команды:

ALTER TOPIC topic_path ALTER CONSUMER consumer_name SET (option = value[, ...]);
  • option и value — параметр читателя и его значение.

Следующая команда сделает читателя важным:

ALTER TOPIC `my_topic` ALTER CONSUMER my_consumer SET (important = true);

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

ALTER TOPIC `my_topic`
    ALTER CONSUMER my_consumer SET (important = true)
    ALTER CONSUMER my_consumer SET (read_from = 0);

Удалить читателя

DROP CONSUMER — действие удаляет читателя топика.

Общий вид команды:

ALTER TOPIC topic_path DROP CONSUMER consumer_name;

Следующая команда удалит читателя с именем old_consumer:

ALTER TOPIC `my_topic` DROP CONSUMER old_consumer;
Предыдущая
Следующая