Guía de escalabilidad y rendimiento de la actividad de copiaCopy activity performance and scalability guide

SE APLICA A: Azure Data Factory Azure Synapse Analytics

A veces, desea realizar una migración de datos a gran escala desde el lago de datos o el almacenamiento de datos empresariales (EDW) a Azure.Sometimes you want to perform a large-scale data migration from data lake or enterprise data warehouse (EDW), to Azure. Otras veces quiere ingerir grandes cantidades de datos, desde distintos orígenes en Azure, para el análisis de macrodatos.Other times you want to ingest large amounts of data, from different sources into Azure, for big data analytics. En cada caso, es fundamental lograr un rendimiento y una escalabilidad óptimos.In each case, it is critical to achieve optimal performance and scalability.

Azure Data Factory (ADF) proporciona un mecanismo para ingerir datos.Azure Data Factory (ADF) provides a mechanism to ingest data. ADF tiene las ventajas siguientes:ADF has the following advantages:

  • Administra grandes cantidades de datosHandles large amounts of data
  • Tiene un alto rendimientoIs highly performant
  • Es rentableIs cost-effective

Estas ventajas hacen de ADF una buena opción para aquellos ingenieros de datos que desean crear canalizaciones de ingesta de datos escalables con un alto rendimiento.These advantages make ADF an excellent fit for data engineers who want to build scalable data ingestion pipelines that are highly performant.

Después de leer este artículo, podrá responder a las siguientes preguntas:After reading this article, you will be able to answer the following questions:

  • ¿Qué nivel de rendimiento y escalabilidad puedo conseguir si uso la actividad de copia de ADF para escenarios de migración de datos y de ingesta de datos?What level of performance and scalability can I achieve using ADF copy activity for data migration and data ingestion scenarios?
  • ¿Qué pasos se deben seguir para optimizar el rendimiento de la actividad de copia de ADF?What steps should I take to tune the performance of ADF copy activity?
  • ¿Qué mecanismos de optimización del rendimiento de ADF puedo utilizar para optimizar el rendimiento de una única ejecución de la actividad de copia?What ADF perf optimization knobs can I utilize to optimize performance for a single copy activity run?
  • ¿Qué otros factores ajenos a ADF se deben tener en cuenta al optimizar el rendimiento de la copia?What other factors outside ADF to consider when optimizing copy performance?

Nota

Si no está familiarizado con la actividad de copia en general, consulte la información general de la actividad de copia antes de leer este artículo.If you aren't familiar with the copy activity in general, see the copy activity overview before you read this article.

Rendimiento y escalabilidad de copia que pueden lograrse mediante ADFCopy performance and scalability achievable using ADF

ADF ofrece una arquitectura sin servidor que permite el paralelismo en diferentes niveles.ADF offers a serverless architecture that allows parallelism at different levels.

Esta arquitectura hace posible el desarrollo de canalizaciones que maximizan el rendimiento del movimiento de datos para su entorno.This architecture allows you to develop pipelines that maximize data movement throughput for your environment. Estas canalizaciones hacen un uso completo de los siguientes recursos:These pipelines fully utilize the following resources:

  • Ancho de banda de redNetwork bandwidth
  • Operaciones de entrada/salida por segundo (IOPS) de almacenamiento y ancho de bandaStorage input/output operations per second (IOPS) and bandwidth

Este uso completo significa que puede calcular el rendimiento general midiendo el rendimiento mínimo disponible con los siguientes recursos:This full utilization means you can estimate the overall throughput by measuring the minimum throughput available with the following resources:

  • Almacén de datos de origenSource data store
  • Almacén de datos de destinoDestination data store
  • Ancho de banda de red entre los almacenes de datos de origen y de destinoNetwork bandwidth in between the source and destination data stores

En la tabla siguiente se calcula la duración de la copia.The table below calculates the copy duration. La duración se basa en el tamaño de los datos y el límite de ancho de banda de su entorno.The duration is based on data size and the bandwidth limit for your environment.

 

