Pools Data Flow

Les pools de flux de données peuvent être utilisés dans de nombreuses charges globales de batch, de transmission en continu et de session Data Flow par différents utilisateurs en même temps dans le même locataire.

Les pools offrent un mécanisme puissant et flexible permettant de gérer efficacement les charges de travail de traitement par lots, de transmission en continu et de session basées sur Spark pour plusieurs utilisateurs au sein du même locataire. Conçus pour prendre en charge à la fois les environnements de production sensibles au temps et les scénarios de développement dynamique, les pools réduisent les temps de démarrage des applications en maintenant une infrastructure de calcul pré-initialisée.

Elles permettent l'isolement des charges de travail au niveau de l'entreprise, garantissant ainsi que les activités de développement n'affectent pas les travaux de production critiques grâce à une segmentation dédiée des ressources. Le contrôle des coûts est rationalisé grâce à des stratégies IAM affinées qui limitent l'utilisation des pools aux utilisateurs autorisés ou à des environnements spécifiques. Parallèlement, les mécanismes de mise en file d'attente intelligents permettent la soumission de travaux volumineux tout en optimisant l'utilisation des ressources.

Les pools peuvent être planifiés pour démarrer automatiquement dans des fenêtres de temps définies et s'arrêter éventuellement après un délai d'expiration de l'utilisation, en alignant la disponibilité du calcul sur les processus métier et en minimisant le coût inactif. En outre, l'automatisation intégrée gère l'application de correctifs de sécurité de manière transparente sans interrompre les applications en cours d'exécution, ce qui fait des pools un choix idéal pour une exécution sécurisée, évolutive et rentable des charges de travail Spark.

Les pools offrent un large éventail de fonctionnalités pour divers cas d'utilisation, tels que :

  • Charges de travail de production volumineuses et sensibles au temps avec de nombreux exécuteurs, ce qui nécessite un démarrage plus rapide en quelques secondes.
  • Les charges globales de production critiques ne sont pas affectées par les charges globales de développement dynamique, car leurs ressources peuvent être séparées en différents pools.
  • Contrôlez le coût et l'utilisation du développement à l'aide de la stratégie IAM qui vous permet de soumettre des exécutions Data Flow à des pools spécifiques.
  • Un grand nombre d'exécutions Data Flow doit être traité avec moins de temps de démarrage.
  • La mise en file d'attente de Data Flow est exécutée dans un pool pour une utilisation efficace des ressources et un contrôle des coûts.
  • Les charges globales s'exécutent uniquement dans une fenêtre de temps spécifique d'une journée qui nécessite le démarrage automatique d'un pool selon une planification et l'arrêt automatique en cas d'inactivité.
  • Application automatique de patches de sécurité sans incidence sur les exécutions ou les ressources d'un pool.

Un autre cas d'emploi du flux de données est la possibilité de préallouer (ou de réserver) des noeuds avec une configuration spéciale. Il s'agit de ressources de tailles spécifiques (ou de la relation entre la CPU et la mémoire) qui sont rares dans les centres de données prenant en charge la région. Les travaux qui nécessitent une telle configuration spéciale impliquent généralement de grands volumes de données et des tailles d'enregistrement qui ne peuvent pas être facilement distribués en allouant plus de noeuds à l'exécution du travail.

Dans ces scénarios, il est pratique d'interroger les centres de données de la région pour évaluer la disponibilité de ces ressources. Les échantillons Oracle offrent une approche simple pour examiner cette capacité dans divers contextes commerciaux.

Configurer des exécutions et des applications pour utiliser des pools

Utilisez des pools avec des applications et des exécutions Data Flow.

Développer une application avec un pool

Lors du développement d'applications, vous pouvez sélectionner un pool dans n'importe quel état, à l'exception de DELETED, à ajouter à une application. Sélectionnez uniquement les formes de pilote et d'exécuteur configurées dans le pool Data Flow ajouté à l'application.

Exécution d'une application avec un pool

Lors de la soumission d'une exécution Data Flow, sélectionnez un pool dans n'importe quel état à l'exception de DELETED pour ajouter une application. Sélectionnez uniquement les formes de pilote et d'exécuteur configurées dans le pool Data Flow ajouté à l'exécution.

Mise en file d'attente du flux de données avec pool

Vous pouvez soumettre d'autres exécutions à la file d'attente de pool alors que les ressources de calcul de pool sont utilisées par d'autres exécutions. Par défaut, les exécutions sont mises en file d'attente pendant 20 minutes pour attendre que les ressources du pool soient disponibles. Vous pouvez configurer le temps d'attente dans la file d'attente en définissant la configuration Spark, spark.dataflow.acquireQuotaTimeout , dans les options avancées d'exécution Data Flow ou d'application. La valeur de cette configuration peut être formatée comme suit : 1h | 30m | 45min, etc.

Pendant qu'une exécution Data Flow attend dans la file d'attente que les ressources détenues par des exécutions actives dans le pool soient disponibles, un démarrage à froid se produit.

Démarrage du pool de flux de données à partir de l'exécution

Les pools Data Flow arrêtés ou acceptés peuvent également être démarrés en soumettant une exécution avec un pool.

Les exécutions attendent que le pool devienne actif. Nous vous recommandons d'utiliser la fonction de mise en file d'attente du pool pour éviter les délais d'exécution. L'annulation et l'arrêt de l'exécution n'arrêtent pas le pool.

Remplacement de l'ID de pool dans une exécution ou une application

  • Lors de l'ajout d'un pool dans une application et une exécution, le pool ajouté à l'exécution est utilisé.

  • Lors de l'ajout d'un pool dans une application, mais pas dans une exécution, lors de la soumission de l'exécution, le pool ajouté à l'application est utilisé.

  • Lors de l'ajout d'un pool dans une exécution, mais pas dans une application, lors de la soumission de l'exécution, le pool ajouté à l'exécution est utilisé.

  • Cela permet d'utiliser plusieurs pools io dans différentes exécutions d'une même application.

Limites

  • Les limites Data Flow et les quotas de compartiment au niveau du locataire sont toujours applicables lors de la création ou du démarrage de pools.
  • Maximum de 1000 noeuds au total de toutes les configurations d'un pool.
  • Le nombre de pools pouvant être créés et utilisés n'est pas limité. Un administrateur peut écrire une stratégie de quota de compartiment pour limiter un utilisateur, un groupe d'utilisateurs ou un compartiment afin de contrôler la forme et le nombre de noeuds configurés dans un pool.