2017-05-11 2 views
0

Je recherche des conseils sur les meilleures pratiques en matière d'orchestration de processus. Pour donner un contexte que je les tâches suivantes pour orchestrer:Azure Process Orchestration

  1. Scale Up Pool Azure Lot pour fournir des noeuds adéquats
  2. code personnalisé .Net exécutons qui appelle un serveur pour récupérer une liste des tâches. Ces tâches changent quotidiennement. Mettez en file d'attente ces tâches dans le pool de lots. Exécuter chaque tâche (code .Net personnalisé) dans le pool de lots. Chaque tâche crée des données dans un compte de stockage Azure.
  3. Réduisez le pool de lots car il n'est plus requis.
  4. Démarrer/agrandir l'entrepôt de données
  5. En bloc Importez les données dans Data Warehouse (prévoyez d'utiliser une combinaison de PolyBase et de BCP).
  6. Agrège les données et génère une sortie vers un compte Azure Storage.
  7. Pause/échelle sur le Data Warehouse

Je compare actuellement l'entrepôt de données à Runbooks pour effectuer ce qui précède.

Je trouve que les Runbooks sont très primitifs en termes de visualisation lors de la conception et de l'exécution. Je trouve que Data Warehouse est beaucoup plus révélateur visuellement. Cependant, le découpage des données semble énorme. Je veux simplement que le processus s'exécute à 8 heures du matin chaque matin. Je ne veux pas qu'il tente de s'exécuter depuis des jours (si je modifie le gabarit par exemple). Je pense que Data Warehouse gèrera mieux les échecs/reprise le long du pipeline d'activités.

Y a-t-il d'autres approches que je devrais considérer ici/recommandations?

Merci David

Répondre

0

C'est une question assez large, donc je vais donner une réponse large ish ...

Azure données Factory (ADF) peut certainement faire plus de ce que vous avez besoin dans la liste ci-dessus avec quelques exceptions/tweaks, comme ci-dessous.

La mise à l'échelle du pool de traitement par lots. Cela devrait être géré localement dans le service en utilisant la fonctionnalité de mise à l'échelle automatique et en passant une commande pour gérer cela. Il n'y a pas d'activité dans ADF pour le paramétrer directement.

Le code .Net personnalisé que vous mentionnez aux points 3 et 4. Vous pouvez les écrire en tant qu'activités personnalisées ADF qui sont transmises au service de traitement par lots pour exécution. Donc, autorisez ADF à gérer ces DLL, etc plutôt que d'avoir quelque chose d'autre qui crée les tâches par lots et ADF les exécute juste. ADF va gérer tout cela.

Plus d'informations sur la création d'activités personnalisées ici: https://www.purplefrogsystems.com/paul/2016/11/creating-azure-data-factory-custom-activities/

Pour le Data Warehouse ADF a de la fonctionnalité de la boîte pour exécuter vos requêtes et permettre le passage de paramètres à la procédure stockée etc.

Enfin, pour la mise à l'échelle et la mise en pause de DW Je pense que vous devrez utiliser Azure Automation ici. Je ne suis pas au courant de quoi que ce soit dans ADF qui puisse offrir ce niveau de contrôle, à moins que vous ne ressortiez le .Net à nouveau.

J'espère que cela vous donnera une idée sur la façon de progresser.

+0

Merci pour votre réponse. Assez content d'écrire le .Net personnalisé. Avant de marquer cela comme la réponse, à l'exception des Runbooks, existe-t-il d'autres alternatives à Data Factory destinées à Process Orchestration? Je n'aime pas l'aspect des tranches de Data Factory (peut-être en raison d'un manque de compréhension), mais je m'inquiète de problèmes tels que "ne pas fonctionner sur sat/sun", ou si je crée un pipeline avec startDate dans le passé, il veut aussi courir toutes les dates précédentes ... quand vraiment je veux juste qu'il commence aujourd'hui (je sais que je pourrais le créer avec le startDate correct, mais je m'inquiète d'amender existant). – DavidReid

+0

PowerShell est votre ami ici. Vous pouvez remplacer les tranches avec les cmdlets ADF si nécessaire. –