Verwenden von Azure Data Factory zum Migrieren von Daten von Amazon S3 zu Azure StorageUse Azure Data Factory to migrate data from Amazon S3 to Azure Storage

GILT FÜR: Azure Data Factory Azure Synapse Analytics

Von Azure Data Factory wird ein performanter, stabiler und kostengünstiger Mechanismus bereitgestellt, um Daten bedarfsabhängig von Amazon S3 zu Azure Blob Storage oder Azure Data Lake Storage Gen2 zu migrieren.Azure Data Factory provides a performant, robust, and cost-effective mechanism to migrate data at scale from Amazon S3 to Azure Blob Storage or Azure Data Lake Storage Gen2. Dieser Artikel enthält für Datentechniker und Entwickler Informationen zu den folgenden Bereichen:This article provides the following information for data engineers and developers:

  • LeistungPerformance
  • Resilienz beim KopierenCopy resilience
  • NetzwerksicherheitNetwork security
  • Allgemeine LösungsarchitekturHigh-level solution architecture
  • Bewährte Methoden für die ImplementierungImplementation best practices

LeistungPerformance

ADF verfügt über eine serverlose Architektur, die Parallelität auf unterschiedlichen Ebenen ermöglicht. Entwickler können dann Pipelines erstellen, um Ihre Netzwerkbandbreite vollständig zu nutzen – sowie IOPS und Bandbreite des Speichers, um den Durchsatz für die Datenverschiebung Ihrer Umgebung zu maximieren.ADF offers a serverless architecture that allows parallelism at different levels, which allows developers to build pipelines to fully utilize your network bandwidth as well as storage IOPS and bandwidth to maximize data movement throughput for your environment.

Kunden haben erfolgreiche Migrationen von Daten im Petabyte-Bereich durchgeführt, bei denen mit einem dauerhaften Durchsatz von mindestens 2 GBit/s Hunderte Millionen Dateien aus Amazon S3 in Azure Blob Storage verschoben wurden.Customers have successfully migrated petabytes of data consisting of hundreds of millions of files from Amazon S3 to Azure Blob Storage, with a sustained throughput of 2 GBps and higher.

Abbildung: Verschiedene Dateipartitionen in einem AWS S3-Speicher mit verknüpften Kopieraktionen an Azure Blob Storage ADLS Gen2.

In der obigen Abbildung ist dargestellt, wie Sie für unterschiedliche Parallelitätsebenen hohe Geschwindigkeiten bei der Datenverschiebung erzielen:The picture above illustrates how you can achieve great data movement speeds through different levels of parallelism:

  • Für eine Kopieraktivität können skalierbare Computeressourcen genutzt werden: Bei Verwendung der Azure Integration Runtime können Sie bis zu 256 Datenintegrationseinheiten (DIUs) serverlos für jede Kopieraktivität angeben. Wenn Sie die selbstgehostete Integration Runtime nutzen, können Sie den Computer manuell hochskalieren oder das Aufskalieren auf mehrere Computer durchführen (bis zu vier Knoten). Bei einer einzelnen Kopieraktivität wird die Dateigruppe dann auf alle Knoten verteilt.A single copy activity can take advantage of scalable compute resources: when using Azure Integration Runtime, you can specify up to 256 DIUs for each copy activity in a serverless manner; when using self-hosted Integration Runtime, you can manually scale up the machine or scale out to multiple machines (up to 4 nodes), and a single copy activity will partition its file set across all nodes.
  • Für eine Kopieraktivität werden mehrere Threads genutzt, um für den Datenspeicher Lese- und Schreibvorgänge durchzuführen.A single copy activity reads from and writes to the data store using multiple threads.
  • Mit der ADF-Ablaufsteuerung können mehrere Kopieraktivitäten parallel gestartet werden, z. B. per foreach-Schleife.ADF control flow can start multiple copy activities in parallel, for example using For Each loop.

ResilienzResilience

Bei Ausführung einer einzelnen Kopieraktivität verfügt ADF über einen integrierten Wiederholungsmechanismus, damit in den Datenspeichern oder im zugrunde liegenden Netzwerk eine bestimmte Ebene vorübergehender Fehler verarbeitet werden kann.Within a single copy activity run, ADF has built-in retry mechanism so it can handle a certain level of transient failures in the data stores or in the underlying network.

