Миграция данных в несколько кликов: возможности Data Transfer
Рассказываем о сервисе Data Transfer, который поможет всем, кому нужно быстро и просто мигрировать, консолидировать или разделить данные, создать удалённые реплики баз данных.
Data Transfer появился в Yandex Cloud не так давно и команда сервиса развивает его сразу по нескольким направлениям. В первую очередь мы продолжаем расширять его функциональность: реализовали гетерогенные трансферы и сделали доступными новые хранилища данных. Появилась интеграция с брокерами сообщений Apache Kafka и Data Streams и другими системами как с источниками, в режиме закрытого превью стал доступен CDC (change data capture) в Debezium из PostgreSQL в Kafka, добавлен коннектор к Greenplum®, постоянно расширяется список задач, которые можно решить с помощью сервиса.
За последний год количество трансферов, созданных в сервисе, превысило несколько тысяч. Каждую минуту параллельно работают сотни процессов миграции данных.
Мы выводим в общий доступ всё больше возможностей, расширяем и упрощаем клиентские интерфейсы. Теперь взаимодействовать с сервисом можно не только через консоль управления: Data Transfer стал доступен пользователям CLI, Terraform и Public API.
В этом обзоре расскажем о том, почему Data Transfer стоит попробовать всем, кому нужно быстро и просто мигрировать, консолидировать или разделить данные, а также создать удалённые реплики БД.
Как работает Data Transfer
Сервис Data Transfer предназначен для миграции данных из источников в приёмники: между СУБД, документоориентированными базами, объектными хранилищами и брокерами сообщений. Конечный или бесконечный процесс переноса называется трансфером.
В зависимости от задачи можно использовать один из трех типов трансферов (все типы трансферов реализуют механизм логической репликации):
- Копирование или snapshot — конечный процесс переноса текущего состояния данных.
- Репликация — процесс непрерывного получения изменений из источника (сhange data capture, или CDC) и применения их к приемнику, который позволяет поддерживать приемник в актуальном состоянии.
- Копирование и репликация — перенос текущего состояния источника в кластер-приемник и поддержка его актуальности.
Трансфер того или иного типа в процессе своей работы может находиться в разных состояниях, для определения которых достаточно посмотреть статус трансфера и предупреждения на сервисе. Для более детальной диагностики в консоли управления Data Transfer предоставлены логи и мониторинг.
Рассмотрим подробнее, для каких бизнес-задач могут быть применены трансферы. Часть из них мы рассматривали на вебинаре
Какие задачи помогает решить Data Transfer
Миграция в облако
Чтобы перестать думать о «железе» и сэкономить на эксплуатации, всё больше компаний выбирают переезд в облачные базы данных: легко управляемые, масштабируемые и высокодоступные.
Один из основных сценариев использования Data Transfer — миграция данных из локального хранилища клиента в базу Yandex Cloud. Например, переместить данные из on-premise базы PostgreSQL в Managed PostgreSQL или из on-premise MySQL в Managed MySQL®. Миграцию для таких пар баз данных компании зачастую могут реализовать самостоятельно. Но Data Transfer поможет сократить количество ручного труда: перенести метаинформацию, схемы данных и отследить их эволюцию в процессе трансфера. К тому же специалисты Yandex Cloud всегда следят, чтобы во время миграции данных нагрузка на базу-источник была как можно ниже и продакшен не замечал трансфера.
Анализ данных
Чаще всего клиенты используют трансферы для того, чтобы собрать данные из множества источников в единый кластер, например, ClickHouse, с которым аналитики могут работать с помощью DataLens или DataSphere.
Data Transfer сейчас умеет мигрировать данные в ClickHouse из PostgreSQL, MySQL и из брокеров сообщений (Kafka или Yandex Data Streams). Трансферы функционируют не только в режиме snapshot, но и в режиме репликации, за счет чего поддерживают копии данных клиента в приемнике в актуальном состоянии. Пока эта функция находится на стадии preview.
Шардирование баз данных или консолидация
Клиенты Data Transfer в процессе миграции решают и другие задачи, например, с помощью трансфера из MongoDB в MongoDB (скоро в General Availability) клиенты Yandex Cloud решают, в том числе, проблему ограниченного размера базы данных. В процессе миграции в облако базу можно шардировать.
С помощью такого трансфера можно объединить в одно управляемое хранилище множество баз, которые по историческим причинам развивались независимо. Таким образом при переезде в облако вам не нужно будет платить за несколько маленьких кластеров, а можно будет сделать один управляемый кластер.
Смена типа хранилища и разделение нагрузки
Data Transfer может помочь с задачами, в которых отправляющее и принимающее хранилища имеют разные типы. Зачастую хранилища используются для всех задач аналитики и продакшена разных сервисов. В итоге эти задачи начинают друг другу мешать, эксплуатировать такой кластер становится всё сложнее, возрастает нагрузка, и масштабировать кластер становится дорого. В этом случае можно часть нагрузки или всё приложение перенести на работу с хранилищем, которое больше для них приспособлено.
Например, можно перенести из Oracle неспецифичную нагрузку в Managed PostgreSQL. В Oracle достаточно много особенностей, поэтому трансферы для этой СУБД предоставляются только по запросу.
Другая комбинация: PostgreSQL/MySQL и YDB (система, предоставляемая по serverless-модели, которую удобно масштабировать под временные нагрузки). Такой вариант можно рассматривать владельцам интернет-магазинов. Благодаря этому трансферу не придётся увеличивать количество дисков и ядер накануне сезона распродаж, так как YDB автоматически масштабируется под нагрузку.
Экспорт данных из хранилища клиента в объектное хранилище
Другая задача, которую решает Data Transfer, — экспорт данных из хранилища клиента в объектное хранилище. Например, это может оказаться полезным для следующих задач:
- дёшево хранить историю изменения данных;
- передавать данные партнёрам.
Чаще всего трансферы для регулярного экспорта срезов данных в Object Storage используют в задачах, для которых необходимо, например, исполнение требований законодательства к длительному хранению данных.
Интегрировать Object Storage с источниками PostgreSQL, MongoDB и MySQL можно только в режиме snapshot. После такого экспорта в принимающей базе окажутся данные в формате CSV или JSON. Но в будущем мы добавим и режим репликации, и регулярные снапшоты в эти сценарии.
С помощью Data Transfer также можно интегрировать Object Storage и с другими источниками. Сценарии переноса данных мы рассмотрели на вебинаре:
Почему стоит выбрать Data Transfer
Data Transfer может быть использован в решении многих задач, часть из которых мы перечислили выше. Среди аналогов на рынке Data Transfer выделяют несколько преимуществ:
- Простота настройки: все действия выполняются в несколько кликов в консоли.
- Один сервис для всех целей. Позволяет централизованно управлять всеми потоками данных в компании.
- Не требует сторонних инструментов. Часть сценариев может решить дата-инженер сам, без подключения команды DBA (database administrators).
- Пока сервис предоставляется бесплатно.
Количество сценариев и поддерживаемых Data Transfer коннекторов постоянно растет. С доступными комбинациями источников и приемников вы можете ознакомиться по ссылке (данные регулярно обновляются).
Экспресс-курс «Построение корпоративной аналитической платформы»
Если вы хотите узнать больше о Data Transfer и синхронизации данных между различными БД, предлагаем пройти экспресс-курс «Построение корпоративной аналитической платформы». Вы узнаете, как с помощью облака организовать сбор и анализ данных в компании для организации внешнего хранилища, снимать нагрузку с основной системы и обрабатывать тяжёлые аналитические запросы, безопасно работать с внешними источниками и многое другое. Зарегистрироваться на экспресс-курс можно по ссылке.