Tamaño de los datos /Data size /
bandwidthbandwidth
50 Mbps50 Mbps 100 Mbps100 Mbps 500 Mbps500 Mbps 1 Gbps1 Gbps 5 Gbps5 Gbps 10 Gbps10 Gbps 50 Gbps50 Gbps
1 GB1 GB 2,7 min2.7 min 1,4 min1.4 min 0,3 min0.3 min 0,1 min0.1 min 0,03 min0.03 min 0,01 min0.01 min 0,0 min0.0 min
10 GB10 GB 27,3 min27.3 min 13,7 min13.7 min 2,7 min2.7 min 1,3 min1.3 min 0,3 min0.3 min 0,1 min0.1 min 0,03 min0.03 min
100 GB100 GB 4,6 h4.6 hrs 2,3 h2.3 hrs 0,5 h0.5 hrs 0,2 h0.2 hrs 0,05 h0.05 hrs 0,02 h0.02 hrs 0,0 h0.0 hrs
1 TB1 TB 46,6 h46.6 hrs 23,3 h23.3 hrs 4,7 h4.7 hrs 2,3 h2.3 hrs 0,5 h0.5 hrs 0,2 h0.2 hrs 0,05 h0.05 hrs
10 TB10 TB 19,4 días19.4 days 9,7 días9.7 days 1,9 días1.9 days 0,9 días0.9 days 0,2 días0.2 days 0,1 días0.1 days 0,02 días0.02 days
100 TB100 TB 194,2 días194.2 days 97,1 días97.1 days 19,4 días19.4 days 9,7 días9.7 days 1,9 días1.9 days 1 día1 day 0,2 días0.2 days
1 PB1 PB 64,7 meses64.7 mo 32,4 meses32.4 mo 6,5 meses6.5 mo 3,2 meses3.2 mo 0,6 meses0.6 mo 0,3 meses0.3 mo 0,06 meses0.06 mo
10 PB10 PB 647,3 meses647.3 mo 323,6 meses323.6 mo 64,7 meses64.7 mo 31,6 meses31.6 mo 6,5 meses6.5 mo 3,2 meses3.2 mo 0,6 meses0.6 mo

La copia de ADF puede escalarse en diferentes niveles:ADF copy is scalable at different levels:

Cómo se escala la copia de ADF

  • El flujo de control de ADF puede iniciar varias actividades de copia en paralelo, por ejemplo, mediante un bucle ForEach.ADF control flow can start multiple copy activities in parallel, for example using For Each loop.

  • Una sola actividad de copia puede aprovechar los recursos de proceso escalables.A single copy activity can take advantage of scalable compute resources.

    • Al usar el entorno de ejecución de integración de Azure, puede especificar hasta 256 unidades de integración de datos (DIU) para cada actividad de copia sin servidor.When using Azure integration runtime (IR), you can specify up to 256 data integration units (DIUs) for each copy activity, in a serverless manner.
    • Al usar IR autohospedado, puede utilizar uno de los métodos siguientes:When using self-hosted IR, you can take either of the following approaches:
      • Escalar verticalmente la máquina de forma manual.Manually scale up the machine.
      • Escalar horizontalmente a varias máquinas (hasta 4 nodos), y una única actividad de copia dividirá su conjunto de archivos en todos los nodos.Scale out to multiple machines (up to 4 nodes), and a single copy activity will partition its file set across all nodes.
  • Una única actividad de copia lee y escribe en el almacén de datos mediante varios subprocesos en paralelo.A single copy activity reads from and writes to the data store using multiple threads in parallel.

Pasos de optimización del rendimientoPerformance tuning steps

