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.
BERLAKU UNTUK:
Azure Data Factory
Azure Synapse Analytics
Tip
Cobalah Data Factory di Microsoft Fabric, sebuah solusi analitik terpadu untuk perusahaan. Microsoft Fabric mencakup segala hal mulai dari pergerakan data hingga ilmu data, analitik real-time, intelijen bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!
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.
Syntax
{
"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
| Property | Description | Nilai yang diizinkan | Required |
|---|---|---|---|
| name |
Until Nama aktivitas. |
String | Yes |
| jenis | Harus disetel ke Until. | String | Yes |
| ekspresi | Ekspresi yang harus bernilai benar atau salah | Expression. | 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. |
No |
| Activities | Kumpulan aktivitas yang dijalankan sampai ekspresi mengevaluasi ke true. |
Susunan kegiatan. | Yes |
Contoh 1
Note
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 Azure Storage yang Ditautkan (AzureStorageLinkedService.json)
{
"name": "AzureStorageLinkedService",
"properties": {
"type": "AzureStorage",
"typeProperties": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=<Azure Storage account name>;AccountKey=<Azure Storage account key>"
}
}
}
Himpunan data Azure Blob 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
Note
Kami merekomendasikan agar Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Untuk memulai, lihat Install Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan 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: