Использование Фабрика данных Azure для переноса данных из Amazon S3 в служба хранилища Azure

ПРИМЕНИМО К: Фабрика данных Azure Azure Synapse Analytics

Совет

Data Factory в Microsoft Fabric — это следующее поколение Фабрика данных Azure с более простой архитектурой, встроенным ИИ и новыми функциями. Если вы не знакомы с интеграцией данных, начните с Fabric Data Factory. Существующие рабочие нагрузки ADF могут обновляться до Fabric для доступа к новым возможностям в области обработки и анализа данных, аналитики в режиме реального времени и отчетов.

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

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

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

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

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

Diagram отображает несколько разделов файлов в хранилище AWS S3 с связанными с ними действиями копирования в Хранилище BLOB-объектов Azure ADLS Gen2.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если вы планируете перенести рабочую нагрузку из AWS в Azure, мы рекомендуем использовать методический подход к этой инициативе. Выбор компонентов и Azure основы являются важными частями этого более крупного процесса. Чтобы точно настроить план миграции с помощью рекомендаций Microsoft, см. раздел Migrate storage from Amazon Web Services to Azure.

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

Миграция данных исходных моментальных снимков

Секционирование данных особенно рекомендуется при переносе более чем 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, необходимо установить локальную среду выполнения интеграции на Azure Windows виртуальной машине.

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

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

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

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

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

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

Оценка цены

Примечание.

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

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

Диаграмма показывает конвейер для переноса данных, с ручным запуском, переходом в Lookup, затем в ForEach, затем в подпроцесс для каждого раздела, где копирование данных направляется в хранимую процедуру. За пределами конвейера хранимая процедура направляется в Azure SQL DB, которая потом направляется в Lookup, а AWS S3 направляется на копирование, после чего направляется в хранилище блобов.

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

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

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

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

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

Шаблон

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