Explorar el streaming estructurado de Apache Spark
Tip
Consulte la pestaña Texto e imágenes para obtener más detalles.
Apache Spark es un potente motor de procesamiento de datos diseñado para controlar rápidamente grandes cantidades de datos. En lugar de procesar datos en un único equipo, Spark divide el trabajo en muchas máquinas (un clúster) para que todo se ejecute en paralelo. Puede usar Spark en Microsoft Azure en los siguientes servicios:
- Microsoft Fabric
- Azure Databricks
Spark admite código escrito en Python, Scala o Java, y puede controlar el procesamiento por lotes y el procesamiento de flujos.
Streaming estructurado de Spark
Spark Structured Streaming es una biblioteca integrada en Spark que facilita el trabajo con datos de streaming. Piense en ella como una manera de tratar un flujo de datos en vivo de la misma manera que trabajaría con una tabla en una hoja de cálculo, excepto que la tabla sigue creciendo en tiempo real a medida que llegan nuevos datos.
Así es como funciona en la práctica:
- Se conecta a un origen de transmisión —por ejemplo, una cola de mensajes como Azure Event Hubs, una carpeta con archivos o una fuente de red.
- Spark lee los datos entrantes en una trama de datos, básicamente una tabla de filas y columnas que rellena continuamente los nuevos datos a medida que llegan los eventos.
- Escribe una consulta en esa trama de datos, por ejemplo, para contar eventos por minuto o calcular una media en ejecución.
- Los resultados de la consulta se escriben en una salida (un destino), como un archivo, una base de datos o un panel de control.
Spark Structured Streaming es una buena opción cuando ya usa Spark para el procesamiento de datos y quiere ampliar ese trabajo para incluir flujos de datos en tiempo real.
Nota:
Para obtener más información sobre Spark Structured Streaming, consulte la guía de programación de Spark Structured Streaming.
Delta Lake
Delta Lake es un formato de almacenamiento de código abierto que mejora cómo se almacenan los datos en un lago de datos. De forma predeterminada, un lago de datos es simplemente una colección de archivos; no hay ninguna manera integrada de garantizar que los datos estén completos, coherentes o estructurados correctamente. Delta Lake agrega esas garantías, lo que hace que el almacenamiento del lago de datos se comporte más como una base de datos tradicional.
Entre las principales ventajas de Delta Lake se incluyen:
- Confiabilidad: se realiza un seguimiento de los cambios en los datos, por lo que las escrituras parciales o con errores no dañan los datos.
- Validación del esquema: Los datos deben ajustarse a una estructura definida antes de ser aceptados, evitando que se cuelen registros desordenados o incompatibles.
- Procesamiento por lotes y streaming unificados: la misma tabla Delta puede servir como receptor de streaming (datos escritos en él en tiempo real) y un origen para consultas por lotes, por lo que no necesita almacenamiento independiente para datos históricos y activos.
Los entornos de ejecución de Spark en Microsoft Fabric y Azure Databricks incluyen compatibilidad integrada con Delta Lake.
Delta Lake combinado con Spark Structured Streaming es una buena solución cuando se desea un único almacén de datos coherente que funcione tanto para la ingesta en tiempo real como para el análisis histórico.
Nota:
Para obtener más información sobre Delta Lake, consulte Tablas almacén de lago de datos y Delta Lake.