Mulai Cepat: Membuat Azure Data Factory dengan menggunakan templat ARM

BERLAKU UNTUK: Azure Data Factory Azure Synapse Analytics

Mulai cepat ini menjelaskan cara menggunakan templat Azure Resource Manager (templat ARM) untuk membuat pabrik data Azure. Alur yang Anda buat di pabrik data ini menyalin data dari satu folder ke folder lain dalam Azure Blob Storage. Untuk tutorial tentang cara mengubah data menggunakan Azure Data Factory, lihat Tutorial: Mengubah data menggunakan Spark.

Template ARM adalah file JavaScript Object Notation (JSON) yang menentukan infrastruktur dan konfigurasi untuk proyek Anda. Template tersebut menggunakan sintaksis deklaratif. Dalam sintaksis deklaratif, Anda menguraikan penyebaran yang Anda maksudkan tanpa menulis urutan perintah pemrograman untuk membuat penyebaran tersebut.

Catatan

Artikel ini tidak memberikan pengenalan mendetail tentang layanan Data Factory. Untuk pengenalan tentang layanan Azure Data Factory, lihat Pengantar Azure Data Factory.

Jika lingkungan Anda memenuhi prasyarat dan Anda terbiasa menggunakan templat ARM, pilih tombol Sebarkan ke Azure. Templat tersebut akan terbuka di portal Microsoft Azure.

[ Sebarkan ke Azure](../media/template-deployments/deploy-to-azure.svg)

Prasyarat

Langganan Azure

Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.

Membuat file

Buka editor teks seperti Notepad, dan buat file bernama emp.txt dengan konten berikut:

John, Doe
Jane, Doe

Simpan file di folder C:\ADFv2QuickStartPSH. (Jika folder belum ada, buatlah.)

Meninjau templat

Templat yang digunakan di mulai cepat ini berasal dari Templat Mulai Cepat Azure.

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

Ada dua sumber daya yang ditentukan dalam templat:

Lebih banyak sampel templat Azure Data Factory dapat ditemukan di galeri templat mulai cepat.

Menyebarkan templat

  1. Pilih gambar berikut untuk masuk ke Azure dan buka template. Templat membuat akun Azure Data Factory, akun penyimpanan, dan kontainer blob.

    [ Sebarkan ke Azure](../media/template-deployments/deploy-to-azure.svg)

  2. Pilih atau masukkan nilai berikut.

    Menyebarkan templat ADF ARM

    Kecuali ditentukan, gunakan nilai default untuk membuat sumber daya Azure Data Factory:

    • Langganan: Pilih langganan Azure.
    • Grup sumber daya: Pilih Buat baru, masukkan nama unik untuk grup sumber daya, lalu pilih OK.
    • Wilayah: Pilih lokasi. Misalnya, US Timur.
    • Nama Data Factory: Gunakan nilai default.
    • Lokasi: Gunakan nilai default.
    • Nama Akun Penyimpanan: Gunakan nilai default.
    • Kontainer Blob: Gunakan nilai default.

Meninjau sumber daya yang disebarkan

  1. Pilih Masuk ke grup sumber daya.

    Grup Sumber Daya

  2. Verifikasi bahwa Azure Data Factory Anda dibuat.

    1. Nama Azure Data Factory Anda dalam format - datafactory<uniqueid>.

    Sampel Data Factory

  3. Verifikasi bahwa akun penyimpanan Anda dibuat.

    1. Nama akun penyimpanan dalam format - penyimpanan<uniqueid>.

    Akun Azure Storage

  4. Pilih akun penyimpanan yang dibuat lalu pilih Kontainer.

    1. Di halaman Kontainer, pilih kontainer blob yang Anda buat.
      1. Nama kontainer blob dalam format - blob<uniqueid>.

    Kontainer blob

Mengunggah file

  1. Di halaman Kontainer, pilih Unggah.

  2. Di panel sebelah kanan, pilih kotak Files, lalu telusuri dan pilih file emp.txt yang Anda buat sebelumnya.

  3. Memperluas judul Tingkat Lanjut.

  4. Di kotak Unggah ke folder, masukkan input.

  5. Pilih tombol Unggah. Anda harus melihat file emp.txt dan status unggahan dalam daftar.

  6. Pilih ikon Tutup (X) untuk menutup halaman Unggah blob.

    Mengunggah file ke folder input

Tetap buka halaman kontainer, karena Anda dapat menggunakannya untuk memverifikasi output di akhir mulai cepat ini.

Memulai Pemicu

  1. Buka halaman Pabrik data, lalu pilih pabrik data yang Anda buat.

  2. Pilih Buka di petak Buka Azure Data Factory Studio.

    Pembuat & Monitor

  3. Pilih tab Pembuat .

  4. Pilih alur yang dibuat - ArmtemplateSampleCopyPipeline.

    Alur templat ARM

  5. Pilih Tambahkan Pemicu > Picu Sekarang.

    Pemicu

  6. Di panel sebelah kanan, di bawah Eksekusi alur, pilih OK.

Monitor saluran pipa

  1. Pilih tab Monitor .

  2. Anda melihat eksekusi aktivitas yang terkait dengan eksekusi alur. Dalam mulai cepat ini, alur hanya memiliki satu aktivitas jenis: Salin. Dengan demikian, Anda akan melihat eksekusi untuk aktivitas tersebut.

    Eksekusi yang berhasil

Memverifikasi file output

Alur otomatis membuat folder output dalam kontainer blob. Kemudian, menyalin file emp.txt dari folder input ke folder output.

  1. Di portal Microsoft Azure, pada halaman Kontainer, pilih Refresh untuk melihat folder output.

  2. Pilih output dalam daftar folder.

  3. Pastikan bahwa emp.txt disalin ke folder output.

    Output

Membersihkan sumber daya

Anda dapat membersihkan sumber daya yang Anda buat di Mulai Cepat dengan dua cara. Anda dapat menghapus grup sumber daya Azure, yang menyertakan semua sumber daya dalam grup sumber daya. Jika Anda ingin menjaga sumber daya lain tetap utuh, hapus hanya pabrik data yang Anda buat dalam tutorial ini.

Menghapus grup sumber daya akan menghapus semua sumber daya termasuk pabrik data di dalamnya. Jalankan perintah berikut untuk menghapus seluruh grup sumber daya:

Remove-AzResourceGroup -ResourceGroupName $resourcegroupname

Jika Anda ingin menghapus pabrik data saja, dan bukan seluruh grup sumber daya, jalankan perintah berikut:

Remove-AzDataFactoryV2 -Name $dataFactoryName -ResourceGroupName $resourceGroupName

Langkah berikutnya

Dalam mulai cepat ini, Anda membuat Azure Data Factory menggunakan templat ARM, dan memvalidasi penyebaran. Untuk mempelajari lebih lanjut tentang Azure Data Factory dan Azure Resource Manager, lihat artikel di bawah.