Запись в топик
Командой topic write выполняется запись сообщений в топик из файла или stdin:
ydb [connection options] topic write <topic-path> \
[--file STR] [--format STR] [--transform STR] \
[дополнительные параметры...]
, где [connection options] — опции соединения с БД
Параметры
Основные параметры
<topic-path> : Путь топика, единственный обязательный параметр
--file VAL (-f VAL): Читать поток входящих сообщений для записи в топик из указанного файла. Если не указан -- чтение производится из stdin.
--format STR: Формат потока входящих сообщений. Поддерживаемые форматы:
| Имя | Описание |
|---|---|
single-message(по умолчанию) |
Все содержимого потока на входе рассматривается как одно сообщение для записи в топик |
newline-delimited |
Поток на входе содержит множество сообщений, разделенных символом перевода строки 0x0A |
--transform VAL: Метод преобразования сообщений
-
Значение по умолчанию —
none -
Возможные значения:
base64— выполнить декодирование каждого сообщения из Base64 на входном потоке, записать результат декодирования в топик. Если декодирование не удалось, исполнение команды будет прервано с ошибкой.
none— не выполнять преобразований, записать в топик содержимое сообщения из входного потока побайтово
Дополнительные параметры
| Имя | Описание |
|---|---|
--delimiter STR |
Байт-разделитель. Поток на входе разделяется на сообщения указанным байтом. Может быть задан только в случае, если не указан --format. Задается в виде экранированной строки. |
--message-group-id STR |
Строковой идентификатор группы сообщений. Если не указан, то все сгенерированные из входного потока сообщения получат одинаковое значение идентификатора, представляющее собой шестнадцатеричное строковое представление случайного трехбайтового целого числа. |
--codec STR |
Кодек, используемый для сжатия сообщений на клиенте перед отправкой на сервер. Возможные варианты: RAW (по умолчанию) - без сжатия, GZIP, ZSTD. Сжатие увеличивает затраты CPU на клиенте при записи и чтении сообщений, но обычно позволяет уменьшить объем передаваемых по сети и хранимых данных. При последующем чтении сообщений подписчиками они автоматически расжимаются использованным при записи кодеком, не требуя указания каких-либо специальных опций. Указанный кодек должен быть перечислен среди допустимых в параметрах топика. |
Примеры
Примечание
В примерах используется профиль quickstart, подробнее смотрите в Создание профиля для соединения с тестовой БД.
Все примеры используют имя топика topic1.
-
Запись ввода с терминала в одно сообщение. После запуска команды можно ввести произвольный многострочный текст, завершив ввод нажатием
Ctrl+D.ydb -p quickstart topic write topic1 -
Запись содержимого бинарного файла
message.binв одно сообщение с использованием сжатия кодеком GZIPydb -p quickstart topic write topic1 -f message.bin --codec GZIP -
Запись содержимого строкового файла
example.txtс разделением на сообщения по строкамydb -p quickstart topic write topic1 -f example.txt --format newline-delimited -
Запись скачивамого по протоколу HTTP ресурса с разделением на сообщения символами табуляции
curl http://example.com/resource | ydb -p quickstart topic write topic1 --delimiter "\t"