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

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

İpucu

Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!

Bu hızlı başlangıçta Azure Data Factory oluşturmak için Azure Resource Manager şablonunun (ARM şablonu) nasıl kullanılacağı açıklanmaktadır. Bu veri fabrikasında oluşturduğunuz işlem hattı, verileri 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.

Azure Resource Manager ş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. Dağıtımı oluşturmak için programlama komutlarının sırasını yazmadan hedeflenen dağıtımınızı açıklarsınız.

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.

Resource Manager şablonunu Azure'a dağıtma düğmesi.

Önkoş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 henüz yoksa oluşturun.)

Şablonu gözden geçirme

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.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')]"
    }
  }
}

Şablonda tanımlanan Azure kaynakları vardır:

Hızlı başlangıç şablonu galerisinde daha fazla Azure Data Factory şablon örneği bulunabilir.

Şablonu dağıtma

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

    Resource Manager şablonunu Azure'a dağıtma düğmesi.

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

    ADF ARM şablonunu dağıtma

    Belirtilmediği sürece 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 Hesabı 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'nizin oluşturulduğunu doğrulayın.

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

    Örnek Data Factory

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

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

    Depolama Hesabı

  4. Oluşturulan depolama hesabını ve ardından 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ı adı şu biçimdedir: blob<uniqueid>.

    Blob kapsayıcı

Dosyayı karşıya yükleme

  1. Kapsayıcılar sayfasında Karşıya Yükle'yi seçin.

  2. Sağdaki bölmede Dosyalar kutusunu seçin ve ardından daha önce oluşturduğunuz emp.txt dosyasına göz atın ve dosyayı seçin.

  3. Gelişmiş başlığını genişletin.

  4. Klasöre yükle kutusuna giriş 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. Blobu karşıya yükle sayfasını kapatmak için Kapat simgesini (X) seçin.

    Dosyayı giriş klasörüne yükleme

Bu hızlı başlangıcın sonunda çıkışı doğrulamak için kullanabileceğiniz için 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. Azure Data Factory Studio'yu Aç kutucuğunda Aç'ı seçin.

    Yazar ve İzleyici

  3. Yazar sekmesini seçin.

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

    ARM şablonu işlem hattı

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

    Tetikle

  6. Sağ bölmede İşlem hattı çalıştırması'nın altında 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, bu 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ındaki Kapsayıcılar sayfasında Yenile'yi seçerek çıkış klasörünü görebilirsiniz.

  2. Klasör listesinden çıktıyı seçin.

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

    Çıktı

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

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