Esercitazione: Copiare dati da un database di SQL Server locale a un archivio BLOB di AzureTutorial: Copy data from an on-premises SQL Server database to Azure Blob storage

In questa esercitazione si usa Azure PowerShell per creare una pipeline di Data Factory che copia i dati da un database di SQL Server locale a un archivio BLOB di Azure.In this tutorial, you use Azure PowerShell to create a data-factory pipeline that copies data from an on-premises SQL Server database to Azure Blob storage. Si crea e si usa un runtime di integrazione self-hosted, che sposta i dati tra gli archivi dati locali e cloud.You create and use a self-hosted integration runtime, which moves data between on-premises and cloud data stores.

Nota

Questo articolo non offre una presentazione dettagliata del servizio Data Factory.This article does not provide a detailed introduction to the Data Factory service. Per altre informazioni, vedere l'introduzione ad Azure Data Factory.For more information, see Introduction to Azure Data Factory.

In questa esercitazione si segue questa procedura:In this tutorial, you perform the following steps:

  • Creare una data factory.Create a data factory.
  • Creare un runtime di integrazione self-hosted.Create a self-hosted integration runtime.
  • Creare servizi collegati per SQL Server e Archiviazione di Azure.Create SQL Server and Azure Storage linked services.
  • Creare set di dati per SQL Server e BLOB di Azure.Create SQL Server and Azure Blob datasets.
  • Creare una pipeline con attività di copia per trasferire i dati.Create a pipeline with a copy activity to move the data.
  • Avviare un'esecuzione della pipeline.Start a pipeline run.
  • Monitorare l'esecuzione della pipeline.Monitor the pipeline run.

PrerequisitiPrerequisites

Sottoscrizione di AzureAzure subscription

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.Before you begin, if you don't already have an Azure subscription, create a free account.

Ruoli di AzureAzure roles

Per creare istanze di Data Factory, all'account utente usato per accedere ad Azure deve essere assegnato un ruolo collaboratore o proprietario oppure l'account utente deve essere un amministratore della sottoscrizione di Azure.To create data factory instances, the user account you use to sign in to Azure must be assigned a Contributor or Owner role or must be an administrator of the Azure subscription.

Per visualizzare le autorizzazioni disponibili nella sottoscrizione, passare al portale di Azure, selezionare il nome utente nell'angolo in alto a destra e quindi Autorizzazioni.To view the permissions you have in the subscription, go to the Azure portal, select your username at the top-right corner, and then select Permissions. Se si accede a più sottoscrizioni, selezionare quella appropriata.If you have access to multiple subscriptions, select the appropriate subscription. Per istruzioni di esempio sull'aggiunta di un utente a un ruolo, vedere l'articolo Gestire l'accesso usando il controllo degli accessi in base al ruolo e il portale di Azure.For sample instructions on adding a user to a role, see the Manage access using RBAC and the Azure portal article.

SQL Server 2014, 2016 e 2017SQL Server 2014, 2016, and 2017

In questa esercitazione si usa un database di SQL Server locale come archivio dati di origine.In this tutorial, you use an on-premises SQL Server database as a source data store. La pipeline nella data factory creata in questa esercitazione copia i dati da questo database di SQL Server locale (origine) all'archivio BLOB di Azure (sink).The pipeline in the data factory you create in this tutorial copies data from this on-premises SQL Server database (source) to Azure Blob storage (sink). Si crea quindi una tabella denominata emp nel database di SQL Server e inserire una coppia di voci di esempio nella tabella.You then create a table named emp in your SQL Server database, and insert a couple of sample entries into the table.

  1. Avviare SQL Server Management Studio.Start SQL Server Management Studio. Se non è già installato nel computer, passare a Scaricare SQL Server Management Studio.If it is not already installed on your machine, go to Download SQL Server Management Studio.

  2. Connettersi all'istanza di SQL Server usando le credenziali.Connect to your SQL Server instance by using your credentials.

  3. Creare un database di esempio.Create a sample database. Nella visualizzazione struttura ad albero fare clic con il pulsante destro del mouse su Database e scegliere Nuovo database.In the tree view, right-click Databases, and then select New Database.

  4. Nella finestra Nuovo database immettere un nome per il database e fare clic su OK.In the New Database window, enter a name for the database, and then select OK.

  5. Per creare la tabella emp e inserirvi alcuni dati di esempio, eseguire questo script di query sul database.To create the emp table and insert some sample data into it, run the following query script against the database. Nella visualizzazione struttura ad albero fare clic con il pulsante destro del mouse sul database creato e scegliere Nuova query.In the tree view, right-click the database that you created, and then select New Query.

    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
    

Account di archiviazione di AzureAzure Storage account

In questa esercitazione si usa un account di archiviazione di Azure per utilizzo generico (specificamente, un archivio BLOB) come archivio dati di destinazione/sink.In this tutorial, you use a general-purpose Azure storage account (specifically, Azure Blob storage) as a destination/sink data store. Se non si ha un account di archiviazione di Azure per utilizzo generico, vedere Creare un account di archiviazione.If you don't have a general-purpose Azure storage account, see Create a storage account. La pipeline nella data factory creata in questa esercitazione copia i dati dal database di SQL Server locale (origine) a questo archivio BLOB di Azure (sink).The pipeline in the data factory you that create in this tutorial copies data from the on-premises SQL Server database (source) to this Azure Blob storage (sink).

Recuperare il nome e la chiave dell'account di archiviazioneGet storage account name and account key

In questa esercitazione si usano il nome e la chiave dell'account di archiviazione di Azure.You use the name and key of your Azure storage account in this tutorial. Recuperare il nome e la chiave dell'account di archiviazione nel modo seguente:Get the name and key of your storage account by doing the following:

  1. Accedere al portale di Azure con nome utente e password.Sign in to the Azure portal with your Azure username and password.

  2. Nel riquadro a sinistra selezionare Altri servizi, usare la parola chiave Archiviazione come filtro e selezionare Account di archiviazione.In the left pane, select More services, filter by using the Storage keyword, and then select Storage accounts.

    Cercare l'account di archiviazione

  3. Nell'elenco degli account di archiviazione filtrare, se necessario, e quindi selezionare il proprio account di archiviazione.In the list of storage accounts, filter for your storage account (if needed), and then select your storage account.

  4. Nella finestra Account di archiviazione selezionare Chiavi di accesso.In the Storage account window, select Access keys.

  5. Nelle caselle Nome account di archiviazione e key1 copiare i valori e incollarli nel Blocco note o in un altro editor per usarli in seguito nell'esercitazione.In the Storage account name and key1 boxes, copy the values, and then paste them into Notepad or another editor for later use in the tutorial.

Creare il contenitore adftutorialCreate the adftutorial container

In questa sezione si crea un contenitore BLOB denominato adftutorial nell'archivio BLOB di Azure.In this section, you create a blob container named adftutorial in your Azure Blob storage.

  1. Nella finestra Account di archiviazione passare a Panoramica e quindi selezionare BLOB.In the Storage account window, switch to Overview, and then select Blobs.

    Selezionare l'opzione BLOB

  2. Nella finestra Servizio BLOB selezionare Contenitore.In the Blob service window, select Container.

  3. Nella finestra di dialogo Nuovo contenitore immettere adftutorial nella casella Nome e fare clic su OK.In the New container window, in the Name box, enter adftutorial, and then select OK.

    Immettere il nome del contenitore

  4. Selezionare adftutorial nell'elenco di contenitori.In the list of containers, select adftutorial.

  5. Tenere aperta la finestra Contenitore per adftutorialKeep the container window for adftutorial open. perché verrà usata per verificare l'output alla fine di questa esercitazione.You use it verify the output at the end of the tutorial. Data Factory crea automaticamente la cartella di output in questo contenitore, quindi non è necessario crearne uno.Data Factory automatically creates the output folder in this container, so you don't need to create one.

Windows PowerShellWindows PowerShell

Installare Azure PowerShellInstall Azure PowerShell

Nota

Questo articolo è stato aggiornato per usare il nuovo modulo Az di Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. È comunque possibile usare il modulo AzureRM, che continuerà a ricevere correzioni di bug almeno fino a dicembre 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Per altre informazioni sul nuovo modulo Az e sulla compatibilità di AzureRM, vedere Introduzione del nuovo modulo Az di Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Per istruzioni sull'installazione del modulo Az, vedere Installare Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Installare la versione più recente di Azure PowerShell, se non è già presente nel computer.Install the latest version of Azure PowerShell if you don't already have it on your machine. Per istruzioni dettagliate, vedere Come installare e configurare Azure PowerShell.For detailed instructions, see How to install and configure Azure PowerShell.

Accedere a PowerShellLog in to PowerShell

  1. Avviare PowerShell nel computer in uso e tenerlo aperto fino al completamento di questa esercitazione introduttiva.Start PowerShell on your machine, and keep it open through completion of this quickstart tutorial. Se si chiude e si riapre, sarà necessario eseguire di nuovo questi comandi.If you close and reopen it, you'll need to run these commands again.

  2. Eseguire questo comando e immettere il nome utente e la password di Azure usati per accedere al portale di Azure:Run the following command, and then enter the Azure username and password that you use to sign in to the Azure portal:

    Connect-AzAccount
    
  3. Se si hanno più sottoscrizioni di Azure, eseguire questo comando per selezionare la sottoscrizione che si vuole usare.If you have multiple Azure subscriptions, run the following command to select the subscription that you want to work with. Sostituire SubscriptionId con l'ID della sottoscrizione di Azure:Replace SubscriptionId with the ID of your Azure subscription:

    Select-AzSubscription -SubscriptionId "<SubscriptionId>"    
    

Creare una data factoryCreate a data factory

  1. Definire una variabile per il nome del gruppo di risorse usato in seguito nei comandi di PowerShell.Define a variable for the resource group name that you'll use later in PowerShell commands. Copiare il comando seguente in PowerShell, specificare un nome per il gruppo di risorse di Azure tra virgolette doppie (ad esempio "adfrg") e quindi eseguire il comando.Copy the following command to PowerShell, specify a name for the Azure resource group (enclosed in double quotation marks; for example, "adfrg"), and then run the command.

    $resourceGroupName = "ADFTutorialResourceGroup"
    
  2. Per creare il gruppo di risorse di Azure, eseguire questo comando:To create the Azure resource group, run the following command:

    New-AzResourceGroup $resourceGroupName -location 'East US'
    

    Se il gruppo di risorse esiste già, potrebbe essere preferibile non sovrascriverlo.If the resource group already exists, you may not want to overwrite it. Assegnare un valore diverso alla variabile $resourceGroupName ed eseguire di nuovo il comando.Assign a different value to the $resourceGroupName variable and run the command again.

  3. Definire una variabile per il nome della data factory utilizzabile in seguito nei comandi di PowerShell.Define a variable for the data factory name that you can use in PowerShell commands later. Il nome deve iniziare con una lettera o un numero e può contenere solo lettere, numeri e il carattere trattino (-).The name must start with a letter or a number, and it can contain only letters, numbers, and the dash (-) character.

    Importante

    Aggiornare il nome della data factory in modo che sia univoco a livello globale,Update the data factory name with a globally unique name. ad esempio ADFTutorialFactorySP1127.An example is ADFTutorialFactorySP1127.

    $dataFactoryName = "ADFTutorialFactory"
    
  4. Definire una variabile per la località della data factory:Define a variable for the location of the data factory:

    $location = "East US"
    
  5. Per creare la data factory, eseguire il cmdlet Set-AzDataFactoryV2 seguente:To create the data factory, run the following Set-AzDataFactoryV2 cmdlet:

    Set-AzDataFactoryV2 -ResourceGroupName $resourceGroupName -Location $location -Name $dataFactoryName 
    

Nota

  • Il nome della data factory deve essere univoco a livello globale.The name of the data factory must be globally unique. Se viene visualizzato l'errore seguente, modificare il nome e riprovare.If you receive the following error, change the name and try again.
    The specified data factory name 'ADFv2TutorialDataFactory' is already in use. Data factory names must be globally unique.
    
  • Per creare istanze di Data Factory, all'account utente usato per accedere ad Azure deve essere assegnato un ruolo collaboratore o proprietario oppure l'account deve essere un amministratore della sottoscrizione di Azure.To create data-factory instances, the user account that you use to sign in to Azure must be assigned a contributor or owner role or must be an administrator of the Azure subscription.
  • Per un elenco di aree di Azure in cui Data Factory è attualmente disponibile, selezionare le aree di interesse nella pagina seguente, quindi espandere Analytics per individuare Data Factory: Prodotti disponibili in base all'area.For a list of Azure regions in which Data Factory is currently available, select the regions that interest you on the following page, and then expand Analytics to locate Data Factory: Products available by region. Gli archivi dati (Archiviazione di Azure, database SQL di Azure e così via) e le risorse di calcolo (Azure HDInsight e così via) usati dalla data factory possono trovarsi in altre aree.The data stores (Azure Storage, Azure SQL Database, and so on) and computes (Azure HDInsight and so on) used by the data factory can be in other regions.

Creare un runtime di integrazione self-hostedCreate a self-hosted integration runtime

In questa sezione si crea un runtime di integrazione self-hosted e lo si associa a un computer locale con il database di SQL Server.In this section, you create a self-hosted integration runtime and associate it with an on-premises machine with the SQL Server database. Il runtime di integrazione self-hosted è il componente che copia i dati dal database SQL Server presente nel computer all'archivio BLOB di Azure.The self-hosted integration runtime is the component that copies data from the SQL Server database on your machine to Azure Blob storage.

  1. Creare una variabile per il nome del runtime di integrazione.Create a variable for the name of integration runtime. Usare un nome univoco e annotarloUse a unique name, and note the name. perché sarà usato più avanti in questa esercitazione.You use it later in this tutorial.

    $integrationRuntimeName = "ADFTutorialIR"
    
  2. Creare un runtime di integrazione self-hosted.Create a self-hosted integration runtime.

    Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName -Name $integrationRuntimeName -Type SelfHosted -Description "selfhosted IR description"
    

    Di seguito è riportato l'output di esempio:Here is the sample output:

    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>
    
  3. Eseguire questo comando per recuperare lo stato del runtime di integrazione creato:To retrieve the status of the created integration runtime, run the following command:

    Get-AzDataFactoryV2IntegrationRuntime -name $integrationRuntimeName -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName -Status
    

    Di seguito è riportato l'output di esempio:Here is the sample output:

    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>
    
  4. Eseguire questo comando per recuperare le chiavi di autenticazione per la registrazione del runtime di integrazione self-hosted nel servizio Data Factory nel cloud.To retrieve the authentication keys for registering the self-hosted integration runtime with the Data Factory service in the cloud, run the following command. Copiare una delle chiavi (escluse le virgolette) per la registrazione del runtime di integrazione self-hosted che si installerà nel computer nel passaggio successivo.Copy one of the keys (excluding the quotation marks) for registering the self-hosted integration runtime that you install on your machine in the next step.

    Get-AzDataFactoryV2IntegrationRuntimeKey -Name $integrationRuntimeName -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName | ConvertTo-Json
    

    Di seguito è riportato l'output di esempio:Here is the sample output:

    {
        "AuthKey1":  "IR@0000000000-0000-0000-0000-000000000000@xy0@xy@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=",
        "AuthKey2":  "IR@0000000000-0000-0000-0000-000000000000@xy0@xy@yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy="
    }
    

Installare il runtime di integrazioneInstall the integration runtime

  1. Scaricare Azure Data Factory Integration Runtime in un computer Windows locale, quindi eseguire l'installazione.Download Azure Data Factory Integration Runtime on a local Windows machine, and then run the installation.

  2. Nella pagina iniziale dell'installazione guidata di Microsoft Integration Runtime fare clic su Avanti.In the Welcome to Microsoft Integration Runtime Setup wizard, select Next.

  3. Nella finestra Contratto di licenza con l'utente finale accettare le condizioni e fare clic su Avanti.In the End-User License Agreement window, accept the terms and license agreement, and select Next.

  4. Nella finestra Cartella di destinazione fare clic su Avanti.In the Destination Folder window, select Next.

  5. Nella pagina Pronto per l'installazione fare clic su Installa.In the Ready to install Microsoft Integration Runtime window, select Install.

  6. Nella pagina Installazione di Microsoft Integration Runtime completata fare clic su Fine.In the Completed the Microsoft Integration Runtime Setup wizard, select Finish.

  7. Nella finestra Registra Runtime di integrazione (self-hosted) incollare la chiave salvata nella sezione precedente e fare clic su Registra.In the Register Integration Runtime (Self-hosted) window, paste the key you saved in the previous section, and then select Register.

    Registrare il runtime di integrazione

  8. Nella finestra Nuovo nodo di Runtime di integrazione (self-hosted) fare clic su Fine.In the New Integration Runtime (Self-hosted) Node window, select Finish.

    Finestra Nuovo nodo di Runtime di integrazione

  9. Al termine della registrazione del runtime di integrazione self-hosted viene visualizzato il messaggio seguente:When the self-hosted integration runtime is registered successfully, the following message is displayed:

    Registrazione completata

  10. Nella finestra Registra Runtime di integrazione (self-hosted) fare clic su Avvia Configuration Manager.In the Register Integration Runtime (Self-hosted) window, select Launch Configuration Manager.

  11. Quando il nodo viene connesso al servizio cloud, viene visualizzato il messaggio seguente:When the node is connected to the cloud service, the following message is displayed:

    Connessione del nodo

  12. Testare la connettività al database di SQL Server nel modo seguente:Test the connectivity to your SQL Server database by doing the following:

    a.a. Nella finestra Configuration Manager passare alla scheda Diagnostica.In the Configuration Manager window, switch to the Diagnostics tab.

    b.b. Selezionare SqlServer in Tipo di origine dati.In the Data source type box, select SqlServer.

    c.c. Immettere il nome del server.Enter the server name.

    d.d. Immettere il nome del database.Enter the database name.

    e.e. Selezionare la modalità di autenticazione.Select the authentication mode.

    f.f. Immettere il nome utente.Enter the username.

    g.g. Immettere la password associata al nome utente.Enter the password that's associated with the username.

    h.h. Fare clic su Test per verificare che il runtime di integrazione possa connettersi a SQL Server.To confirm that integration runtime can connect to the SQL Server, select Test.
    Connettività riuscitaConnectivity succeeded

    Se la connessione ha esito positivo, viene visualizzato un segno di spunta verde.If the connection is successful, a green checkmark icon is displayed. In caso contrario, viene visualizzato un messaggio associato all'errore.Otherwise, you'll receive an error message associated with the failure. Risolvere eventuali problemi e assicurarsi che il runtime di integrazione possa connettersi all'istanza di SQL Server.Fix any issues, and ensure that the integration runtime can connect to your SQL Server instance.

    Annotare tutti i valori precedenti per usarli più avanti in questa esercitazione.Note all the preceding values for later use in this tutorial.

Creare servizi collegatiCreate linked services

Creare servizi collegati nella data factory per collegare gli archivi dati e i servizi di calcolo alla data factory.To link your data stores and compute services to the data factory, create linked services in the data factory. In questa esercitazione si collegano l'account di archiviazione di Azure e l'istanza di SQL Server locale all'archivio dati.In this tutorial, you link your Azure storage account and on-premises SQL Server instance to the data store. I servizi collegati hanno le informazioni di connessione usate dal servizio Data Factory in fase di esecuzione per la connessione.The linked services have the connection information that the Data Factory service uses at runtime to connect to them.

Creare un servizio collegato Archiviazione di Azure (destinazione/sink)Create an Azure Storage linked service (destination/sink)

In questo passaggio, l'account di archiviazione di Azure viene collegato alla data factory.In this step, you link your Azure storage account to the data factory.

  1. Creare un file JSON denominato AzureStorageLinkedService.json nella cartella C:\ADFv2Tutorial con il codice seguente.Create a JSON file named AzureStorageLinkedService.json in the C:\ADFv2Tutorial folder with the following code. Creare la cartella ADFv2Tutorial, se non esiste già.If the ADFv2Tutorial folder does not already exist, create it.

    Importante

    Sostituire <accountName> e <accountKey> con il nome e la chiave dell'account di archiviazione di Azure prima di salvare il file.Before you save the file, replace <accountName> and <accountKey> with the name and key of your Azure storage account. Questi valori sono stati annotati nella sezione Prerequisiti.You noted them in the Prerequisites section.

     {
         "name": "AzureStorageLinkedService",
         "properties": {
             "annotations": [],
             "type": "AzureBlobStorage",
             "typeProperties": {
                 "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.windows.net"
             }
         }
     }
    
  2. In PowerShell passare alla cartella C:\ADFv2Tutorial.In PowerShell, switch to the C:\ADFv2Tutorial folder.

    Set-Location 'C:\ADFv2Tutorial'    
    
  3. Eseguire il cmdlet Set-AzDataFactoryV2LinkedService seguente per creare il servizio collegato denominato AzureStorageLinkedService:To create the linked service, AzureStorageLinkedService, run the following Set-AzDataFactoryV2LinkedService cmdlet:

    Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $ResourceGroupName -Name "AzureStorageLinkedService" -File ".\AzureStorageLinkedService.json"
    

    Di seguito è riportato un output di esempio:Here is a sample output:

    LinkedServiceName : AzureStorageLinkedService
    ResourceGroupName : <resourceGroup name>
    DataFactoryName   : <dataFactory name>
    Properties        : Microsoft.Azure.Management.DataFactory.Models.AzureBlobStorageLinkedService
    

    Se viene visualizzato un errore di tipo "File non trovato", verificare che il file esista eseguendo il comando dir.If you receive a "file not found" error, confirm that the file exists by running the dir command. Se il nome del file ha estensione txt, ad esempio AzureStorageLinkedService.json.txt, rimuovere l'estensione ed eseguire di nuovo il comando di PowerShell.If the file name has a .txt extension (for example, AzureStorageLinkedService.json.txt), remove it, and then run the PowerShell command again.

Creare e crittografare un servizio collegato SQL Server (origine)Create and encrypt a SQL Server linked service (source)

In questo passaggio si collega l'istanza di SQL Server locale alla data factory.In this step, you link your on-premises SQL Server instance to the data factory.

  1. Creare un file JSON denominato SqlServerLinkedService.json nella cartella C:\ADFv2Tutorial usando il codice seguente:Create a JSON file named SqlServerLinkedService.json in the C:\ADFv2Tutorial folder by using the following code:

    Importante

    Selezionare la sezione in base all'autenticazione usata per connettersi a SQL Server.Select the section that's based on the authentication that you use to connect to SQL Server.

    Uso dell'autenticazione SQL (sa):Using SQL authentication (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"
            }
        }
    }
    

    Uso dell'autenticazione di Windows:Using Windows authentication:

    {  
        "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"
            }
        }
    } 
    

    Importante

    • Selezionare la sezione in base all'autenticazione usata per connettersi all'istanza di SQL Server.Select the section that's based on the authentication you use to connect to your SQL Server instance.
    • Sostituire <integration runtime name> con il nome del runtime di integrazione.Replace <integration runtime name> with the name of your integration runtime.
    • Prima di salvare il file, sostituire <servername> , <databasename> , <username> e <password> con i valori dell'istanza di SQL Server.Before you save the file, replace <servername>, <databasename>, <username>, and <password> with the values of your SQL Server instance.
    • Se è necessario usare una barra rovesciata (\) nell'account utente o nel nome del server, farla precedere dal carattere di escape (\).If you need to use a backslash (\) in your user account or server name, precede it with the escape character (\). Ad esempio, usare mydomain\\myuser.For example, use mydomain\\myuser.
  2. Per crittografare i dati sensibili (nome utente, password e così via), eseguire il cmdlet New-AzDataFactoryV2LinkedServiceEncryptedCredential.To encrypt the sensitive data (username, password, and so on), run the New-AzDataFactoryV2LinkedServiceEncryptedCredential cmdlet.
    Con questa crittografia, le credenziali vengono crittografate con Data Protection API (DPAPI).This encryption ensures that the credentials are encrypted using Data Protection Application Programming Interface (DPAPI). Le credenziali crittografate vengono archiviate in locale (computer locale) nel nodo del runtime di integrazione self-hosted.The encrypted credentials are stored locally on the self-hosted integration runtime node (local machine). Il payload di output può essere reindirizzato a un altro file JSON (in questo caso encryptedLinkedService.json) che contiene le credenziali crittografate.The output payload can be redirected to another JSON file (in this case, encryptedLinkedService.json) that contains encrypted credentials.

    New-AzDataFactoryV2LinkedServiceEncryptedCredential -DataFactoryName $dataFactoryName -ResourceGroupName $ResourceGroupName -IntegrationRuntimeName $integrationRuntimeName -File ".\SQLServerLinkedService.json" > encryptedSQLServerLinkedService.json
    
  3. Eseguire questo comando, che crea EncryptedSqlServerLinkedService:Run the following command, which creates EncryptedSqlServerLinkedService:

    Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $ResourceGroupName -Name "EncryptedSqlServerLinkedService" -File ".\encryptedSqlServerLinkedService.json"
    

Creare set di datiCreate datasets

In questo passaggio vengono creati set di dati di input e di output,In this step, you create input and output datasets. che rappresentano i dati di input e di output per l'operazione di copia dal database SQL Server locale all'archivio BLOB di Azure.They represent input and output data for the copy operation, which copies data from the on-premises SQL Server database to Azure Blob storage.

Creare un set di dati per il database SQL Server di origineCreate a dataset for the source SQL Server database

In questo passaggio si definisce un set di dati che rappresenta i dati nell'istanza di database di SQL Server.In this step, you define a dataset that represents data in the SQL Server database instance. Il set di dati è di tipo SqlServerTable.The dataset is of type SqlServerTable. Fa riferimento al servizio collegato SQL Server creato nel passaggio precedente.It refers to the SQL Server linked service that you created in the preceding step. Il servizio collegato ha le informazioni di connessione usate dal servizio Data Factory per connettersi all'istanza di SQL Server in fase di esecuzione.The linked service has the connection information that the Data Factory service uses to connect to your SQL Server instance at runtime. Questo set di dati specifica la tabella SQL nel database che contiene i dati.This dataset specifies the SQL table in the database that contains the data. In questa esercitazione, la tabella emp contiene i dati di origine.In this tutorial, the emp table contains the source data.

  1. Creare un file JSON denominato SqlServerDataset.json nella cartella C:\ADFv2Tutorial con il codice seguente:Create a JSON file named SqlServerDataset.json in the C:\ADFv2Tutorial folder, with the following code:

    {  
        "name":"SqlServerDataset",
        "properties":{  
            "linkedServiceName":{  
                "referenceName":"EncryptedSqlServerLinkedService",
                "type":"LinkedServiceReference"
            },
            "annotations":[  
    
            ],
            "type":"SqlServerTable",
            "schema":[  
    
            ],
            "typeProperties":{  
                "schema":"dbo",
                "table":"emp"
            }
        }
    }
    
  2. Per creare il set di dati SqlServerDataset, eseguire il cmdlet Set-AzDataFactoryV2Dataset.To create the dataset SqlServerDataset, run the Set-AzDataFactoryV2Dataset cmdlet.

    Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "SqlServerDataset" -File ".\SqlServerDataset.json"
    

    Di seguito è riportato l'output di esempio:Here is the sample output:

    DatasetName       : SqlServerDataset
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Structure         : 
    Properties        : Microsoft.Azure.Management.DataFactory.Models.SqlServerTableDataset
    

Creare un set di dati per l'archivio BLOB di Azure (sink)Create a dataset for Azure Blob storage (sink)

In questo passaggio si definisce un set di dati che rappresenta i dati da copiare nell'archivio BLOB di Azure.In this step, you define a dataset that represents data that will be copied to Azure Blob storage. Il set di dati è di tipo AzureBlob.The dataset is of the type AzureBlob. Fa riferimento al servizio collegato Archiviazione di Azure creato in precedenza in questa esercitazione.It refers to the Azure Storage linked service that you created earlier in this tutorial.

Il servizio collegato ha le informazioni di connessione usate da Data Factory in fase di esecuzione per la connessione all'account di archiviazione di Azure.The linked service has the connection information that the data factory uses at runtime to connect to your Azure storage account. Questo set di dati specifica la cartella nella risorsa di archiviazione di Azure in cui vengono copiati i dati dal database di SQL Server.This dataset specifies the folder in the Azure storage to which the data is copied from the SQL Server database. In questa esercitazione la cartella è adftutorial/fromonprem dove adftutorial è il contenitore BLOB e fromonprem è la cartella.In this tutorial, the folder is adftutorial/fromonprem, where adftutorial is the blob container and fromonprem is the folder.

  1. Creare un file JSON denominato AzureBlobDataset.json nella cartella C:\ADFv2Tutorial con il codice seguente:Create a JSON file named AzureBlobDataset.json in the C:\ADFv2Tutorial folder, with the following 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"
    }
    
  2. Per creare il set di dati AzureBlobDataset, eseguire il cmdlet Set-AzDataFactoryV2Dataset.To create the dataset AzureBlobDataset, run the Set-AzDataFactoryV2Dataset cmdlet.

    Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "AzureBlobDataset" -File ".\AzureBlobDataset.json"
    

    Di seguito è riportato l'output di esempio:Here is the sample output:

    DatasetName       : AzureBlobDataset
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Structure         :
    Properties        : Microsoft.Azure.Management.DataFactory.Models.DelimitedTextDataset
    

Creare una pipelineCreate a pipeline

In questa esercitazione viene creata una pipeline con un'attività di copia.In this tutorial, you create a pipeline with a copy activity. L'attività di copia usa SqlServerDataset come set di dati di input e AzureBlobDataset come set di dati di output.The copy activity uses SqlServerDataset as the input dataset and AzureBlobDataset as the output dataset. Il tipo di origine è impostato su SqlSource e il tipo di sink è impostato su BlobSink.The source type is set to SqlSource and the sink type is set to BlobSink.

  1. Creare un file JSON denominato SqlServerToBlobPipeline.json nella cartella C:\ADFv2Tutorial con il codice seguente:Create a JSON file named SqlServerToBlobPipeline.json in the C:\ADFv2Tutorial folder, with the following 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":[  
    
            ]
        }
    }
    
  2. Eseguire il cmdlet Set-AzDataFactoryV2Pipeline per creare la pipeline SQLServerToBlobPipeline.To create the pipeline SQLServerToBlobPipeline, run the Set-AzDataFactoryV2Pipeline cmdlet.

    Set-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "SQLServerToBlobPipeline" -File ".\SQLServerToBlobPipeline.json"
    

    Di seguito è riportato l'output di esempio:Here is the sample output:

    PipelineName      : SQLServerToBlobPipeline
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Activities        : {CopySqlServerToAzureBlobActivity}
    Parameters        :  
    

Creare un'esecuzione della pipelineCreate a pipeline run

Avviare un'esecuzione della pipeline SQLServerToBlobPipeline e acquisire l'ID di esecuzione della pipeline per il monitoraggio futuro.Start a pipeline run for the SQLServerToBlobPipeline pipeline, and capture the pipeline run ID for future monitoring.

$runId = Invoke-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineName 'SQLServerToBlobPipeline'

Monitorare l'esecuzione della pipelineMonitor the pipeline run

  1. Eseguire questo script in PowerShell per verificare continuamente lo stato di esecuzione della pipeline SQLServerToBlobPipeline e visualizzare il risultato finale:To continuously check the run status of pipeline SQLServerToBlobPipeline, run the following script in PowerShell, and print the final result:

    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
        }
    }
    

    Ecco l'output dell'esecuzione di esempio:Here is the output of the sample run:

    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]...}
    
  2. È possibile ottenere l'ID di esecuzione della pipeline SQLServerToBlobPipeline e verificare il risultato dettagliato dell'esecuzione dell'attività usando il comando seguente:You can get the run ID of pipeline SQLServerToBlobPipeline and check the detailed activity run result by running the following command:

    Write-Host "Pipeline 'SQLServerToBlobPipeline' run result:" -foregroundcolor "Yellow"
    ($result | Where-Object {$_.ActivityName -eq "CopySqlServerToAzureBlobActivity"}).Output.ToString()
    

    Ecco l'output dell'esecuzione di esempio:Here is the output of the sample run:

    {  
        "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
                }
            }
        ]
    }
    

Verificare l'outputVerify the output

La pipeline crea automaticamente la cartella di output denominata fromonprem nel contenitore BLOB adftutorial.The pipeline automatically creates the output folder named fromonprem in the adftutorial blob container. Assicurarsi che nella cartella di output sia presente il file dbo.emp.txt.Confirm that you see the dbo.emp.txt file in the output folder.

  1. Nella finestra del contenitore adftutorial del portale di Azure fare clic su Aggiorna per visualizzare la cartella di output.In the Azure portal, in the adftutorial container window, select Refresh to see the output folder.

  2. Selezionare fromonprem nell'elenco di cartelle.Select fromonprem in the list of folders.

  3. Verificare che venga visualizzato un file denominato dbo.emp.txt.Confirm that you see a file named dbo.emp.txt.

    File di output

Passaggi successiviNext steps

La pipeline in questo esempio copia i dati da una posizione a un'altra in un archivio BLOB di Azure.The pipeline in this sample copies data from one location to another in Azure Blob storage. Si è appreso come:You learned how to:

  • Creare una data factory.Create a data factory.
  • Creare un runtime di integrazione self-hosted.Create a self-hosted integration runtime.
  • Creare servizi collegati per SQL Server e Archiviazione di Azure.Create SQL Server and Azure Storage linked services.
  • Creare set di dati per SQL Server e BLOB di Azure.Create SQL Server and Azure Blob datasets.
  • Creare una pipeline con attività di copia per trasferire i dati.Create a pipeline with a copy activity to move the data.
  • Avviare un'esecuzione della pipeline.Start a pipeline run.
  • Monitorare l'esecuzione della pipeline.Monitor the pipeline run.

Per un elenco degli archivi dati supportati da Data Factory, vedere gli archivi dati supportati.For a list of data stores that are supported by Data Factory, see supported data stores.

Passare all'esercitazione successiva per ottenere informazioni sulla copia di dati in blocco da un'origine a una destinazione:To learn about copying data in bulk from a source to a destination, advance to the following tutorial: