Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Petunjuk
Data Factory di Microsoft Fabric adalah generasi Azure Data Factory berikutnya, dengan arsitektur yang lebih sederhana, AI bawaan, dan fitur baru. Jika Anda baru menggunakan integrasi data, mulailah dengan Fabric Data Factory. Beban kerja ADF yang ada dapat ditingkatkan ke Fabric untuk mengakses kemampuan baru di seluruh ilmu data, analitik real time, dan pelaporan.
Aktivitas Until menyediakan fungsionalitas yang sama dengan yang disediakan struktur perulangan do-until dalam bahasa pemrograman. Ini menjalankan kumpulan aktivitas dalam perulangan hingga kondisi yang terkait dengan aktivitas tersebut bernilai benar. Jika aktivitas dalam gagal, aktivitas Until tidak berhenti. Anda dapat menentukan nilai batas waktu untuk aktivitas 'until'.
Membuat aktivitas Until dengan UI
Untuk menggunakan aktivitas Until dalam alur, selesaikan langkah-langkah berikut:
Cari Until di panel Aktivitas pipeline, dan seret aktivitas Until ke kanvas pipeline.
Pilih aktivitas Hingga di kanvas jika belum dipilih, dan tab Pengaturannya , untuk mengedit detailnya.
Masukkan ekspresi yang akan dievaluasi setelah semua aktivitas anak yang ditentukan dalam aktivitas Until dijalankan. Jika ekspresi dievaluasi sebagai false, aktivitas Until akan mengeksekusi semua aktivitas turunannya lagi. Ketika nilainya adalah true, aktivitas Until selesai. Ekspresi dapat berupa ekspresi string harfiah, atau kombinasi ekspresi dinamis, fungsi,variabel sistem, atau output dari aktivitas lain. Contoh di bawah ini memeriksa nilai variabel array pipeline yang telah ditentukan sebelumnya bernama TestVariable untuk melihat apakah ini bernilai ['done'].
Tentukan aktivitas yang dijalankan aktivitas Until dengan memilih tombol Edit Aktivitas pada aktivitas Until secara langsung, atau dengan memilih tab Aktivitas untuk memilihnya di sana. Panel editor aktivitas baru ditampilkan di mana Anda dapat menambahkan aktivitas apa pun untuk dijalankan oleh aktivitas 'Until'. Dalam contoh ini, aktivitas Atur Variabel menetapkan nilai variabel yang dirujuk ke 'selesai'. Jadi ekspresi aktivitas Until akan benar saat pertama kali dijalankan, lalu aktivitas Until akan berhenti. Anda dapat menggunakan variabel serupa untuk memeriksa kondisi apa pun. Aktivitas Until mengeksekusi aktivitas anaknya setiap kali ekspresi dievaluasi, sampai kondisi terpenuhi. Jika Anda melakukan iterasi atas beberapa aktivitas, ada potensi keterlambatan dalam mengakhiri perulangan karena pekerjaan penggabungan dan pembersihan yang dilakukan oleh pipeline.
Sintaksis
{
"type": "Until",
"typeProperties": {
"expression": {
"value": "<expression that evaluates to true or false>",
"type": "Expression"
},
"timeout": "<time out for the loop. for example: 00:10:00 (10 minute)>",
"activities": [
{
"<Activity 1 definition>"
},
{
"<Activity 2 definition>"
},
{
"<Activity N definition>"
}
]
},
"name": "MyUntilActivity"
}
Properti jenis
| Properti | Deskripsi | Nilai yang diizinkan | Wajib |
|---|---|---|---|
| nama |
Until Nama aktivitas. |
String | Yes |
| jenis | Harus disetel ke Until. | String | Yes |
| ekspresi | Ekspresi yang harus bernilai benar atau salah | Ekspresi | Yes |
| timeout | Waktu perulangan do-until habis setelah waktu yang ditentukan di sini. | String
d.hh:mm:ss (atau) hh:mm:ss. Nilai defaultnya adalah tujuh hari. Nilai maksimum adalah: 90 hari. |
Tidak |
| Aktivitas | Kumpulan aktivitas yang dijalankan sampai ekspresi mengevaluasi ke true. |
Susunan kegiatan. | Yes |
Contoh 1
Catatan
Bagian ini menyediakan definisi JSON dan contoh perintah PowerShell untuk menjalankan alur. Untuk panduan dengan instruksi langkah demi langkah untuk membuat alur dengan menggunakan definisi Azure PowerShell dan JSON, lihat tutorial: membuat pabrik data dengan menggunakan Azure PowerShell.
Alur dengan aktivitas Until
Dalam contoh ini, alur memiliki dua aktivitas: Until dan Wait. Aktivitas Tunggu menunggu periode waktu yang ditentukan sebelum menjalankan aktivitas Web dalam perulangan. Untuk mempelajari tentang ekspresi dan fungsi, lihat Bahasa dan fungsi ekspresi.
{
"name": "DoUntilPipeline",
"properties": {
"activities": [
{
"type": "Until",
"typeProperties": {
"expression": {
"value": "@equals('Failed', coalesce(body('MyUnauthenticatedActivity')?.status, actions('MyUnauthenticatedActivity')?.status, 'null'))",
"type": "Expression"
},
"timeout": "00:10:00",
"activities": [
{
"name": "MyUnauthenticatedActivity",
"type": "WebActivity",
"typeProperties": {
"method": "get",
"url": "https://www.fake.com/",
"headers": {
"Content-Type": "application/json"
}
},
"dependsOn": [
{
"activity": "MyWaitActivity",
"dependencyConditions": [ "Succeeded" ]
}
]
},
{
"type": "Wait",
"typeProperties": {
"waitTimeInSeconds": 1
},
"name": "MyWaitActivity"
}
]
},
"name": "MyUntilActivity"
}
]
}
}
Contoh 2
Pipeline dalam contoh ini menyalin data dari folder input ke folder output secara berulang. Perulangan berakhir ketika nilai untuk parameter pengulangan diatur ke false atau waktu habis setelah satu menit.
Pipeline dengan aktivitas Until (Adfv2QuickStartPipeline.json)
{
"name": "Adfv2QuickStartPipeline",
"properties": {
"activities": [
{
"type": "Until",
"typeProperties": {
"expression": {
"value": "@equals('false', pipeline().parameters.repeat)",
"type": "Expression"
},
"timeout": "00:10:00",
"activities": [
{
"name": "CopyFromBlobToBlob",
"type": "Copy",
"inputs": [
{
"referenceName": "BlobDataset",
"parameters": {
"path": "@pipeline().parameters.inputPath"
},
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "BlobDataset",
"parameters": {
"path": "@pipeline().parameters.outputPath"
},
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "BlobSource"
},
"sink": {
"type": "BlobSink"
}
},
"policy": {
"retry": 1,
"timeout": "00:10:00",
"retryIntervalInSeconds": 60
}
}
]
},
"name": "MyUntilActivity"
}
],
"parameters": {
"inputPath": {
"type": "String"
},
"outputPath": {
"type": "String"
},
"repeat": {
"type": "String"
}
}
}
}
layanan Tertaut Azure Storage (AzureStorageLinkedService.json)
{
"name": "AzureStorageLinkedService",
"properties": {
"type": "AzureStorage",
"typeProperties": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=<Azure Storage account name>;AccountKey=<Azure Storage account key>"
}
}
}
Himpunan data Blob Azure berparameter (BlobDataset.json)
Alur mengatur folderPath ke nilai parameter outputPath1 atau outputPath2 dari alur.
{
"name": "BlobDataset",
"properties": {
"type": "AzureBlob",
"typeProperties": {
"folderPath": {
"value": "@{dataset().path}",
"type": "Expression"
}
},
"linkedServiceName": {
"referenceName": "AzureStorageLinkedService",
"type": "LinkedServiceReference"
},
"parameters": {
"path": {
"type": "String"
}
}
}
}
Parameter pipa JSON (PipelineParameters.json)
{
"inputPath": "adftutorial/input",
"outputPath": "adftutorial/outputUntil",
"repeat": "true"
}
Perintah PowerShell
Catatan
Kami menyarankan agar Anda menggunakan modul Az PowerShell Azure untuk berinteraksi dengan Azure. Untuk memulai, lihat Install Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Migrasikan Azure PowerShell dari AzureRM ke Az.
Perintah ini mengasumsikan bahwa Anda menyimpan file JSON ke dalam folder: C:\ADF.
Connect-AzAccount
Select-AzSubscription "<Your subscription name>"
$resourceGroupName = "<Resource Group Name>"
$dataFactoryName = "<Data Factory Name. Must be globally unique>";
Remove-AzDataFactoryV2 $dataFactoryName -ResourceGroupName $resourceGroupName -force
Set-AzDataFactoryV2 -ResourceGroupName $resourceGroupName -Location "East US" -Name $dataFactoryName
Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "AzureStorageLinkedService" -DefinitionFile "C:\ADF\AzureStorageLinkedService.json"
Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "BlobDataset" -DefinitionFile "C:\ADF\BlobDataset.json"
Set-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "Adfv2QuickStartPipeline" -DefinitionFile "C:\ADF\Adfv2QuickStartPipeline.json"
$runId = Invoke-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineName "Adfv2QuickStartPipeline" -ParameterFile C:\ADF\PipelineParameters.json
while ($True) {
$run = Get-AzDataFactoryV2PipelineRun -ResourceGroupName $resourceGroupName -DataFactoryName $DataFactoryName -PipelineRunId $runId
if ($run) {
if ($run.Status -ne 'InProgress') {
Write-Host "Pipeline run finished. The status is: " $run.Status -foregroundcolor "Yellow"
$run
break
}
Write-Host "Pipeline is running...status: InProgress" -foregroundcolor "Yellow"
Write-Host "Activity run details:" -foregroundcolor "Yellow"
$result = Get-AzDataFactoryV2ActivityRun -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineRunId $runId -RunStartedAfter (Get-Date).AddMinutes(-30) -RunStartedBefore (Get-Date).AddMinutes(30)
$result
Write-Host "Activity 'Output' section:" -foregroundcolor "Yellow"
$result.Output -join "`r`n"
}
Start-Sleep -Seconds 15
}
Konten terkait
Lihat aktivitas alur kontrol lain yang didukung: