Hızlı başlangıç: ARM şablonunu kullanarak Azure Data Factory oluşturma

AŞAĞıDAKILER IÇIN GEÇERLIDIR: Azure Data Factory Azure Synapse Analytics

Bu hızlı başlangıçta, Azure Data Factory oluşturmak için bir Azure Resource Manager şablonunun (ARM şablonu) nasıl kullanılacağı açıklanmaktadır. Bu veri fabrikasında oluşturduğunuz işlem hattı, verileri bir Azure Blob depolama alanındaki bir klasörden başka bir klasöre kopyalar . Azure Data Factory kullanarak verileri dönüştürme hakkında bir öğretici için bkz. Öğretici: Spark kullanarak verileri dönüştürme.

ARM şablonu projenizin altyapısını ve yapılandırmasını tanımlayan bir JavaScript Nesne Gösterimi (JSON) dosyasıdır. Bu şablonda, bildirim temelli sözdizimi kullanılır. Bildirim temelli sözdiziminde, dağıtım oluşturmak için programlama komutlarının dizisini yazmadan amaçladığınız dağıtımı ifade edersiniz.

Not

Bu makale, Data Factory hizmetine ayrıntılı giriş bilgileri sağlamaz. Azure Data Factory hizmetine giriş bilgileri için bkz. Azure Data Factory'ye giriş.

Ortamınız önkoşulları karşılıyorsa ve ARM şablonlarını kullanma hakkında bilginiz varsa, Azure’a dağıtma düğmesini seçin. Şablon Azure portalda açılır.

Azure’a dağıtma

Ön koşullar

Azure aboneliği

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Dosya oluşturma

Not Defteri gibi bir metin düzenleyicisi açın ve aşağıdaki içeriğe sahip emp.txt adlı bir dosya oluşturun:

John, Doe
Jane, Doe

Dosyayı C:\ADFv2QuickStartPSH klasörüne kaydedin. (Klasör zaten mevcut değilse, oluşturun.)

Şablonu gözden geçir

Bu hızlı başlangıçta kullanılan şablon Azure Hızlı Başlangıç Şablonlarından alınmıştır.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.4.412.5873",
      "templateHash": "5138689633595887430"
    }
  },
  "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."
      }
    }
  },
  "functions": [],
  "variables": {
    "dataFactoryLinkedServiceName": "ArmtemplateStorageLinkedService",
    "dataFactoryDataSetInName": "ArmtemplateTestDatasetIn",
    "dataFactoryDataSetOutName": "ArmtemplateTestDatasetOut",
    "pipelineName": "ArmtemplateSampleCopyPipeline"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-04-01",
      "name": "[parameters('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2"
    },
    {
      "type": "Microsoft.Storage/storageAccounts/blobServices/containers",
      "apiVersion": "2021-04-01",
      "name": "[format('{0}/default/{1}', parameters('storageAccountName'), parameters('blobContainerName'))]",
      "dependsOn": [
        "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
      ]
    },
    {
      "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')), '2021-04-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": "[format('{0}/default/{1}', parameters('storageAccountName'), parameters('blobContainerName'))]",
            "folderPath": "input",
            "fileName": "emp.txt"
          }
        }
      },
      "dependsOn": [
        "[resourceId('Microsoft.Storage/storageAccounts/blobServices/containers', split(format('{0}/default/{1}', parameters('storageAccountName'), parameters('blobContainerName')), '/')[0], split(format('{0}/default/{1}', parameters('storageAccountName'), parameters('blobContainerName')), '/')[1], split(format('{0}/default/{1}', parameters('storageAccountName'), parameters('blobContainerName')), '/')[2])]",
        "[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": "[format('{0}/default/{1}', parameters('storageAccountName'), parameters('blobContainerName'))]",
            "folderPath": "output"
          }
        }
      },
      "dependsOn": [
        "[resourceId('Microsoft.Storage/storageAccounts/blobServices/containers', split(format('{0}/default/{1}', parameters('storageAccountName'), parameters('blobContainerName')), '/')[0], split(format('{0}/default/{1}', parameters('storageAccountName'), parameters('blobContainerName')), '/')[1], split(format('{0}/default/{1}', parameters('storageAccountName'), parameters('blobContainerName')), '/')[2])]",
        "[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",
            "policy": {
              "timeout": "7.00:00:00",
              "retry": 0,
              "retryIntervalInSeconds": 30,
              "secureOutput": false,
              "secureInput": false
            },
            "typeProperties": {
              "source": {
                "type": "BinarySource",
                "storeSettings": {
                  "type": "AzureBlobStorageReadSettings",
                  "recursive": true
                }
              },
              "sink": {
                "type": "BinarySink",
                "storeSettings": {
                  "type": "AzureBlobStorageWriterSettings"
                }
              },
              "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'))]"
      ]
    }
  ]
}

Şablonda tanımlanmış Azure kaynakları var:

Daha fazla Azure Data Factory şablon örneği hızlı başlangıç şablonu galerisindebulunabilir.

