Поделиться через


Миграция данных из Amazon S3 в службу хранилища Azure с помощью Фабрики данных Azure

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

Фабрика данных Azure обеспечивает эффективный, надежный и экономичный механизм переноса любых объемов данных из Amazon S3 в Хранилище BLOB-объектов Azure или Azure Data Lake Storage 2-го поколения. В этой статье содержатся следующие сведения для специалистов по обработке и анализу данных и разработчиков:

  • Производительность
  • Устойчивость копирования
  • Безопасность сети
  • Высокоуровневая архитектура решения
  • Рекомендации по реализации

Производительность

ADF предлагает бессерверную архитектуру, обеспечивающую параллельную обработку на различных уровнях, что даёт возможность разработчикам создавать конвейеры для полного использования пропускной способности сети и операций ввода-вывода хранилища, максимизируя скорость передачи данных в вашей среде.

Клиенты успешно выполнили перенос сотен миллионов файлов, общий объем которых измеряется петабайтами, из Amazon S3 в Хранилище BLOB-объектов Azure со стабильной пропускной способностью 2 Гбит/с и выше.

На схеме показано несколько файловых секций в хранилище AWS S3 с соответствующими действиями копирования в Хранилище BLOB-объектов Azure ADLS 2-го поколения.

На рисунке выше показано, как можно обеспечить высокую скорость перемещения данных с помощью различных уровней параллелизма.

  • Одно действие копирования может воспользоваться масштабируемыми вычислительными ресурсами: при использовании среды выполнения интеграции Azure можно указать до 256 DIU для каждого действия копирования в режиме без сервера. При использовании локально размещенной среды выполнения интеграции можно вручную увеличить мощность компьютера или расширить до нескольких компьютеров (до четырех узлов), и одно действие копирования будет распределять набор файлов по всем узлам.
  • Одно действие копирования считывает данные из хранилища данных и записывает их в него с помощью нескольких потоков.
  • Управляющий поток Azure Data Factory может запускать несколько операций копирования параллельно, например, с помощью цикла For Each.

Устойчивость

В одном цикле выполнения операции копирования, в Фабрике данных Azure имеется встроенный механизм повторных попыток, который позволяет справляться с определенным уровнем временных сбоев в хранилищах данных или в базовой сети.

При копировании двоичных данных из S3 в Blob-хранилище и из S3 в хранилище Azure Data Lake Storage Gen2, служба Azure Data Factory автоматически выполняет контрольное сохранение. Если при выполнении действия копирования происходит сбой или истекает время ожидания, при последующей попытке копирование возобновляется с последней точки сбоя, а не с начала.

Безопасность сети

По умолчанию Azure Data Factory передает данные из Amazon S3 в хранилище блоб-объектов Azure или Azure Data Lake Storage поколения 2 с использованием зашифрованного соединения по протоколу HTTPS. HTTPS обеспечивает шифрование данных при передаче и предотвращает прослушивание трафика и атаки типа "злоумышленник в середине".

Кроме того, если вы не хотите передавать данные через общедоступный Интернет, вы можете обеспечить более высокую безопасность путем передачи данных через частный пиринговый канал между AWS Direct Connect и Azure Express Route. Ознакомьтесь с архитектурой решения в следующем разделе о том, как это можно сделать.

Архитектура решения

Перенос данных через общедоступный Интернет:

На схеме показана миграция через Интернет по H T T P из хранилища A W S S3 через среду выполнения интеграции Azure в ADF в хранилище Azure. Среда выполнения имеет канал управления с фабрикой данных Data Factory Azure.

  • В этой архитектуре данные безопасно передаются по протоколу HTTPS через общедоступный Интернет.
  • Как исходное хранилище Amazon S3, так и целевые Azure Blob Storage или Azure Data Lake Storage Gen2 настроены для разрешения трафика со всех сетевых IP-адресов. Обратитесь ко второй архитектуре, упомянутой далее на этой странице, чтобы узнать, как ограничить сетевой доступ к определенному диапазону IP-адресов.
  • Вы можете легко масштабировать ресурсы бессерверным образом, чтобы полностью использовать пропускную способность сети и хранилища с целью получения максимальной скорости передачи данных в среде.
  • С помощью этой архитектуры можно обеспечить как перенос исходных моментальных снимков, так и перенос разностных данных.

Перенос данных через частный канал:

На схеме показана миграция через частное пиринговое подключение из хранилища AWS S3 через локальную среду выполнения интеграции на виртуальных машинах Azure в конечные точки службы V Net и в хранилище Azure. Среда выполнения имеет канал управления с Data Factory.

  • В этой архитектуре перенос данных осуществляется через канал частного пиринга между AWS Direct Connect и Azure Express Route, так что данные никогда не передаются через общедоступный Интернет. Для этого требуется использовать AWS VPC и виртуальную сеть Azure.
  • Для достижения этой архитектуры необходимо установить самоуправляемую среду выполнения интеграции ADF на виртуальной машине Windows в вашей виртуальной сети Azure. Вы можете вручную масштабировать локальные виртуальные машины IR или масштабировать их до нескольких виртуальных машин (до четырех узлов) для полного использования сетевых операций ввода-вывода в секунду или пропускной способности хранилища.
  • С помощью этой архитектуры можно обеспечить как перенос исходных моментальных снимков, так и перенос разностных данных.

