Panduan mulai cepat: Membuat Azure Data Factory menggunakan PowerShell

BERLAKU UNTUK: Azure Data Factory Azure Synapse Analytics

Panduan mulai cepat ini menjelaskan cara menggunakan PowerShell untuk membuat Azure Data Factory. Alur yang Anda buat di pabrik data ini menyalin data dari satu folder ke folder lain dalam penyimpanan Azure Blob. Untuk tutorial tentang cara mengubah data menggunakan Azure Data Factory, lihat Tutorial: Mengubah data menggunakan Spark.

Catatan

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

Prasyarat

Langganan Azure

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

Peran Azure

Untuk membuat instans Data Factory, akun pengguna yang Anda gunakan untuk masuk ke Azure harus menjadi anggota peran kontributor atau peran pemilik, atau administrator langganan Azure. Untuk menampilkan izin yang Anda miliki di langganan, di portal Microsoft Azure, pilih nama pengguna Anda di sudut kanan atas, lalu " ... " ikon untuk opsi selengkapnya, lalu pilih Izin saya. Jika Anda memiliki akses ke beberapa langganan, pilih langganan yang sesuai.

Untuk membuat dan mengelola sumber daya anak untuk Data Factory - termasuk himpunan data, layanan tertaut, alur, pemicu, dan runtime integrasi - persyaratan berikut ini berlaku:

  • Untuk membuat dan mengelola sumber daya anak di portal Microsoft Azure, Anda harus memiliki peran Kontributor Data Factory di tingkat Grup Sumber Daya atau di atasnya.
  • Untuk membuat dan mengelola sumber daya anak dengan PowerShell atau SDK, peran kontributor di tingkat sumber daya atau di atasnya cukup.

Untuk sampel instruksi tentang cara menambahkan pengguna ke peran, lihat artikel Menambahkan peran.

Untuk informasi selengkapnya, baca artikel berikut:

Akun Azure Storage

Anda menggunakan akun Azure Storage serba guna (khususnya penyimpanan Blob) sebagai sumber dan tujuan penyimpanan data dalam mulai cepat ini. Jika Anda tidak memiliki akun penyimpanan Azure Storage serba guna, lihat Buat akun penyimpanan untuk membuatnya.

Dapatkan nama akun penyimpanan

Anda memerlukan nama akun Azure Storage Anda untuk mulai cepat ini. Prosedur berikut ini menyediakan langkah-langkah untuk mendapatkan nama akun penyimpanan Anda:

  1. Di browser web, buka portal Microsoft Azure, lalu masuk menggunakan nama pengguna dan kata sandi Azure Anda.
  2. Dari menu portal Microsoft Azure, pilih Semua layanan, lalu pilih Penyimpanan > Akun penyimpanan. Anda juga dapat mencari dan memilih Akun penyimpanan dari halaman mana pun.
  3. Dalam halaman Akun penyimpanan, filter untuk akun penyimpanan Anda (jika diperlukan), lalu pilih akun penyimpanan Anda.

Anda juga dapat mencari dan memilih Akun penyimpanan dari halaman mana pun.

Membuat kontainer blob

Di bagian ini, Anda membuat kontainer blob bernama adftutorial di penyimpanan Azure Blob.

  1. Dari halaman akun penyimpanan, pilih Gambaran > Kontainer.

  2. Pada bar alat halaman <Account name> - Kontainer, select Kontainer.

  3. Di Kotak dialog Kontainer baru, masukkan adftutorial untuk nama, lalu pilih OK. Halaman <Account name> - Kontainer diperbarui untuk menyertakan adftutorial dalam daftar kontainer.

    Daftar kontainer

Menambahkan folder input dan file untuk kontainer blob

Di bagian ini, Anda membuat folder bernama input dalam kontainer yang Anda buat, lalu mengunggah file sampel ke folder input. Sebelum memulai, 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.) Lalu kembali ke portal Microsoft Azure dan ikuti langkah-langkah berikut:

  1. Di halaman <Account name> - Kontainer di mana Anda tinggalkan, pilih adftutorial dari daftar kontainer yang diperbarui.

    1. Jika Anda menutup jendela atau pergi ke halaman lain, masuk lagi ke portal Microsoft Azure.
    2. Dari menu portal Microsoft Azure, pilih Semua layanan, lalu pilih Penyimpanan > Akun penyimpanan. Anda juga dapat mencari dan memilih Akun penyimpanan dari halaman mana pun.
    3. Pilih akun penyimpanan Anda, lalu pilih Kontainer > adftutorial.
  2. Pada bar alat halaman kontainer adftutorial, pilih Unggah.

  3. Di halaman Unggah blob, pilih kotak File, lalu telusuri dan pilih file emp.txt.

  4. Memperluas judul Tingkat Lanjut. Halaman sekarang ditampilkan seperti yang ditunjukkan:

    Pilih tautan Tingkat lanjut

  5. Di kotak Unggah ke folder, masukkan input.

  6. Pilih tombol Unggah. Anda akan melihat file emp.txt dan status unggahan dalam daftar.

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

