Pools de Data Flow

Los agrupaciones de Data Flow se pueden utilizar en muchos lotes de Data Flow, Streaming y cargas de trabajo de sesión por parte de varios usuarios al mismo tiempo en el mismo inquilino.

Los pools proporcionan un mecanismo potente y flexible para gestionar de forma eficaz las cargas de trabajo por lotes, de transmisión y de sesión basadas en Spark en varios usuarios del mismo inquilino. Diseñada para soportar tanto entornos de producción sensibles al tiempo como escenarios de desarrollo dinámico, las agrupaciones reducen los tiempos de inicio de las aplicaciones mediante el mantenimiento de una infraestructura informática preinicializada.

Permiten el aislamiento de cargas de trabajo empresariales, lo que garantiza que los trabajos de producción críticos no se vean afectados por las actividades de desarrollo mediante la segmentación de recursos dedicados. El control de costos se optimiza con políticas de IAM detalladas que restringen el uso del pool a usuarios autorizados o entornos específicos. Al mismo tiempo, los mecanismos de cola inteligentes permiten el envío de trabajos de gran volumen al tiempo que optimizan el uso de recursos.

Los grupos se pueden programar para que se inicien automáticamente en períodos de tiempo definidos y, finalmente, se detengan después de un timeout en el uso, alineando la disponibilidad de los recursos informáticos con los procesos de negocio y minimizando el costo inactivo. Además, la automatización incorporada gestiona la aplicación de parches de seguridad sin interrupciones en la ejecución de aplicaciones, lo que convierte a las agrupaciones en una opción ideal para la ejecución de cargas de trabajo de Spark seguras, escalables y rentables.

Las piscinas ofrecen una amplia gama de funcionalidades para diversos casos de uso, como:

  • Grandes cargas de trabajo de producción sensibles al tiempo con muchos ejecutores que necesitan un tiempo de inicio más rápido en segundos.
  • Las cargas de trabajo de producción críticas no se ven afectadas por las cargas de trabajo de desarrollo dinámico porque sus recursos se pueden separar en diferentes grupos.
  • Controle el costo y el uso del desarrollo con la política de IAM que le permite ejecutar ejecuciones de Data Flow en pools específicos.
  • Es necesario procesar un gran número de ejecuciones de Data Flow con menos tiempo de inicio.
  • Poner en cola el flujo de datos se ejecuta en un pool para un uso eficaz de los recursos y el control de costos.
  • Las cargas de trabajo se ejecutan solo en una ventana de tiempo específica de un día que necesita el inicio automático de un pool según un programa y la detención automática cuando están inactivas.
  • Aplicación automática de parches de seguridad sin afectar a las ejecuciones ni a los recursos de un pool.

Otro caso de uso para Data Flow es la capacidad de preasignar (o reservar) nodos con una configuración especial. Estos son recursos de tamaños específicos (o la relación entre CPU y memoria) que son poco comunes en los centros de datos que soportan la región. Los trabajos que requieren una configuración especial suelen implicar grandes volúmenes de datos y tamaños de registro que no se pueden distribuir fácilmente asignando más nodos a la ejecución del trabajo.

Para estos escenarios, es práctico interrogar a los centros de datos de la región para evaluar la disponibilidad de estos recursos. Las muestras de Oracle ofrecen un enfoque sencillo para examinar dicha capacidad en varios contextos comerciales.

Configuración de Ejecuciones y Aplicaciones para Utilizar Pools

Utilice pools con aplicaciones y ejecuciones de Data Flow.

Desarrollo de Aplicaciones con un Pool

Al desarrollar aplicaciones, puede seleccionar un pool en cualquier estado excepto DELETED para agregarlo a una aplicación. Seleccione solo las unidades de controlador y ejecutor configuradas en el pool de Data Flow agregadas a la aplicación.

Ejecución de una aplicación con un pool

Al enviar una ejecución de Data Flow, seleccione un pool en cualquier estado excepto DELETED para agregar una aplicación. Seleccione solo las unidades de controlador y ejecutor configuradas en el pool de Data Flow agregadas a la ejecución.

Poniendo en cola el flujo de datos con el pool

Puede enviar más ejecuciones a la cola del pool mientras otras ejecuciones utilizan los recursos informáticos del pool. Por defecto, las ejecuciones se ponen en cola durante 20 minutos para esperar a que los recursos de la agrupación estén disponibles. Puede configurar el tiempo de espera en la cola definiendo la configuración de Spark, spark.dataflow.acquireQuotaTimeout , en las opciones avanzadas de ejecución de Data Flow o aplicación. El valor de esta configuración se puede formatear como 1h | 30m | 45min, etc.

Mientras una ejecución de Data Flow espera en la cola que los recursos retenidos por las ejecuciones activas en el pool estén disponibles, se produce un inicio en frío.

Inicio del pool de flujos de datos desde la ejecución

Las agrupaciones de Data Flow paradas o aceptadas también se pueden iniciar mediante la ejecución de una ejecución con una agrupación.

Se ejecuta a la espera de que la agrupación se active para iniciarse. Recomendamos utilizar la función de cola de la agrupación para evitar timeouts de ejecución. Cancelar y detener la ejecución no detiene la agrupación.

Sustitución del ID de pool en una ejecución o aplicación

  • Al agregar un pool en una aplicación y ejecución, se utiliza el pool agregado a la ejecución.

  • Al agregar un pool en una aplicación, pero no en una ejecución, al ejecutar la ejecución se utiliza el pool agregado a la aplicación.

  • Al agregar un pool en una ejecución, pero no en una aplicación, al ejecutar la ejecución se utiliza el pool agregado a la ejecución.

  • Esto permite utilizar varios pools en distintas ejecuciones de la misma aplicación.

Límites

  • Los límites de Data Flow a nivel de inquilino y las cuotas de compartimento siguen siendo aplicables al crear o iniciar pools.
  • Máximo de 1000 nodos en total de todas las configuraciones de una agrupación.
  • No hay límites en el número de grupos que se pueden crear y utilizar. Un administrador puede escribir una política de cuota de compartimento para limitar un usuario, grupo de usuarios o compartimento para controlar la unidad y el número de nodos configurados en un pool.