Şablonu dağıtma

  1. Aşağıdaki görüntüyü seçerek Azure'da oturum açıp bir şablon açın. Şablon Azure Data Factory bir hesap, bir depolama hesabı ve bir blob kapsayıcısı oluşturur.

    Azure’a dağıtma

  2. Aşağıdaki değerleri seçin veya girin.

    ADF ARM şablonunu dağıt

    Belirtilmedikçe, Azure Data Factory kaynaklarını oluşturmak için varsayılan değerleri kullanın:

    • Abonelik: bir Azure aboneliği seçin.
    • Kaynak grubu: Yeni oluştur' u seçin, kaynak grubu için benzersiz bir ad girin ve Tamam' ı seçin.
    • Bölge: bir konum seçin. Örneğin, Doğu ABD.
    • Data Factory adı: varsayılan değeri kullanın.
    • Konum: varsayılan değeri kullanın.
    • Depolama hesap adı: varsayılan değeri kullanın.
    • BLOB kapsayıcısı: varsayılan değeri kullanın.

Dağıtılan kaynakları gözden geçirme

  1. Kaynak grubuna git' i seçin.

    Kaynak Grubu

  2. Azure Data Factory oluşturulduğunu doğrulayın.

    1. Azure Data Factory adınız-DataFactory biçimindedir <uniqueid> .

    Örnek Data Factory

  3. Depolama hesabınızın oluşturulduğunu doğrulayın.

    1. Depolama hesabı adı, depolama biçimindedir <uniqueid> .

    Depolama hesabı

  4. Oluşturulan depolama hesabını seçin ve kapsayıcılar' ı seçin.

    1. Kapsayıcılar sayfasında, oluşturduğunuz blob kapsayıcısını seçin.
      1. Blob kapsayıcısı adı-blob biçimindedir <uniqueid> .

    Blob kapsayıcısı

Dosyayı karşıya yükleme

  1. Kapsayıcılar sayfasında upload' yi seçin.

  2. Sağ bölmede, dosyalar kutusunu seçin ve ardından daha önce oluşturduğunuz emp.txt dosyasına gidip seçin.

  3. Gelişmiş başlık ' ı genişletin.

  4. Upload klasöre kutusuna giriş' i girin.

  5. Karşıya Yükle düğmesini seçin. Listede emp.txt dosyasını ve karşıya yükleme durumunu görmeniz gerekir.

  6. Upload blob sayfasını kapatmak için kapat simgesini (bir X) seçin.

    Upload dosyayı giriş klasörüne

Bu hızlı başlangıç sonunda çıktıyı doğrulamak için kullanabileceğiniz kapsayıcı sayfasını açık tutun.

Tetikleyiciyi Başlat

  1. Veri fabrikaları sayfasına gidin ve oluşturduğunuz veri fabrikasını seçin.

  2. Açık Azure Data Factory Studio kutucuğunda ' ı seçin.

    Yazar & Izleyicisi

  3. Yazar sekmesini seçin .

  4. Oluşturulan işlem hattını seçin-ArmtemplateSampleCopyPipeline.

    ARM şablon işlem hattı

  5. Tetikleyici tetikleyicisi Ekle' yi > Şimdi seçin.

    Tetikleyici

  6. İşlem hattı çalıştırma altındaki sağ bölmede Tamam' ı seçin.

İşlem hattını izleme

  1. İzleyici sekmesini seçin .

  2. İşlem hattı çalıştırmasıyla ilişkili etkinlik çalıştırmalarını görürsünüz. Bu hızlı başlangıçta işlem hattı yalnızca bir etkinlik türü içerir: Kopyalama. Bu nedenle, söz konusu etkinlik için bir çalıştırma görürsünüz.

    Başarılı çalıştırma

Çıkış dosyasını doğrulama

İşlem hattı blob kapsayıcısında otomatik olarak bir çıkış klasörü oluşturur. Ardından, giriş klasöründeki emp.txt dosyasını çıktı klasörüne kopyalar.

  1. Azure portal, kapsayıcılar sayfasında, çıktı klasörünü görmek için Yenile ' yi seçin.

  2. Klasör listesinde Çıkış ' ı seçin.

  3. emp.txt dosyasının output klasörüne kopyalandığını onaylayın.

    Çıkış

Kaynakları temizleme

Hızlı başlangıç bölümünde oluşturduğunuz kaynakları iki şekilde temizleyebilirsiniz. Kaynak grubundaki tüm kaynakları içeren Azure kaynak grubunu silebilirsiniz. Diğer kaynakları korumak istiyorsanız yalnızca bu öğreticide oluşturduğunuz veri kaynağını silin.

Bir kaynak grubunun silinmesi, içindeki veri fabrikaları dahil olmak üzere tüm kaynakları siler. Kaynak grubunun tamamını silmek için şu komutu çalıştırın:

Remove-AzResourceGroup -ResourceGroupName $resourcegroupname

Kaynak grubunun tamamını değil yalnızca veri fabrikasını silmek istiyorsanız aşağıdaki komutu çalıştırın:

Remove-AzDataFactoryV2 -Name $dataFactoryName -ResourceGroupName $resourceGroupName

Sonraki adımlar

Bu hızlı başlangıçta bir ARM şablonu kullanarak bir Azure Data Factory oluşturdunuz ve dağıtımı doğruladı. Azure Data Factory ve Azure Resource Manager hakkında daha fazla bilgi edinmek için aşağıdaki makalelere devam edin.