2017-05-25 4 views
3

私は、複数のパイプラインを持つデータファクトリを持っています。各パイプラインには、2つのストレージアカウント間でアレージテーブルをコピーするための約20のコピーアクティビティがあります。Azureデータファクトリパイプラインの接続方法

各パイプラインは各紺碧テーブルのスナップショットを処理するので、古いデータで最新のデータを上書きするリスクを避けるため、パイプラインを順番に実行します。

私はこれを達成することができる第2のパイプラインへの入力として第1のパイプライン出力を与えることを知っています。しかし、私はパイプラインで多くのアクティビティを持っているので、どのアクティビティが最後に完了するかはわかりません。

パイプラインが完了したことを知ることができますか、とにかく1つのパイプライン完了ステータスが次のパイプラインをトリガーしますか?

アクティビティでは、inputsは配列です。複数の入力を与えることは可能ですか?はいの場合、すべての入力が非同期的に実行されるか、順番に実行されますか?

複数の入力のコンテキストでは、スケジューリングの依存関係について読んでいます。したがって、外部入力はスケジューリングの依存関係または内部データセットとしてのみ機能しますか?

答えて

2

私は現在、これに対処するためのいくつかの選択肢があると思います。いずれも理想的ではありませんが、ADFの現在の形では理想的なものはありません。だから... ...

オプション1

タイムスライス遅延またはを強制する第2のパイプライン活動のを相殺しました。スライスを再プロビジョニングすることなく、遅延を変更することは簡単になり、アクティビティーに追加することができます。これはイベント駆動型ではありませんが、オーバーラップを避けるための制御を少し必要とします。

"policy": { 
    "timeout": "1.00:00:00", 
    "delay": "02:00:00", // <<<< 2 hour delay 
    "concurrency": 1, 
属性とどこにそれらを使用するために、両方の詳細は

チェックこのページを:PowerShellのでhttps://docs.microsoft.com/en-us/azure/data-factory/data-factory-scheduling-and-execution

オプション2

ブレークとこれを制御するために、より高いレベルで何かを使用します。

たとえば、最初のパイプライン状態を確認するには、Get-Azure Rmデータファクトリアクティビティウィンドウを使用します。次に、完了したらSet-AzureRmDataFactorySliceStatusを使用して、2番目のパイプラインデータセットを準備完了に更新します。

OR

suspend-一時AzureのRmのデータファクトリーパイプラインとパイプラインレベルでここにADF PowerShellコマンドレットの

詳細情報この操作を行います:私が言うようにhttps://docs.microsoft.com/en-gb/powershell/module/azurerm.datafactories/Suspend-AzureRmDataFactoryPipeline?view=azurermps-4.0.0

をどちらのオプションも理想的ではなく、あなたの質問にすでにデータセット連鎖について言及しています。

これが役に立ちます。

0

パイプラインは、そのパイプラインのすべての出力データセットが状態準備完了(パイプラインが正常に終了したときに発生)した後で完了します。

さらに、パイプラインは複数のパイプラインからの複数のデータセットを入力として持つこともできます(出力も同様)。この場合、パイプラインはすべての前のパイプラインが正常に終了した後にのみ開始されます。パイプラインのデータセットが入力として多くある場合、スケジュールに応じて非同期に実行されます。

外部データセット(入力)は、独自の(場合によっては異なる)アベイラビリティを持つことができるため、スケジューリング依存関係として動作します。

複数の入力のコンテキストでは、スケジューリングの依存関係について読んでいます。したがって、外部入力はスケジューリングの依存関係または内部データセットとしてのみ機能しますか?

関連する問題