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

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

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


Для YTsaurus доступны два вида эндпоинтов-приемников:

* `YTSaurus Dynamic` — запись данных в [динамические таблицы](https://ytsaurus.tech/docs/ru/user-guide/dynamic-tables/overview);
* `YTSaurus Static` — запись данных в [статические таблицы](https://ytsaurus.tech/docs/ru/user-guide/storage/static-tables).


Для реализации трансфера:

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


## Сценарии передачи данных в YTsaurus с помощью Yandex Data Transfer {#scenarios}

Вы можете реализовывать сценарии загрузки данных из таблиц в управляемые базы данных Yandex Cloud для дальнейшего хранения в облаке, обработки и загрузки в витрины данных для визуализации.

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

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

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

* [Apache Kafka®](../source/kafka.md) (трансфер возможен только в приемник вида `YTSaurus Dynamic`)
* [ClickHouse®](../source/clickhouse.md)
* [Greenplum®](../source/greenplum.md)
* [MongoDB](../source/mongodb.md)
* [MySQL®](../source/mysql.md)
* [PostgreSQL](../source/postgresql.md)
* [Yandex Object Storage](../source/object-storage.md)
* [Oracle](../source/oracle.md)
* [Managed Service for YDB](../source/ydb.md)

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

## Подготовка базы данных приемника {#prepare}

1. Для трансфера в статические таблицы выдайте права на создание и запись в таблицы (разрешение `write` на директорию с таблицами). Если перед трансфером выполняется очистка данных, выдайте разрешение `remove`. Также для трансфера потребуется право `use` на аккаунт, ассоциированный с директорией, в которой будут находиться таблицы.

1. Для трансфера в динамические таблицы, помимо прав `write`, `remove` и `use`, выдайте разрешение на `mount` таблиц.

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

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

* Настройки подключения к [кластеру Yandex Managed Service for YTsaurus](#cluster). Эти параметры обязательные.
* [Расширенные настройки](#additional-settings).

### Поддерживаемые схемы поставок данных и ограничения {#supported-transfers}

| Схемы поставок данных                                             | Уровень поддержки                            | Ограничения                                                                                                                                              |
|-------------------------------------------------------------------|----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|
| Поставка данных в статические таблицы                             | ![image](../../../../_assets/common/yes.svg) | Без трансформации данных (шардирования, ротации или разделения таблицы на подтаблицы).                                                                    |
| Параллельное копирование в статические таблицы                    | ![image](../../../../_assets/common/no.svg)  | В разработке.                                                                                                                        |
| Поставка данных в динамические таблицы через статические          | ![image](../../../../_assets/common/yes.svg) | Все промежуточные операции над частями таблиц производятся нетранзакционно и видны пользователю. Ротация не поддерживается.<br>Ограничения политики очистки `Replace` ^1^. |
| Параллельное копирование в динамические таблицы через статические | ![image](../../../../_assets/common/yes.svg) | Все промежуточные операции над частями таблиц производятся нетранзакционно и видны пользователю. Ротация не поддерживается.<br>Ограничения политики очистки `Replace` ^1^. |
| Копирование напрямую в динамические таблицы | ![image](../../../../_assets/common/yes.svg) | Ограничения политики очистки `Replace` ^1^. |

^1^ Политику очистки `Replace` нельзя применять вместе с ротацией или дополнительными индексами.

{% note warning %}

Для динамических таблиц первичные ключи в данных обязательны. Динамические таблицы YTsaurus хранят данные в формате `ключ:значение`, где ключ и соответствующее ему значение также обязательно должны быть заданы. При отсутствии значения не ключевых колонок будет создана не ключевая колонка-заглушка `__dummy`. При отсутствии первичного ключа трансфер завершится с ошибкой.

{% endnote %}

### Кластер Managed Service for YTsaurus {#cluster}

{% list tabs group=instructions %}

- Консоль управления {#console}

  
  * **Идентификатор сервисного аккаунта** — выберите или [создайте](../../../../iam/operations/sa/create.md) [сервисный аккаунт](../../../../iam/concepts/users/service-accounts.md) с ролью `managed-ytsaurus.editor`, от имени которого сервис Data Transfer будет подключаться к кластеру.
  
  * **Идентификатор кластера** — выберите кластер, к которому необходимо подключиться.
  
  * **Группы безопасности** — выберите:
      * облачную сеть для размещения эндпоинта;
      * [группы безопасности](../../../../vpc/concepts/security-groups.md) для сетевого трафика.
  
      Правила групп безопасности применяются к трансферу. Они позволяют открыть сетевой доступ с ВМ трансфера к кластеру. Подробнее читайте в разделе [Сеть в Yandex Data Transfer](../../../concepts/network.md).

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


  * **Политика очистки** — выберите способ очистки данных в базе-приемнике перед переносом:
    
    * `Drop` — полное удаление таблиц, участвующих в трансфере (вариант по умолчанию). Таблицы будут удалены при запуске трансфера, до начала поставки данных.
    
        Используйте эту опцию, чтобы при любой активации трансфера в базу-приемник всегда передавалась самая последняя версия схемы таблиц из источника.
    
    * `Disabled` — не очищать. Новые данные будут объединены с данными в таблицах, которые уже существуют по заданным путям.
    
        Выберите эту опцию, если будет производиться только репликация без копирования данных.
    
    * `Replace` — данные записываются во временные таблицы, существующие таблицы заменяются новыми после окончания поставки. Старые данные будут доступны до тех пор, пока трансфер не завершит работу. Если трансфер завершится с ошибкой, старые таблицы не будут удалены.

{% endlist %}


### Расширенные настройки {#additional-settings}


#### Настройки для типа базы данных YTSaurus Dynamic

{% list tabs group=instructions %}

- Консоль управления {#console}

    * **Настройки таблицы**:

        * **Медиум** — выберите [вид носителя](https://ytsaurus.tech/docs/ru/user-guide/storage/media), на котором будут храниться данные:
          
          * `HDD (primary_medium=default)` — множество HDD-дисков в кластере;
          * `SSD (primary_medium=ssd_blobs)` — множество SSD-дисков в кластере;
          * `SSD для журналов (primary_medium=ssd_journals)` — множество SSD-дисков для хранения журналов динамических таблиц;
          * `RAM (primary_medium=in_memory)` — выделенное пространство в оперативной памяти узлов кластера.
        * **Формат чанка** — выберите [формат хранения данных в чанке](https://ytsaurus.tech/docs/ru/user-guide/storage/chunks#optimize_for):
          
          * `Поколоночный (optimize_for=scan)` — используется для оптимизации сканирования;
          * `Построчный (optimize_for=lookup)` — используется для оптимизации поиска.
        * **Атомарные транзакции** — включите, если нужно, чтобы для таблиц транзакции были полностью [атомарными](https://ytsaurus.tech/docs/ru/user-guide/dynamic-tables/transactions#atomicity) (свойство `atomicity=full`).
        * **TTL** — укажите срок хранения данных в таблицах. По истечении этого срока данные будут удалены.
        * **Пользовательские атрибуты** — позволяет добавить пользовательские атрибуты для создаваемых таблиц в формате [YSON](https://ytsaurus.tech/docs/ru/user-guide/storage/yson). Для добавления нового атрибута нажмите кнопку **+ Атрибут** и введите его имя и значение.

    * **Настройки процесса записи**:

        * **Не применять изменения схемы** — выберите, чтобы не изменять схему данных на приемнике при изменении ее на источнике. По умолчанию при изменении схемы на источнике трансфер будет автоматически применять изменения схемы в приемнике: создавать новые таблицы, добавлять новые колонки, добавлять новые перечисляемые значения и перечисляемые типы. По умолчанию не применяются такие изменения, как удаление таблиц или колонок.
        * **Отбрасывать большие значения** — включите для игнорирования некритичных данных, не удовлетворяющих ограничениям. Если размер значения колонки нарушает [ограничения YTsaurus](https://ytsaurus.tech/docs/ru/user-guide/dynamic-tables/overview#limitations), это значение будет заменено на `BigStringValueStub`.
        * **Копирование через статическую таблицу** — выберите для выполнения операций копирования через временные статические таблицы.
        * **Вычислительный пул YT** — укажите [вычислительный пул](https://ytsaurus.tech/docs/ru/user-guide/data-processing/scheduler/scheduler-and-pools#puly-i-derevya-pulov), в котором будут запускаться операции над таблицами.

{% endlist %}

#### Настройки для типа базы данных YTSaurus Static

{% list tabs group=instructions %}

- Консоль управления {#console}

    * **Настройки таблицы**:

        * **Формат чанка** — выберите [формат хранения данных в чанке](https://ytsaurus.tech/docs/ru/user-guide/storage/chunks#optimize_for):
          
          * `Поколоночный (optimize_for=scan)` — используется для оптимизации сканирования;
          * `Построчный (optimize_for=lookup)` — используется для оптимизации поиска.
        * **Отсортировать статические таблицы** — включите, если нужно, чтобы [записи таблицы были отсортированы](https://ytsaurus.tech/docs/ru/user-guide/storage/static-tables#sorted_tables) по ключу.
        * **Пользовательские атрибуты** — позволяет добавить пользовательские атрибуты для создаваемых таблиц в формате [YSON](https://ytsaurus.tech/docs/ru/user-guide/storage/yson). Для добавления нового атрибута нажмите кнопку **+ Атрибут** и введите его имя и значение.

    * **Настройки процесса записи**:

        * **Отбрасывать большие значения** — включите для игнорирования некритичных данных, не удовлетворяющих ограничениям. Если размер значения колонки нарушает [ограничения YTsaurus](https://ytsaurus.tech/docs/ru/user-guide/dynamic-tables/overview#limitations), это значение будет заменено на `BigStringValueStub`.
        * **Вычислительный пул YT** — укажите [вычислительный пул](https://ytsaurus.tech/docs/ru/user-guide/data-processing/scheduler/scheduler-and-pools#puly-i-derevya-pulov), в котором будут запускаться операции над таблицами.

{% endlist %}

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