Azure Data Factory ve Synapse Analytics'teki etkinliklere kadar
UYGULANANLAR: Azure Data Factory Azure Synapse Analytics
İpucu
Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!
Until etkinliği, programlama dillerindeki do-until döngü yapısıyla aynı işlevselliği sağlar. Etkinlikle ilişkilendirilmiş olan koşul doğru sonucunu verene kadar bir dizi etkinliği döngüsel olarak yürütür. İç etkinlik başarısız olursa, Until etkinliği durmaz. Until etkinliği için bir zaman aşımı değeri belirtebilirsiniz.
Kullanıcı arabirimiyle Until etkinliği oluşturma
İşlem hattında Until etkinliğini kullanmak için aşağıdaki adımları tamamlayın:
İşlem hattı Etkinlikleri bölmesinde Until araması yapıp Until etkinliğini işlem hattı tuvaline sürükleyin.
Tuvalde henüz seçili değilse Until etkinliğini ve ayrıntılarını düzenlemek için Ayarlar sekmesini seçin.
Until etkinliği yürütüldükten sonra tanımlanan tüm alt etkinliklerden sonra değerlendirilecek bir ifade girin. İfade false olarak değerlendirilirse, Until etkinliği tüm alt etkinliklerini yeniden yürütür. True olarak değerlendirildiğinde, Until etkinliği tamamlar. İfade değişmez değer dize ifadesi veya dinamik ifadelerin, işlevlerin, sistem değişkenlerinin veya diğer etkinliklerden gelen çıkışların herhangi bir bileşimi olabilir. Aşağıdaki örnek, ['done'] olarak değerlendirilip değerlendirilmediğini görmek için TestVariable adlı önceden tanımlanmış bir işlem hattı dizisi değişkeninin değerini denetler.
Until etkinliğinin doğrudan Until etkinliğindeki Etkinlikleri Düzenle düğmesini seçerek veya etkinlikler sekmesini seçerek yürütülecek etkinlikleri tanımlayın. Yürütülecek Until etkinliğine yönelik etkinlikleri ekleyebileceğiniz yeni bir etkinlik düzenleyicisi bölmesi görüntülenir. Bu örnekte, Değişken Ayarla etkinliği yalnızca yukarıda belirtilen ifadede başvurulan değişkenin değerini ['done'] olarak ayarlar, bu nedenle Until etkinliğinin ifadesi ilk kez yürütülürken doğru olur ve Until etkinliği durur. Gerçek dünya kullanımınızda, gerekli koşulları denetleyebilirsiniz ve Until etkinliği, koşullar karşılanana kadar ifade her değerlendirildiğinde alt etkinliklerini yürütmeye devam eder.
Sözdizimi
{
"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"
}
Tür özellikleri
Özellik | Açıklama | İzin verilen değerler | Zorunlu |
---|---|---|---|
Adı | Etkinliğin Until adı. |
String | Yes |
Tür | Until olarak ayarlanmalıdır. | String | Yes |
ifade | True veya false olarak değerlendirmesi gereken ifade | İfade. | Yes |
timeout | Do-until döngüsü burada belirtilen süreden sonra zaman aşımına uğradı. | Dizgi. d.hh:mm:ss (veya) öğesini seçin hh:mm:ss . Varsayılan değer yedi gündür. En yüksek değer: 90 gün. |
Hayır |
Aktiviteler | İfade olarak değerlendirilene true kadar yürütülen etkinlik kümesi. |
Etkinlik dizisi. | Yes |
Örnek 1
Not
Bu bölümde, işlem hattını çalıştırmak için JSON tanımları ve örnek PowerShell komutları sağlanır. Azure PowerShell ve JSON tanımlarını kullanarak işlem hattı oluşturmaya yönelik adım adım yönergeleri içeren bir kılavuz için bkz . öğretici: Azure PowerShell kullanarak veri fabrikası oluşturma.
Until etkinliği ile işlem hattı
Bu örnekte işlem hattının iki etkinliği vardır: Until ve Wait. Wait etkinliği, Web etkinliğini döngüde çalıştırmadan önce belirtilen süre boyunca bekler. İfadeler ve işlevler hakkında bilgi edinmek için bkz . İfade dili ve işlevleri.
{
"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"
}
]
}
}
Örnek 2
Bu örnekteki işlem hattı, bir giriş klasöründeki verileri döngüdeki bir çıkış klasörüne kopyalar. Döngü, repeat parametresinin değeri false olarak ayarlandığında veya bir dakika sonra zaman aşımına uğradıysa sonlandırılır.
Until etkinliğiyle işlem hattı (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"
}
}
}
}
Azure Depolama bağlı hizmeti (AzureStorageLinkedService.json)
{
"name": "AzureStorageLinkedService",
"properties": {
"type": "AzureStorage",
"typeProperties": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=<Azure Storage account name>;AccountKey=<Azure Storage account key>"
}
}
}
Parametreli Azure Blob veri kümesi (BlobDataset.json)
İşlem hattı, folderPath değerini işlem hattının outputPath1 veya outputPath2 parametresine ayarlar.
{
"name": "BlobDataset",
"properties": {
"type": "AzureBlob",
"typeProperties": {
"folderPath": {
"value": "@{dataset().path}",
"type": "Expression"
}
},
"linkedServiceName": {
"referenceName": "AzureStorageLinkedService",
"type": "LinkedServiceReference"
},
"parameters": {
"path": {
"type": "String"
}
}
}
}
İşlem hattı parametresi JSON (PipelineParameters.json)
{
"inputPath": "adftutorial/input",
"outputPath": "adftutorial/outputUntil",
"repeat": "true"
}
PowerShell komutları
Not
Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz . Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.
Bu komutlar, JSON dosyalarını C:\ADF klasörüne kaydettiğinizi varsayar.
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
}
İlgili içerik
Desteklenen diğer denetim akışı etkinliklerine bakın: