2017-05-11 1 views
0

Ich bin auf der Suche nach Ratschlägen, was die beste Praxis in Bezug auf Orchestrierung von Prozessen ist. Um etwas Zusammenhang gebe ich haben folgende Aufgaben orchestrieren:Azure Process Orchestration

  1. Scale-up Pool Azure Batch ausreichend Knoten
  2. ausführen benutzerdefinierte .NET-Code zu schaffen, die einen Server ruft eine Liste von Aufgaben abzurufen. Diese Aufgaben ändern sich täglich. Ordnen Sie diese Aufgaben dem Stapelpool zu.
  3. Führen Sie jede Aufgabe (benutzerdefinierter .NET-Code) im Stapelpool aus. Jede Aufgabe erstellt Daten in einem Azure-Speicherkonto.
  4. Verringern Sie den Stapelpool, da er nicht mehr benötigt wird.
  5. Starten/Vergrößern des Data Warehouse
  6. Bulk Importieren Sie die Daten in das Data Warehouse (eine Kombination aus PolyBase und BCP ist zu erwarten).
  7. Aggregieren Sie die Daten und erstellen Sie die Ausgabe in einem Azure Storage-Konto.
  8. Pause/Skalierung der Data Warehouse nach unten

Ich vergleiche derzeit Data Warehouse Runbooks die oben auszuführen.

Ich finde Runbooks sind sehr primitiv in Bezug auf ihre Visualisierung während Design und Laufzeit.

Ich finde, dass Data Warehouse ist visuell mehr appealing. Das Daten-Slicing scheint jedoch ein massiver Overkill zu sein. Ich möchte einfach, dass der Prozess um 8 Uhr jeden Morgen ausgeführt wird. Ich will nicht, dass es seit Tagen versucht zu experimentieren (wenn ich zum Beispiel die Vorlage ändere). Ich gehe davon aus, dass das Data Warehouse den Fehler besser bewältigen wird.

Gibt es andere Ansätze, die ich hier berücksichtigen/Empfehlungen?

Dank David

Antwort

0

Das ist eine ziemlich große Frage ist also werde ich eine breite-ish Antwort bieten ...

Azure Daten Factory (ADF) sicherlich die meisten tun kann, was Sie in der Liste benötigen oben mit ein paar Ausnahmen/Tweaks, wie unten.

Die Batch-Compute-Pool-Skalierung. Dies müsste lokal im Dienst behandelt werden, indem die automatische Skalierungsfunktion verwendet wird und ein Befehl übergeben wird, um damit umzugehen. In ADF gibt es keine Aktivität, um dies direkt festzulegen.

Der benutzerdefinierte .NET-Code, den Sie in den Punkten 3 und 4 erwähnen. Sie können diese als benutzerdefinierte ADF-Aktivitäten schreiben, die an den Batch-Dienst zur Ausführung übergeben werden. Erlauben Sie ADF also, mit diesen DLLs usw. umzugehen, anstatt etwas anderes zu haben, das die Batch-Tasks erstellt, und der ADF führt sie einfach aus. ADF wird das alles behandeln.

Weitere Informationen über hier individuelle Aktivitäten zu schaffen: https://www.purplefrogsystems.com/paul/2016/11/creating-azure-data-factory-custom-activities/

Für die Data Warehouse-ADF hat aus der Box Funktionalität Ihre Fragen und ermöglichen die Übergabe von Parametern an gespeicherte Prozedur usw.

Schließlich auszuführen, für die DW-Skalierung und Pause Ich denke, Sie müssen Azure Automation hier verwenden. Ich bin mir nicht bewusst, dass irgendetwas in ADF diese Kontrollebene bietet, es sei denn, Sie lösen das .Net-Netzwerk erneut aus.

Hoffen, dass Sie einen Anhaltspunkt dafür bekommen, wie Sie Fortschritte machen können.

+0

Vielen Dank für Ihre Antwort. Glücklich genug, die Gewohnheit .Net zu schreiben. Bevor ich dies als Antwort ansehe, gibt es außer Runbooks noch andere Alternativen zu Data factory, die für die Prozess-Orchestrierung gedacht sind? Ich mag die Scheiben Aspekt von Data Factory (vielleicht wegen mangelndem Verständnis), aber Sorgen über Probleme wie "nicht auf einem Sat/Sonne laufen", oder wenn ich eine Pipeline mit einem Startdatum in der Vergangenheit erstellen, es möchte alle vorherigen Daten auch laufen lassen ... wenn ich wirklich möchte, dass es heute startet (ich weiß, dass ich es mit dem richtigen Startdatum erstellen konnte, aber besorgt über die Änderung bestehender). – DavidReid

+0

PowerShell ist dein Freund hier. Sie können Segmente bei Bedarf mit den ADF-Cmdlets überschreiben. –