Partilhar via


Tutorial: Copiar dados de uma base de dados SQL Server para armazenamento Azure Blob

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

Data Factory em Microsoft Fabric é a próxima geração de Azure Data Factory, com uma arquitetura mais simples, IA incorporada e novas funcionalidades. Se és novo na integração de dados, começa pelo Fabric Data Factory. As cargas de trabalho existentes do ADF podem atualizar para o Fabric para aceder a novas capacidades em ciência de dados, análise em tempo real e relatórios.

Neste tutorial, usa o Azure PowerShell para criar um pipeline de Data Factory que copia dados de uma base de dados do SQL Server para o armazenamento Azure Blob. Cria e utiliza um runtime de integração autogerido, que move dados entre repositórios de dados locais e na cloud.

Nota

Este artigo não disponibiliza uma introdução detalhada do serviço Data Factory. Para mais informações, veja Introdução à Azure Data Factory.

Neste tutorial, vai executar os seguintes passos:

  • Criar uma fábrica de dados.
  • Criar um runtime de integração auto-hospedado.
  • Criar serviços ligados ao SQL Server e ao Armazenamento do Azure.
  • Criar conjuntos de dados SQL Server e Azure Blob.
  • Criar um pipeline com uma atividade de cópia para transferir os dados.
  • Iniciar uma execução de pipeline.
  • Monitorizar a execução do pipeline.

Pré-requisitos

subscrição do Azure

Antes de começar, se ainda não tiver uma subscrição Azure, crie uma conta gratuita.

Azure roles

Para criar instâncias de fábrica de dados, a conta de utilizador que usa para iniciar sessão no Azure deve ser atribuída a um papel Contribuidor ou Proprietário ou deve ser um administrador da subscrição Azure.

Para ver as permissões que tem na subscrição, vá ao portal Azure, selecione o seu nome de utilizador no canto superior direito e depois selecione Permissões. Se tiver acesso a várias subscrições, selecione a subscrição apropriada. Para instruções de exemplo sobre como adicionar um utilizador a uma função, consulte o artigo Atribuir Azure papéis usando o portal Azure.

SQL Server 2014, 2016 e 2017

Neste tutorial, utilizas uma base de dados SQL Server como repositório de dados fonte. O pipeline na fábrica de dados que crias neste tutorial copia dados desta base de dados SQL Server (fonte) para o armazenamento Azure Blob (sink). Depois crias uma tabela chamada emp na tua base de dados de SQL Server e inseres algumas entradas de exemplo na tabela.

  1. Inicie o SQL Server Management Studio. Se ainda não estiver instalado na sua máquina, vá a Download SQL Server Management Studio.

  2. Ligue-se à sua instância do SQL Server usando as suas credenciais.

  3. Crie uma base de dados de exemplo. Na vista de árvore, clique com o botão direito do rato em Bases de Dados e selecione Nova Base de Dados.

  4. Na janela Nova Base de Dados, introduza um nome para a base de dados e selecione OK.

  5. Para criar a tabela emp e inserir alguns dados de exemplo na mesma, execute o script de consulta seguinte na base de dados. Na vista de árvore, clique com o botão direito do rato na base de dados que criou e selecione Nova Consulta.

    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
    

conta de armazenamento do Azure

Neste tutorial, utilizas uma conta de armazenamento de uso geral do Azure (especificamente, armazenamento Azure Blob) como um repositório de dados de destino/sumidouro. Se não tiver uma conta de armazenamento de Azure de uso geral, veja Criar uma conta de armazenamento. O pipeline na fábrica de dados que crias neste tutorial copia dados da base de dados do SQL Server (fonte) para este armazenamento Azure Blob (sink).

Obter o nome e a chave da conta de armazenamento

Neste tutorial, utiliza o nome e a chave da sua conta de armazenamento Azure. Obtenha o nome e a chave da sua conta de armazenamento da seguinte forma:

  1. Inicie sessão no portal Azure com o seu nome de utilizador Azure e palavra-passe.

  2. No painel do lado esquerdo, selecione Mais Serviços, utilize a palavra-chave Armazenamento para filtrar e selecione Contas de Armazenamento.

    Procurar conta de armazenamento

  3. Na lista das contas de armazenamento, filtre para encontrar a sua conta de armazenamento (se necessário) e selecione-a.

  4. Na janela Conta de armazenamento, selecione Chaves de acesso.

  5. Nas caixas Nome da conta de armazenamento e key1, copie os valores e cole-os no Bloco de notas ou noutro editor, para utilizar mais adiante no tutorial.

Criar um container adftutorial

Nesta secção, crias um contentor de blob chamado adftutorial no teu armazenamento de Azure Blob.

  1. Na janela Conta de armazenamento, mude para a Descrição Geral e selecione Blobs.

    Selecionar a opção Blobs

  2. Na janela Serviço de Blob, selecione Contentor.

  3. Na janela Novo Contentor, na caixa Nome, introduza adftutorial e selecione OK.

    Introduzir o nome do contentor

  4. Na lista de contentores, clique em adftutorial.

  5. Mantenha a janela do contentor de adftutorial aberta. Vai utilizá-la para verificar o resultado no final deste tutorial. O Data Factory cria automaticamente a pasta de saída neste contentor, pelo que não precisa de a criar.

PowerShell do Windows

Install Azure PowerShell

Nota

Recomendamos que utilize o módulo PowerShell do Azure Az para interagir com o Azure. Para começar, consulte Install Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, veja Migrar Azure PowerShell do AzureRM para o Az.

Instala a versão mais recente do Azure PowerShell se ainda não a tiveres na tua máquina. Para instruções detalhadas, veja Como instalar e configurar Azure PowerShell.

Iniciar sessão no PowerShell

  1. Inicie o PowerShell no seu computador e mantenha-o aberto até concluir este tutorial de início rápido. Se fechar e reabrir, terá de executar esses comandos novamente.

  2. Execute o seguinte comando e depois introduza o nome de utilizador e a palavra-passe do Azure que usa para iniciar sessão no portal Azure:

    Connect-AzAccount
    
  3. Se tiver várias subscrições do Azure, execute o seguinte comando para selecionar a subscrição com que pretende trabalhar. Substitua SubscriptionId pelo ID da sua subscrição Azure:

    Select-AzSubscription -SubscriptionId "<SubscriptionId>"   	
    

Criar uma fábrica de dados

  1. Defina uma variável para o nome do grupo de recursos que vai utilizar mais tarde nos comandos do PowerShell. Copie o comando seguinte para o PowerShell, especifique um nome para o grupo de recursos Azure (incluído entre aspas duplas; por exemplo, "adfrg"), e depois execute o comando.

    $resourceGroupName = "ADFTutorialResourceGroup"
    
  2. Para criar o grupo de recursos do Azure, execute o seguinte comando:

    New-AzResourceGroup $resourceGroupName -location 'East US'
    

    Se o grupo de recursos já existir, talvez não queira sobrescrevê-lo. Atribua outro valor à variável $resourceGroupName e execute novamente o comando.

  3. Defina uma variável para o nome da fábrica de dados que possa utilizar em comandos do PowerShell mais tarde. O nome tem de começar com uma letra ou um número e só pode conter letras, números e o traço (-).

    Importante

    Atualize o nome da fábrica de dados com um que seja globalmente exclusivo. Por exemplo, ADFTutorialFactorySP1127.

    $dataFactoryName = "ADFTutorialFactory"
    
  4. Defina uma variável para a localização da fábrica de dados:

    $location = "East US"
    
  5. Para criar a fábrica de dados, execute o cmdlet Set-AzDataFactoryV2:

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

Nota

  • O nome da fábrica de dados tem de ser globalmente exclusivo. Se receber o erro seguinte, altere o nome e tente novamente.
    The specified data factory name 'ADFv2TutorialDataFactory' is already in use. Data factory names must be globally unique.
    
  • Para criar instâncias do Data Factory, a conta de utilizador que usa para iniciar sessão no Azure deve ter o papel de contribuidor ou proprietário ou deve ser um administrador da subscrição do Azure.
  • Para uma lista das regiões do Azure em que o Data Factory está disponível atualmente, selecione as regiões que lhe interessam na página seguinte e depois expanda Analytics para localizar Data Factory: Produtos disponíveis por região. Os repositórios de dados (Armazenamento do Azure, Base de Dados SQL do Azure, e assim por diante) e os computadores (Azure HDInsight, entre outros) usados pela data factory podem estar noutras regiões.

