TDB Documentation portal logo
Помощь
Обновлена 30 июня 2026 г. в 07:00

Запись и получение бинарных данных

В этом руководстве показано, как записать бинарные данные в шардированный спейс с помощью модуля CRUD, а затем прочитать записанные файлы.

Для хранения бинарных данных используйте тип string или varbinary. Эти типы имеют одинаковые представления в виде байтов, различается только заголовок MsgPack. При использовании сериализации типы string и varbinary позволяют определить, в каком формате сериализовать данные при отдаче клиенту. Самый эффективный способ передачи данных клиенту — передать значение через коннектор без конвертации.

Содержание:

Пререквизиты

Для выполнения примера требуются:

  • установленный Docker-образ Tarantool DB;

  • приложение Docker Compose;

  • Go;

  • исходные файлы примера binary_data.

Запуск стенда и подключение к узлу

Для успешного запуска должны быть свободны следующие порты:

  • 2379
  • 3301--3308
  • 8081, 8082

Перейдите в папку с примером binary_data:

cd ./docs/docs/ru/assets/examples/binary_data/

Запустите стенд:

make start

Команда развернет стенд, который состоит из:

  • кластера Tarantool DB:
    • 2 роутера;
    • 2 набора реплик по 3 хранилища;
  • кластера etcd из 3 узлов;
  • 1 узла Tarantool Cluster Manager (TCM).

После запуска должны работать все контейнеры, кроме init_host.

Также после запуска кластера становится доступен веб-интерфейс TCM. Для входа в TCM откройте в браузере адрес http://localhost:8081. Логин и пароль для входа:

  • Username: admin
  • Password: secret

В TCM откройте вкладку Tuples. Убедитесь, что в списке есть спейс my_files.

Запись бинарных данных

Чтобы продемонстрировать запись бинарных данных в шардированный спейс, в примере используется приложение на языке Go.

Откройте вторую вкладку локального терминала и перейдите в директорию с приложением:

cd ./docs/docs/ru/assets/examples/binary_data/go

Запустите Go-приложение:

go run main.go

Программа читает все файлы из папки go/images и записывает их в Tarantool DB с помощью модуля CRUD. Чтобы проверить записанные данные, в TCM перейдите на вкладку Tuples и выберите в списке спейс my_files. Откроется новая вкладка с содержимым кортежей спейса my_files.

Чтение бинарных данных

Запущенная Go-программа является также веб-сервером, слушающим порт 8082. По запросу в браузере программа получает из запроса запрашиваемое имя файла. После этого по имени файла выполняется запрос в базу данных. Бинарные данные, которые извлечены при этом из базы данных, отображаются браузером в качестве картинки согласно прикреплённому заголовку. Пример запроса:

http://localhost:8082/Dunkan.jpg

Размер бинарных данных

Если размер бинарных данных большой, увеличьте максимально возможный размер кортежа перед запуском экземпляра. Задать такой размер можно с помощью переменной окружения TT_MEMTX_MAX_TUPLE_SIZE.

Остановка стенда

Для остановки стенда:

  • В первом локальном терминале выполните следующую команду:
make stop
  • Во втором локальном терминале выполните команду Ctrl + Z.