Beim Durchführen von binären Kopiervorgängen von S3 zu Blob Storage und von S3 zu ADLS Gen2 werden von ADF automatisch Prüfpunkte gesetzt.When doing binary copying from S3 to Blob and from S3 to ADLS Gen2, ADF automatically performs checkpointing. Wenn bei einer Ausführung der Kopieraktivität ein Fehler oder Timeout aufgetreten ist, wird die Kopie bei einer nachfolgenden Wiederholung ab dem letzten Fehlerpunkt fortgesetzt und nicht wieder vom Anfang gestartet.If a copy activity run has failed or timed out, on a subsequent retry, the copy resumes from the last failure point instead of starting from the beginning.

NetzwerksicherheitNetwork security

Standardmäßig werden Daten mit ADF von Amazon S3 in Azure Blob Storage oder Azure Data Lake Storage Gen2 übertragen, indem eine verschlüsselte Verbindung per HTTPS-Protokoll genutzt wird.By default, ADF transfers data from Amazon S3 to Azure Blob Storage or Azure Data Lake Storage Gen2 using encrypted connection over HTTPS protocol. HTTPS ermöglicht die Datenverschlüsselung während der Übertragung und verhindert Abhör- und Man-in-the-Middle-Angriffe.HTTPS provides data encryption in transit and prevents eavesdropping and man-in-the-middle attacks.

Falls Sie nicht möchten, dass Daten über das öffentliche Internet übertragen werden, können Sie auch eine bessere Sicherheit erzielen, indem Sie Daten über einen privaten Peeringlink zwischen AWS Direct Connect und Azure ExpressRoute übertragen.Alternatively, if you do not want data to be transferred over public Internet, you can achieve higher security by transferring data over a private peering link between AWS Direct Connect and Azure Express Route. Unten im Abschnitt zur Lösungsarchitektur ist beschrieben, wie Sie dies erreichen.Refer to the solution architecture below on how this can be achieved.

LösungsarchitekturSolution architecture

Migrieren von Daten über das öffentliche Internet:Migrate data over public Internet:

Abbildung: Migration über das Internet mithilfe von HTTP von einem AWS S3-Speicher über Azure Integration Runtime in ADF Azure zu Azure Storage

  • Bei dieser Architektur werden Daten auf sichere Weise per HTTPS über das öffentliche Internet übertragen.In this architecture, data is transferred securely using HTTPS over public Internet.
  • Sowohl die Amazon S3-Quelle als auch das Azure Blob Storage- bzw. Azure Data Lake Storage Gen2-Ziel sind so konfiguriert, dass Datenverkehr von allen IP-Netzwerkadressen zulässig ist.Both the source Amazon S3 as well as the destination Azure Blob Storage or Azure Data Lake Storage Gen2 are configured to allow traffic from all network IP addresses. Unten unter der zweiten Architektur ist beschrieben, wie Sie den Netzwerkzugriff auf einen bestimmten IP-Bereich beschränken können.Refer to the second architecture below on how you can restrict network access to specific IP range.
  • Sie können die Leistung leicht serverlos hochskalieren, um Ihre Netzwerk- und Speicherbandbreite vollständig zu nutzen, damit Sie den besten Durchsatz für Ihre Umgebung erzielen.You can easily scale up the amount of horsepower in serverless manner to fully utilize your network and storage bandwidth so that you can get the best throughput for your environment.
  • Mit dieser Architektur ist sowohl die Migration der Anfangsmomentaufnahme als auch der Deltadaten möglich.Both initial snapshot migration and delta data migration can be achieved using this architecture.

Migrieren von Daten über einen privaten Link:Migrate data over private link:

Abbildung: Migration über eine private Peeringverbindung von einem AWS S3-Speicher und über eine selbstgehostete Integration Runtime auf virtuellen Azure-Computern zu V Net-Dienstendpunkten zu Azure Storage.

  • Bei dieser Architektur wird die Datenmigration über einen privaten Peeringlink zwischen AWS Direct Connect und Azure ExpressRoute durchgeführt, damit Daten niemals über das öffentliche Internet übertragen werden.In this architecture, data migration is done over a private peering link between AWS Direct Connect and Azure Express Route such that data never traverses over public Internet. Hierfür ist die Verwendung von AWS VPC und eines virtuellen Azure-Netzwerks erforderlich.It requires use of AWS VPC and Azure Virtual network.
  • Sie müssen die selbstgehostete Integration Runtime von ADF auf einer Windows-VM in Ihrem virtuellen Azure-Netzwerk installieren, um diese Architektur zu erhalten.You need to install ADF self-hosted integration runtime on a Windows VM within your Azure virtual network to achieve this architecture. Sie können Ihre VMs mit selbstgehosteter IR manuell hochskalieren oder auf mehrere VMs aufskalieren (bis zu vier Knoten), um IOPS und Bandbreite für Netzwerk und Speicher vollständig zu nutzen.You can manually scale up your self-hosted IR VMs or scale out to multiple VMs (up to 4 nodes) to fully utilize your network and storage IOPS/bandwidth.
  • Wenn die Übertragung von Daten per HTTPS akzeptabel ist, Sie den Netzwerkzugriff auf die S3-Quelle aber auf einen bestimmten IP-Bereich begrenzen möchten, können Sie eine Variante dieser Architektur einrichten, indem Sie AWS VPC entfernen und den privaten Link durch HTTPS ersetzen.If it is acceptable to transfer data over HTTPS but you want to lock down network access to source S3 to a specific IP range, you can adopt a variation of this architecture by removing AWS VPC and replacing private link with HTTPS. Es ist ratsam, das virtuelle Azure-Netzwerk und die selbstgehostete IR auf der Azure-VM beizubehalten, damit Sie eine IP-Adresse für Filterzwecke verwenden können, die öffentlich geroutet werden kann.You will want to keep Azure Virtual and self-hosted IR on Azure VM so you can have a static publicly routable IP for filtering purpose.
  • Mit dieser Architektur ist sowohl die Migration der Daten einer Anfangsmomentaufnahme als auch der Deltadaten möglich.Both initial snapshot data migration and delta data migration can be achieved using this architecture.

Bewährte Methoden für die ImplementierungImplementation best practices

Authentifizierung und Verwaltung von AnmeldeinformationenAuthentication and credential management

Migration der Daten der AnfangsmomentaufnahmeInitial snapshot data migration

Die Datenpartition ist besonders zu empfehlen, wenn mehr als 100 TB Daten migriert werden.Data partition is recommended especially when migrating more than 100 TB of data. Nutzen Sie zum Partitionieren der Daten die Einstellung „Präfix“, um die Ordner und Dateien in Amazon S3 nach Name zu filtern. So kann dann mit jedem ADF-Kopierauftrag jeweils eine Partition kopiert werden.To partition the data, leverage the ‘prefix’ setting to filter the folders and files in Amazon S3 by name, and then each ADF copy job can copy one partition at a time. Sie können mehrere ADF-Kopieraufträge gleichzeitig ausführen, um einen besseren Durchsatz zu erzielen.You can run multiple ADF copy jobs concurrently for better throughput.

Falls Kopieraufträge aufgrund eines vorübergehenden Problems mit dem Netzwerk oder dem Datenspeicher nicht erfolgreich sind, können Sie den fehlerhaften Kopierauftrag erneut ausführen, um diese spezifische Partition erneut aus AWS S3 zu laden.If any of the copy jobs fail due to network or data store transient issue, you can rerun the failed copy job to reload that specific partition again from AWS S3. Alle anderen Kopieraufträge, bei denen andere Partitionen geladen werden, werden nicht beeinträchtigt.All other copy jobs loading other partitions will not be impacted.

Migration von DeltadatenDelta data migration

Die beste Möglichkeit zum Identifizieren von neuen oder geänderten Dateien aus AWS S3 ist die Verwendung der Namenskonvention mit Zeitpartitionierung. Wenn für Ihre Daten in AWS S3 die Zeitpartitionierung mit Zeitrauminformationen im Datei- oder Ordnernamen durchgeführt wurde (z. B. „/jjjj/mm/tt/file.csv), kann Ihre Pipeline leicht ermitteln, welche Dateien bzw. Ordner inkrementell kopiert werden müssen.The most performant way to identify new or changed files from AWS S3 is by using time-partitioned naming convention – when your data in AWS S3 has been time partitioned with time slice information in the file or folder name (for example, /yyyy/mm/dd/file.csv), then your pipeline can easily identify which files/folders to copy incrementally.

Wenn Ihre Daten in AWS S3 nicht über eine Zeitpartitionierung verfügen, kann ADF neue oder geänderte Dateien anhand des letzten Änderungsdatums (LastModifiedDate) identifizieren.Alternatively, If your data in AWS S3 is not time partitioned, ADF can identify new or changed files by their LastModifiedDate. Hierbei scannt ADF alle Dateien aus AWS S3 und kopiert nur die neuen und aktualisierten Dateien, deren Zeitstempel der letzten Änderung größer als ein bestimmter Wert ist.The way it works is that ADF will scan all the files from AWS S3, and only copy the new and updated file whose last modified timestamp is greater than a certain value. Beachten Sie Folgendes, wenn Sie in S3 über eine große Zahl von Dateien verfügen: Der erste Scanvorgang für die Dateien kann unabhängig davon, wie viele Dateien die Filterbedingung erfüllen, sehr lange dauern.Be aware that if you have a large number of files in S3, the initial file scanning could take a long time regardless of how many files match the filter condition. In diesem Fall sollten Sie die Daten zuerst partitionieren, indem Sie die gleiche „Präfix“-Einstellung für die Migration der Anfangsmomentaufnahme verwenden, damit die Dateiuntersuchung parallel erfolgen kann.In this case you are suggested to partition the data first, using the same ‘prefix’ setting for initial snapshot migration, so that the file scanning can happen in parallel.

Szenarien mit selbstgehosteter Integration Runtime auf einer Azure-VMFor scenarios that require self-hosted Integration runtime on Azure VM

Unabhängig davon, ob Sie Daten über einen privaten Link migrieren oder in der Amazon S3-Firewall einen bestimmten IP-Adressbereich angeben möchten, müssen Sie die selbstgehostete Integration Runtime auf einer Azure Windows-VM installieren.Whether you are migrating data over private link or you want to allow specific IP range on Amazon S3 firewall, you need to install self-hosted Integration runtime on Azure Windows VM.

  • Die empfohlene Konfiguration, mit der für jeden virtuellen Azure-Computer begonnen werden sollte, ist „Standard_D32s_v3“ mit 32 vCPUs und 128 GB Arbeitsspeicher.The recommend configuration to start with for each Azure VM is Standard_D32s_v3 with 32 vCPU and 128-GB memory. Sie können die Auslastung der CPU und des Arbeitsspeichers für die IR-VM während der Datenmigration weiter überwachen. So können Sie ermitteln, ob Sie die VM weiter hochskalieren müssen, um die Leistung zu verbessern, oder herunter, um Kosten zu sparen.You can keep monitoring CPU and memory utilization of the IR VM during the data migration to see if you need to further scale up the VM for better performance or scale down the VM to save cost.
  • Sie können auch aufskalieren, indem Sie bis zu vier VM-Knoten einer selbstgehosteten Integration Runtime zuordnen.You can also scale out by associating up to 4 VM nodes with a single self-hosted IR. Bei einem einzelnen Kopierauftrag, der für eine selbstgehostete IR ausgeführt wird, wird die Dateigruppe automatisch partitioniert, und alle VM-Knoten werden genutzt, um die Dateien parallel zu kopieren.A single copy job running against a self-hosted IR will automatically partition the file set and leverage all VM nodes to copy the files in parallel. Zur Sicherstellung von Hochverfügbarkeit ist es ratsam, mit zwei VM-Knoten zu beginnen, um bei der Datenmigration einen Single Point of Failure zu vermeiden.For high availability, you are recommended to start with 2 VM nodes to avoid single point of failure during the data migration.

RatenbegrenzungRate limiting

