Запись данных в бакеты S3 (Yandex Object Storage)

В YDB для записи данных в бакет Yandex Object Storage можно использовать внешние соединения или внешние таблицы.

Запись данных через внешнее соединение

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

INSERT INTO `connection`.`test/`
WITH
(
  FORMAT = "csv_with_names"
)
SELECT
    "value" AS value, "name" AS name

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

При работе с внешними соединениями возможны только операции чтения (SELECT) и вставки (INSERT) данных, другие виды операций не поддерживаются.

Запись данных через внешние таблицы

Если записывать данные нужно регулярно, то удобно делать это с помощью внешних таблиц. При этом нет необходимости указывать все детали работы с этими данными в каждом запросе. Для записи данных в бакет создайте внешнюю таблицу в S3 (Yandex Object Storage) и используйте обычное SQL-выражение INSERT INTO:

INSERT INTO `test`
SELECT
    "value" AS value, "name" AS name