Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Azure Data Factory
Azure Synapse Analytics
Tipp
Data Factory in Microsoft Fabric ist die nächste Generation von Azure Data Factory mit einer einfacheren Architektur, integrierter KI und neuen Features. Wenn Sie mit der Datenintegration noch nicht vertraut sind, beginnen Sie mit Fabric Data Factory. Vorhandene ADF-Workloads können auf Fabric aktualisiert werden, um auf neue Funktionen in der Datenwissenschaft, Echtzeitanalysen und Berichterstellung zuzugreifen.
In diesem Lernprogramm verwenden Sie Azure PowerShell, um eine Datenfabrikpipeline zu erstellen, die Daten aus einer SQL Server Datenbank in Azure Blob Storage kopiert. Sie erstellen und verwenden eine selbstgehostete Integration Runtime, die Daten zwischen lokalen Speichern und Clouddatenspeichern verschiebt.
Hinweis
Dieser Artikel enthält keine ausführliche Einführung in den Data Factory-Dienst. Weitere Informationen finden Sie unter Introduction to Azure Data Factory.
In diesem Tutorial führen Sie die folgenden Schritte aus:
- Erstellen einer Data Factory.
- Erstellen Sie eine selbstgehostete Integration Runtime.
- Erstellen Sie SQL Server- und Azure Storage-verbundene Dienste.
- Erstellen Sie SQL Server und Azure Blob-Datasets.
- Erstellen Sie eine Pipeline mit einer Kopieraktivität, um die Daten zu verschieben.
- Starten einer Pipelineausführung
- Überwachen der Pipelineausführung.
Voraussetzungen
Azure-Abonnement
Bevor Sie beginnen, ein kostenloses Konto erstellen wenn Sie noch nicht über ein Azure-Abonnement verfügen.
Azure-Rollen
Zum Erstellen von Datenfactoryinstanzen muss dem Benutzerkonto, mit dem Sie sich bei Azure anmelden, eine Contributor oder Owner Rolle zugewiesen werden oder ein administrator des Azure-Abonnements sein.
Um die Berechtigungen anzuzeigen, die Sie im Abonnement haben, wechseln Sie zum Azure Portal, wählen Sie Ihren Benutzernamen in der oberen rechten Ecke aus, und wählen Sie dann Permissions aus. Wenn Sie Zugriff auf mehrere Abonnements besitzen, wählen Sie das entsprechende Abonnement aus. Beispielanweisungen zum Hinzufügen eines Benutzers zu einer Rolle finden Sie im Artikel Assign Azure Rollen mithilfe des Azure Portals.
SQL Server 2014, 2016 und 2017
In diesem Lernprogramm verwenden Sie eine SQL Server-Datenbank als source Datenspeicher. Die Pipeline in der Data Factory, die Sie in diesem Tutorial erstellen, kopiert Daten aus dieser SQL Server-Datenbank (Quelle) in Azure Blob Storage (Sink). Anschließend erstellen Sie eine Tabelle mit dem Namen emp in Ihrer SQL Server-Datenbank, und fügen Sie ein paar Beispieleinträge in die Tabelle ein.
Starten Sie SQL Server Management Studio. Wenn sie noch nicht auf Ihrem Computer installiert ist, wechseln Sie zu Download SQL Server Management Studio.
Stellen Sie mithilfe Ihrer Anmeldeinformationen eine Verbindung mit Ihrer SQL Server Instanz her.
Erstellen Sie eine Beispieldatenbank. Klicken Sie in der Strukturansicht mit der rechten Maustaste auf Datenbanken, und wählen Sie anschließend Neue Datenbank.
Geben Sie im Fenster Neue Datenbank einen Namen für die Datenbank ein, und wählen Sie dann OK.
Führen Sie das folgende Abfrageskript für die Datenbank aus, um die Tabelle emp zu erstellen und einige Beispieldaten einzufügen. Klicken Sie in der Strukturansicht mit der rechten Maustaste auf die von Ihnen erstellte Datenbank, und wählen Sie anschließend Neue Abfrage.
CREATE TABLE dbo.emp ( ID int IDENTITY(1,1) NOT NULL, FirstName varchar(50), LastName varchar(50) ) GO INSERT INTO emp (FirstName, LastName) VALUES ('John', 'Doe') INSERT INTO emp (FirstName, LastName) VALUES ('Jane', 'Doe') GO
Azure Storage Konto
Sie verwenden in diesem Tutorial ein allgemeines Azure-Speicherkonto (Azure Blob Storage) als Ziel/Senke-Datenspeicher. Wenn Sie nicht über ein allgemeines Azure Speicherkonto verfügen, lesen Sie Create a storage account. Die Pipeline in der Datenfabrik, die Sie in diesem Lernprogramm erstellen, kopiert Daten aus der SQL-Server-Datenbank (Quelle) in diesen Azure Blob-Speicher (Sink).
Speicherkontonamen und Kontoschlüssel abrufen
In diesem Lernprogramm verwenden Sie den Namen und den Schlüssel Ihres Azure Speicherkontos. Beschaffen Sie den Namen und Schlüssel Ihres Speicherkontos, indem Sie wie folgt vorgehen:
Melden Sie sich beim portal Azure mit Ihrem Azure Benutzernamen und Kennwort an.
Wählen Sie im linken Bereich die Option Weitere Dienste, filtern Sie nach dem Schlüsselwort Speicher, und wählen Sie dann Speicherkonten aus.
Filtern Sie in der Liste mit den Speicherkonten nach Ihrem Speicherkonto (falls erforderlich), und wählen Sie Ihr Speicherkonto aus.
Wählen Sie im Fenster Speicherkonto die Option Zugriffsschlüssel.
Kopieren Sie in den Feldern Speicherkontoname und key1 die Werte, und fügen Sie sie zur späteren Verwendung im Tutorial in einen Editor ein.
Erstellen des Containers „adftutorial“
In diesem Abschnitt erstellen Sie einen Blobcontainer mit dem Namen adftutorial in Ihrem Azure Blob Storage.
Wechseln Sie im Fenster Speicherkonto zu Übersicht, und wählen Sie die Option Blobs.
Wählen Sie im Fenster Blob-Dienst die Option Container.
Geben Sie im Fenster Neuer Container im Feld Name den Namen adftutorial ein, und wählen Sie OK.
Wählen Sie in der Liste mit den Containern die Option adftutorial.
Lassen Sie das Fenster Container für adftutorial geöffnet. Am Ende des Tutorials verwenden Sie es, um die Ausgabe zu überprüfen. Data Factory erstellt den Ausgabeordner automatisch in diesem Container, damit Sie ihn nicht selbst erstellen müssen.
Windows PowerShell
Installieren von Azure PowerShell
Hinweis
Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Install Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrate Azure PowerShell von AzureRM zu Az.
Installieren Sie die neueste Version von Azure PowerShell, wenn Sie sie noch nicht auf Ihrem Computer haben. Ausführliche Anweisungen finden Sie unter How to install and configure Azure PowerShell.
Anmelden bei PowerShell
Starten Sie PowerShell auf Ihrem Computer, und lassen Sie die Anwendung geöffnet, während Sie dieses Schnellstarttutorial durcharbeiten. Wenn Sie PowerShell schließen und wieder öffnen, müssen Sie die Befehle erneut ausführen.
Führen Sie den folgenden Befehl aus, und geben Sie dann den Azure Benutzernamen und das Kennwort ein, mit dem Sie sich beim Azure Portal anmelden:
Connect-AzAccountWenn Sie über mehrere Azure Abonnements verfügen, führen Sie den folgenden Befehl aus, um das Abonnement auszuwählen, mit dem Sie arbeiten möchten. Ersetzen Sie SubscriptionId durch die ID Ihres Azure-Abonnements:
Select-AzSubscription -SubscriptionId "<SubscriptionId>"
Erstellen einer Data Factory
Definieren Sie eine Variable für den Ressourcengruppennamen zur späteren Verwendung in PowerShell-Befehlen. Kopieren Sie den folgenden Befehl in PowerShell, geben Sie einen Namen für die ressourcengruppe Azure an (eingeschlossen in doppelte Anführungszeichen, z. B.
"adfrg"), und führen Sie dann den Befehl aus.$resourceGroupName = "ADFTutorialResourceGroup"Führen Sie den folgenden Befehl aus, um die ressourcengruppe Azure zu erstellen:
New-AzResourceGroup $resourceGroupName -location 'East US'Beachten Sie, dass die Ressourcengruppe ggf. nicht überschrieben werden soll, falls sie bereits vorhanden ist. Weisen Sie der Variablen
$resourceGroupNameeinen anderen Wert zu, und führen Sie den Befehl erneut aus.Definieren Sie eine Variable für den Data Factory-Namen zur späteren Verwendung in PowerShell-Befehlen. Der Name muss mit einem Buchstaben oder einer Zahl beginnen und darf nur Buchstaben, Zahlen und Bindestriche (-) enthalten.
Wichtig
Ersetzen Sie den Data Factory-Namen durch einen global eindeutigen Namen. Ein Beispiel hierfür ist ADFTutorialFactorySP1127.
$dataFactoryName = "ADFTutorialFactory"Definieren Sie eine Variable für den Speicherort der Data Factory:
$location = "East US"Führen Sie das folgende
Set-AzDataFactoryV2-Cmdlet aus, um die Data Factory zu erstellen:Set-AzDataFactoryV2 -ResourceGroupName $resourceGroupName -Location $location -Name $dataFactoryName
Hinweis
- Der Name der Data Factory muss global eindeutig sein. Wenn die folgende Fehlermeldung angezeigt wird, ändern Sie den Namen, und wiederholen Sie den Vorgang.
The specified data factory name 'ADFv2TutorialDataFactory' is already in use. Data factory names must be globally unique. - Zum Erstellen von Data Factory-Instanzen muss dem Benutzerkonto, mit dem Sie sich bei Azure anmelden, eine contributor oder owner Rolle zugewiesen sein oder ein administrator des Azure-Abonnements sein.
- Wählen Sie für eine Liste Azure Regionen, in denen Data Factory zurzeit verfügbar ist, die Regionen aus, die Sie auf der folgenden Seite interessieren, und erweitern Sie dann Analytics, um Data Factory: Products available by region zu finden. Die Datenspeicher (Azure Storage, Azure SQL-Datenbank usw.) und Berechnungsdienste (Azure HDInsight usw.), die von der Data Factory verwendet werden, können in anderen Regionen sein.
Erstellen einer selbstgehosteten Integration Runtime
In diesem Abschnitt erstellen Sie eine selbst gehostete Integrationslaufzeit und ordnen sie einem lokalen Computer mit der SQL Server-Datenbank zu. Die selbst gehostete Integrationslaufzeit ist die Komponente, die Daten aus der SQL Server-Datenbank auf Ihrem Computer in Azure Blob Storage kopiert.
Erstellen Sie eine Variable für den Namen der Integration Runtime. Verwenden Sie einen eindeutigen Namen, und notieren Sie ihn. Sie benötigen ihn später in diesem Tutorial.
$integrationRuntimeName = "ADFTutorialIR"Erstellen Sie eine selbstgehostete Integration Runtime.
Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName -Name $integrationRuntimeName -Type SelfHosted -Description "selfhosted IR description"Hier ist die Beispielausgabe:
Name : ADFTutorialIR Type : SelfHosted ResourceGroupName : <resourceGroupName> DataFactoryName : <dataFactoryName> Description : selfhosted IR description Id : /subscriptions/<subscription ID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<dataFactoryName>/integrationruntimes/<integrationRuntimeName>Führen Sie den folgenden Befehl aus, um den Status der erstellten Integration Runtime abzurufen:
Get-AzDataFactoryV2IntegrationRuntime -name $integrationRuntimeName -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName -StatusHier ist die Beispielausgabe:
State : NeedRegistration Version : CreateTime : 9/10/2019 3:24:09 AM AutoUpdate : On ScheduledUpdateDate : UpdateDelayOffset : LocalTimeZoneOffset : InternalChannelEncryption : Capabilities : {} ServiceUrls : {eu.frontend.clouddatahub.net} Nodes : {} Links : {} Name : <Integration Runtime name> Type : SelfHosted ResourceGroupName : <resourceGroup name> DataFactoryName : <dataFactory name> Description : selfhosted IR description Id : /subscriptions/<subscription ID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<dataFactoryName>/integrationruntimes/<integrationRuntimeName>Führen Sie den folgenden Befehl aus, um die Authentifizierungsschlüssel abzurufen, mit denen Sie die selbstgehostete Integration Runtime beim Data Factory-Dienst in der Cloud registrieren können. Kopieren Sie einen der Schlüssel (ohne Anführungszeichen) zum Registrieren der selbstgehosteten Integration Runtime, die Sie im nächsten Schritt auf Ihrem Computer installieren.
Get-AzDataFactoryV2IntegrationRuntimeKey -Name $integrationRuntimeName -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName | ConvertTo-JsonHier ist die Beispielausgabe:
{ "AuthKey1": "IR@0000000000-0000-0000-0000-000000000000@xy0@xy@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=", "AuthKey2": "IR@0000000000-0000-0000-0000-000000000000@xy0@xy@yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy=" }
Installieren der Integration Runtime
Laden Sie Azure Data Factory Integration Runtime auf einem lokalen Windows Computer herunter, und führen Sie dann die Installation aus.
Im Assistenten Willkommen zu Microsoft Integration Runtime Setup, wählen Sie Weiter aus.
Stimmen Sie im Fenster mit dem Endbenutzer-Lizenzvertrag den Bedingungen bzw. dem Lizenzvertrag zu, und wählen Sie Weiter.
Wählen Sie im Fenster Zielordner die Option Weiter.
Wählen Sie im Fenster Ready zum Installieren Microsoft Integration RuntimeInstall aus.
Wählen Sie unter Completed the Microsoft Integration Runtime Setup Wizard (Setup-Assistent für Microsoft Integration Runtime abgeschlossen) die Option Fertig stellen.
Fügen Sie im Fenster Register Integration Runtime (selbst gehostet) den Im vorherigen Abschnitt gespeicherten Schlüssel ein, und wählen Sie dann Register aus.
Wählen Sie im Fenster Neue Integration Runtime (selbstgehosteter) KnotenFertig stellen aus.
Wenn die selbstgehostete Integration Runtime erfolgreich registriert wurde, wird die folgende Meldung angezeigt:
Wählen Sie im Fenster Registrieren der Integration Runtime (selbst gehostet)Starten Sie den Konfigurations-Manager aus.
Wenn der Knoten mit dem Clouddienst verbunden ist, wird die folgende Meldung angezeigt:
Testen Sie die Verbindung mit Ihrer SQL Server-Datenbank, indem Sie die folgenden Schritte ausführen:
a. Wechseln Sie im Fenster Konfigurations-Manager zur Registerkarte Diagnostics.
b. Wählen Sie im Feld Datenquellentyp die Option SqlServer.
c. Geben Sie den Servernamen ein.
d. Geben Sie den Datenbanknamen ein.
e. Wählen Sie den Authentifizierungsmodus aus.
f. Geben Sie den Benutzernamen ein.
g. Geben Sie das Kennwort ein, das dem Benutzernamen zugeordnet ist.
h. Um zu bestätigen, dass die Integrationslaufzeit eine Verbindung mit dem SQL Server herstellen kann, wählen Sie Test aus.
Wenn die Verbindungsherstellung erfolgreich war, wird ein grünes Häkchen angezeigt. Andernfalls wird eine Fehlermeldung angezeigt. Beheben Sie alle Probleme, und stellen Sie sicher, dass die Integrationslaufzeit eine Verbindung mit Ihrer SQL Server Instanz herstellen kann.
Notieren Sie sich alle obigen Werte zur späteren Verwendung in diesem Tutorial.
Erstellen von verknüpften Diensten
Erstellen Sie verknüpfte Dienste in einer Data Factory, um Ihre Datenspeicher und Computedienste mit der Data Factory zu verknüpfen. In diesem Lernprogramm verknüpfen Sie Ihr Azure Speicherkonto und SQL Server Instanz mit dem Datenspeicher. Die verknüpften Dienste enthalten die Verbindungsinformationen, die der Data Factory-Dienst zur Verbindungsherstellung zur Laufzeit verwendet.
Erstellen eines verknüpften Azure Storage-Diensts (Ziel/Senke)
In diesem Schritt verknüpfen Sie Ihr Azure Speicherkonto mit der Datenfactory.
Erstellen Sie im Ordner C:\ADFv2Tutorial eine JSON-Datei mit dem Namen AzureStorageLinkedService.json und folgendem Code. Erstellen Sie den Ordner ADFv2Tutorial, falls er noch nicht vorhanden ist.
Wichtig
Ersetzen Sie vor dem Speichern der Datei <accountName> und <accountKey> durch den Namen und den Schlüssel Ihres Azure Speicherkontos. Sie haben sich diese Angaben im Abschnitt Voraussetzungen notiert.
{ "name": "AzureStorageLinkedService", "properties": { "annotations": [], "type": "AzureBlobStorage", "typeProperties": { "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.windows.net" } } }Wechseln Sie in PowerShell zum Ordner C:\ADFv2Tutorial.
Set-Location 'C:\ADFv2Tutorial'Führen Sie das folgende
Set-AzDataFactoryV2LinkedService-Cmdlet aus, um den verknüpften Dienst „AzureStorageLinkedService“ zu erstellen:Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $ResourceGroupName -Name "AzureStorageLinkedService" -File ".\AzureStorageLinkedService.json"Hier ist eine Beispielausgabe:
LinkedServiceName : AzureStorageLinkedService ResourceGroupName : <resourceGroup name> DataFactoryName : <dataFactory name> Properties : Microsoft.Azure.Management.DataFactory.Models.AzureBlobStorageLinkedServiceWenn Sie einen Fehler vom Typ „Datei nicht gefunden“ erhalten, sollten Sie das Vorhandensein der Datei überprüfen, indem Sie den Befehl
dirausführen. Entfernen Sie für den Dateinamen die Erweiterung .txt (z.B. „AzureStorageLinkedService.json.txt“), falls vorhanden, und führen Sie den PowerShell-Befehl dann erneut aus.
Erstellen und Verschlüsseln eines SQL Server verknüpften Diensts (Quelle)
In diesem Schritt verknüpfen Sie Ihre SQL Server Instanz mit der Datenfactory.
Erstellen Sie im Ordner C:\ADFv2Tutorial eine JSON-Datei mit dem Namen SqlServerLinkedService.json, indem Sie den folgenden Code verwenden:
Wichtig
Wählen Sie den Abschnitt aus, der auf der Authentifizierung basiert, die Sie zum Herstellen einer Verbindung mit SQL Server verwenden.
Verwenden der SQL-Authentifizierung (sa):
{ "name":"SqlServerLinkedService", "type":"Microsoft.DataFactory/factories/linkedservices", "properties":{ "annotations":[ ], "type":"SqlServer", "typeProperties":{ "connectionString":"integrated security=False;data source=<serverName>;initial catalog=<databaseName>;user id=<userName>;password=<password>" }, "connectVia":{ "referenceName":"<integration runtime name> ", "type":"IntegrationRuntimeReference" } } }Verwendung der Windows-Authentifizierung:
{ "name":"SqlServerLinkedService", "type":"Microsoft.DataFactory/factories/linkedservices", "properties":{ "annotations":[ ], "type":"SqlServer", "typeProperties":{ "connectionString":"integrated security=True;data source=<serverName>;initial catalog=<databaseName>", "userName":"<username> or <domain>\\<username>", "password":{ "type":"SecureString", "value":"<password>" } }, "connectVia":{ "referenceName":"<integration runtime name>", "type":"IntegrationRuntimeReference" } } }Wichtig
- Wählen Sie den Abschnitt aus, der auf der Authentifizierung basiert, die Sie zum Herstellen einer Verbindung mit Ihrer SQL Server Instanz verwenden.
- Ersetzen Sie <Name der Integrations-Runtime> durch den Namen Ihrer Integrations-Runtime.
- Ersetzen Sie vor dem Speichern der Datei <servername>, <databasename>, <benutzername> und <password> mit den Werten Ihrer SQL Server Instanz.
- Wenn Ihr Benutzerkonto- oder Servername einen umgekehrten Schrägstrich (\) enthält, ist es erforderlich, ein Escapezeichen (\) voranzustellen. Verwenden Sie beispielsweise mydomain\\myuser.
Führen Sie zum Verschlüsseln der sensiblen Daten (Benutzername, Kennwort usw.) das
New-AzDataFactoryV2LinkedServiceEncryptedCredential-Cmdlet aus.
Mit dieser Verschlüsselung wird sichergestellt, dass die Anmeldeinformationen per DPAPI (Data Protection Application Programming Interface) verschlüsselt werden. Die verschlüsselten Anmeldeinformationen werden lokal auf dem selbstgehosteten Integration Runtime-Knoten (lokaler Computer) gespeichert. Die Ausgabenutzlast kann an eine weitere JSON-Datei umgeleitet werden (in diesem Fall encryptedLinkedService.json), die verschlüsselte Anmeldeinformationen enthält.New-AzDataFactoryV2LinkedServiceEncryptedCredential -DataFactoryName $dataFactoryName -ResourceGroupName $ResourceGroupName -IntegrationRuntimeName $integrationRuntimeName -File ".\SQLServerLinkedService.json" > encryptedSQLServerLinkedService.jsonFühren Sie den folgenden Befehl aus, um EncryptedSqlServerLinkedService zu erstellen:
Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $ResourceGroupName -Name "EncryptedSqlServerLinkedService" -File ".\encryptedSqlServerLinkedService.json"
Erstellen von Datasets
In diesem Schritt erstellen Sie Eingabe- und Ausgabedatasets. Sie stellen Eingabe- und Ausgabedaten für den Kopiervorgang dar, der Daten aus der SQL Server-Datenbank in Azure BLOB-Speicher kopiert.
Erstellen eines Datasets für die Quelldatenbank SQL Server
In diesem Schritt definieren Sie ein Dataset, das Daten in der SQL Server Datenbankinstanz darstellt. Das Dataset ist vom Typ „SqlServerTable“. Er bezieht sich auf den SQL Server verknüpften Dienst, den Sie im vorherigen Schritt erstellt haben. Der verknüpfte Dienst enthält die Verbindungsinformationen, die der Data Factory-Dienst zum Herstellen einer Verbindung mit Ihrer SQL Server Instanz zur Laufzeit verwendet. Dieses Dataset gibt die SQL-Tabelle in der Datenbank mit den Daten an. In diesem Tutorial enthält die Tabelle emp die Quelldaten.
Erstellen Sie im Ordner C:\ADFv2Tutorial eine JSON-Datei mit dem Namen SqlServerDataset.json und folgendem Code:
{ "name":"SqlServerDataset", "properties":{ "linkedServiceName":{ "referenceName":"EncryptedSqlServerLinkedService", "type":"LinkedServiceReference" }, "annotations":[ ], "type":"SqlServerTable", "schema":[ ], "typeProperties":{ "schema":"dbo", "table":"emp" } } }Führen Sie das
Set-AzDataFactoryV2Dataset-Cmdlet aus, um das Dataset „SqlServerDataset“ zu erstellen.Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "SqlServerDataset" -File ".\SqlServerDataset.json"Hier ist die Beispielausgabe:
DatasetName : SqlServerDataset ResourceGroupName : <resourceGroupName> DataFactoryName : <dataFactoryName> Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.SqlServerTableDataset
Ein Dataset für Azure Blob Storage (Sink) erstellen
In diesem Schritt definieren Sie ein Dataset, das Daten darstellt, die in Azure Blob-Speicher kopiert werden. Das Dataset ist vom Typ „AzureBlob“. Er bezieht sich auf den Azure Storage verknüpften Dienst, den Sie zuvor in diesem Lernprogramm erstellt haben.
Der verknüpfte Dienst enthält die Verbindungsinformationen, die die Data Factory zur Laufzeit zum Herstellen einer Verbindung mit Ihrem Azure Speicherkonto verwendet. Dieses Dataset gibt den Ordner im Azure Speicher an, in den die Daten aus der SQL Server-Datenbank kopiert werden. In diesem Tutorial lautet der Ordner adftutorial/fromonprem. Hierbei ist adftutorial der Blobcontainer und fromonprem der Ordner.
Erstellen Sie im Ordner C:\ADFv2Tutorial eine JSON-Datei mit dem Namen AzureBlobDataset.json und folgendem Code:
{ "name":"AzureBlobDataset", "properties":{ "linkedServiceName":{ "referenceName":"AzureStorageLinkedService", "type":"LinkedServiceReference" }, "annotations":[ ], "type":"DelimitedText", "typeProperties":{ "location":{ "type":"AzureBlobStorageLocation", "folderPath":"fromonprem", "container":"adftutorial" }, "columnDelimiter":",", "escapeChar":"\\", "quoteChar":"\"" }, "schema":[ ] }, "type":"Microsoft.DataFactory/factories/datasets" }Führen Sie das
Set-AzDataFactoryV2Dataset-Cmdlet aus, um das Dataset „AzureBlobDataset“ zu erstellen.Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "AzureBlobDataset" -File ".\AzureBlobDataset.json"Hier ist die Beispielausgabe:
DatasetName : AzureBlobDataset ResourceGroupName : <resourceGroupName> DataFactoryName : <dataFactoryName> Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.DelimitedTextDataset
Erstellen einer Pipeline
In diesem Tutorial erstellen Sie eine Pipeline mit einer Kopieraktivität. Die Kopieraktivität verwendet „SqlServerDataset“ als Eingabedataset und „AzureBlobDataset“ als Ausgabedataset. Der Quellentyp ist auf SqlSource und der Senkentyp auf BlobSink festgelegt.
Erstellen Sie im Ordner C:\ADFv2Tutorial eine JSON-Datei mit dem Namen SqlServerToBlobPipeline.json und folgendem Code:
{ "name":"SqlServerToBlobPipeline", "properties":{ "activities":[ { "name":"CopySqlServerToAzureBlobActivity", "type":"Copy", "dependsOn":[ ], "policy":{ "timeout":"7.00:00:00", "retry":0, "retryIntervalInSeconds":30, "secureOutput":false, "secureInput":false }, "userProperties":[ ], "typeProperties":{ "source":{ "type":"SqlServerSource" }, "sink":{ "type":"DelimitedTextSink", "storeSettings":{ "type":"AzureBlobStorageWriteSettings" }, "formatSettings":{ "type":"DelimitedTextWriteSettings", "quoteAllText":true, "fileExtension":".txt" } }, "enableStaging":false }, "inputs":[ { "referenceName":"SqlServerDataset", "type":"DatasetReference" } ], "outputs":[ { "referenceName":"AzureBlobDataset", "type":"DatasetReference" } ] } ], "annotations":[ ] } }Führen Sie das
Set-AzDataFactoryV2Pipeline-Cmdlet aus, um die Pipeline „SQLServerToBlobPipeline“ zu erstellen.Set-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "SQLServerToBlobPipeline" -File ".\SQLServerToBlobPipeline.json"Hier ist die Beispielausgabe:
PipelineName : SQLServerToBlobPipeline ResourceGroupName : <resourceGroupName> DataFactoryName : <dataFactoryName> Activities : {CopySqlServerToAzureBlobActivity} Parameters :
Erstellen einer Pipelineausführung
Starten Sie eine Ausführung der Pipeline „SQLServerToBlobPipeline“ und erfassen Sie die Ausführungs-ID der Pipeline für die zukünftige Überwachung.
$runId = Invoke-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineName 'SQLServerToBlobPipeline'
Überwachen Sie den Pipeline-Lauf
Führen Sie das folgende Skript in PowerShell aus, um den Ausführungsstatus der Pipeline „SQLServerToBlobPipeline“ kontinuierlich zu überprüfen und das Endergebnis auszugeben:
while ($True) { $result = Get-AzDataFactoryV2ActivityRun -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineRunId $runId -RunStartedAfter (Get-Date).AddMinutes(-30) -RunStartedBefore (Get-Date).AddMinutes(30) if (($result | Where-Object { $_.Status -eq "InProgress" } | Measure-Object).count -ne 0) { Write-Host "Pipeline run status: In Progress" -foregroundcolor "Yellow" Start-Sleep -Seconds 30 } else { Write-Host "Pipeline 'SQLServerToBlobPipeline' run finished. Result:" -foregroundcolor "Yellow" $result break } }Hier ist die Ausgabe der Beispielausführung:
ResourceGroupName : <resourceGroupName> DataFactoryName : <dataFactoryName> ActivityRunId : 24af7cf6-efca-4a95-931d-067c5c921c25 ActivityName : CopySqlServerToAzureBlobActivity ActivityType : Copy PipelineRunId : 7b538846-fd4e-409c-99ef-2475329f5729 PipelineName : SQLServerToBlobPipeline Input : {source, sink, enableStaging} Output : {dataRead, dataWritten, filesWritten, sourcePeakConnections...} LinkedServiceName : ActivityRunStart : 9/11/2019 7:10:37 AM ActivityRunEnd : 9/11/2019 7:10:58 AM DurationInMs : 21094 Status : Succeeded Error : {errorCode, message, failureType, target} AdditionalProperties : {[retryAttempt, ], [iterationHash, ], [userProperties, {}], [recoveryStatus, None]...}Sie können die Ausführungs-ID der Pipeline „SQLServerToBlobPipeline“ abrufen und das detaillierte Ergebnis der Aktivitätsausführung mit dem folgenden Befehl überprüfen:
Write-Host "Pipeline 'SQLServerToBlobPipeline' run result:" -foregroundcolor "Yellow" ($result | Where-Object {$_.ActivityName -eq "CopySqlServerToAzureBlobActivity"}).Output.ToString()Hier ist die Ausgabe der Beispielausführung:
{ "dataRead":36, "dataWritten":32, "filesWritten":1, "sourcePeakConnections":1, "sinkPeakConnections":1, "rowsRead":2, "rowsCopied":2, "copyDuration":18, "throughput":0.01, "errors":[ ], "effectiveIntegrationRuntime":"ADFTutorialIR", "usedParallelCopies":1, "executionDetails":[ { "source":{ "type":"SqlServer" }, "sink":{ "type":"AzureBlobStorage", "region":"CentralUS" }, "status":"Succeeded", "start":"2019-09-11T07:10:38.2342905Z", "duration":18, "usedParallelCopies":1, "detailedDurations":{ "queuingDuration":6, "timeToFirstByte":0, "transferDuration":5 } } ] }
Überprüfen Sie die Ausgabe
Die Pipeline erstellt den Ausgabeordner fromonprem automatisch im Blobcontainer adftutorial. Vergewissern Sie sich, dass die Datei dbo.emp.txt im Ausgabeordner enthalten ist.
Wählen Sie im Azure-Portal im adftutorial Containerfenster Refresh aus, um den Ausgabeordner anzuzeigen.
Wählen Sie in der Liste mit den Ordnern die Option
fromonprem.Vergewissern Sie sich, dass die Datei
dbo.emp.txtangezeigt wird.
Zugehöriger Inhalt
Die Pipeline in diesem Beispiel kopiert Daten von einem Speicherort an einen anderen in Azure Blob-Speicher. Sie haben Folgendes gelernt:
- Erstellen einer Data Factory.
- Erstellen Sie eine selbstgehostete Integration Runtime.
- Erstellen Sie SQL Server- und Azure Storage-verbundene Dienste.
- Erstellen Sie SQL Server und Azure Blob-Datasets.
- Erstellen Sie eine Pipeline mit einer Kopieraktivität, um die Daten zu verschieben.
- Starten einer Pipelineausführung
- Überwachen der Pipelineausführung.
Eine Liste mit den von der Data Factory unterstützten Datenspeichern finden Sie unter Unterstützte Datenspeicher.
Fahren Sie mit dem folgenden Tutorial fort, um mehr über das Kopieren von Daten per Massenvorgang aus einer Quelle in ein Ziel zu erfahren: