Partilhar via


Início rápido: Crie um Azure Data Factory usando o modelo ARM

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Tip

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.

Este início rápido descreve como usar um modelo do Azure Resource Manager (modelo ARM) para criar uma Azure Data Factory. O pipeline que você cria nesta fábrica de dados copia dados de uma pasta para outra num armazenamento de blobs do Azure. Para um tutorial sobre como transformar dados usando Azure Data Factory, veja Tutorial: Transformar dados usando Spark.

Um modelo Azure Resource Manager é um ficheiro JavaScript Object Notation (JSON) que define a infraestrutura e configuração do seu projeto. O modelo utiliza sintaxe declarativa. Você descreve a implantação pretendida sem escrever a sequência de comandos de programação para criar a implantação.

Nota

Este artigo não fornece uma introdução detalhada do serviço Data Factory. Para uma introdução ao serviço Azure Data Factory, veja Introdução ao Azure Data Factory.

Se o seu ambiente cumprir os pré-requisitos e estiver familiarizado com o uso de templates ARM, selecione o botão Deploy to Azure. O modelo abrirá no portal Azure.

Button para implementar o modelo de Resource Manager para Azure.

Pré-requisitos

subscrição do Azure

Se não tiver uma subscrição Azure, crie uma conta gratuita antes de começar.

Criar um ficheiro

Abra um editor de texto, como o Bloco de Notas, e crie um arquivo chamado emp.txt com o seguinte conteúdo:

John, Doe
Jane, Doe

Salve o arquivo na pasta C:\ADFv2QuickStartPSH . (Se a pasta ainda não existir, crie-a.)

Modelo de revisão

O modelo utilizado neste quickstart é do Azure Quickstart Templates.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.26.54.24096",
      "templateHash": "17339534711754973978"
    }
  },
  "parameters": {
    "dataFactoryName": {
      "type": "string",
      "defaultValue": "[format('datafactory{0}', uniqueString(resourceGroup().id))]",
      "metadata": {
        "description": "Data Factory Name"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location of the data factory."
      }
    },
    "storageAccountName": {
      "type": "string",
      "defaultValue": "[format('storage{0}', uniqueString(resourceGroup().id))]",
      "metadata": {
        "description": "Name of the Azure storage account that contains the input/output data."
      }
    },
    "blobContainerName": {
      "type": "string",
      "defaultValue": "[format('blob{0}', uniqueString(resourceGroup().id))]",
      "metadata": {
        "description": "Name of the blob container in the Azure Storage account."
      }
    }
  },
  "variables": {
    "dataFactoryLinkedServiceName": "ArmtemplateStorageLinkedService",
    "dataFactoryDataSetInName": "ArmtemplateTestDatasetIn",
    "dataFactoryDataSetOutName": "ArmtemplateTestDatasetOut",
    "pipelineName": "ArmtemplateSampleCopyPipeline"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts/blobServices",
      "apiVersion": "2023-01-01",
      "name": "[format('{0}/{1}', parameters('storageAccountName'), 'default')]",
      "dependsOn": [
        "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
      ]
    },
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2023-01-01",
      "name": "[parameters('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {
        "minimumTlsVersion": "TLS1_2",
        "supportsHttpsTrafficOnly": true,
        "allowBlobPublicAccess": false
      }
    },
    {
      "type": "Microsoft.Storage/storageAccounts/blobServices/containers",
      "apiVersion": "2023-01-01",
      "name": "[format('{0}/{1}/{2}', parameters('storageAccountName'), 'default', parameters('blobContainerName'))]",
      "dependsOn": [
        "[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccountName'), 'default')]"
      ]
    },
    {
      "type": "Microsoft.DataFactory/factories",
      "apiVersion": "2018-06-01",
      "name": "[parameters('dataFactoryName')]",
      "location": "[parameters('location')]",
      "identity": {
        "type": "SystemAssigned"
      }
    },
    {
      "type": "Microsoft.DataFactory/factories/linkedservices",
      "apiVersion": "2018-06-01",
      "name": "[format('{0}/{1}', parameters('dataFactoryName'), variables('dataFactoryLinkedServiceName'))]",
      "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
          "connectionString": "[format('DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1}', parameters('storageAccountName'), listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName')), '2023-01-01').keys[0].value)]"
        }
      },
      "dependsOn": [
        "[resourceId('Microsoft.DataFactory/factories', parameters('dataFactoryName'))]",
        "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
      ]
    },
    {
      "type": "Microsoft.DataFactory/factories/datasets",
      "apiVersion": "2018-06-01",
      "name": "[format('{0}/{1}', parameters('dataFactoryName'), variables('dataFactoryDataSetInName'))]",
      "properties": {
        "linkedServiceName": {
          "referenceName": "[variables('dataFactoryLinkedServiceName')]",
          "type": "LinkedServiceReference"
        },
        "type": "Binary",
        "typeProperties": {
          "location": {
            "type": "AzureBlobStorageLocation",
            "container": "[parameters('blobContainerName')]",
            "folderPath": "input",
            "fileName": "emp.txt"
          }
        }
      },
      "dependsOn": [
        "[resourceId('Microsoft.DataFactory/factories', parameters('dataFactoryName'))]",
        "[resourceId('Microsoft.DataFactory/factories/linkedservices', parameters('dataFactoryName'), variables('dataFactoryLinkedServiceName'))]"
      ]
    },
    {
      "type": "Microsoft.DataFactory/factories/datasets",
      "apiVersion": "2018-06-01",
      "name": "[format('{0}/{1}', parameters('dataFactoryName'), variables('dataFactoryDataSetOutName'))]",
      "properties": {
        "linkedServiceName": {
          "referenceName": "[variables('dataFactoryLinkedServiceName')]",
          "type": "LinkedServiceReference"
        },
        "type": "Binary",
        "typeProperties": {
          "location": {
            "type": "AzureBlobStorageLocation",
            "container": "[parameters('blobContainerName')]",
            "folderPath": "output"
          }
        }
      },
      "dependsOn": [
        "[resourceId('Microsoft.DataFactory/factories', parameters('dataFactoryName'))]",
        "[resourceId('Microsoft.DataFactory/factories/linkedservices', parameters('dataFactoryName'), variables('dataFactoryLinkedServiceName'))]"
      ]
    },
    {
      "type": "Microsoft.DataFactory/factories/pipelines",
      "apiVersion": "2018-06-01",
      "name": "[format('{0}/{1}', parameters('dataFactoryName'), variables('pipelineName'))]",
      "properties": {
        "activities": [
          {
            "name": "MyCopyActivity",
            "type": "Copy",
            "typeProperties": {
              "source": {
                "type": "BinarySource",
                "storeSettings": {
                  "type": "AzureBlobStorageReadSettings",
                  "recursive": true
                }
              },
              "sink": {
                "type": "BinarySink",
                "storeSettings": {
                  "type": "AzureBlobStorageWriteSettings"
                }
              },
              "enableStaging": false
            },
            "inputs": [
              {
                "referenceName": "[variables('dataFactoryDataSetInName')]",
                "type": "DatasetReference"
              }
            ],
            "outputs": [
              {
                "referenceName": "[variables('dataFactoryDataSetOutName')]",
                "type": "DatasetReference"
              }
            ]
          }
        ]
      },
      "dependsOn": [
        "[resourceId('Microsoft.DataFactory/factories', parameters('dataFactoryName'))]",
        "[resourceId('Microsoft.DataFactory/factories/datasets', parameters('dataFactoryName'), variables('dataFactoryDataSetInName'))]",
        "[resourceId('Microsoft.DataFactory/factories/datasets', parameters('dataFactoryName'), variables('dataFactoryDataSetOutName'))]"
      ]
    }
  ],
  "outputs": {
    "name": {
      "type": "string",
      "value": "[variables('pipelineName')]"
    },
    "resourceId": {
      "type": "string",
      "value": "[resourceId('Microsoft.DataFactory/factories/pipelines', parameters('dataFactoryName'), variables('pipelineName'))]"
    },
    "resourceGroupName": {
      "type": "string",
      "value": "[resourceGroup().name]"
    },
    "location": {
      "type": "string",
      "value": "[parameters('location')]"
    }
  }
}

Existem recursos do Azure definidos no modelo:

Mais exemplos de modelos Azure Data Factory podem ser encontrados na galeria de templates quickstart.

