Compartir vía


Uso de flujos de datos en canalizaciones

Al crear canalizaciones complejas con varios flujos de datos, el flujo lógico puede tener un gran impacto en el tiempo y el costo. En esta sección se trata el impacto de las distintas estrategias de arquitectura.

Ejecución de flujos de datos en paralelo

Si se ejecutan varios flujos de datos en paralelo, el servicio pone en marcha clústeres de Spark independientes para cada actividad. Esto permite que cada trabajo se aísle y se ejecute en paralelo, pero hará que se ejecuten varios clústeres al mismo tiempo.

Si los flujos de datos se ejecutan en paralelo, se recomienda no habilitar la propiedad de período de vida de Azure IR, ya que da lugar a varios grupos semiactivos no usados.

Sugerencia

En lugar de ejecutar el mismo flujo de datos varias veces para cada actividad, almacene provisionalmente los datos en un lago de datos y use rutas de acceso con caracteres comodín para procesar los datos en un único flujo de datos.

Ejecución secuencial de flujos de datos

Si ejecuta las actividades de flujo de datos en secuencia, se recomienda establecer un TTL en la configuración de Azure IR. El servicio reutiliza los recursos de proceso, lo que da lugar a un tiempo de actividad del clúster más rápido. Cada actividad sigue aislada y recibe un nuevo contexto de Spark para cada ejecución.

Sobrecarga de un único flujo de datos

Si pone toda la lógica dentro de un único flujo de datos, el servicio ejecuta todo el trabajo en una sola instancia de Spark. Aunque esto puede parecer una manera de reducir los costos, combina distintos flujos lógicos y puede ser difícil de supervisar y depurar. Si se produce un error en un componente, también se produce un error en todas las demás partes del trabajo. Se recomienda organizar los flujos de datos por flujos independientes de lógica de negocios. Si el flujo de datos es demasiado grande, la división en componentes independientes facilita la supervisión y la depuración. Aunque no hay ningún límite estricto en el número de transformaciones de un flujo de datos, tener demasiados hace que el trabajo sea complejo.

Ejecución de receptores en paralelo

El comportamiento predeterminado de los receptores de flujo de datos es ejecutar cada receptor de forma secuencial, en serie, y producir un error en el flujo de datos cuando se encuentra un error en el receptor. Además, todos los receptores se establecen de forma predeterminada en el mismo grupo, a menos que vaya a las propiedades del flujo de datos y establezca otras prioridades para los receptores.

Los flujos de datos permiten agrupar los receptores en grupos en la pestaña de propiedades del flujo de datos en el diseñador de la interfaz de usuario. Puede establecer el orden de ejecución de los receptores y agruparlos con el mismo número de grupo. Para facilitar la administración de los grupos, puede pedir al servicio que ejecute los receptores del mismo grupo en paralelo.

En la actividad Ejecutar flujo de datos de la canalización, en la sección "Propiedades del receptor", hay una opción para activar la carga del receptor en paralelo. Cuando se habilita "Ejecutar en paralelo", se indica a los flujos de datos que escriban en los receptores conectados al mismo tiempo en lugar de hacerlo de forma secuencial. Para usar la opción de ejecución en paralelo, los receptores deben agruparse y conectarse al mismo flujo mediante una nueva rama o la división condicional.

Acceso a las plantillas de bases de datos de Azure Synapse en las canalizaciones

Puede usar una plantilla de base de datos Azure Synapse al crear una canalización. Al crear un nuevo flujo de datos, en la configuración de origen o receptor, seleccione Base de datos del área de trabajo. La lista desplegable de bases de datos muestra las bases de datos creadas con la plantilla de base de datos. La opción Base de datos del área de trabajo solo está disponible para los flujos de datos nuevos, no está disponible cuando se usa una canalización existente desde la galería de Synapse Studio.

Vea el resto de artículos sobre Data Flow relacionados con el rendimiento: