Según el propio Microsoft Azure Synapse Analytics es una plataforma analítica sin límites que ofrece integración de datos, Data Warehousing empresarial y analítica Big data todo en uno. Lo cierto es que es exactamente eso. En su interior hay un montón de componentes que o bien ya existían o bien se han creado específicamente para el nuevo Synapse, pero su potencia no está en los componentes que lo usan sino en la experiencia unificada, algo en lo que sin duda el gigante de Redmon es especialista, en tomar productos distintos y que suenen como una orquesta todos juntos, sin estridencias, sin pitidos, todos al unísono.

Componentes de Azure Synapse

Azure Data Lake Storage V2

El corazón de todos los sistemas de Big Data está en un sistema de archivos distribuido, en el caso de Synapse Analytics ese sistema es Azure Data Lake Storage V2, que además de ser compatible con HDFS (Hadoop Distributed File System) permite el almacenamiento jerárquico de la información. Esto es una ventaja en sí mismo, porque permite la organización de cada una de las capas de almacenamiento de un Data Lake, pero ayudando a que no se convierta en un “pantano de datos”, es decir una especie de basurero donde simplemente se “tira” la información.

El componente Data Lake está integrado dentro del propio Synapse Studio, de manera que podemos navegar las carpetas, leer los archivos que ahí se encuentra e incluso usarlos directamente como si de una tabla se tratara.

azure synapse analytics overview

Como podemos ver en la figura, la integración es total, no hemos de salir a usar el Azure Storage Explorer, ni ninguna otra herramienta para navegar nuestro Azure Data Lake, e incluso desde los propios archivos alojados en el Data Lake podemos, usando menús contextuales, incluirlos en el ciclo de desarrollo de Synapse.

Solicita tu PoC gratuita de Azure Synapse

Explora Synapse y da respuesta a cómo podría ayudarte, realizando una prueba de concepto de 10 jornadas sin coste.

Quiero Solicitar mi Prueba Ahora

Polybase y el concepto de Data Virtualization

De todos es sabido que en el mundo del análisis de datos un buen porcentaje del coste total de la solución se consume en los procesos de movimientos, limpieza y organización de los datos. En los famosos procesos ETL o ELT.

¿Y qué es lo que nos obliga a mover los datos?

  • En buena parte es garantizar que la información no se toca, no se modifica y la tenemos disponible, esto ya está garantizado si esa información está en un Data Lake.
  • Otro de los motivos es la velocidad de consulta de la información. Precisamente eso también está garantizado en un Data Lake, el sistema de archivos distribuidos está en el corazón del Big Data Analysis, y precisamente que los datos estén en un sistema Data Lake.
  • Organización en modo DWH. El organizar los datos de origen en un modo en el que esté disponible para el análisis es uno de los motivos mas importantes para mover la información. Este motivo no ha desaparecido como tal, pero con Azure Synase Analytics y PolyBase podemos crear una virtualización de la información de tal forma que nos ayude en la creación de los procesos ETL o ELT.

Polybase no es exclusivo de Synapse, pero si está totalmente integrado en la plataforma, con Polybase vamos a poder usar tablas externas, que eventualmente pueden apuntar a casi cualquier origen, como si estuviesen almacenadas en el propio SQL Serverless pool de Synapse Analytics. La idea es tan sencilla que resulta genial, un componente intermedio, en este caso Polybase, genera estadísticas de los datos subyacentes y auto-contiene un motor de optimización de manera que cuando ejecutamos cualquier query que involucra a tablas virtualizadas con Polybase es capaz de generar consultas muy eficaces. Para que la afirmación no quede tan “abstracta” vamos a hablar de un caso concreto, el “pushdown computation, imaginemos que tenemos una tabla externa que apunta a una base de datos IBM Db2 u Oracle, y que como parte de nuestro query tenemos un patrón que filtra los datos de esa tabla virtualizada, “where FechaUltimaActualizacion>=’20210901’”. Polybase será capaz de determinar si la forma mas eficaz es lanzar el filtrado primero contra la tabla para después ejecutar el resto de pasos de la columna (por ejemplo hacer joins, Group by’s o cualquier otra operación) de manera que se maximice el rendimiento de la consulta. Ese tipo de inteligencia, también puede aplicarse a estructuras Datalake, bien directamente, bien usando funciones específicamente diseñadas para el propósito.

En resumen, Polybase es un excelente sistema para la virtualización de información.

SQL Serverless Pool

Dentro de la arquitectura de Synapse Analytics uno de los componentes que aporta más valor, particularmente para descubrimiento y tratamiento de la información es el Pool ServerLess, en este pool de servidores podemos ejecutar consultas con SQL, podemos acceder a tablas alojadas en ficheros con distintas tipologías, a través de Polybase y podemos tratar todos estos tipos de datos heterogéneos de una forma totalmente integrada, de una forma conocida y en la que nos sentimos seguros, como tablas de SQL.

Los ingenieros de datos nos enfrentamos a grandes retos en la actualidad. Nos enfrentamos a datos estructurados, como orígenes relacionales, datos no estructurado como ficheros de logs, videos, imágenes o conversaciones telefónicas o semi-estructurados como los que nos devuelven APIS o servicios de datos en formatos Json o XML. Estos formatos, estos datos aportan un valor crucial para científicos de datos, que pueden conectarse a estos orígenes en crudo y transformar, comprobar, enriquecer dar forma o cualquiera de las operaciones que estimen oportuno o necesiten hacer.   También aportan mucho valor a la analítica avanzada, y ahí este concepto de Serverless pool, con un precio muy ajustado y una potencia muy grande adquiere un sentido especial. ¿Qué quiero decir con todas estas frases? ¿Cuál es ese valor que aportan? ¿Cómo puedo usarlo?  Bien, vamos por pasos.

¿Qué valor aporta? En las capas más crudas de la información, en las capas que tenemos en los Data Lakes hay duplicados, o datos incrementales, y sobre todo hay mucho dato que no necesitamos ni queremos en nuestro análisis. Con herramientas como el serverless pool podemos limpiar, seleccionar o transformar esta información y guardarla otra vez como ficheros en nuestro Datalake, y como principal ventaja solo necesitamos conocer el lenguaje SQL. Todas las operaciones posibles, con todas las tipologías de datos pero con un lenguaje en el que nos sentimos cómodos y que conocemos bien.

¿Cómo puedo usarlo? Basta con crear una capa de tablas externas o vistas contra el Data Lake, es capaz de leer ficheros de muchos tipos, json, parquet, etc, y puedo hacer joins de todas esas tablas como si residieran en mi sistema local. Así pues, puedo usarlo como me parezca oportuno, como si fuese una base de datos local, bienvenida potencia de virtualización de información.

Spark Pool

Estamos en la era del BigData y Synapse Analytics no podía dejar de incluir una de las herramientas estrella del mundo del Big Data, Apache Spark. Apache Spark es una tecnología de BigData, que es capaz de paralelizar ejecuciones entre un pool de máquinas y Synapse Analytics permite configurar estos pools de máquinas simplemente especificando cuantos nodos como máximo y mínimo y que tamaño queremos que tengan esos nodos, evitándonos esa tarea, nada sencilla, de configurar administrar y mantener nodos usando recursos que potencialmente solo voy a necesitar en momentos muy puntuales del día. Así pues, con los pools de spark, puedo leer objetos del mismo Data Lake que con el Serverless pool, puedo escribir tablas y leer luego esas tablas desde el serverless pool, ya que mantiene una sincronización entre las bases de datos de Spark y de Serverless. Incluso puedo enviar esas tablas a PowerBI.

Integrado, la clave es que todo está integrado desde el propio entorno de Synapse Analytics, de manera que puedo compartir información y transformarlas aprovechando los perfiles de mi equipo, dejando que los que saben de SQL continúen usándolo como herramienta, mientras que los que prefieren Python y spark puedan ser igual de productivos y colaborativos en un proyecto completo.

Dedicated Pool

Si todo esto no era suficiente, añadimos el componente de SQL Pool dedicado, lo que tradicionalmente fue Parallel Datawarehouse y que es un MPP (Massively Parallel processing Engine)

azure synapse analytics MPP

En el que los nodos de computación y control colaboran para tratar la información de la forma más eficaz y rápida hasta PetaBytes de información, pero manteniendo un sabor “SQL”, de forma que todos los conocimientos aprendidos en ese lenguaje siguen estando vigentes, siguen siendo perfectamente válidos cuando se use el pool dedicado.

Conceptos como particionado, no solo están incluidos sino potenciados, podemos definir como se van a distribuir las tablas entre los nodos de computación, a través de hash, Round Robin o si queremos que estén disponibles en todos los nodos con replicación, todo esto almacenado en formato columnar para que las consultas sean aún más eficaces y pudiendo combinarlas con PowerBi para cerrar este circuito virtuoso en el que con los conocimientos SQL  hemos pasado de tener límites en cuanto a tamaño de la información a poco menos que fulminar esos límites y poder procesar casi infinitos datos.

Power BI y Synapse Analytics

Hemos visto a vuelo de pájaro una arquitectura big data, en la que nuestros ingenieros no van a necesitar conocer más que código SQL, quizá Spark aunque no es obligatorio, y en la que vamos a poder implementar soluciones realmente escalables prácticamente sin límites. Por ejemplo, en VerneTech hemos importado recientemente 2500 Millones de filas de archivos parquet a un pool dedicado con DW300c (uno de los más bajos en coste) en poco más de 1 hora. Pero toda esta potencia es potencia de motor, de capacidad analítica, de creación de capas ETL o ELT, pero ¿Qué hay de la capacidad de visualización? O incluso más allá ¿Qué hay de la capacidad de crear cachés sobre esta información que agilicen aún más todos los procesos? Es ahí donde entra PowerBI.

Podemos usar Power BI para conectar tanto al Serverless Pool como al Pool dedicado, es decir podemos consumir información en Power BI de ambos mundos. Y además podemos aprovechar toda la potencia de Power BI no solamente la capacidad para crear cuadros de mando interactivos y eficaces, sino también la capacidad de crear modelos sobre nuestra capa analítica en Synapse que aumenten aún mas el rendimiento y la agilidad que han de percibir nuestros usuarios. Podemos usar las agregaciones de Power BI y conectar nuestro modelo Synapse en modo Direct Query (en el que la carga de las consultas las soporta Synapse) con agregaciones nativas de Power BI comprimidas con el motor Vertipac que proporcionarán una capa de caché sobre los datos que le darán aún más agilidad.

El concepto fundamental, el concepto que introducimos en este artículo es la integración, integración total de los componentes, a través de Synapse Studio, a través del trabajo del equipo de desarrollo de Synapse que ha conseguido que todos los componentes necesarios para crear aplicaciones de alto rendimiento, escalables y consultables sea una tarea mucho más sencilla.

Conclusiones

Synapse Analytics es una solución Cloud con coste controlado, y escalabilidad prácticamente sin límites que democratiza el mundo del Big Data para todos, pero particularmente para los ingenieros de datos más tradicionales con conocimientos profundos en el lenguaje SQL y en las arquitecturas de SQL Server.

¡Has llegado al final! Parece que te ha gustado nuestro post sobre Azure

Aprovecha las ventajas de un servicio de análisis ilimitado que te permite obtener conclusiones con una rapidez inigualable. Escalabilidad ilimitada, claridad inmediata y seguridad inigualable. ¿Quieres que nuestro equipo te ayude a convertir tus datos en información para tomar decisiones sólidas?

Quiero Descubrir Azure Synapse
0 Shares:
Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You May Also Like

Un paseo por Azure ML Services 

Azure ML y sus recursos han expandido enormemente las posibilidades para los desarrolladores de Machine Learning y los Científicos de Datos para obtener datos, analizarlos, entrenar modelos y publicarlos. Acompañame en éste artículo para conocer los elementos básicos y saber cómo puedes aprovechar la potencia de Azure para tus desarrollos ML.
Implementando Azure databricks
Leer más

Implementando Databricks (SaaS) en Azure para evitar accesos no autorizados a los datos

Cuando trabajamos con Azure o la nube en general, tenemos que ser muy cuidadosos con la seguridad de nuestros datos y más si son datos confidenciales o que entran en el ámbito de la RGPD, por lo que en este articulo os damos unas pautas a seguir para trabajar con datos utilizando el servicio de Databricks que nos ofrece Azure, evitando que estos viajen por fuera de la red privada.