Buka halaman kontainer adftutorial. Anda menggunakannya untuk memverifikasi output di akhir mulai cepat ini.

Azure PowerShell

Catatan

Artikel ini telah diperbarui dan menggunakan modul Azure Az PowerShell. Modul Az PowerShell adalah modul PowerShell yang disarankan untuk berinteraksi dengan Azure. Untuk mulai menggunakan modul Az PowerShell, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Pasang modul Azure PowerShell terbaru dengan mengikuti instruksi dalam Cara menginstal dan mengonfigurasi Azure PowerShell.

Peringatan

Jika tidak menggunakan modul PowerShell dan Data Factory versi terbaru, Anda mungkin mengalami kesalahan deserialisasi saat menjalankan perintah.

Masuk ke PowerShell

  1. Luncurkan PowerShell di komputer Anda. Tetap buka PowerShell hingga akhir panduan mulai cepat ini. Jika menutup dan membuka kembali, Anda perlu menjalankan perintah ini lagi.

  2. Jalankan perintah berikut, dan masukkan nama pengguna Azure serta kata sandi yang Anda gunakan untuk masuk ke portal Microsoft Azure:

    Connect-AzAccount
    
  3. Jalankan perintah berikut untuk menampilkan semua langganan untuk akun ini:

    Get-AzSubscription
    
  4. Jika melihat beberapa langganan yang terkait dengan akun Anda, jalankan perintah berikut untuk memilih langganan yang ingin Anda kerjakan. Ganti SubscriptionId dengan ID langganan Azure Anda:

    Select-AzSubscription -SubscriptionId "<SubscriptionId>"
    

Buat pabrik data

  1. Tentukan variabel untuk nama grup sumber daya yang Anda gunakan di perintah PowerShell nanti. Salin teks perintah berikut ke PowerShell, tentukan nama untuk grup sumber daya Azure dalam tanda kutip ganda, lalu jalankan perintah. Contoh: "ADFQuickStartRG".

    $resourceGroupName = "ADFQuickStartRG";
    

    Jika grup sumber daya sudah ada, Anda mungkin tidak ingin menimpanya. Tetapkan nilai yang berbeda ke variabel $ResourceGroupName dan jalankan perintah lagi

  2. Untuk membuat grup sumber daya Azure, jalankan perintah berikut ini:

    $ResGrp = New-AzResourceGroup $resourceGroupName -location 'East US'
    

    Jika grup sumber daya sudah ada, Anda mungkin tidak ingin menimpanya. Tetapkan nilai yang berbeda ke variabel $ResourceGroupName dan jalankan perintah lagi.

  3. Tentukan variabel untuk nama pabrik data.

    Penting

    Perbarui nama pabrik data menjadi unik secara global. Misalnya, ADFTutorialFactorySP1127.

    $dataFactoryName = "ADFQuickStartFactory";
    
  4. Untuk membuat pabrik data, jalankan cmdlet Set-AzDataFactoryV2 berikut ini, menggunakan properti Location dan ResourceGroupName dari variabel $ResGrp berikut:

    $DataFactory = Set-AzDataFactoryV2 -ResourceGroupName $ResGrp.ResourceGroupName `
        -Location $ResGrp.Location -Name $dataFactoryName
    

Perhatikan poin berikut:

  • Nama Azure Data Factory harus unik secara global. Jika Anda mendapatkan kesalahan berikut, ubah nama dan coba lagi.

    The specified Data Factory name 'ADFv2QuickStartDataFactory' is already in use. Data Factory names must be globally unique.
    
  • Untuk membuat instans Data Factory, akun pengguna yang Anda gunakan untuk masuk ke Azure harus merupakan anggota dari peran kontributor atau pemilik, atau administrator dari langganan Azure.

  • Untuk daftar wilayah Azure tempat Data Factory tersedia sekarang, pilih wilayah yang Anda inginkan pada halaman berikut, lalu perluas Analitik untuk menemukan Data Factory: Produk yang tersedia berdasarkan wilayah. Penyimpanan data (Azure Storage, Azure SQL Database, dll.) dan komputasi (HDInsight, dll.) yang digunakan oleh pabrik data dapat berada di wilayah lain.

Membuat layanan tertaut

Buat layanan tertaut di pabrik data untuk menautkan penyimpanan data dan layanan komputasi ke pabrik data. Dalam panduan mulai cepat ini, buat layanan tertaut Azure Storage yang digunakan sebagai sumber dan penyimpanan sink. Layanan yang ditautkan memiliki informasi koneksi yang digunakan layanan Data Factory pada runtime untuk menyambungkannya.

Tip

Dalam panduan mulai cepat ini, gunakan kunci Akun sebagai jenis autentikasi untuk penyimpanan data Anda, tetapi Anda dapat memilih metode autentikasi lain yang didukung: SAS URI, Perwakilan Layanan dan Identitas Terkelola jika diperlukan. Lihat bagian terkait dalam artikel ini untuk detailnya. Untuk menyimpan rahasia untuk penyimpanan data dengan aman, disarankan juga untuk menggunakan Azure Key Vault. Lihat artikel ini untuk ilustrasi terperinci.

  1. Buat file JSON bernama AzureStorageLinkedService.json di folder C:\ADFv2QuickStartPSH dengan konten berikut: (Buat folder ADFv2QuickStartPSH jika belum ada.).

    Penting

    Ganti <accountName> dan <accountKey>dengan nama dan kunci akun penyimpanan Azure Anda sebelum menyimpan file.

    {
        "name": "AzureStorageLinkedService",
        "properties": {
            "annotations": [],
            "type": "AzureBlobStorage",
            "typeProperties": {
                "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.windows.net"
            }
        }
    }
    

    Jika Anda menggunakan Notepad, pilih Semua file untuk Jenis simpan sebagai yang diajukan dalam kotak dialog Simpan sebagai. Jika tidak, ekstensi .txt dapat ditambahkan ke file. Contohnya:AzureStorageLinkedService.json.txt Jika membuat file di File Explorer sebelum membukanya di Notepad, Anda mungkin tidak melihat ekstensi .txt karena opsi Sembunyikan ekstensi untuk jenis file yang diketahui diatur secara default. Hapus ekstensi .txt sebelum melanjutkan ke langkah berikutnya.

  2. Di PowerShell, beralihlah ke folder ADFv2QuickStartPSH.

    Set-Location 'C:\ADFv2QuickStartPSH'
    
  3. Jalankan cmdlet Set-AzDataFactoryV2LinkedService untuk membuat layanan yang ditautkan: AzureStorageLinkedService.

    Set-AzDataFactoryV2LinkedService -DataFactoryName $DataFactory.DataFactoryName `
        -ResourceGroupName $ResGrp.ResourceGroupName -Name "AzureStorageLinkedService" `
        -DefinitionFile ".\AzureStorageLinkedService.json"
    

    Berikut sampel outputnya:

    LinkedServiceName : AzureStorageLinkedService
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Properties        : Microsoft.Azure.Management.DataFactory.Models.AzureBlobStorageLinkedService
    

Membuat himpunan data

Dalam prosedur ini, buat dua himpunan data: InputDataset dan OutputDataset. Himpunan data ini berdasarkan jenis Biner. Himpunan data tersebut merujuk ke layanan tertaut Azure Storage yang Anda buat di bagian sebelumnya. HImpunan data input mewakili data sumber di folder input. Dalam definisi himpunan data input, tentukan kontainer blob (adftutorial), folder (input), dan file (emp.txt) yang berisi data sumber. Himpunan data output menunjukkan data yang disalin ke tujuan. Dalam definisi himpunan data output, tentukan kontainer blob (adftutorial), folder (output), dan file tempat data disalin.

  1. Buat file JSON bernama InputDataset.json di folder C:\ADFv2QuickStartPSH dengan konten berikut:

    {
        "name": "InputDataset",
        "properties": {
            "linkedServiceName": {
                "referenceName": "AzureStorageLinkedService",
                "type": "LinkedServiceReference"
            },
            "annotations": [],
            "type": "Binary",
            "typeProperties": {
                "location": {
                    "type": "AzureBlobStorageLocation",
                    "fileName": "emp.txt",
                    "folderPath": "input",
                    "container": "adftutorial"
                }
            }
        }
    }
    
  2. Untuk membuat himpunan data: InputDataset, jalankan cmdlet Set-AzDataFactoryV2Dataset.

    Set-AzDataFactoryV2Dataset -DataFactoryName $DataFactory.DataFactoryName `
        -ResourceGroupName $ResGrp.ResourceGroupName -Name "InputDataset" `
        -DefinitionFile ".\InputDataset.json"
    

    Berikut sampel outputnya:

    DatasetName       : InputDataset
    ResourceGroupName : <resourceGroupname>
    DataFactoryName   : <dataFactoryName>
    Structure         :
    Properties        : Microsoft.Azure.Management.DataFactory.Models.BinaryDataset
    
  3. Ulangi langkah-langkah untuk membuat himpunan data output. Buat file JSON bernama OutputDataset.json di folder C:\ADFv2QuickStartPSH dengan konten berikut:

    {
        "name": "OutputDataset",
        "properties": {
            "linkedServiceName": {
                "referenceName": "AzureStorageLinkedService",
                "type": "LinkedServiceReference"
            },
            "annotations": [],
            "type": "Binary",
            "typeProperties": {
                "location": {
                    "type": "AzureBlobStorageLocation",
                    "folderPath": "output",
                    "container": "adftutorial"
                }
            }
        }
    }
    
  4. Jalankan cmdlet Set-AzDataFactoryV2Dataset untuk membuat OutDataset.

    Set-AzDataFactoryV2Dataset -DataFactoryName $DataFactory.DataFactoryName `
        -ResourceGroupName $ResGrp.ResourceGroupName -Name "OutputDataset" `
        -DefinitionFile ".\OutputDataset.json"
    

    Berikut sampel outputnya:

    DatasetName       : OutputDataset
    ResourceGroupName : <resourceGroupname>
    DataFactoryName   : <dataFactoryName>
    Structure         :
    Properties        : Microsoft.Azure.Management.DataFactory.Models.BinaryDataset
    

Membuat alur

Dalam prosedur ini, buat alur dengan aktivitas salin yang menggunakan himpunan data input dan output. Aktivitas salin akan menyalin data dari file yang Anda tentukan dalam pengaturan himpunan data input ke file yang Anda tentukan dalam pengaturan himpunan data output.

  1. Buat file JSON bernama Adfv2QuickStartPipeline.json di folder C:\ADFv2QuickStartPSH dengan konten berikut:

    {
        "name": "Adfv2QuickStartPipeline",
        "properties": {
            "activities": [
                {
                    "name": "CopyFromBlobToBlob",
                    "type": "Copy",
                    "dependsOn": [],
                    "policy": {
                        "timeout": "7.00:00:00",
                        "retry": 0,
                        "retryIntervalInSeconds": 30,
                        "secureOutput": false,
                        "secureInput": false
                    },
                    "userProperties": [],
                    "typeProperties": {
                        "source": {
                            "type": "BinarySource",
                            "storeSettings": {
                                "type": "AzureBlobStorageReadSettings",
                                "recursive": true
                            }
                        },
                        "sink": {
                            "type": "BinarySink",
                            "storeSettings": {
                                "type": "AzureBlobStorageWriteSettings"
                            }
                        },
                        "enableStaging": false
                    },
                    "inputs": [
                        {
                            "referenceName": "InputDataset",
                            "type": "DatasetReference"
                        }
                    ],
                    "outputs": [
                        {
                            "referenceName": "OutputDataset",
                            "type": "DatasetReference"
                        }
                    ]
                }
            ],
            "annotations": []
        }
    }
    
  2. Untuk membuat alur: Adfv2QuickStartPipeline, Jalankan cmdlet Set-AzDataFactoryV2Pipeline.

    $DFPipeLine = Set-AzDataFactoryV2Pipeline `
        -DataFactoryName $DataFactory.DataFactoryName `
        -ResourceGroupName $ResGrp.ResourceGroupName `
        -Name "Adfv2QuickStartPipeline" `
        -DefinitionFile ".\Adfv2QuickStartPipeline.json"
    

Membuat eksekusi alur

Dalam langkah ini, Anda akan membuat eksekusi alur.

Jalankan cmdlet Invoke-AzDataFactoryV2Pipeline untuk membuat eksekusi alur. Cmdlet mengembalikan ID eksekusi alur untuk pemantauan di masa mendatang.

$RunId = Invoke-AzDataFactoryV2Pipeline `
  -DataFactoryName $DataFactory.DataFactoryName `
  -ResourceGroupName $ResGrp.ResourceGroupName `
  -PipelineName $DFPipeLine.Name 

Memantau eksekusi alur

  1. Jalankan skrip PowerShell berikut ini untuk terus memeriksa status eksekusi alur hingga selesai menyalin data. Salin/tempel skrip berikut di jendela PowerShell, dan tekan ENTER.

    while ($True) {
        $Run = Get-AzDataFactoryV2PipelineRun `
            -ResourceGroupName $ResGrp.ResourceGroupName `
            -DataFactoryName $DataFactory.DataFactoryName `
            -PipelineRunId $RunId
    
        if ($Run) {
            if ( ($Run.Status -ne "InProgress") -and ($Run.Status -ne "Queued") ) {
                Write-Output ("Pipeline run finished. The status is: " +  $Run.Status)
                $Run
                break
            }
            Write-Output ("Pipeline is running...status: " + $Run.Status)
        }
    
        Start-Sleep -Seconds 10
    }
    

    Berikut adalah sampel output dari eksekusi alur:

    Pipeline is running...status: InProgress
    Pipeline run finished. The status is:  Succeeded
    
    ResourceGroupName : ADFQuickStartRG
    DataFactoryName   : ADFQuickStartFactory
    RunId             : 00000000-0000-0000-0000-0000000000000
    PipelineName      : Adfv2QuickStartPipeline
    LastUpdated       : 8/27/2019 7:23:07 AM
    Parameters        : {}
    RunStart          : 8/27/2019 7:22:56 AM
    RunEnd            : 8/27/2019 7:23:07 AM
    DurationInMs      : 11324
    Status            : Succeeded
    Message           : 
    
  2. Jalankan skrip berikut untuk mengambil aktivitas salin detail eksekusi, misalnya, ukuran data yang dibaca/ditulis.

    Write-Output "Activity run details:"
    $Result = Get-AzDataFactoryV2ActivityRun -DataFactoryName $DataFactory.DataFactoryName -ResourceGroupName $ResGrp.ResourceGroupName -PipelineRunId $RunId -RunStartedAfter (Get-Date).AddMinutes(-30) -RunStartedBefore (Get-Date).AddMinutes(30)
    $Result
    
    Write-Output "Activity 'Output' section:"
    $Result.Output -join "`r`n"
    
    Write-Output "Activity 'Error' section:"
    $Result.Error -join "`r`n"
    
  3. Pastikan bahwa Anda melihat output yang sama dengan sampel output hasil eksekusi aktivitas:

    ResourceGroupName : ADFQuickStartRG
    DataFactoryName   : ADFQuickStartFactory
    ActivityRunId     : 00000000-0000-0000-0000-000000000000
    ActivityName      : CopyFromBlobToBlob
    PipelineRunId     : 00000000-0000-0000-0000-000000000000
    PipelineName      : Adfv2QuickStartPipeline
    Input             : {source, sink, enableStaging}
    Output            : {dataRead, dataWritten, filesRead, filesWritten...}
    LinkedServiceName :
    ActivityRunStart  : 8/27/2019 7:22:58 AM
    ActivityRunEnd    : 8/27/2019 7:23:05 AM
    DurationInMs      : 6828
    Status            : Succeeded
    Error             : {errorCode, message, failureType, target}
    
    Activity 'Output' section:
    "dataRead": 20
    "dataWritten": 20
    "filesRead": 1
    "filesWritten": 1
    "sourcePeakConnections": 1
    "sinkPeakConnections": 1
    "copyDuration": 4
    "throughput": 0.01
    "errors": []
    "effectiveIntegrationRuntime": "DefaultIntegrationRuntime (Central US)"
    "usedDataIntegrationUnits": 4
    "usedParallelCopies": 1
    "executionDetails": [
      {
        "source": {
          "type": "AzureBlobStorage"
        },
        "sink": {
          "type": "AzureBlobStorage"
        },
        "status": "Succeeded",
        "start": "2019-08-27T07:22:59.1045645Z",
        "duration": 4,
        "usedDataIntegrationUnits": 4,
        "usedParallelCopies": 1,
        "detailedDurations": {
          "queuingDuration": 3,
          "transferDuration": 1
        }
      }
    ]
    
    Activity 'Error' section:
    "errorCode": ""
    "message": ""
    "failureType": ""
    "target": "CopyFromBlobToBlob"
    

Meninjau sumber daya yang disebarkan

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

  1. Di portal Microsoft Azure, di halaman kontainer adftutorial, pilih Refresh untuk melihat folder output.

    Cuplikan layar memperlihatkan halaman kontainer tempat Anda bisa me-refresh halaman.

  2. Pilih output dalam daftar folder.

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

    Cuplikan layar memperlihatkan konten folder 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

Catatan

Menghilangkan grup sumber daya mungkin membutuhkan waktu. Harap bersabar dengan prosesnya

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

Remove-AzDataFactoryV2 -Name $dataFactoryName -ResourceGroupName $resourceGroupName

Langkah berikutnya

Alur dalam sampel ini menyalin data dari satu lokasi ke lokasi lain dalam penyimpanan blob Azure. Ikuti tutorial untuk mempelajari tentang penggunaan Data Factory dalam skenario lainnya.