¿Qué es Azure Synapse? ¿En qué se diferencia de Azure Data Bricks y SQL?

En noviembre de 2019 Microsoft anunciaba el lanzamiento de Azure Synapse. ¿En qué consiste y cómo se relaciona con otros servicios de análisis de datos de la compañía de Redmond?

Bismart - qué es Azure Synapse

Azure Synapse Analytics es un servicio de análisis ilimitado de información orientado a grandes empresas que se presentó como la evolución de Azure SQL Data Warehouse (SQL DW), y que reúne el almacenamiento de datos empresariales y el análisis de macrodatos o Big Data.

Synapse aporta un único servicio para todas las cargas de trabajo a la hora de procesar, administrar y servir datos para las necesidades inmediatas de business intelligence y predicción de datos. Esto último se hace posible gracias a su integración con Power BI y Azure Machine Learning, debido a la capacidad de Synapse de integrar modelos matemáticos de machine learning mediante el formato ONNX. Brinda la libertad de manejar y consultar cantidades ingentes de información tanto a petición serverless (un tipo de despliegue que escala automáticamente la potencia bajo demanda cuando se dispone de grandes cantidades de datos) para la exploración de datos y el análisis ad hoc, o con recursos aprovisionados, a escala.

¿Cómo opera Azure Synapse Analytics?

El servicio de Microsoft es un SaaS (Software as a Service), y se puede usar bajo demanda para ejecutarse solo cuando se necesite (lo que incide en el ahorro de costes). Tiene cuatro componentes:

  • SQL Analytics con análisis basado en T-SQL completo: grupo de SQL (pago por unidades de computación) y SQL a petición (pago por TB procesados).
  • Apache Spark totalmente integrado.
  • Conectores con múltiples fuentes de datos.

Azure Synapse usa Azure Data Lake Storage Gen2 como almacén de datos  y un modelo de datos consistente que incorpora apartados de administración, monitorización y manejo de metadatos. En el apartado de la seguridad permite proteger, supervisar y administrar las soluciones de datos y análisis, por ejemplo empleando inicios de sesión únicos y la integración de Azure Active Directory.

En cuanto a la compatibilidad de lenguajes de programación, ofrece la posibilidad de elegir entre varios como SQL, Python, .NET, Java, Scala y R. Esto lo convierte en un sistema muy adecuado para diferentes cargas de trabajo de análisis y diferentes perfiles de ingenieros.

Todo se engloba dentro del Synapse Analytics Studio que facilita integrar Inteligencia Artificial, Machine Learning, IoT, aplicaciones inteligentes o business intelligence, todo dentro de una misma plataforma unificada.

Trabajando con T-SQL y Spark

Respecto a los tiempos de ejecución, permite tener dos motores. Por un lado el de SQL tradicional (T-SQL) y por otro el motor de Spark. De esta manera será posible emplear T-SQL por ejemplo para el procesamiento por lotes, streaming e interactivo, o Spark cuando se requiera de procesamiento de Big Data con Python, Scala, R o .NET.

Aquí enlaza directamente con Azure Databricks, el servicio de análisis de macrodatos e inteligencia artificial basado en Apache Spark que permite aplicar escalabilidad automática y colaborar en proyectos compartidos en un área de trabajo interactiva. Azure Synapse provee de un conector de alto rendimiento entre ambos servicios posibilitando una rápida transferencia de datos. Esto se traduce en que es posible continuar usando Azure Databricks (una optimización de Apache Spark) con una arquitectura de datos especializada en extraer, transformar y cargar (ETL) cargas de trabajo para preparar y dar forma a los datos a escala. A su vez Azure Synapse y Azure Databricks pueden ejecutar análisis en los mismos datos en Azure Data Lake Storage.

Azure Synapse y Azure Databricks ponen a nuestro alcance oportunidades aún mayores para combinar soluciones analíticas, de Business Intelligence y de data science con un Data Lake compartido entre servicios.

De camino hacia una máxima compatibilidad y potencia

De inicio el servicio de Microsoft se presenta como una solución a dos problemas fundamentales a los que deben enfrentarse las empresas. El primero de ellos es el de la compatibilidad. Y es que el sistema de análisis de datos que integra tiene la capacidad de trabajar tanto con sistemas tradicionales como con datos no estructurados y varias fuentes de datos. De este modo es capaz de analizar datos almacenados en sistemas como bases de datos de clientes (con nombres y direcciones ubicados en filas y columnas ordenadas tipo una hoja de cálculo) y también con datos almacenados en un Data Lake en formato parquet. 

Pero también brinda una mayor versatilidad para manejar de forma automática tareas con las que construir un sistema para analizar datos. Esta mayor potencia trae como consecuencia directa una reducción en la cantidad de trabajo que necesitan los programadores, y por extensión de los tiempos de desarrollo de proyectos (es el primer y único sistema de análisis que ha ejecutado todas las consultas de TPC-H a escala de petabyte).

Azure Synapse consigue que proyectos que toman varios meses se pueden completar en días, o consultas a bases de datos complejas que duran minutos u horas tarden ahora unos pocos segundos.

Consultas exitosas en milisegundos

Además de escalar los recursos de proceso y de almacenamiento por separado, Azure Synapse Analytics destaca por su capacidad de caché de resultados (dispone de una caché totalmente administrada de 1 TB). Así, cuando se hace una consulta ésta se guarda en esta caché para acelerar la siguiente consulta que consuma el mismo tipo de datos.

Esta es una de las claves para que sea capaz de arrojar respuestas en milisegundos. Y es que la memoria caché sobrevive a las operaciones pausa, reanudación y escala (que se pueden activar muy rápidamente mediante una arquitectura de procesamiento masivo en paralelo diseñada para la nube).

Cargas de trabajo y rendimiento

También cabe resaltar su total compatibilidad con JSON, el enmascaramiento de datos para garantizar altos niveles de seguridad, el soporte de SSDT (SQL Server Data Tools) y especialmente el manejo de la carga de trabajo (Workload) y el modo en el que se puede optimizar y aislar. Aquí múltiples cargas de trabajo comparten recursos implementados. Esto hace que sea posible crear un workload y asignarle la cantidad de CPU y concurrencia.

En el caso de disponer por ejemplo de 1000 DWU (Data Warehouse Units), Azure Synapse facilita la operación de asignar por ejemplo un porcentaje de trabajo a ventas y otro a marketing (por ejemplo 60% a uno y 40% al otro). Se trata de facilitar la administración y priorizar consultas a la base de datos.

En cuanto a la preparación e ingesta de datos soporta streaming de forma integrada (Native SQL Streaming) para generar análisis, por ejemplo con integración con Event Hub o con un IoT Hub. Y lo logra consiguiendo un alto rendimiento de hasta 200MB/segundo, latencias de entrega en segundos, escalas de rendimiento de ingesta con escala de computación, y capacidades de análisis con consultas basadas en Microsoft SQL para combinaciones, agregaciones, filtros…

Algunas características adicionales

Por último, no podemos terminar sin destacar otros interesantes aspectos de Azure Synapse Analytics que ayudan a acelerar la carga de datos y facilitar los procesos. Entre ellos están:

  • Para la preparación y cargas de datos la orden Copy hace que ya no sean necesarias tablas externas, puesto que permite cargar tablas directamente dentro de la base de datos.
  • Ofrece una total compatibilidad con CSV estándar: saltos de línea y delimitadores personalizados y fechas SQL.
  • Brinda una selección de archivos controlada por el usuario (soporte de comodín).
  • Soporte para Machine Learning: se pueden crear modelos de Machine Learning y guardarlos en formato ONNX, que se guardan dentro del almacén de datos Azure Synapse y usar con la instrucción nativa PREDICT.
  • Integración con el data lake: desde Azure Synapse se leen los archivos en el Data Lake en formato Parquet, que alcanza un rendimiento muy superior mejorando la ejecución de Polybase por encima de 13x.

En definitiva un servicio que garantiza la línea de desarrollo para asegurar a los clientes de SQL DW poder seguir ejecutando las cargas de trabajo de almacenamiento de datos existentes en producción y beneficiarse automáticamente de las nuevas funcionalidades.

DÉJANOS TU COMENTARIO