Термины и определения в Data Streams
Поток данных
Поток данных (Stream) — это именованный набор сообщений. Запись и чтение сообщений в Data Streams ведется через потоки. Потоки данных создаются на основе Yandex Managed Service for YDB и хранятся в базах данных.
Сегмент
Для горизонтального масштабирования поток данных разделяется на сегменты (Shard), являющиеся единицами параллелизма. Каждый сегмент имеет ограниченную пропускную способность.
Примечание
В данный момент уменьшение количества сегментов в потоке данных поддерживается только при помощи удаления и повторного создания потока с меньшим количеством сегментов.
Возможна настройка потока данных таким образом, что количество сегментов будет увеличиваться при росте скорости записи в этот поток данных. Подробнее см. автопартиционирование в документации YDB
Ключ сегмента
Для каждого сообщения, которое записывается в поток, указывается ключ сегмента. С помощью хеша ключа сообщение сопоставляется сегменту внутри потока.
Важно
При обновлении количества сегментов потока меняется их распределение по пространству хешей ключей. Сообщения, которые были записаны до обновления количества сегментов, остаются в тех же сегментах и в том же порядке. Новые сообщения будут распределяться по новому количеству сегментов.
Пропускная способность сегмента
Каждый сегмент имеет ограниченную пропускную способность, указываемую пользователем. Максимальная скорость записи данных в один сегмент — 1 МБ/с, максимальная скорость чтения — 2 МБ/с.
Сообщение
Сообщение (Message) — это минимальная неделимая единица пользовательской информации.
Сообщение состоит из тела и дополнительных системных свойств.
Тело сообщения
Тело сообщения представляет собой набор байт. Data Streams никак не интерпретирует тело сообщения.
Порядковый номер сообщения
Во время записи в поток данных каждому сообщению присваивается порядковый номер. Порядковые номера сообщений уникальны внутри одного сегмента и последовательно возрастают.
Время хранения сообщений
Для каждого потока данных определено время хранения сообщений. После истечения времени хранения сообщения автоматически удаляются.
Потребители данных
Потребители данных — это приложения, которые получают и обрабатывают данные из Data Streams. Все потребители данных разделяют общую квоту на чтение.
Выделенные потребители данных
Для некоторых случаев модель общей квоты
Автопартиционирование
Часть данных может потеряться при перегрузке отдельных сегментов или всего потока. Автопартиционирование
Можно включить и настроить автопартиционирование во время или после создания потока данных.
Важно
- Отключить автопартиционирование нельзя.
- Если текущее количество сегментов потока будет автоматически увеличено, его нельзя уменьшить.
- Протокол Apache Kafka® не поддерживает автопартиционирование топиков. Если автопартиционирование включено, работа с потоком данных по протоколу Apache Kafka® невозможна.
Автопартиционирование не тарифицируется отдельно. При тарификации по времени хранения добавление сегментов увеличивает плату за выделенные ресурсы пропорционально числу сегментов.