Panduan mulai cepat: Membuat Azure Data Factory menggunakan PowerShell
BERLAKU UNTUK: Azure Data Factory Azure Synapse Analytics
Tip
Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!
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 pemilik, atau administrator langganan Azure. Untuk menampilkan izin yang Anda miliki di langganan, buka portal Azure, pilih nama pengguna Anda di sudut kanan atas, pilih 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 Azure, Anda harus masuk ke dalam 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 sudah cukup.
Untuk instruksi sampel 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 belum punya 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:
- Di browser web, buka portal Azure, lalu masuk menggunakan nama pengguna dan kata sandi Azure Anda.
- Dari menu portal Azure, pilih Semua layanan, lalu pilih Penyimpanan>Akun penyimpanan. Anda juga dapat mencari dan memilih Akun penyimpanan dari halaman mana pun.
- 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.
Dari halaman akun penyimpanan, pilih Gambaran Umum>Kontainer.
Di toolbar halaman <Nama akun> - Kontainer, pilih Kontainer.
Di Kotak dialog Kontainer baru, masukkan adftutorial untuk nama, lalu pilih OK. Halaman <Nama akun> - Kontainer diperbarui untuk menyertakan adftutorial dalam 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 Azure dan ikuti langkah-langkah berikut:
Di halaman <Nama akun> - Kontainer tempat yang Anda tinggalkan, pilih adftutorial dari daftar kontainer yang diperbarui.
- Jika Anda menutup jendela atau pergi ke halaman lain, masuk lagi ke portal Azure.
- Dari menu portal Azure, pilih Semua layanan, lalu pilih Penyimpanan>Akun penyimpanan. Anda juga dapat mencari dan memilih Akun penyimpanan dari halaman mana pun.
- Pilih akun penyimpanan Anda, lalu pilih Kontainer>adftutorial.
Pada tollbar halaman kontainer adftutorial, pilih Unggah.
Di halaman Unggah blob, pilih kotak File, lalu telusuri dan pilih file emp.txt.
Memperluas judul Tingkat Lanjut. Halaman sekarang menampilkan seperti yang ditunjukkan:
Di kotak Unggah ke folder, masukkan input.
Pilih tombol Unggah. Anda harus melihat file emp.txt dan status unggahan dalam daftar.
Pilih ikon Tutup (X) untuk menutup halaman Unggah blob.
Jaga halaman kontainer adftutorial tetap terbuka. Anda menggunakannya untuk memverifikasi output di akhir mulai cepat ini.
Azure PowerShell
Catatan
Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Untuk memulai, 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 petunjuk 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
Luncurkan PowerShell di komputer Anda. Tetap buka PowerShell hingga akhir panduan mulai cepat ini. Jika Anda menutup dan membuka kembali, Anda perlu menjalankan perintah lagi.
Jalankan perintah berikut, dan masukkan nama pengguna Azure serta kata sandi yang Anda gunakan untuk masuk ke portal Microsoft Azure:
Connect-AzAccount
Jalankan perintah berikut untuk menampilkan semua langganan untuk akun ini:
Get-AzSubscription
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>"
Membuat pabrik data
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. Misalnya:
"ADFQuickStartRG"
.$resourceGroupName = "ADFQuickStartRG";
Jika grup sumber daya sudah ada, Anda mungkin tidak ingin menimpanya. Tetapkan nilai yang berbeda ke variabel
$ResourceGroupName
dan jalankan perintah lagiUntuk membuat grup sumber daya Azure, jalankan perintah berikut:
$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.Tentukan variabel untuk nama pabrik data.
Penting
Perbarui nama pabrik data menjadi nama yang unik secara global. Misalnya, ADFTutorialFactorySP1127.
$dataFactoryName = "ADFQuickStartFactory";
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 menerima 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 saat ini tersedia, pilih wilayah yang menarik minat Anda pada halaman berikut, lalu perluas Analitik untuk menemukan Data Factory: Produk yang tersedia menurut 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 tertaut memiliki informasi sambungan yang digunakan layanan Data Factory saat runtime bahasa umum untuk menyambungkan ke situ.
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 lebih detail.
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 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.Di PowerShell, beralihlah ke folder ADFv2QuickStartPSH.
Set-Location 'C:\ADFv2QuickStartPSH'
Jalankan cmdlet Set-AzDataFactoryV2LinkedService untuk membuat layanan yang ditautkan: AzureStorageLinkedService.
Set-AzDataFactoryV2LinkedService -DataFactoryName $DataFactory.DataFactoryName ` -ResourceGroupName $ResGrp.ResourceGroupName -Name "AzureStorageLinkedService" ` -DefinitionFile ".\AzureStorageLinkedService.json"
Berikut adalah output sampel:
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. Mereka 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.
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" } } } }
Untuk membuat himpunan data: InputDataset, jalankan cmdlet Set-AzDataFactoryV2Dataset.
Set-AzDataFactoryV2Dataset -DataFactoryName $DataFactory.DataFactoryName ` -ResourceGroupName $ResGrp.ResourceGroupName -Name "InputDataset" ` -DefinitionFile ".\InputDataset.json"
Berikut adalah output sampel:
DatasetName : InputDataset ResourceGroupName : <resourceGroupname> DataFactoryName : <dataFactoryName> Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.BinaryDataset
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" } } } }
Jalankan cmdlet Set-AzDataFactoryV2Dataset untuk membuat OutDataset.
Set-AzDataFactoryV2Dataset -DataFactoryName $DataFactory.DataFactoryName ` -ResourceGroupName $ResGrp.ResourceGroupName -Name "OutputDataset" ` -DefinitionFile ".\OutputDataset.json"
Berikut adalah output sampel:
DatasetName : OutputDataset ResourceGroupName : <resourceGroupname> DataFactoryName : <dataFactoryName> Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.BinaryDataset
Buat 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.
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": [] } }
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 menampilkan ID eksekusi alur untuk pemantauan di masa mendatang.
$RunId = Invoke-AzDataFactoryV2Pipeline `
-DataFactoryName $DataFactory.DataFactoryName `
-ResourceGroupName $ResGrp.ResourceGroupName `
-PipelineName $DFPipeLine.Name
Memantau eksekusi alur
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 :
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"
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.
Di portal Microsoft Azure, di halaman kontainer adftutorial, pilih Refresh untuk melihat folder output.
Pilih output dalam daftar folder.
Pastikan bahwa emp.txt disalin ke 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
Konten terkait
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.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk