Metodología de éxito en la implementación de Synapse: evaluación del diseño del grupo de Spark
Nota
Este artículo forma parte de la serie de artículos Éxito en la implementación de Azure Synapse por diseño. Para más información general sobre la serie, vea Éxito en la implementación de Azure Synapse por diseño.
Debe evaluar el diseño de su grupo de Apache Spark para identificar problemas y validar que cumple las instrucciones y los requisitos. Al evaluar el diseño antes de que comience el desarrollo de la solución, puede evitar obstáculos y cambios de diseño inesperados. De este modo, protegerá la escala de tiempo y el presupuesto del proyecto.
Apache Spark en Synapse lleva el procesamiento paralelo de datos de Apache Spark a Azure Synapse Analytics. Esta evaluación proporciona instrucciones sobre cuándo Apache Spark en Azure Synapse es, o no, la opción adecuada para la carga de trabajo. Describe los puntos que se deben tener en cuenta al evaluar los elementos de diseño de la solución que incorporan grupos de Spark.
Ajuste del análisis de brechas
Al planificar la implementación de grupos de Spark con Azure Synapse, primero asegúrese de que son la mejor opción para la carga de trabajo.
Considere los siguientes puntos:
- ¿La carga de trabajo requiere ingeniería de datos o preparación de datos?
- Apache Spark funciona mejor para cargas de trabajo que requieren:
- Limpieza de datos.
- Transformación de datos semiestructurados, como XML, en relacionales.
- Transformación compleja de texto libre, como coincidencia aproximada o procesamiento de lenguaje natural (NLP).
- Preparación de datos para el aprendizaje automático (ML).
- Apache Spark funciona mejor para cargas de trabajo que requieren:
- ¿La carga de trabajo para la preparación de datos o ingeniería de datos implica transformaciones complejas o sencillas? Y, ¿busca un enfoque de poco código o sin código?
- Para transformaciones simples, como quitar columnas, cambiar tipos de datos de columna o combinar conjuntos de datos, considere la posibilidad de crear una canalización de Azure Synapse mediante una actividad de flujo de datos.
- Las actividades de flujo de datos proporcionan un enfoque de poco código o sin código para preparar los datos.
- ¿Requiere la carga de trabajo ML en macrodatos?
- Apache Spark funciona bien para grandes conjuntos de datos que se usarán para ML. Si usa pequeños conjuntos de datos, considere la posibilidad de usar Azure Machine Learning como servicio de proceso.
- ¿Tiene previsto realizar la exploración de datos o el análisis de consultas ad hoc en macrodatos?
- Apache Spark en Azure Synapse proporciona exploración de datos basada en Python/Scala/SQL/.NET. Sin embargo, si necesita una experiencia completa de Transact-SQL (T-SQL), considere la posibilidad de usar un grupo de SQL sin servidor.
- ¿Tiene una carga de trabajo actual de Spark/Hadoop y necesita una plataforma unificada de macrodatos?
- Azure Synapse proporciona una plataforma analítica unificada para trabajar con macrodatos. Hay grupos de Spark y SQL sin servidor para consultas ad hoc y el grupo de SQL dedicado para informes y servicios de datos.
- El traslado de una carga de trabajo de Spark/Hadoop desde un entorno local (u otro entorno de nube) puede implicar una refactorización que debe tener en cuenta.
- Si busca un enfoque de migración mediante lift-and-shift del entorno de macrodatos de Apache desde el entorno local a la nube y necesita cumplir un acuerdo estricto de nivel de servicio de ingeniería de datos (SLA), considere la posibilidad de usar Azure HDInsight.
Consideraciones sobre la arquitectura
Para asegurarse de que el grupo de Apache Spark cumple los requisitos de excelencia operativa, rendimiento, confiabilidad y seguridad, hay áreas clave para validar en la arquitectura.
Excelencia operativa
Para la excelencia operativa, evalúe los puntos siguientes.
- Entorno: Al configurar el entorno, diseñe el grupo de Spark para aprovechar las ventajas de características como el escalado automático y la asignación dinámica. Además, para reducir los costos, considere la posibilidad de habilitar la característica de pausa automática.
- Administración de paquetes: Determine si las bibliotecas de Apache Spark necesarias se usarán en un nivel de área de trabajo, grupo o sesión. Para obtener más información, consulte Administración de bibliotecas para Apache Spark en Azure Synapse Analytics.
- Supervisión: Apache Spark en Azure Synapse proporciona supervisión integrada de grupos y aplicaciones de Spark con la creación de cada sesión de Spark. Considere también la posibilidad de implementar la supervisión de aplicaciones con Azure Log Analytics o Prometheus y Grafana, que puede usar para visualizar métricas y registros.
Eficiencia del rendimiento
Para la eficiencia del rendimiento, evalúe los puntos siguientes.
- Tamaño de archivo y tipo de archivo: El tamaño de los archivos y el número de archivos tienen un impacto en el rendimiento. Diseñe la arquitectura para asegurarse de que los tipos de archivo son favorables a la ingesta nativa con Apache Spark. Además, inclínese por utilizar menos archivos grandes en lugar de muchos archivos pequeños.
- Partición: Identifique si la creación de particiones en el nivel de carpeta o archivo se implementará para la carga de trabajo. Las particiones de carpeta limitan la cantidad de datos que se van a buscar y leer. Las particiones de archivo reducen la cantidad de datos que se van a buscar dentro del archivo, pero solo se aplican a formatos de archivo específicos que se deben tener en cuenta en la arquitectura inicial.
Confiabilidad
Para la confiabilidad, evalúe los puntos siguientes.
- Disponibilidad: Los grupos de Spark tienen una hora de inicio de tres a cuatro minutos. Puede tardar más si hay muchas bibliotecas que instalar. Al diseñar cargas de trabajo por lotes frente a cargas de trabajo de streaming, identifique el Acuerdo de Nivel de Servicio para ejecutar el trabajo a partir de la información de evaluación y determine qué arquitectura satisface mejor sus necesidades. Además, tenga en cuenta que cada ejecución de trabajos crea un nuevo clúster de grupos de Spark.
- Puntos de control: El streaming de Apache Spark tiene un mecanismo de punto de comprobación integrado. La creación de puntos de comprobación permite que la secuencia se recupere de la última entrada procesada si se produce un error en un nodo del grupo.
Seguridad
Para la seguridad, evalúe los puntos siguientes.
- Acceso a datos: El acceso a datos debe tenerse en cuenta para la cuenta de Azure Data Lake Storage (ADLS) que está asociada al área de trabajo de Synapse. Además, determine los niveles de seguridad necesarios para acceder a los datos que no están dentro del entorno de Azure Synapse. Consulte la información recopilada durante la fase de evaluación.
- Redes: Revise la información de red y los requisitos recopilados durante la evaluación. Si el diseño implica una red virtual administrada con Azure Synapse, tenga en cuenta las implicaciones que tendrá este requisito en Apache Spark en Azure Synapse. Una implicación es la incapacidad de usar Spark SQL al acceder a los datos.
Pasos siguientes
En el siguiente artículo de la serie Success by Design para Azure Synapse, aprenda a evaluar el plan de proyecto de almacenamiento de datos moderno antes de que se inicie el proyecto.
Para más información sobre los procedimientos recomendados, consulte la guía de Apache Spark para Azure Synapse.