Запись в топик
Командой 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"