CREATE TOPIC

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

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

CREATE TOPIC topic_path (
    CONSUMER consumer_name [WITH (consumer_option = value[, ...])]
    ) WITH (topic_option = value[, ...]);
  • consumer_option — параметр читателя;
  • topic_option — параметр топика.

Все параметры команды, кроме topic_path не обязательны. По умолчанию топик создается без читателей. Все
не указанные явно параметры также выставляются по умолчанию (и для топика, и для читателя).

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

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

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

  • 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режим автопартиционирования.
    Допустимые значения: disabled, paused, scale_up, значение по умолчанию — disabled.
  • auto_partitioning_up_utilization_percent — определяет порог загрузки партиции в процентах от максимальной скорости записи, при достижении которого будет инициировано автоматическое увеличение числа партиций. Тип значения — integer, значение по умолчанию — 80.
  • auto_partitioning_stabilization_window — определяет временной интервал, в течение которого уровень нагрузки должен оставаться выше установленного порога (auto_partitioning_up_utilization_percent), прежде чем будет выполнено автоматическое увеличение количества партиций. Тип значения — Interval, значение по умолчанию — 5m.

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

CREATE TOPIC `my_topic`;

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

CREATE TOPIC `my_topic` (
    CONSUMER my_consumer WITH (important = true)
) WITH (
    retention_period = Interval('P1D')
);
Следующая