Рекомендации по реализации

Управление проверкой подлинности и учетными данными

Перенос исходных моментальных снимков

Секционирование данных особенно рекомендуется при переносе более чем 100 ТБ данных. Чтобы секционировать данные, используйте параметр префикса для фильтрации папок и файлов в Amazon S3 по имени, а затем каждое задание копирования ADF может копировать одну секцию одновременно. Для повышения пропускной способности можно одновременно запустить несколько заданий копирования в Azure Data Factory.

Если какое-либо из заданий копирования завершится сбоем из-за временной проблемы с сетью или хранилищем данных, вы можете повторно выполнить неудавшуюся задачу копирования, чтобы загрузить этот конкретный раздел снова из AWS S3. Все остальные задания копирования, загружаемые из других разделов, не будут затронуты.

Перенос дельта-данных

Наиболее эффективно определить новые или измененные файлы из AWS S3 можно с помощью соглашения об именовании с секционированием по времени. Если данные в AWS S3 были секционированы с информацией о срезе времени в имени файла или папки (например, /y/mm/dd/file.csv), конвейер может легко определить, какие файлы и папки копируются постепенно.

Кроме того, если данные в AWS S3 не секционированы по времени, ADF может определить новые или измененные файлы с помощью lastModifiedDate. В этом случае Фабрика данных Azure будет сканировать все файлы в AWS S3 и копировать только новые и обновленные файлы, метка времени последнего изменения которых больше определенного значения. При наличии большого количества файлов в S3 начальное сканирование файлов может занять много времени независимо от того, сколько файлов соответствует условию фильтра. В этом случае предлагается сначала разделить данные, используя тот же параметр префикса для первоначальной миграции снапшотов, чтобы сканирование файлов выполнялось параллельно.

Сценарии, для которых требуется локальная среда выполнения интеграции на виртуальной машине Azure

Независимо от того, переносите ли вы данные по приватной ссылке или хотите разрешить определенный диапазон IP-адресов в брандмауэре Amazon S3, необходимо установить локальную среду выполнения интеграции на виртуальной машине Windows Azure.

  • Рекомендуемая начальная конфигурация для каждой виртуальной машины Azure — Standard_D32s_v3 с 32 виртуальными ЦП и 128 ГБ памяти. Вы можете отслеживать использование ЦП и памяти виртуальной машины среды выполнения интеграции во время переноса данных, чтобы узнать, нужно ли увеличить масштаб виртуальной машины для повышения производительности или уменьшить его, чтобы сократить затраты.
  • Кроме того, можно масштабировать, связав до четырех узлов ВМ с одной самостоятельно хостируемой IR. Одно задание копирования, выполняемое в локальной среде IR, автоматически секционирует набор файлов и использует все узлы виртуальной машины для параллельного копирования файлов. Для обеспечения высокой доступности рекомендуется начать с двух узлов виртуальной машины, чтобы избежать единой точки сбоя во время миграции данных.

Ограничение скорости

Рекомендуется провести оценку производительности с помощью репрезентативного образца набора данных, чтобы можно было определить подходящий размер секции.

Начните с одного раздела и одного действия копирования с настройками единиц интеграции данных по умолчанию. Постепенно увеличивайте количество единиц интеграции данных, пока не будет достигнуто ограничение пропускной способности вашей сети, либо ограничение IOPS/пропускной способности хранилищ данных, или максимальное количество (256) единиц интеграции данных, разрешенное для одного действия копирования.

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

При возникновении ошибок регулирования, о которых сообщает действие копирования Фабрики данных Azure, уменьшите степень параллелизма или количество единиц интеграции данных в Фабрике данных Azure либо повысьте предельную пропускную способность и скорость ввода-вывода сети и хранилищ данных.

Оценка цены

Примечание.

Это гипотетический пример цен. Ваша фактическая цена зависит от фактической пропускной способности в вашей среде.

Рассмотрим следующий конвейер, созданный для переноса данных из S3 в Хранилище BLOB-объектов Azure:

На схеме показан конвейер для переноса данных, с потоком ручного триггера в поиск, поток в ForEach, поток в под конвейер для каждой секции, содержащей поток копирования в хранимую процедуру. За пределами конвейера хранимая процедура передается в Azure SQL D B, который выполняет поиск и потокИ W S3 для копирования, которые передаются в хранилище BLOB-объектов.

Предположим следующее.

  • Общий объем данных составляет 2 ПБ.
  • Перенос данных по протоколу HTTPS с использованием первой архитектуры решения.
  • 2 PB разделены на 1 КБ секций, и каждая копия перемещает одну секцию
  • Для каждой копии устанавливается DIU=256 и достигается пропускная способность 1 ГБ/с.
  • Степень параллелизма ForEach имеет значение 2, а суммарная пропускная способность — 2 Гбит/с
  • В итоге для завершения переноса потребуется 292 часа.

Ниже приведена оценка цены на основе приведенных выше предположений:

Снимок экрана таблицы, на котором показана ориентировочная цена.

Дополнительная справка

Template

Ниже приведен шаблон для переноса петабайт данных, состоящих из сотен миллионов файлов из Amazon S3 в Azure Data Lake Storage 2-го поколения.