Para optimizar el rendimiento del servicio Azure Data Factory con la actividad de copia, siga estos pasos:Take the following steps to tune the performance of your Azure Data Factory service with the copy activity:

  1. Seleccione un conjunto de datos de prueba y establezca una línea de base.Pick up a test dataset and establish a baseline.

    Durante el desarrollo, pruebe la canalización, para lo que debe usar la actividad de copia con unos datos de ejemplo representativos.During development, test your pipeline by using the copy activity against a representative data sample. El conjunto de datos que elija debe representar los patrones de datos típicos a lo largo de los siguientes atributos:The dataset you choose should represent your typical data patterns along the following attributes:

    • Estructura de carpetasFolder structure
    • Patrón de archivoFile pattern
    • Esquema de datosData schema

    Y el conjunto de datos debe ser lo suficientemente grande como para evaluar el rendimiento de la copia.And your dataset should be big enough to evaluate copy performance. Para un buen tamaño, la actividad de copia tarda al menos 10 minutos en completarse.A good size takes at least 10 minutes for copy activity to complete. Recopile los detalles de la ejecución y las características del rendimiento después de la supervisión de la actividad de copia.Collect execution details and performance characteristics following copy activity monitoring.

  2. Cómo maximizar el rendimiento de una única actividad de copia:How to maximize performance of a single copy activity:

    Se recomienda maximizar primero el rendimiento mediante una única actividad de copia.We recommend you to first maximize performance using a single copy activity.

    • Si la actividad de copia se va a ejecutar en un entorno de ejecución de integración de Azure:If the copy activity is being executed on an Azure integration runtime:

      Comience con los valores predeterminados de las unidades de integración de datos (DIU) y la configuración de copia paralela.Start with default values for Data Integration Units (DIU) and parallel copy settings.

    • Si la actividad de copia se va a ejecutar en un entorno de ejecución de integración autohospedado:If the copy activity is being executed on a self-hosted integration runtime:

      Se recomienda usar una máquina dedicada para hospedar el entorno de ejecución de integración.We recommend that you use a dedicated machine to host IR. La máquina debe ser independiente del servidor que hospeda el almacén de datos.The machine should be separate from the server hosting the data store. Comience con los valores predeterminados para la configuración de copia en paralelo y use un solo nodo para el IR autohospedado.Start with default values for parallel copy setting and using a single node for the self-hosted IR.

    Realice una serie de pruebas de rendimiento.Conduct a performance test run. Tome nota del rendimiento conseguido.Take a note of the performance achieved. Incluya los valores reales usados, como las DIU y las copias paralelas.Include the actual values used, such as DIUs and parallel copies. Consulte la supervisión de la actividad de copia para obtener información sobre cómo recopilar los resultados de las pruebas y la configuración de rendimiento.Refer to copy activity monitoring on how to collect run results and performance settings used. Obtenga información acerca de cómo solucionar problemas de rendimiento de la actividad de copia para identificar y resolver el cuello de botella.Learn how to troubleshoot copy activity performance to identify and resolve the bottleneck.

    Recorra en iteración para realizar series de pruebas de rendimiento adicionales siguiendo las instrucciones para la solución de problemas y la guía de optimización.Iterate to conduct additional performance test runs following the troubleshooting and tuning guidance. Una vez que la ejecución de la actividad de copia única no pueda lograr un mejor rendimiento, considere la posibilidad de maximizar el rendimiento agregado mediante la ejecución de varias copias de forma simultánea.Once single copy activity runs cannot achieve better throughput, consider whether to maximize aggregate throughput by running multiple copies concurrently. Esta opción se describe en la siguiente viñeta numerada.This option is discussed in the next numbered bullet.

  3. Cómo maximizar el rendimiento agregado mediante la ejecución de varias copias simultáneamente:How to maximize aggregate throughput by running multiple copies concurrently:

    Ahora ha maximizado el rendimiento de una única actividad de copia.By now you have maximized the performance of a single copy activity. Si aún no ha llegado a los límites superiores de rendimiento de su entorno, puede ejecutar varias actividades de copia en paralelo.If you have not yet achieved the throughput upper limits of your environment, you can run multiple copy activities in parallel. Puede ejecutar en paralelo mediante construcciones de flujo de control de ADF.You can run in parallel by using ADF control flow constructs. Una de estas construcciones el bucle For Each.One such construct is the For Each loop. Para obtener más información, consulte los siguientes artículos sobre las plantillas de solución:For more information, see the following articles about solution templates:

  4. Expanda la configuración a todo el conjunto de datos.Expand the configuration to your entire dataset.

    Cuando esté satisfecho con los resultados y el rendimiento de la ejecución, puede expandir la definición y la canalización para cubrir todo el conjunto de datos.When you're satisfied with the execution results and performance, you can expand the definition and pipeline to cover your entire dataset.

Solución de problemas de rendimiento de la actividad de copiaTroubleshoot copy activity performance

Siga los pasos de optimización del rendimiento para planear y realizar la prueba de rendimiento de su escenario.Follow the Performance tuning steps to plan and conduct performance test for your scenario. Y aprenda a solucionar los problemas de rendimiento de la ejecución de la actividad de copia en Azure Data Factory desde Solución de problemas de rendimiento de la actividad de copia.And learn how to troubleshoot each copy activity run's performance issue in Azure Data Factory from Troubleshoot copy activity performance.

Características de optimización del rendimientoCopy performance optimization features

Azure Data Factory proporciona las siguientes características de optimización del rendimiento:Azure Data Factory provides the following performance optimization features:

Unidades de integración de datosData Integration Units

Una unidad de integración de datos (DIU) es una medida que representa la potencia de una sola unidad en Azure Data Factory.A Data Integration Unit (DIU) is a measure that represents the power of a single unit in Azure Data Factory. La potencia es una combinación de CPU, memoria y asignación de recursos de red.Power is a combination of CPU, memory, and network resource allocation. La DIU solo se aplica al entorno de ejecución de integración de Azure.DIU only applies to Azure integration runtime. La DIU no se aplica al entorno de ejecución de integración autohospedado.DIU does not apply to self-hosted integration runtime. Obtenga más información aquí.Learn more here.

Escalabilidad del entorno de ejecución de integración autohospedadoSelf-hosted integration runtime scalability

Es posible que desee hospedar una carga de trabajo simultánea creciente.You might want to host an increasing concurrent workload. O bien, puede que desee conseguir un mayor rendimiento en el nivel de carga de trabajo actual.Or you might want to achieve higher performance in your present workload level. Puede mejorar la escala del procesamiento mediante los siguientes métodos:You can enhance the scale of processing by the following approaches:

  • Puede escalar verticalmente el entorno de ejecución de integración autohospedado aumentando el número de trabajos simultáneos que se pueden ejecutar en un nodo.You can scale up the self-hosted IR, by increasing the number of concurrent jobs that can run on a node.
    El escalado vertical solo funciona si el procesador y la memoria del nodo son inferiores al uso completo.Scale up works only if the processor and memory of the node are being less than fully utilized.
  • Puede escalar horizontalmente el entorno de ejecución de integración autohospedado agregando más nodos (máquinas).You can scale out the self-hosted IR, by adding more nodes (machines).

Para más información, consulte:For more information, see:

Copia en paraleloParallel copy

Puede establecer la propiedad parallelCopies para indicar el paralelismo que desea que utilice la actividad de copia.You can set the parallelCopies property to indicate the parallelism you want the copy activity to use. Considere esta propiedad como el número máximo de subprocesos dentro de la actividad de copia.Think of this property as the maximum number of threads within the copy activity. Los subprocesos operan en paralelo.The threads operate in parallel. Los subprocesos leen desde el origen o escriben en los almacenes de datos receptores.The threads either read from your source, or write to your sink data stores. Obtenga más información.Learn more.

copia almacenada provisionalmenteStaged copy

Una operación de copia de datos puede enviar los datos directamente al almacén de datos receptor.A data copy operation can send the data directly to the sink data store. Como alternativa, puede usar el almacenamiento de blobs como almacenamiento provisional.Alternatively, you can choose to use Blob storage as an interim staging store. Más información.Learn more.

Pasos siguientesNext steps

Consulte los restantes artículos acerca de la actividad de copia:See the other copy activity articles: