Передача данных из эндпоинта-источника Yandex Object Storage
Примечание
Эта функциональность находится на стадии Preview.
С помощью сервиса Yandex Data Transfer вы можете переносить данные из хранилища Yandex Object Storage в управляемые базы данных Yandex Cloud и реализовывать различные сценарии обработки и трансформации данных. Для реализации трансфера:
- Ознакомьтесь с возможными сценариями передачи данных.
- Настройте эндпоинт-источник в Yandex Data Transfer.
- Настройте один из поддерживаемых приемников данных.
- Cоздайте и запустите трансфер.
- Выполняйте необходимые действия по работе с хранилищем и контролируйте трансфер.
- При возникновении проблем, воспользуйтесь готовыми решениями по их устранению.
Сценарии передачи данных из Object Storage
Вы можете реализовывать сценарии миграции и поставки данных из хранилища Yandex Object Storage в управляемые базы данных для дальнейшего хранения в облаке, обработки и загрузки в витрины данных с целью последующей визуализации.
Загрузка данных в витрины — процесс трансфера подготовленных данных в хранилища с целью последующей визуализации.
- Загрузка данных из Object Storage в PostgreSQL;
- Загрузка данных из Object Storage в Greenplum®;
- Загрузка данных из Object Storage в MySQL®;
- Загрузка данных из Object Storage в ClickHouse®;
- Загрузка данных из Object Storage в YDB.
Подробное описание возможных сценариев передачи данных в Yandex Data Transfer см. в разделе Практические руководства.
Настройка эндпоинта-источника Object Storage
При создании или изменении эндпоинта вы можете задать:
- Настройки конфигурации и очереди событий для бакета Yandex Object Storage или пользовательского S3-совместимого хранилища.
- Дополнительные параметры.
Настройки конфигурации бакета
-
Бакет — имя бакета.
-
Сервисный аккаунт – выберите из списка сервисный аккаунт с доступом к бакету.
-
(Опционально) Префикс пути — префикс для каталогов и файлов, которые можно использовать для поиска по бакету.
-
Шаблон пути — укажите шаблон пути. Если в бакете размещаются только файлы, используйте значение
**
.
- Бакет — имя бакета.
- Идентификатор статического ключа и Содержимое статического ключа — идентификатор и содержимое ключа AWS
для доступа к частному бакету. - (Опционально) Эндпоинт — эндпоинт для службы, совместимой с Amazon S3. Оставьте поле пустым для использования Amazon.
- Регион — регион для отправки запросов.
- Использовать SSL — выберите, если удаленный сервер использует безопасное соединение SSL/TLS.
- Проверять SSL-сертификат — разрешить самоподписанные сертификаты.
- (Опционально) Префикс пути — префикс для каталогов и файлов, которые можно использовать для поиска по бакету.
- Шаблон пути — укажите шаблон пути. Если в бакете размещаются только файлы, используйте значение
**
.
Конфигурация очереди событий
- Имя очереди — имя очереди, настроенной в бакете S3, для получения событий
s3:ObjectCreated
. - Идентификатор аккаунта владельца очереди — идентификатор аккаунта AWS для аккаунта, создавшего очередь. Оставьте поле пустым, если бакет S3 и очередь созданы в одном и том же аккаунте.
- Идентификатор статического ключа — идентификатор ключа AWS, используемый как часть учетных данных для чтения из очереди SQS. Оставьте поле пустым, если можно использовать те же учетные данные, что и для бакета S3.
- Содержимое статического ключа — cекрет AWS, используемый как часть учетных данных для чтения из очереди SQS. Оставьте пустым, если можно использовать те же учетные данные, что и для бакета S3.
- Эндпоинт — эндпоинт для S3-совместимого сервиса. Оставьте поле пустым, чтобы использовать AWS.
- Регион — регион AWS для отправки запросов. Оставьте поле пустым, если он совпадает с регионом бакета.
- Использовать SSL — выберите, если удаленный сервер использует безопасное соединение SSL/TLS.
- Проверять SSL-сертификат — разрешить самоподписанные сертификаты.
Дополнительные настройки
Формат данных
- Разделитель — символ-разделитель.
- Символ кавычек — символ для обозначения начала и конца строки.
- Символ отмены — Еscape-символ, используемый для экранирования специальных символов.
- Кодировка — кодировка
. - Двойные кавычки — выберите, чтобы заменять двойные кавычки на одинарные.
- Разрешить перенос строк в значениях — выберите, если значения текстовых данных могут содержать символы переноса строки.
- Размер блока — максимальная длина части файла, размещаемой в памяти во время чтения.
- Расширенные настройки — необходимые CSV ConvertOptions
для редактирования. Указываются в виде JSON-строки. - Дополнительные возможности чтения — необходимые CSV ReadOptions
для редактирования. Указываются в виде JSON-строки.
- Разрешить перенос строк в значениях — разрешить использовать символы новой строки в значениях JSON. Использование этого параметра может повлиять на производительность. Оставьте пустым, чтобы по умолчанию было установлено значение
FALSE
. - Неожиданное поведение поля — метод обработки полей JSON за пределами
explicit_schema
(если указано). См. документацию PyArrow . - Размер блока — размер фрагмента в байтах для одновременной обработки в памяти каждого файла. Если объем данных большой, и не удается обнаружить схему, увеличение этого значения должно решить проблему. Слишком большое значение может привести к ошибкам OOM.
- Дескриптор protobuf — загрузите файл-дескриптор.
- Тип упаковки protobuf-сообщений — укажите способ упаковки сообщений:
Protoseq
— последовательность целевых сообщений с разделителем;Repeated
— целевое сообщение находится в полеrepeated
единственного сообщения-обертки;Single message
— единственное целевое сообщение;
- Имя protobuf-сообщения — если тип упаковки
Repeated
, указывается имя сообщения, содержащего единственное полеrepeated
целевым сообщением (иначе указывается имя целевого сообщения). - Список первичных ключей — перечислите поля, чтобы они добавились в результат как первичные ключи.
- Включаемые поля — перечислите поля сообщения для передачи. Если не задано, выводятся все поля сообщения.
- Использовать значение NULL в ключевых столбцах — выберите эту опцию, чтобы разрешить значение
null
в ключевых колонках.
Датасет
-
Схема — укажите схему служебной таблицы, которая будет использоваться для подключения.
-
Таблица — укажите имя служебной таблицы, которое будет использоваться для подключения.
-
Добавить системные колонки — добавить в схему результатов системные колонки
__file_name
и__row_index
.__file_name
соответствует имени объекта S3, из которого поступают данные.__row_index
соответствует счетчику строк, в котором находятся данные, в объекте S3.Важно
Отключение этой опции может иметь нежелательные эффекты для приемников, которым требуется первичный ключ, при условии, что схема результатов может стать обязательной в таких случаях.
-
Схема результирующей таблицы — укажите JSON-схему в формате
{"<столбец>": "<тип_данных>"}
или перечислите поля для схемы результирующей таблицы. Если вы выберетеАвтоматически
, то схема определится автоматически. -
Тип не определён – определите, как следует обрабатывать строки, не прошедшие проверку типов:
- Продолжать – продолжать передачу данных.
- Прерывать – не продолжать.
- Повторять – повторить попытку определить тип.
Настройка приемника данных
Настройте один из поддерживаемых приемников данных:
Полный список поддерживаемых источников и приемников в Yandex Data Transfer см. в разделе Доступные трансферы.
После настройки источника и приемника данных создайте и запустите трансфер.
Решение проблем, возникающих при переносе данных
См. полный список рекомендаций в разделе Решение проблем.
Ошибка при обновлении данных в источнике
Текст ошибки:
Push failed: kind: update not supported
Object Storage поддерживает только вставку новых данных, но не поддерживает их обновление. Если в источнике происходит обновление данных, трансфер завершится с ошибкой.
Решение: используйте источники, которые поддерживают только вставку данных, или выберите вместо Object Storage другой приемник.