Die bewährte Methode besteht darin, mit einem repräsentativen Beispieldataset einen Proof of Concept-Vorgang in Bezug auf die Leistung durchzuführen, damit Sie eine geeignete Partitionsgröße ermitteln können.As a best practice, conduct a performance POC with a representative sample dataset, so that you can determine an appropriate partition size.

Beginnen Sie mit einer einzelnen Partition und einer einzelnen Kopieraktivität mit der DIU-Standardeinstellung.Start with a single partition and a single copy activity with default DIU setting. Erhöhen Sie die DIU-Einstellung nach und nach, bis Sie das Bandbreitenlimit Ihres Netzwerks oder das IOPS-/Bandbreitenlimit der Datenspeicher erreichen bzw. bis die maximal zulässigen 256 DIUs pro Kopieraktivität erreicht sind.Gradually increase the DIU setting until you reach the bandwidth limit of your network or IOPS/bandwidth limit of the data stores, or you have reached the max 256 DIU allowed on a single copy activity.

Erhöhen Sie anschließend schrittweise die Anzahl gleichzeitiger Kopieraktivitäten, bis Sie die Grenzwerte Ihrer Umgebung erreicht haben.Next, gradually increase the number of concurrent copy activities until you reach limits of your environment.

Wenn für die ADF-Kopieraktivität Drosselungsfehler gemeldet werden, sollten Sie entweder die Parallelitäts- oder die DIU-Einstellung in ADF reduzieren oder erwägen, die IOPS-/Bandbreitenlimits für das Netzwerk und die Datenspeicher zu erhöhen.When you encounter throttling errors reported by ADF copy activity, either reduce the concurrency or DIU setting in ADF, or consider increasing the bandwidth/IOPS limits of the network and data stores.

Schätzen des PreisesEstimating Price

Hinweis

Dies ist ein hypothetisches Preisbeispiel.This is a hypothetical pricing example. Der tatsächliche Preis richtet sich nach dem tatsächlichen Durchsatz in Ihrer Umgebung.Your actual pricing depends on the actual throughput in your environment.

Sehen Sie sich die folgende Pipeline für die Migration von Daten aus S3 zu Azure Blob Storage an:Consider the following pipeline constructed for migrating data from S3 to Azure Blob Storage:

Abbildung: Pipeline für die Migration von Daten, bei der für jede Partition ein manueller Auslöser an Lookup übertragen, das an ForEach übertragen, das an eine Subpipeline übertragen wird, eine Kopieraktivität enthält, die an eine gespeicherte Prozedur übertragen wird.

Wir nehmen Folgendes an:Let us assume the following:

  • Das gesamte Datenvolumen beträgt 2 PB.Total data volume is 2 PB
  • Daten werden mit der ersten Lösungsarchitektur per HTTPS migriert.Migrating data over HTTPS using first solution architecture
  • Die 2 PB sind in Partitionen von 1 K unterteilt, und bei jedem Kopiervorgang wird eine Partition verschoben.2 PB is divided into 1 K partitions and each copy moves one partition
  • Für jeden Kopiervorgang ist „DIU = 256“ konfiguriert, und es wird ein Durchsatz von 1 GBit/s erzielt.Each copy is configured with DIU=256 and achieves 1 GBps throughput
  • Die Foreach-Parallelität ist auf den Wert 2 festgelegt, und der Aggregatdurchsatz beträgt 2 GBit/s.ForEach concurrency is set to 2 and aggregate throughput is 2 GBps
  • Insgesamt dauert es 292 Stunden, bis die Migration abgeschlossen ist.In total, it takes 292 hours to complete the migration

Hier ist der geschätzte Preis basierend auf den obigen Annahmen angegeben:Here is the estimated price based on the above assumptions:

Screenshot: Tabelle mit geschätztem Preis

Zusätzliche VerweiseAdditional references

VorlageTemplate

Mit dieser Vorlagen können Sie Petabytes an Daten mit mehreren hundert Millionen Dateien von Amazon S3 zu Azure Data Lake Storage Gen2 migrieren.Here is the template to start with to migrate petabytes of data consisting of hundreds of millions of files from Amazon S3 to Azure Data Lake Storage Gen2.

Nächste SchritteNext steps