Criar um runtime de integração autogerido

Nesta secção, cria um runtime de integração auto-hospedado e associa-o a uma máquina local com a base de dados do SQL Server. O runtime de integração auto-hospedado é o componente que copia dados da base de dados do SQL Server na sua máquina para o armazenamento Azure Blob.

  1. Crie uma variável para o nome do integration runtime. Utilize um nome exclusivo e anote o nome. Vai utilizá-lo mais tarde no tutorial.

    $integrationRuntimeName = "ADFTutorialIR"
    
  2. Criar um runtime de integração auto-hospedado.

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

    Segue-se o resultado do exemplo:

    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. Para obter o estado do integration runtime criado, execute o comando seguinte:

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

    Segue-se o resultado do exemplo:

    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. Para obter as chaves de autenticação para registar o integration runtime autoalojado no serviço Data Factory na cloud, execute o comando seguinte. Copie uma das chaves (excluindo as aspas) para registar o runtime de integração auto-hospedado que instalará no computador no passo seguinte.

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

    Segue-se o resultado do exemplo:

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

Instalar o runtime de integração

  1. Descarrega Azure Data Factory Integration Runtime numa máquina Windows local e depois executa a instalação.

  2. No assistente Bem-vindo ao Microsoft Integration Runtime Setup, selecione Next.

  3. Na janea Contrato de Licença do Utilizador Final, aceite os termos e o contrato de licença e selecione Seguinte.

  4. Na janela Pasta de Destino, selecione Seguinte.

  5. Na janela Pronto para instalar Microsoft Integration Runtime, selecione Instalar.

  6. No assistente Concluir a configuração do Microsoft Integration Runtime, selecione Concluir.

  7. Na janela Register Integration Runtime (Auto-hospedado), cole a chave que tinha guardado na secção anterior e, em seguida, selecione Registar.

    Registar Integration Runtime

  8. Na janela New Integration Runtime (Auto-hospedado), selecione Terminar.

    Nova Janela de Nó de Integration Runtime

  9. Quando o runtime de integração alojado localmente for registado com êxito, a mensagem seguinte é apresentada:

    Registado com êxito

  10. Na janela Register Integration Runtime (Auto-hospedado), selecione Launch Gestor de Configuração.

  11. Quando o nó estiver conectado ao serviço de cloud, é apresentada a mensagem seguinte:

    O nó está ligado

  12. Teste a conectividade à sua base de dados SQL Server fazendo o seguinte:

    a. Na janela Gestor de Configuração, mude para o separador Diagnostics.

    b. Na caixa Tipo de origem de dados, selecione SqlServer.

    c. Introduza o nome do servidor.

    d. Introduza o nome da base de dados.

    e. Selecione o modo de autenticação.

    f. Introduza o nome de utilizador.

    g. Introduza a palavra-passe que está associado ao nome de utilizador.

    h. Para confirmar que o runtime de integração pode ligar-se ao SQL Server, selecione Test.
    Conectividade bem-sucedida

    Se a ligação for bem-sucedida, é apresentada uma marca de verificação verde. Caso contrário, receberá uma mensagem de erro associada à falha. Corrige quaisquer problemas e assegure que o runtime de integração pode ligar-se à sua instância do SQL Server.

    Registe todos os valores anteriores para utilizar mais adiante neste tutorial.

Criar serviços ligados

Para ligar os seus arquivos de dados e serviços de computação à fábrica de dados, crie serviços ligados na mesma. Neste tutorial, liga a sua conta de armazenamento Azure e a instância do SQL Server ao armazenamento de dados. Os serviços conectados têm as informações de ligação que o serviço do Data Factory utiliza em tempo de execução para estabelecer ligação com eles.

Criar um serviço ligado ao Armazenamento do Azure (destino/sink)

Neste passo, liga a sua conta de armazenamento Azure à fábrica de dados.

  1. Crie um ficheiro JSON com o nome AzureStorageLinkedService.json na pasta C:\ADFv2Tutorial com o código seguinte. Se a pasta ADFv2Tutorial ainda não existir, crie-a.

    Importante

    Antes de guardar o ficheiro, substitua <NomeConta> e <ChaveConta> pelo nome e chave da sua conta de armazenamento Azure. Estas informações foram apontadas na secção Pré-requisitos.

    {
        "name": "AzureStorageLinkedService",
        "properties": {
            "annotations": [],
            "type": "AzureBlobStorage",
            "typeProperties": {
                "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.windows.net"
            }
        }
    }
    
  2. No PowerShell, navegue até à pasta C:\ADFv2Tutorial.

    Set-Location 'C:\ADFv2Tutorial'
    
  3. Para criar o serviço ligado AzureStorageLinkedService, execute o cmdlet Set-AzDataFactoryV2LinkedService:

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

    Eis um resultado de exemplo:

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

    Se receber o erro "Ficheiro não encontrado", execute o comando dir para confirmar que existe. Se o nome de ficheiro tiver a extensão .txt (por exemplo, AzureStorageLinkedService.json.txt), remove-a e execute novamente o comando do PowerShell.

Criar e encriptar um serviço ligado ao SQL Server (fonte)

Neste passo, liga a sua instância do SQL Server à fábrica de dados.

  1. Crie um ficheiro JSON com o nom SqlServerLinkedService.json na pasta C:\ADFv2Tutorial, mediante o código seguinte:

    Importante

    Selecione a secção baseada na autenticação que usa para se ligar ao SQL Server.

    Usando a autenticação SQL (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"
            }
        }
    }
    

    Usando autenticação do Windows:

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

    • Selecione a secção baseada na autenticação que usa para se ligar à sua instância do SQL Server.
    • Substitua <nome do tempo de execução de integração> pelo nome do seu tempo de execução de integração.
    • Antes de guardar o ficheiro, substitua <nomedo do servidor>, <nome da base de dados>, <nome de utilizador> e <password> pelos valores da sua instância SQL Server.
    • Se precisar usar uma barra invertida (\) na sua conta de utilizador ou nome de servidor, preceda-a com o caractere de escape (\). Por exemplo, use mydomain\\myuser.
  2. Para encriptar os dados confidenciais (nome de utilizador, palavra-passe, etc.), execute o cmdlet New-AzDataFactoryV2LinkedServiceEncryptedCredential.
    Esta encriptação garante que as credenciais são encriptadas com a interface DPAPI (Data Protection Application Programming Interface). As credenciais encriptadas são armazenadas localmente no nó do runtime de integração auto-hospedado (computador local). O payload de saída pode ser redirecionado para outro ficheiro JSON (neste caso, encryptedLinkedService.json) que contém credenciais encriptadas.

    New-AzDataFactoryV2LinkedServiceEncryptedCredential -DataFactoryName $dataFactoryName -ResourceGroupName $ResourceGroupName -IntegrationRuntimeName $integrationRuntimeName -File ".\SQLServerLinkedService.json" > encryptedSQLServerLinkedService.json
    
  3. Execute o comando seguinte, que cria EncryptedSqlServerLinkedService:

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

Criar conjuntos de dados

Neste passo, vai criar conjuntos de dados de entrada e saída. Representam dados de entrada e saída para a operação de cópia, que copia dados da base de dados do SQL Server para o armazenamento Azure Blob.

Crie um conjunto de dados para a base de dados do SQL Server de origem

Neste passo, defines um conjunto de dados que representa dados na instância da base de dados do SQL Server. O conjunto de dados é do tipo SqlServerTable. Refere-se ao serviço ligado ao SQL Server que criou na etapa anterior. O serviço ligado tem a informação de ligação que o serviço Data Factory usa para se ligar à sua instância do SQL Server em tempo de execução. Este conjunto de dados especifica a tabela SQL na base de dados que contém os dados. Neste tutorial, a tabela emp contém a origem de dados.

  1. Crie um ficheiro JSON com o nome SqlServerDataset.json na pasta C:\ADFv2Tutorial, com o código seguinte:

    {  
        "name":"SqlServerDataset",
        "properties":{  
            "linkedServiceName":{  
                "referenceName":"EncryptedSqlServerLinkedService",
                "type":"LinkedServiceReference"
            },
            "annotations":[  
    
            ],
            "type":"SqlServerTable",
            "schema":[  
    
            ],
            "typeProperties":{  
                "schema":"dbo",
                "table":"emp"
            }
        }
    }
    
  2. Para criar o conjunto de dados SqlServerDataset, execute o cmdlet Set-AzDataFactoryV2Dataset.

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

    Segue-se o resultado do exemplo:

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

Criar um conjunto de dados para Azure Blob storage (sink)

Neste passo, defines um conjunto de dados que representa dados que serão copiados para o armazenamento Azure Blob. O conjunto de dados é do tipo AzureBlob. Refere-se ao serviço ligado ao Armazenamento do Azure que criaste anteriormente neste tutorial.

O serviço vinculado tem as informações de conexão que o Data Factory usa durante a execução para se ligar à conta de armazenamento do Azure. Este conjunto de dados especifica a pasta no armazenamento do Azure para onde os dados são copiados da base de dados do SQL Server. Neste tutorial, a pasta é adftutorial/fromonprem, em que adftutorial é o contentor de blobs e fromonprem é a pasta.

  1. Crie um ficheiro JSON com o nome AzureBlobDataset.json na pasta C:\ADFv2Tutorial, com o código seguinte:

    {  
        "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. Para criar o conjunto de dados AzureBlobDataset, execute o cmdlet Set-AzDataFactoryV2Dataset.

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

    Segue-se o resultado do exemplo:

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

Criar um pipeline

Neste tutorial, vai criar um pipeline com uma atividade de cópia. A atividade de cópia utiliza SqlServerDataset como o conjunto de dados de entrada e AzureBlobDataset como o conjunto de dados de saída. O tipo de origem está definido como SqlSource e o tipo de sink como BlobSink.

  1. Crie um ficheiro JSON com o nome SqlServerToBlobPipeline.json na pasta C:\ADFv2Tutorial, com o código seguinte:

    {  
        "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. Para criar o pipeline SQLServerToBlobPipeline, execute o cmdlet Set-AzDataFactoryV2Pipeline.

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

    Segue-se o resultado do exemplo:

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

Criar uma execução do pipeline

Inicie uma execução do SQLServerToBlobPipeline e capture o ID dessa execução para monitoramento futuro.

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

Monitorizar a execução do pipeline.

  1. Para verificar continuamente o estado de execução do pipeline SQLServerToBlobPipeline, execute o script seguinte no PowerShell e imprima o resultado final:

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

    Eis o resultado da execução de exemplo:

    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. Pode obter o ID de execução do pipeline SQLServerToBlobPipeline e verificar o resultado detalhado da execução da atividade, executando o comando seguinte:

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

    Eis o resultado da execução de exemplo:

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

Verificar a saída

O pipeline cria automaticamente a pasta de saída nomeada como fromonprem no contentor de blobs adftutorial. Confirme que consegue ver o ficheiro dbo.emp.txt na pasta de saída.

  1. No portal Azure, na janela do contentor adftutorial, selecione Refresh para ver a pasta de saída.

  2. Selecione fromonprem na lista de pastas.

  3. Confirme que vê um ficheiro com o nome dbo.emp.txt.

    Ficheiro de saída

O pipeline neste exemplo copia dados de um local para outro no armazenamento Azure Blob. Aprendeu a:

  • Criar uma fábrica de dados.
  • Criar um runtime de integração auto-hospedado.
  • Criar serviços ligados ao SQL Server e ao Armazenamento do Azure.
  • Criar conjuntos de dados SQL Server e Azure Blob.
  • Criar um pipeline com uma atividade de cópia para transferir os dados.
  • Iniciar uma execução de pipeline.
  • Monitorizar a execução do pipeline.

Para obter uma lista dos arquivos de dados que o Data Factory suporta, veja Supported data stores (Arquivos de Dados suportados).

Para aprender a copiar dados em massa de uma origem para um destino, avance para o tutorial seguinte: