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 в виде числа). Значение по умолчанию —0(чтение с самого раннего доступного в топике времени).
Следующая команда добавит к топику читателя с настройками по умолчанию:
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;