Запись данных в Yandex Object Storage
В Yandex Query для записи данных в бакет Yandex Object Storage можно использовать соединения или привязки к данным.
Пример записи данных в формате JSON
с использованием привязки к данным:
INSERT INTO `my_binding`
SELECT
"value" AS value, "name" AS name
FROM
$data;
Список поддерживаемых форматов и алгоритмов сжатия данных приведен в разделе Поддерживаемые форматы записи.
Запись данных через соединение
Запись данных с помощью соединений удобно использовать для прототипирования и первоначальной настройки работы с записью данных. Для записи данных в бакет создайте соединение к Object Storage и используйте SQL-выражение:
INSERT INTO <соединение>.<путь>
WITH
(
format='<формат_данных>',
compression='<формат_сжатия>'
)
SELECT
<выражение>
FROM
<запрос>
Где:
<соединение>
— название соединения с Object Storage.<путь>
— путь внутри бакета, куда будут записаны данные.<запрос>
— запрос-источник данных Query.
Пример
Пример запроса для записи данных в Object Storage с использованием соединения:
INSERT INTO `connection`.`test/`
WITH
(
format='csv_with_names'
)
SELECT
"value" AS value, "name" AS name
Где:
connection
— название соединения с Object Storage.test/
— путь внутри бакета, куда будут записаны данные.
Запись данных через привязки к данными
Если записывать данные нужно регулярно, то удобно делать это с помощью привязок к данным. При этом нет необходимости указывать все детали работы с этими данными в каждом запросе. Для записи данных в бакет создайте привязку к данным в Object Storage и используйте SQL-выражение:
INSERT INTO `<привязка>`
SELECT
<выражение>
FROM
<запрос>
Где:
<привязка>
— название привязки к данным в Object Storage.<запрос>
— запрос-источник данных Query.
Пример
Пример запроса для записи данных в Object Storage c помощью привязок к данным:
INSERT INTO `test`
SELECT
"value" AS value, "name" AS name
Где:
test
— название привязки к данным в Object Storage.
Поддерживаемые форматы записи
В настоящий момент поддерживается запись в следующих форматах:
Формат данных | Название в Query |
---|---|
CSV |
csv_with_names |
Parquet |
parquet |
В Query поддерживаются следующие алгоритмы сжатия данных для записи:
Формат сжатия | Название в Query |
---|---|
Gzip |
gzip |
Zstd |
zstd |
LZ4 |
lz4 |
Brotli |
brotli |
Bzip2 |
bzip2 |
Xz |
xz |
Формат файлов parquet
поддерживает собственные внутренние алгоритмы сжатия. Query позволяет записывать данные в формате parquet
с использованием следующих алгоритмов сжатия:
Формат сжатия | Название в Query |
---|---|
Snappy |
Без названия, по умолчанию |