[Документация Yandex Cloud](../../../../index.md) > [Yandex Data Transfer](../../../index.md) > [Пошаговые инструкции](../../index.md) > [Настройка эндпоинтов](../index.md) > Object Storage > Приемник

# Передача данных в эндпоинт-приемник Yandex Object Storage

С помощью сервиса Yandex Data Transfer вы можете переносить данные в хранилище Yandex Object Storage и реализовывать различные сценарии переноса, обработки и трансформации данных. Для реализации трансфера:

1. [Ознакомьтесь с возможными сценариями передачи данных](#scenarios).
1. [Настройте один из поддерживаемых источников данных](#supported-sources).
1. [Настройте эндпоинт-приемник](#endpoint-settings) в Yandex Data Transfer.
1. [Cоздайте](../../transfer.md#create) и [запустите](../../transfer.md#activate) трансфер.
1. Выполняйте необходимые действия по работе с хранилищем и [контролируйте трансфер](../../monitoring.md).
1. При возникновении проблем, [воспользуйтесь готовыми решениями](../../../troubleshooting/index.md) по их устранению.

## Сценарии передачи данных в Yandex Object Storage {#scenarios}

1. Поставка данных — процесс доставки произвольных данных в целевые хранилища. Процесс поставки включает извлечение данных из очереди и их десериализацию с последующей трансформацией данных в формат целевого хранилища.
    
    * [Поставка данных из YDS в Object Storage](../../../tutorials/yds-to-objstorage.md).   

1. Загрузка данных в масштабируемое хранилище Object Storage позволяет удешевить хранение и облегчает обмен данных с контрагентами.
    
    * [Загрузка данных из MySQL® в Object Storage](../../../tutorials/mmy-objs-migration.md);
    * [Загрузка данных из PostgreSQL в Object Storage](../../../tutorials/mpg-to-objstorage.md);
    * [Загрузка данных из OpenSearch в Object Storage](../../../tutorials/opensearch-to-object-storage.md);
    * [Загрузка данных из Managed Service for YDB в Object Storage](../../../tutorials/ydb-to-object-storage.md).

Подробное описание возможных сценариев передачи данных в Yandex Data Transfer читайте в разделе [Практические руководства](../../../tutorials/index.md).

## Настройка источника данных {#supported-sources}

Настройте один из поддерживаемых источников данных:

* [PostgreSQL](../source/postgresql.md)
* [MySQL®](../source/mysql.md)
* [MongoDB](../source/mongodb.md)
* [Apache Kafka®](../source/kafka.md)
* [Airbyte®](../../../transfer-matrix.md#airbyte)
* [YDS](../source/data-streams.md)
* [Oracle](../source/oracle.md)
* [OpenSearch](../source/opensearch.md)

Полный список поддерживаемых источников и приемников в Yandex Data Transfer читайте в разделе [Доступные трансферы](../../../transfer-matrix.md).

{% note warning %}

Object Storage поддерживает только вставку новых данных, но не поддерживает их обновление. Если в источнике происходит обновление данных, он не должен использоваться для поставки данных в Object Storage, иначе трансфер завершится с [ошибкой](#update-not-supported).

{% endnote %}

## Настройка эндпоинта-приемника Object Storage {#endpoint-settings}

При [создании](../index.md#create) или [изменении](../index.md#update) эндпоинта вы можете задать:

* [Настройки подключения](#bucket-config) для бакета Yandex Object Storage или пользовательского S3-совместимого хранилища.
* [Дополнительные параметры](#additional-settings).

### Настройки подключения {#bucket-config}

{% list tabs group=bucket %}

- Бакет Yandex Object Storage {#obj-storage}

    
    * **Бакет** — имя [бакета](../../../../storage/concepts/bucket.md), в который будут загружаться данные из источника.
    * **Сервисный аккаунт** — [сервисный аккаунт](../../../../iam/concepts/users/service-accounts.md) с ролью `storage.uploader`, от имени которого сервис Data Transfer будет подключаться к бакету.


- Пользовательское S3-совместимое хранилище {#s3-storage}

    * **Бакет** — имя бакета, в который будут загружаться данные из источника.
    * **Регион** — регион, в котором хранятся данные.
    * **Эндпоинт** — эндпоинт для сервиса, совместимого с Amazon S3.
    * **Идентификатор статического ключа** и **Содержимое статического ключа** — [идентификатор и содержимое ключа AWS](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys) для доступа к бакету.
    * **Использовать SSL** — выберите, если удаленный сервер использует безопасное соединение SSL/TLS.
    * **Проверять SSL-сертификат** — запретить самоподписанные сертификаты.

{% endlist %}

Если создаваемый эндпоинт и бакет Object Storage лежат в разных каталогах, то при создании в настройках соединения нужно выбрать ручную настройку и указать следующие значения:

  * регион: `ru-central1`;
  * эндпоинт: storage.yandexcloud.kz;
  * включить обе настройки, связанные с использованием SSL.

### Дополнительные настройки {#additional-settings}

* **Префикс пути** — путь в бакете, по которому будут выгружаться данные.

* **Формат данных** — формат, в котором данные будут записаны в бакет: `JSON`, `CSV` или `Parquet`. Подробнее читайте в разделе [Сериализация при поставке в Object Storage](../../../concepts/serializer.md#serializer-s3).

    {% list tabs group=bucket-data-format %}

    - JSON {#json}

         * **Формат сжатия** — алгоритм сжатия выходных данных: `Gzip` или `Без сжатия`.
  
    - CSV {#csv}

         * **Формат сжатия** — алгоритм сжатия выходных данных: `Gzip` или `Без сжатия`.

    - Parquet {#parquet}

         * **Формат сжатия колонок** — алгоритм сжатия блоков данных: `Gzip`, `Snappy` или `Zstd`.
  
         * **Размер группы строк** — параметры разбиения данных на группы. Можно указать максимальное количество строк в группе или максимальный размер группы в байтах. При совместном использовании настроек новая группа будет создаваться, когда хотя бы одно из ограничений будет нарушено.

    {% endlist %}

* **Расширенные настройки писателя** — дополнительные настройки записи выходных файлов:

    {% list tabs group=writer-settings %}

    - Писатель снапшотов {#snapshot}

      *  **Максимальное число записей в одном файле** — если оставить поле пустым, то данные запишутся в один файл.
      *  **Максимальное число байтов в одном файле** — если оставить поле пустым, то данные запишутся в один файл.

    - Писатель репликации {#replication}

      * **Интервал ротации** — значение в секундах, по истечении которого новый файл будет записан. Данные о времени берутся из параметров получаемых сообщений. Значение по умолчанию — 1 час.

    {% endlist %}

После настройки источника и приемника данных [создайте и запустите трансфер](../../transfer.md#create).

## Решение проблем, возникающих при переносе данных {#troubleshooting}

Смотрите полный список рекомендаций в разделе [Решение проблем](../../../troubleshooting/index.md).

### Ошибка при обновлении данных в источнике {#update-not-supported}

Текст ошибки:

```text
Push failed: kind: update not supported
```

Object Storage поддерживает только вставку новых данных, но не поддерживает их обновление. Если в источнике происходит обновление данных, трансфер завершится с ошибкой.

**Решение**: используйте источники, которые поддерживают только вставку данных, или выберите вместо Object Storage другой приемник.