Implementar o modelo

  1. Selecione a imagem seguinte para iniciar sessão no Azure e abra um modelo. O modelo cria uma conta Azure Data Factory, uma conta de armazenamento e um contentor de blobs.

    Button para implementar o modelo de Resource Manager para Azure.

  2. Selecione ou introduza os seguintes valores.

    Implementar modelo ARM do ADF

    A menos que seja especificado, use os valores padrão para criar os recursos do Azure Data Factory:

    • Subscrição: Selecione uma subscrição Azure.
    • Grupo de recursos: selecione Criar novo, insira um nome exclusivo para o grupo de recursos e selecione OK.
    • Região: Selecione um local. Por exemplo, Leste dos EUA.
    • Nome da fábrica de dados: use o valor padrão.
    • Local: use o valor padrão.
    • Nome da conta de armazenamento: use o valor padrão.
    • Contêiner de Blob: use o valor padrão.

Rever os recursos disponibilizados

  1. Selecione Ir para o grupo de recursos.

    Grupo de Recursos

  2. Verifica se o teu Azure Data Factory foi criado.

    1. O seu nome Azure Data Factory está no formato - datafactory<uniqueid>.

    Fábrica de dados de exemplo

  3. Verifique se sua conta de armazenamento foi criada.

    1. O nome da conta de armazenamento está no formato - storage<uniqueid>.

    Conta de Armazenamento

  4. Selecione a conta de armazenamento criada e, em seguida, selecione Contêineres.

    1. Na página Contêineres, selecione o contêiner de blob que você criou.
      1. O nome do contêiner de blob está no formato - blob<uniqueid>.

    Recipiente de blob

Carregar um ficheiro

  1. Na página Contêineres, selecione Carregar.

  2. No painel direito, selecione a caixa Arquivos e, em seguida, procure e selecione o arquivo emp.txt que você criou anteriormente.

  3. Expanda o título Avançado .

  4. Na caixa Carregar para pasta, insira input.

  5. Selecione o botão Carregar. Deverá ver o ficheiro emp.txt e o estado do carregamento na lista.

  6. Selecione o ícone Fechar (um X) para fechar a página Carregar Blob.

    Carregar ficheiro para a pasta de entrada

Mantenha a página do contêiner aberta, porque você pode usá-la para verificar a saída no final deste início rápido.

Iniciar disparador

  1. Navegue até a página Data factories e selecione o data factory que você criou.

  2. Selecione Abrir no bloco Abrir o Azure Data Factory Studio.

    Autor & Monitor

  3. Selecione o separador Autor.

  4. Selecione o fluxo de trabalho criado - ArmtemplateSampleCopyPipeline.

    Pipeline de modelo ARM

  5. Selecione Adicionar gatilho>Acionar Agora.

    Trigger

  6. No painel direito, em Execução de pipeline, selecione OK.

Monitorizar a linha de produção

  1. Selecione o separador Monitor.

  2. Você vê as atividades relacionadas à execução do pipeline. Neste início rápido, o pipeline tem apenas uma atividade do tipo: Copiar. Como tal, você vê uma procura intensa por essa atividade.

    Execução bem-sucedida

Verifique o arquivo de saída

O pipeline cria automaticamente uma pasta de saída no contêiner de blob. Em seguida, copia o ficheiro emp.txt da pasta de entrada para a pasta de saída.

  1. No portal Azure, na página Containers, selecione Refresh para ver a pasta de saída.

  2. Selecione saída na lista de pastas.

  3. Confirme se o ficheiro emp.txt foi copiado para a pasta de saída.

    Output

Limpar recursos

Pode limpar os recursos que criou no Guia de Introdução de duas formas. Pode eliminar o grupo de recursos do Azure, que inclui todos os recursos do grupo de recursos. Se quiser manter os outros recursos intactos, elimine apenas a fábrica de dados que criou neste tutorial.

A eliminação de um grupo de recursos dita a eliminação de todos os recursos, incluindo as fábricas de dados nele incluídas. Execute o seguinte comando para eliminar todo o grupo de recursos:

Remove-AzResourceGroup -ResourceGroupName $resourcegroupname

Se você quiser excluir apenas o data factory, e não todo o grupo de recursos, execute o seguinte comando:

Remove-AzDataFactoryV2 -Name $dataFactoryName -ResourceGroupName $resourceGroupName

Neste quickstart, criaste um Azure Data Factory usando um template ARM e validaste a implementação. Para saber mais sobre o Azure Data Factory e o Azure Resource Manager, continue para os artigos abaixo.